Princeton University
Computer Science Department

Computer Science 333
Advanced Programming Techniques

Robert Dondero

Spring 2026


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

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


Week 1: 1/26 - 2/1

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

Project: Discuss ideas with course instructors and other students

Project: Use ProjectFinder app to find project teammates and to tell others about your project


Week 2: 2/2 - 2/8

Lecture: The Python Language

Lecture: Database Programming

Project: Learn requirements

Project: Discuss ideas with course instructors and other students

Project: Use ProjectFinder app to find project teammates and to tell others about your project


Week 3: 2/9 - 2/15

Lecture: Database Programming; The Project

Lecture: Network Programming

Assignments: Assignment 1 (due on Sunday 2/15 at 9:00 PM)

Project: Discuss ideas with course instructors and other students

Project: Use ProjectFinder app to find project teammates and to tell others about your project

Project: Sign up for a project approval meeting (due on 9/19 at 5:00PM).


Week 4: 2/16 - 2/22

Lecture: Concurrent Programming

Lecture: Concurrent Programming

Project: Approval meeting with course instructors

Project: Choose a TA adviser and weekly status meeting time


Week 5: 2/23 - 3/1

Lecture: Web Programming; Server-Side Web Programming

Lecture: Server-Side Web Programming

Assignments: Assignment 2 (due on Sunday 3/1 at 9:00 PM)

Project: Weekly status meeting with your TA adviser

Project: Initial team directory (due at the time of the weekly status meeting)

Project: Timeline document (due at the time of the weekly status meeting)

Project: Project Overview document (due on Sunday 3/1 at 11:59PM, but ideally at the time of the weekly status meeting)


Week 6: 3/2 - 3/8

Lecture: Python WSGI Server-Side Web Programming

Lecture: Web Application Deployment

Project: Weekly status meeting

Project: Updated Timeline document (due at the time of the weekly status meeting)

Project: Wireframes (due at the time of the weekly status meeting)

Project: (optional) Meeting with Princeton user interface expert


Week 7: 3/9 - 3/15

Spring recess


Week 8: 3/16 - 3/22

Lecture: The JavaScript Language

Lecture: The JavaScript Language

Assignments: Assignment 3 due (on Sunday 3/22 at 9:00 PM)

Project: Weekly status meeting;

Project: Updated Timeline document (due at the time of the weekly status meeting)

Project: Ethical impact awareness study meeting (due this week or the next week)


Week 9: 3/23 - 3/29

Lecture: Client-Side Web Programming: JavaScript

Lecture: Client-Side Web Programming: JavaScript

Project: Weekly status meeting

Project: Updated Timeline document (due at the time of the weekly status meeting)

Project: Demonstration of prototype (during the weekly status meeting)

Project: Ethical impact awareness study meeting (due this week or the previous week)


Week 10: 3/30 - 4/5

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

Lecture: Security Issues in Web Programming

Assignments: Assignment 4 (due on Sunday 4/5 at 9:00 PM)

Project: Weekly status meeting

Project: Updated Timeline document (due at the time of the weekly status meeting)


Week 11: 4/6 - 4/12

Lecture: Security Issues in Web Programming

Lecture: Server-Side Options

Project: Weekly status meeting

Project: Updated Timeline document (due at the time of the weekly status meeting)

Project: Demonstration of alpha version (during the weekly status meeting)


Week 12: 4/13 - 4/19

Lecture: Software Engineering

Lecture: Software Engineering

Project: Weekly status meeting

Project: Updated Timeline document (due at the time of the weekly status meeting)

Project: (optional) Meeting with Princeton user interface expert


Week 13: 4/20 - 4/26

Lecture: Software Engineering

Lecture: Course Conclusion

Project: Weekly status meeting

Project: Updated Timeline document (due at the time of the weekly status meeting)

Project: Demonstration of beta version (during the weekly status meeting)


Week 14: 4/27 - 5/3

Reading Period and Aftermath

Project: Updated Timeline document

Project: Presentation

Project: Presentation slides


Week 15: 5/4 - 5/10

Reading Period and Aftermath

Project: Updated Timeline document

Project: Updated Timeline document (due on 5/10 at 3:30PM, as specified by the Registrar)

Project: Grader's Guide document (due on 5/10 at 3:30PM, as specified by the Registrar)

Project: Product Evaluation document (due on 5/10 at 3:30PM, as specified by the Registrar)

Project: Project Evaluation document (due on 5/10 at 3:30PM, as specified by the Registrar)

Project: Source code (due on 5/10 at 3:30PM, as specified by the Registrar)

Project: Application (due on 5/10 at 3:30PM, as specified by the Registrar)


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