Princeton University
Computer Science Department

Computer Science 333
Advanced Programming Techniques

Robert Dondero

Spring 2024


Directory
General Information | Lectures | Assignments | Project | Schedule | Policies

The schedule will change throughout the course. Please check it frequently.


Week 1: 9/2 - 9/8

Lecture: Course Overview; The Python Language

Lecture: The Python Language

Use Survey app to express your expertise and interests in course topics

Project: Learn requirements; discuss ideas with course instructors and other students; use ProjectFinder app to find project teammates


Week 2: 9/9 - 9/15

Lecture: The Python Language

Lecture: Database Programming

Project: Learn requirements; discuss ideas with course instructors and other students; use ProjectFinder app to find project teammates


Week 3: 9/16 - 9/22

Lecture: Database Programming; The Project

Lecture: Network Programming

Assignment 1: Due on Sunday 9/22 at 9:00 PM.

Project: Discuss ideas with course instructors and other students; use ProjectFinder app to find project teammates and to tell others about your project


Week 4: 9/23 - 9/29

Lecture: Concurrent Programming

Lecture: Concurrent Programming

Project: Approval meeting with course instructors

(Project: TA advisers mapped to teams)


Week 5: 9/30 - 10/6

Lecture: Web programming

Lecture: Server-Side Web Programming

Assignment 2: Due on Sunday 10/6 at 9:00 PM.

Project: Initial Team Directory, Project Overview, Timeline; weekly status meeting


Week 6: 10/7 - 10/13

Lecture: Python WSGI Server-Side Web Programming: Deployment

Lecture: Python WSGI Server-Side Web Programmming; Web Application Deployment

Project: Updated Timeline; weekly status meeting; wireframes; meeting with Princeton User Experience Office


Week 7: 10/14 - 10/20

Fall recess


Week 8: 10/21 - 10/27

Lecture: The JavaScript Language

Lecture: The JavaScript Language

Assignment 3: Due on Sunday 10/27 at 9:00 PM.

Project: Updated Timeline; weekly status meeting


Week 9: 10/28 - 11/3

Lecture: Client-Side Web Programming: JavaScript

Lecture: Client-Side Web Programming: JavaScript

Project: Updated Timeline; weekly status meeting; demonstration of prototype


Week 10: 11/4 - 11/10

Lecture: Client-Side Web Programming: JavaScript; Client-Side Web Programming: CSS

Lecture: Security Issues in Web Programming

Project: Updated Timeline; weekly status meeting


Week 11: 11/11 - 11/17

Lecture: Security Issues in Web Programming

Lecture: Server-Side Options

Assignment 4: Due on Sunday 11/17 at 9:00 PM.

Project: Updated Timeline; weekly status meeting; demonstration of alpha version


Week 12: 11/18 - 11/24

Lecture: Client-Side Options

Lecture: Software Engineering

Project: Updated Timeline; weekly status meeting; meeting with Princeton User Experience Office


Week 13: 11/25 - 12/1

Thanksgiving recess


Week 14: 12/2 - 12/8

Lecture: Software Engineering

Lecture: Course Conclusion

Project: Updated Timeline; weekly status meeting; demonstration of beta version


Week 15: 12/9 - 12/13

Reading Period

Project: Updated Timeline, Presentation, Presentation slides, Grader's Guide, Product Eval, Project Eval, source code, application (due on 12/13, the Dean's Date, at 5:00 PM)


This page was written by Robert M. Dondero, Jr.