Princeton University
Computer Science Department

Computer Science 333
Advanced Programming Techniques

Robert Dondero
David Walker

Fall 2023


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

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


Week 1: 9/4 - 9/10

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/11 - 9/17

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/18 - 9/24

Lecture: Database Programming; The Project

Lecture: Graphical User Interface Programming

Assignment 1: Due on Sunday 9/24 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/25 - 10/1

Lecture: Network Programming

Lecture: Web Programming

Project: Approval meeting with course instructors

(Project: TA advisers mapped to teams)


Week 5: 10/2 - 10/8

Lecture: CGI Server-Side Web Programming

Lecture: Python WSGI Server-Side Web Programming

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

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


Week 6: 10/9 - 10/15

Lecture: Database Deployment: ElephantSQL; Web Application Deployment: Render

Lecture: The JavaScript Language

Project: Updated Timeline; weekly status meeting


Week 7: 10/16 - 10/22

Fall recess


Week 8: 10/23 - 10/29

Lecture: The JavaScript Language

Lecture: JavaScript Client-Side Web Programming

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

Project: Updated Timeline; weekly status meeting


Week 9: 10/30 - 11/5

Lecture: JavaScript Client-Side Web Programming

Lecture: CSS Client-Side Web Programming; Programming with Concurrent Processes

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


Week 10: 11/6 - 11/12

Lecture: Programming with Concurrent Threads

Lecture: Programming with Concurrent Threads

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

Project: Updated Timeline; weekly status meeting


Week 11: 11/13 - 11/19

Lecture: Security Issues in Web Programming

Lecture: Security Issues in Web Programming

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


Week 12: 11/20 - 11/26

No Tuesday lecture, as per University policy

Thanksgiving holiday

Project (optional but recommended): Updated Timeline; weekly status meeting


Week 13: 11/27 - 12/3

Lecture: XML Programming; JSON Programming

Lecture: Software Engineering

Assignment 5: Due on Sunday 12/3 at 9:00 PM.

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


Week 14: 12/4 - 12/10

Lecture: Software Engineering

Lecture: Course Conclusion

Reading Period

Project: Updated Timeline


Week 15: 12/11 - 12/17

Reading Period

Project: Presentation (your team's presentation will be on 12/11, 12/12, or 12/13)

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


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