CS193S: Scalable Web Programming

no fail whale

Course Description:
CS 193S is a 3 unit course focusing on tools and practices for scalable programming on the web, with programming projects built around these practices.  The course explores topics in scalability and charts the development path for a large scale modern web service.  A single developer should be able to build, test, and deploy a single codebase using only open source tools and libraries. This is difficult to accomplish in practice, due to the variety of skill sets needed for UI, client, server, and database coding. The framework presented in this course offers solutions that do not sacrifice long term scalability and maintainability for rapid development cycles and easy prototyping. Programming projects will provide an overview of technologies and critical constraints.

Programming Projects and Advocates

Lectures: Tue & Thu 2:15-3:30, Gates B03 (through March 12)

Instructor: Jan Jannink (Office hours: Tue & Thu 3:30pm to 4:30pm: Phone: (650) 646-2920)

Course assistants:
Aditya Acharya (Office hours: Mon 3-5 pm, Wed 1-3 pm)
Ed Suh (Office hours: Wed 7-9 pm, Sun 4-6 pm)
All office hours are in Gates B28

Office Phone Number: (650) 723-2579 (only during office hours)
Staff contact email:   cs193s-win0910-staff@lists.stanford.edu

Newsgroup:   su.class.cs193s

Assignments:   Three programming projects:

Policies:

Approach:   The goal of the course is for the programming environment to resemble an internship working on an open source website.  Interaction and collaboration between students is welcome.  Grades will be earned by checking in software to the class repository.  The expectation is that coursework will be checked in on a regular basis during the course of the quarter.

Reading:   Almost all of the course source material is web based.  The most significant recommended (optional) readings will be posted in the course slides and here below:

Syllabus and Lecture Slides

Useful links:

Git tutorials:
Git Magic
Git Tutorial
Git Guide
GitX - A Git front-end for Mac OSX

Subversion tutorial:
Subversion Tutorial

Setting AFS Permissions:
From Unix
From Windows
From Mac
With WebAFS

Testing:
With JUnit
GWT Developer's Guide - Testing

GWT:
How GWT finds files

Creative Commons License
Scalable Web Programming by Jan Jannink is licensed under a Creative Commons Attribution 3.0 United States License.