Princeton University
Computer Science Department

Computer Science 333
Advanced Programming Techniques

Robert Dondero

Spring 2022


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

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


Week 1: 1/24 - 1/30

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: 1/31 - 2/6

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/7 - 2/13

Lecture: Database Programming; The Project

Lecture: Graphical User Interface Programming

Assignment 1: Due on Sunday 2/13 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/14 - 2/20

Lecture: Network Programming

Lecture: Web Programming

Project: Approval meeting with course instructors

(Project: TA advisers mapped to teams)


Week 5: 2/21 - 2/27

Lecture: CGI Server-Side Web Programming

Lecture: Python WSGI Server-Side Web Programming

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

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


Week 6: 2/28 - 3/6

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

Lecture: The JavaScript Language

Project: Updated Timeline; weekly status meeting


Week 7: 3/7 - 3/13

Spring recess


Week 8: 3/14 - 3/20

Lecture: The JavaScript Language

Lecture: JavaScript Client-Side Web Programming

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

Project: Updated Timeline; weekly status meeting


Week 9: 3/21 - 3/27

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: 3/28 - 4/3

Lecture: Programming with Concurrent Threads

Lecture: Programming with Concurrent Threads

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

Project: Updated Timeline; weekly status meeting


Week 11: 4/4 - 4/10

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

Lecture: XML and JSON Programming

Lecture: Mobile Programming

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

Project: Updated Timeline; weekly status meeting


Week 13: 4/18 - 4/24

Lecture: Software Engineering

Lecture: Software Engineering

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


Week 14: 4/25 - 5/1

Reading Period

Project: Updated Timeline; Presentation; Presentation slides


Week 15: 5/2 - 5/8

Reading Period

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


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