CSPP552: Internet Programming

Instructor

Brian Ward
Office: 254 Ryerson, Upper Level
email: bri@cs.uchicago.edu
Office hours: Tuesday 4:30-5:30/6

Teaching Assistant Office Hours Office Location
Alex Hioreanu Thursday 6-7/7:30 Fourth Floor Ryerson
Derek Merck Monday 4-5/5:30 Fourth Floor Ryerson
Dan Nurmi Wednesday 6-7/7:30Fourth Floor Ryerson
Dan Sheeler Friday 3-4/4:30 Fourth Floor Ryerson

Office hours are all PM. "6-7/7:30" means that if it's a really slow day, the instructor/TA may decide to leave at 7.

Mailing List

Go here to subscribe to the mailing list, cs552@cs.uchicago.edu. I'll make class announcements there, so you probably want to be on it.

Textbook

Homework Assignments

Assignment 1
Assignment 2
Assignment 3
Assignment 4
Assignment 5

Lecture Notes

Lecture 1
Notes
HTML
Lecture 2
Notes
JavaScript
Forms
Image JPEG/PNG
Lecture 3
Notes
Lecture 4
Notes
Lecture 5
Notes
PHP
Cookies in Python
Lecture 6
Notes
welcome.php
util.php
browse.php
view.php
cart.php
Lecture 7
Notes
Lecture 8
hang tight
Lecture 9
(written notes soon)
ebrowse.php
edit.php

Rough Lecture Plan

Overview

This course is about "Internet Programming." You should view this course as the technical half of a two quarter course in electronic commerce (or, in a more general sense, dynamic web sites). In particular, you will learn how to install, configure, and run a web site in addition to a variety of topics ranging from content delivery, network programming, computer security, and how to conduct secure web transactions. Our primary aim is to cover the core fundamentals of web programming, starting at the lower levels. Instead of providing large, overblown tools and sample code to which you need to conform your work, you'll only have the basic building blocks and (hopefully) the knowledge of how those pieces fit together.

Class Project

Most of your work in this class will be devoted to a group project in which you will create a fully functional dynamic web site (details to be provided later). You are to work in groups of no more than 4 people. Your final exam is a group presentation in which you provide a live demonstration of your web site to the rest of the class. The project is worth 70% of final grade, so take it seriously.

Project Description

Prerequisites

You'll do the coursework on the department's Unix workstations (no exceptions); therefore, you'll need to have an decent understanding of Unix: filesystems, directory structure, permissions, processes, and so on. You don't need to know any of the languages used in the course beforehand, but you do need an abstract understanding of programming and control flow - of procedural languages, in particular. What I'm trying to get at is: if (a) you don't feel very comfortable with Unix, (b) you have trouble with a while loop and functions, and/or (c) this is your first quarter with the program, then you probably don't want to take this course, because I'm not going to waste any time teaching this stuff.

Grading Structure

Weekly homework is due Tuesday at midnight a week after it's assigned. Late homework policy: not accepted.

Academic Dishonesty

Homework assignments must be done individually. However, you should feel free to discuss the class project with your fellow classmates. Blatant cheating (copying assignments or source code) will result in an F for the course.