Web Programming

Friday, May 6: Project workday Wednesday, May 4: Project workday Monday, May 2: Project workday Wednesday, April 27: Project workday Monday, April 25: Project workday Friday, April 22: Quiz Wednesday, April 20: Project workday Monday, April 18: Project workday Friday, April 15: Project workday Wednesday, April 13: Project workday Monday, April 11: Project workday Friday, April 8: Project implementation Wednesday, April 6: GitHub setup Monday, April 4: Project plans Friday, April 1: Project plans Wednesday, March 30: Project ideas Monday, March 28: Version control Friday, March 18: JavaScript objects Wednesday, March 16: AJAX Monday, March 14: AJAX Friday, March 11: JQuery Wednesday, March 9: JQuery Monday, March 7: Quiz Friday, March 4: JavaScript Wednesday, March 2: User accounts Monday, February 29: Cookies & sessions Friday, February 26: MVC design Wednesday, February 24: Multi-table design Monday, February 22: Table design Wednesday, February 17: Bootstrap Monday, February 15: Quiz Friday, February 12: No class Wednesday, February 10: PHP Monday, February 8: PHP Friday, February 5: MySQL Wednesday, February 3: MySQL Monday, February 1: Forms Friday, January 29: CSS layout Wednesday, January 27: HTML & CSS Monday, January 25: Development Friday, January 22: Command line Wednesday, January 20: Introduction
Course overview

Many of the programs we use are web services rather than local applications, and many professional software developers are specifically web developers. To build interesting web applications, we need a whole collection of tools: markup, styling, client-side and server-side scripting, and database interaction. This course will introduce one of the platforms for modern web development. You will learn to:


CS 256. This course assumes that you are an experienced programmer.


There is no required textbook for the course. Instead, I will regularly direct you to reading materials online.

Office hours

These are some times when I'm likely to be in my office. Come by at any of these times and you will probably find me, though I may occasionally be pulled away unexpectedly. You can also use email to make an appointment.


If your learning or participation in this course may be affected by a disability or any other factor, please talk to me early in the semester so that we can arrange appropriate accommodations. I will do my best to ensure that everyone can learn effectively.


Being in class is crucial for your learning in this course. Absences will leave holes in your understanding of course concepts. If you must miss a class, you are expected to work to get caught up before the next class.

Grading policy

Your final grade will be a weighted average of quizzes (30%), homework (30%), a project (30%), and reading (10%). This table shows how averages translate to the 4-point scale. Please note that I set a high bar for a 4.0 and there is no such thing as extra credit.

Academic integrity

It is important to me that you conduct your work in this course with academic integrity. That means abiding by the specific policies outlined below, as well as the general guidelines in the Student Handbook. It is my responsibility to report violations of these policies to the Dean.


Programming assignments will be due approximately once per week during the first half of the course. They will help you practice using the tools you will need for the course project.


There will be a quiz every few weeks during the first half of the semester to check your mastery of tools and concepts. These will be announced as they approach.


For each assigned reading, you may be asked to submit responses to some questions. The deadline for each response will be the start of the first quiz after it was assigned.


The second half of the semester will center around a course project. Along with a small team of your classmates, you will develop a substantial web application.


Quick references:

Longer guides:

We will use Sakai for homework submission and grade tracking.