This course ended on December 13, 2011

CPSC 120
Introduction to Computer Science:
Web Site Programming

   Department of Mathematics and Computer Science
   Hobart and William Smith Colleges

   Fall 2011.

   Instructor:  David J. Eck  (

   Course Handout:

   Monday, Wednesday, Friday, 12:20--1:15 AM
       Monday, Wednesday: Lecture in Room Napier 201
       Friday: Lab in Room Gulick 208
   Office Hours, Lansing 313 (If I'm not there, check the lab, Lansing 310.):
       Monday:   11:15--12:10
       Wednesday: 1:30--3:00
       Thursday: 10:00--11:30
       Friday:   11:15--12:10
   TA Hours, Lansing 310:  Sunday through Thursday, 7:00--10:00 PM.
       (Note:  TAs for Sunday, Tuesday, Thursday know some Web Site Development.)

Lab Worksheets
Lab 1, September 1
Intro HTML and CSS
Lab 2, September 9
Intro to JavaScript
Lab 3, September 16
A Muti-page Web Site
Lab 4, September 23
Publish a Web Site
Lab 5, September 30
JavaScript Graphics
Lab 6, October 6
If, and Form Elements
Lab 7, October 14
Loopy Art
Lab 8, October 21
Introduction to Gimp
Lab 9, October 28
HTML Forms
Lab 10, November 4
JQuery Animations
Lab 11, November 11
AJAX and JQuery
Lab 12, November 18
Work on Lab 11
or on Web Portfolio
Lab 13, December 2:  A Bit of MySQL and PHP
Lab 14, December 9:  Work on your Web Portfolio or Lab 13

Some Useful Links

First Week: August 29 and 31; September 2

Welcome to the course. You should read Book 1, Chapters 1 and 5, and Book 2, Chapters 1 and 2, from the textbook. These chapters cover some of the basic ideas of HTML and CSS. In lab on Friday, you will write your first web pages using HTML and CSS. You will be introduced to the Web site editor Aptana Studio 3, which we'll use throughout the course.

Second Week: September 5, 7, and 9

We will continue to look at HTML and CSS this week. Among the most important topics to be covered are the <div> and <span> elements and the id and class attributes, and how they are used in CSS. I will also discuss images, links, and URLs more completely. The reading for the week includes:

The lab on Friday will be a short introduction to JavaScript. I want you to get some experience early with how JavaScript can be used to modified the appearance of a web page. There is no reading from the book about JavaScript at this time. We will return to JavaScript in a more serious way after the first test.

Third Week: September 12, 14, and 16

We are already coming up on the first of three in-class tests! It will take place next week, on Wednesday, September 21, and it will cover everything that we've done in the first three weeks of the course, including the labs.

The reading for this week is Book 2, Sections 4 and 5. (Pages 250 to 256 are optional.) This will finish up HTML and CSS for the time being. After the test, we will do more work with JavaScript.

Fourth Week: September 19, 21, and 23

The first test is this Wednesday. An information sheet about the test is available.

On Monday, we will do examples and review for the test. (In fact, we mostly spent the day getting a preview of the fundamental aspect of programming: variables, assignment statements, functions, control statements, events, and data structures.)

For the lab this week, you will publish a web site on, and you will start work on your web portfolio. (Note: The idea did not work out at all, because their site would only let one person in the lab create an account! That part of the lab has been canceled. Nevertheless, you might want to try it out on your own.)

Fifth Week: September 26, 28, and 30

Following last week's test, we begin the second part of the course, in which we will work mostly on JavaScript programming. The first reading on this topic is Book 4, Chapter 1, especially pages 340 to 350. However, a lot of what we will be doing this week is not from the book.

For the lab this week, you will be using JavaScript to draw on a "canvas." The <canvas> element is a relatively new addition to HTML and is not supported in older browsers. (On Internet Explorer, it is only supported starting in Version 9.)

Sixth Week: October 3, 5, and 7

We will continue the study of JavaScript programming. We still have some work to do on variables, functions, and parameters. We will start working on "control statements" by looking at if statements and boolean-valued expressions. We will also start working with HTML form elements such as text input boxes, and we will see how they can be used in JavaScript.

HTML forms and form input elements are covered in Book 2, Chapter 7 of the textbook. For this week, we will only use a few of the form elements covered in that chapter. We might cover more of them in the future.

The JavaScript if statement is covered in Book 4, Chapter 2, pages 259--365.

Seventh Week: October 12 and 14

Because of Fall Break, there is no class on Monday this week. As a result, there is only one lecture for the week. That lecture will introduce JavaScript for loops. The reading is Book 4, Chapter 3, pages 373--380. The reading covers while loops as well as for loops, but we will only cover for loops in class. You should also read Book 4, Chapter 4, pages 395--404, which covers functions, which you have already been learning about and using in lab exercises.

Because of the abbreviated week, the exercises from Lab 6 will not be collected on Friday. Instead, they will be due next Monday. For Lab 7, there will be a new exercise that uses loops.

There is a test coming up on Wednesday of next week, October 19. An information sheet is available.

Eighth Week: October 17, 19, and 21

There is a test on Wednesday. We will spend Monday reviewing for the test, and maybe looking at a few new aspects of JavaScript programming. The lab on Friday will be an introduction to the Gimp image processing program.

Ninth Week: October 24, 26, and 28

We will spend some time on Monday reviewing some of the material covered in the second quarter of the course. In particular, we will go over variables and how they are used in JavaScript. We'll also talk about a few new things, such as the onload event and why it is necessary.

After that, we take a break from programming and go back to HTML to cover HTML forms and input elements. We will see how forms are used with server-side programs. In the lab for this week, you will create some forms that will interact with programs on the math department's web server.

For reading this week, you only need to finish Book 2, Chapter 7, on HTML forms.

Tenth Week: October 31; November 2 and 4

We started the week by looking at HTML tables, which are covered in the textbook in Book 1, Chapter 4, pages 74 to 81.

This week, we began our study of the JQuery JavaScript library. We covered how to use JQuery on a page, how to use an "init" function in JQuery, animations, and some basic events. This material is covered in the textbook in Book 7, Chapters 2 and 3, pages 747 to 760 and 771 to 790; however, we did not cover this material in as much depth as the textbook does.

Eleventh Week: November 7, 9, and 11

This week, we cover AJAX and in particular how AJAX is used in JQuery. In the lab, you will work with AJAX to make a very simple interactive web page. The material that we are covering is mostly not taken from the textbook, but it would be useful to read pages 731--732 on the basic idea of AJAX and pages 418--421 on JSON object notation.

Twelfth Week: November 14, 16, and 18

There is a test on Wednesday, November 16. An information sheet is available.

Aside from the test, we will spend Monday reviewing for the test and talking a little more about AJAX and JQuery. The lab on Friday will be part 1 of a two-part lab on the server side. Change of plan: There will not be a new lab on Friday. You can work on your web portfolio, or you can continue work on lab 11, which is due next Monday.

Thirteenth Week: November 21

There is no class on Wednesday or Thursday this week because of Thanksgiving break. Happy Thanksgiving!

On Monday, I spent the period answering student questions about how various things work on the Internet. After break, we will look briefly at aspects of server-side programming: MySQL and PHP.

Fourteenth Week: November 28 and 30; December 2

This week, we will be looking at two server-side technologies: databases and server-side programs. This will be just a brief encounter. We will consider relational databases, the SQL language, and the MySQL database server. For a server-side programming language, we will consider PHP. The textbook has large sections devoted to MySQL (Book VI) and to PHP (Book V). However, since we will be covering these topics so briefly, I don't suggest reading them. You should try to follow what we do in class and lab.

Reminder: The final exam is Tuesday, December 13, at 1:30 PM.

Fifteenth Week and Exam: December 5, 7, 9, and 13

On Monday of the last week of classes, I will finish up my discussion of PHP, and I will talk about some aspects of the Internet and the Web that were not covered in the course.

On Wednesday, we will review for the final exam.

On Friday, class will meet as usual in Gulick 208 for a lab. You can work on your web portfolio and/or finish up Lab 13. Lab 13 will be collected on Friday at 3:00. You will fill out a course evaluation form at the end of the lab. You get 5 points for your lab grade for being there (and filling out the form).

The final exam will take place in Albright Auditorium at 1:30 PM on Tuesday, December 13. An information sheet is available.

Your web portfolio should be in final form by the time of the final exam. It will be graded some time after the final.

Student Web Portfolios
Melanie Baltzer Dixin Bao Candace Carducci Andrew Creary Jake Currie
Joseph Currie Luke DeLuccia Olivia Fortuna Dollian Garo Stephen Gemmiti
Raleigh Grysko Robert Harris Benjamin Laddin Robert McNamara Owen Monahan
Subin Nepal Forrestel Nugent Emory Poccia David Rahr Lauren Reich
Megan Robson Kyle Sherwood Elizabeth Vail Douglas Van Der Hyde Arianna White