Princeton University
Computer Science Department

Computer Science 333
Advanced Programming Techniques

Robert Dondero

Spring 2025


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

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


Week 1: 1/27 - 2/2

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/3 - 2/9

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/10 - 2/16

Lecture: Database Programming; The Project

Lecture: Network Programming

Assignments: Assignment 1 (due on Sunday 10/16 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: 2/17 - 2/23

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/24 - 3/2

Lecture: Web programming

Lecture: Server-Side Web Programming

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


Week 6: 3/3 - 3/9

Lecture: Python WSGI Server-Side Web Programming: Deployment

Lecture: Python WSGI Server-Side Web Programmming; 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/10 - 3/16

Spring recess


Week 8: 3/17 - 3/23

Lecture: The JavaScript Language

Lecture: The JavaScript Language

Assignments: Assignment 3 due (on Sunday 3/23 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/24 - 3/30

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/31 - 4/6

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: 4/7 - 4/13

Lecture: Security Issues in Web Programming

Lecture: Server-Side Options

Assignments: Assignment 4 (due on Sunday 4/13 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: 4/14 - 4/20

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: 4/21 - 4/27

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/28 - 5/4

Reading Period

Project: Updated Timeline document

Project: Presentation

Project: Presentation slides


Week 15: 5/5 - 5/6

Reading Period

Project: Updated Timeline document (due on 5/6, the Dean's Date, at 5:00 PM)

Project: Grader's Guide document (due on 5/6, the Dean's Date, at 5:00 PM)

Project: Product Evaluation document (due on 5/6, the Dean's Date, at 5:00 PM)

Project: Project Evaluation document (due on 5/6, the Dean's Date, at 5:00 PM)

Project: Source code (due on 5/6, the Dean's Date, at 5:00 PM)

Project: Application (due on 5/6, the Dean's Date, at 5:00 PM)


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