CPSC 120
Introduction to Computer Science:
Web Site Programming

   Department of Mathematics and Computer Science
   Hobart and William Smith Colleges

   Fall 2014.

   Instructor:  David J. Eck  (eck@hws.edu)

   Monday, Wednesday, Friday, 10:10 – 11:05 PM
       Monday, Wednesday: Lecture in Room Gulick 206A
       Friday: Lab in Room Gulick 208

About The Course

CPSC 120 is an introductory course in computer science, meant primarily for students who do not plan to major or minor in computer science. (However, it can count towards a major or minor, as long as it is the first computer science course that you take.) Different professors teach different versions of this course. For Fall, 2014, CPSC 120 is an introduction to web site development. You will learn about many of the technologies that are used to create modern web applications. There are a lot of them—HTML, CSS, JavaScript, AJAX, and JQuery. Obviously, we will not be able to cover all of these topics in great depth. But by the end of the course, you should know enough to create some reasonably serious web sites, and you should be prepared to go off and learn more on your own as you need it.

When you view a web page, two computers are involved: The computer that you are using and the computer that the web page comes from. These computers are referred to as the client and the server. There is programming both on the "client side" and on the "server side." In this course, we will work exclusively with client-side programming.

One of the topics that is covered in every version of CPSC 120 is basic computer programming. Although there are some programming concepts involved in creating even basic web pages with HTML and CSS, the main programming component of this course will cover JavaScript, a langauge for writing programs that run in your web browser and make web pages active. Many of the programming examples will use "HTML Canvas Graphics," a technique that allows you to draw and create animations on a web page.

There are two books for this course, both by Jon Duckett: HTML and CSS: Design and Build Websites (ISBN 978-1118008188) and JavaScript and JQuery: Interactive Front-End Web Development (ISBN 978-1118531648). These are not textbooks in the usual sense, but they are guides to the various technologies that we will cover.

You should also take a look at the web site w3schools.com, which has learning and reference materials for HTML, CSS, and other things that we will cover. I suggest that you bookmark this site.

Computer Labs and Assignments

Every Friday, class will meet in Gulick 208 for a lab. (We might use a few other class periods for lab as well.) You will have a lab worksheet with several exercises for you to work on. In general, you should not expect to complete all the exercises in class. Any exercises that you don't finish in class should be completed as homework. In fact, lab exercises will be the major part of the homework that you do for this course. In general, exercises from one lab will be due before the start of the next lab; however, you might be given more time to complete some of the longer exercises. Some of the longer exercises might be group assignments.

Web Portfolio

As you work though lab exercises—and try things on your own—you will build up a collection of web pages. You will want to assemble at least the more interesting of those pages as a "portfolio" that shows off your work. You should organize your portfolio with a main page that links to all the work that you want to include. But you don't just want a page of links—you should apply the techniques that you learn in the course to make a nice presentation of your work.

The final assignment of the semester is to add something original to your Web Portfolioa, that is, something that is not just a response to the regular assignments. It might be a web site about some topic, or an interactive web application, or a program that uses graphics, or something else that you think of yourself. It does not have to be a huge project, but it should be somethign that shows some creativity and that uses some of the things that you have learned in the course.

At the end of the semester, you will recieve an overall grade for your portfolio, including the new original work. The portfolio must be in final form by the time of the final exam.

Tests, Exam, and Grading

There will be three in-class tests in addition to a final exam. The tests will be given on the following Wednesdays: September 24, October 22, and November 19. The final exam will take place during the officially scheduled exam time for the course, which is Friday, December 19, at 8:30 AM. The final exam will be in our regular classroom. Remember that I cannot reschedule your exam; be sure to make your travel plans accordingly! Note that the exam is on the last day of the final exam period.

All tests are cummulative to some extent, since every new topic that we cover will build on previous material. However, each test will be directed mainly towards new material. The final exam will actually be only a little longer than the other tests and will count for the same number of points in your overall grade for the course. Although the final exam will concentrate on material covered in the last part of the course, you should also expect a couple of summary questions based on the course as a whole.

Your numerical grade for the course will be determined as follows:

             First Test:            15%
             Second Test:           15%
             Third Test:            15%
             Final Exam:            15%
             Labs and Assignments:  30%
             Final Web Portfolio:   10%

Attendance, Etc.

I assume that you understand the importance of attending class. While I do not take attendance in every class, I expect you to be present unless circumstances make that impossible. Participation in lab is particularly important, and I do take attendance at lab. If you miss a lab without a good reason, you can still turn in work for that lab, but your grade on the lab will be reduced.

If you miss a test or final exam without an extremely good excuse, you will receive a grade of zero. If you think you have an excuse for missing a test, please discuss it with me, in advance if possible. If I judge that your excuse is reasonable, I will—depending on the circumstances—either give you a make-up test, or I will average your other grades so that the missing grade does not count against you. A missed final exam is a much bigger deal; please try to avoid it.

Although it should not need to be said, I expect you to maintain a reasonable level of decorum in class. This means that there is usually no eating or drinking in class. Cell phones are turned off. There is no walking in late or walking in and out of the room during lecture, without a very good reason.

Statement from the CTL

Disability Accommodations: If you are a student with a disability for which you may need accommodations, you should self-identify and register for services with the Coordinator of Disability Services at the Center for Teaching and Learning (CTL), and provide documentation of your disability. Disability related accommodations and services generally will not be provided until the registration and documentation process is complete. The guidelines for documenting disabilities can be found at the following website: http://www.hws.edu/academics/ctl/disability_services.aspx

Please direct questions about this process or Disability Services at HWS to David Silver, Coordinator of Disability Services, at silver@hws.edu or x3351.

Teaching Assistants

Teaching assistants will be available 7:00 to 10:00 PM, Sunday through Thursday, in the Math/CS Department's computer lab, Lansing 310. The TA's are students who have taken several computer science courses and are probably majoring in computer science. They are there mainly for CPSC 124, not for this course. TAs might be able to help you with general questions on computer programming, but they are not expected to know about web site development (although probably a few of them will).

Note that TA's are under instruction never to write code for you. They are there to help you to use the computers, think about your assignments, and find errors in the code that you write. They are not there to do your work for you.

Office Hours, E-mail, WWW

My office is room 313 in Lansing Hall. My office phone extension is 3398. I am on campus most days, and you are welcome to come in anytime you can find me there. My office hours will be posted on my office door and on the course web page as soon as they are determined.

But note that your office visits are certainly not restricted to my regular office hours! I can make some appointments at other times, and you should feel free to drop by if I am in my office and not busy with another student.

I expect you to be able to receive email at your official HWS email address. My e-mail address is eck@hws.edu. E-mail is good way to communicate with me, since I usually answer messages within a day of receiving them.

The home page for this course on the World Wide Web is located at http://math.hws.edu/eck/cs120. This page will contain a weekly guide to the course and links to lab worksheets.

Tentative Schedule

Here is a very tentative schedule for this course. You should expect some adjustments -- possibly even major adjustments, depending on how things are going.

Dates What's happening
Sept. 1, 3, and 5 Basic HTML. HTML&CSS, Chapters 1 to 5.
Sept. 8, 10, and 12 Basic CSS. HTML&CSS, Chapters 10 to 12.
Sept. 15, 17, and 19 More HTML (div and span; id and class), plus a short introduction to JavaScript. HTML&CSS, Chapter 8.
Sept. 22, 24, and 26 There is a test on Wednesday, September 24.
More CSS (boxes and borders). HTML&CSS, Chapter 13.
Sept. 29; Oct. 1 and 3 Javascript, and Graphics. Javascript&JQuery, Chapters 1 and 2.
Oct. 6, 8, and 10 Functions and control. Javascript&JQuery, Chapters 3 and 4.
Oct. 15 and 17 There is no class on Monday, because of Fall Break.
Timers and Animation.
Oct. 20, 22, and 24 There is a test on Wednesday, October 24.
The Document Object Model. Javascript&JQuery, Chapter 5.
Oct. 27, 29, and 31 Events. Javascript&JQuery, Chapter 6.
Nov. 3, 5, and 7 HTML form elements. HTML&CSS, Chapter 7.
Nov. 10, 12, and 14 JQuery. Javascript&JQuery, Chapter 7.
Nov. 17, 19, and 21 There is a test on Wednesday, November 19.
More JQuery. Javascript&JQuery, Chapter 7, continued.
Nov. 24 No class on Wednesday or Friday, because of Thanksgiving.
Publishing your work on 000webhost.com.
Dec. 1, 3, and 5 Ajax and JSON. Javascript&JQuery, Chapter 8.
Dec. 8, 10, and 12 Wrapping up the course.
Dec. 19 Final Exam.
Friday, December 19, 8:30 AM