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: 1/29 - 2/4

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: 2/5 - 2/11

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: 2/12 - 2/18

Lecture: Database Programming; The Project

Lecture: Graphical User Interface Programming

Assignment 1: Due on Sunday 2/18 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: 2/19 - 2/25

Lecture: Network Programming

Lecture: Web Programming

Project: Approval meeting with course instructors

(Project: TA advisers mapped to teams)


Week 5: 2/26 - 3/3

Lecture: CGI Server-Side Web Programming

Lecture: Python WSGI Server-Side Web Programming

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

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


Week 6: 3/4 - 3/10

Lecture: Python WSGI Server-Side Web Programming: Deployment; Java Server-Side Web Programming

Lecture: The JavaScript Language

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


Week 7: 3/11 - 3/17

Spring recess


Week 8: 3/18 - 3/24

Lecture: The JavaScript Language

Lecture: JavaScript Client-Side Web Programming

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

Project: Updated Timeline; weekly status meeting


Week 9: 3/25 - 3/31

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

Lecture: Programming with Concurrent Threads

Lecture: Programming with Concurrent Threads

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

Project: Updated Timeline; weekly status meeting


Week 11: 4/8 - 4/14

Lecture: Security Issues in Web Programming

Lecture: Security Issues in Web Programming

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


Week 12: 4/15 - 4/21

Lecture: XML Programming; JSON Programming

Lecture: Software Engineering

Assignment 5: Due on Sunday 4/21 at 9:00 PM.

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


Week 13: 4/22 - 4/28

Lecture: Software Engineering

Lecture: Course Conclusion

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


Week 14: 4/29 - 5/5

Reading Period

Project: Updated Timeline, Presentation, Presentation slides


Week 15: 5/6 - 5/7

Reading Period

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


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