Princeton University
Computer Science Department

Computer Science 333
Advanced Programming Techniques

Robert Dondero

Fall 2025


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

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


Week 1: 9/1 - 9/7

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: 9/8 - 9/14

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: 9/15 - 9/21

Lecture: Database Programming; The Project

Lecture: Network Programming

Assignments: Assignment 1 (due on Sunday 9/21 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


Week 4: 9/22 - 9/28

Lecture: Concurrent Programming

Lecture: Concurrent Programming

Project: Approval meeting with course instructors

Project: Choose a TA adviser and weekly status meeting time


Week 5: 9/29 - 10/5

Lecture: Web Programming; Server-Side Web Programming

Lecture: Server-Side Web Programming

Assignments: Assignment 2 (due on Sunday 10/5 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 10/5 at 11:59PM, but ideally at the time of the weekly status meeting)


Week 6: 10/6 - 10/12

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: 10/13 - 10/19

Fall recess


Week 8: 10/20 - 10/26

Lecture: The JavaScript Language

Lecture: The JavaScript Language

Assignments: Assignment 3 due (on Sunday 10/26 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: 10/27 - 11/2

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: 11/3 - 11/9

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

Lecture: Security Issues in Web Programming

Project: Weekly status meeting

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


Week 11: 11/10 - 11/16

Lecture: Security Issues in Web Programming

Lecture: Server-Side Options

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

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: 11/17 - 11/23

Lecture: Client-Side Options

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: 11/24 - 11/30

Thanksgiving recess


Week 14: 12/1 - 12/7

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 15: 12/8 - 12/14

Reading Period and Aftermath

Project: Updated Timeline document

Project: Presentation

Project: Presentation slides

Project: Updated Timeline document (due on 12/13 at 11:30AM, as specified by the Registrar)

Project: Grader's Guide document (due on 12/13 at 11:30AM, as specified by the Registrar)

Project: Product Evaluation document (due on 12/13 at 11:30AM, as specified by the Registrar)

Project: Project Evaluation document (due on 12/13 at 11:30AM, as specified by the Registrar)

Project: Source code (due on 12/13 at 11:30AM, as specified by the Registrar)

Project: Application (due on 12/13 at 11:30AM, as specified by the Registrar)


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