General Information
All times in the COS 333 course are expressed using "Princeton" time. That is, through 3/13 they are expressed using Eastern Standard Time, and from 3/14 onward they are expressed using Eastern Daylight Savings Time.
Course Description #
The practice of programming. Emphasis is on the development of real programs, writing code but also assessing tradeoffs, choosing among design alternatives, debugging and testing, and improving performance. Issues include compatibility, robustness, and reliability, while meeting specifications. Students will have the opportunity to develop skills in these areas by working on their own code and in group projects.
Administrative Information #
Lectures: #
Most (and maybe all) of the lectures will be offered asynchronously. Audio lecture slide decks with accompanying handouts will be available to the Princeton community via the LectureServer application.
Some of the lectures may be offered synchronously at 3:00PM on Tuesdays or Thursdays at https://princeton.zoom.us/j/3195363472. The synchronous lectures will be announced incrementally throughout the semester. Recordings of the synchronous lectures will be available to the Princeton community via the LectureServer application.
Lead Instructor: #
Robert Dondero, Ph.D. : rdondero@cs.princeton.edu
Office hours: I'll have Zoom meeting office hours on Tuesdays and Thursdays from 3:00PM to 4:20PM — that's the normal lecture time slot — at https://princeton.zoom.us/j/3195363472. When you join the Zoom meeting you will be placed in the waiting room along with other students who wish to see me. I will move you into the meeting in the order that you arrive. Feel free to request Zoom meetings with me outside of those regularly scheduled office hours. To do that, send me email so we can determine a mutually convenient time.
Teaching Assistants: #
Willie Chang : whchang@princeton.edu
Office Hours: Mondays from 4:00PM to 5:00PM and Saturdays from 4:00PM to 5:00PM at https://princeton.zoom.us/j/93688866049.
Anat Kleiman : anatk@princeton.edu
Office Hours: Mondays from 1:00PM to 3:00PM at https://princeton.zoom.us/j/4791099140.
Satadal Sengupta : satadal.sengupta@cs.princeton.edu
Office hours: Wednesdays from 2:00PM to 3:00PM and Fridays from 2:00PM to 3:00PM at https://princeton.zoom.us/j/98829721140.
Pi Songkuntham : pisong@princeton.edu
Office hours: Mondays from 12:00noon to 1:00PM and Fridays from 12:00noon to 1:00PM at https://princeton.zoom.us/j/6379862586.
Undergraduate Coordinator:
Colleen Kenny : CS Building 210 : 609-258-1746 : ckenny@cs.princeton.edu
Prerequisites #
The prerequisites for COS 333 are successful completion of COS 217 and COS 226.
You must have completed COS 217 successfully before taking COS 333.
It is possible to take COS 226 at the same time as COS 333. However, doing so is a bad idea unless you are a very good programmer. Specifically, doing so is a bad idea unless you received at least a B+ grade in COS 217. If your COS 217 grade was less than B+ and you want to take COS 226 and COS 333 concurrently, then discuss the matter with the COS 333 lead instructor during the first week of the semester.
Textbooks #
The course uses these textbooks:
Required Textbook #
- The Practice of Programming, Brian W. Kernighan and Rob Pike, Addison-Wesley, 1999.
Recommended Textbooks #
- Python in a Nutshell (Third Edition), Alex Martelli, Anna Ravenscroft, and Steve Holden, O'Reilly, 2017.
- Learning PHP, MySQL, and JavaScript (Fourth Edition), Robin Nixon, O'Reilly, 2015.
- JavaScript: The Definitive Guide (Seventh Edition), David Flanagan, O'Reilly, 2020.
- Beginning Software Engineering, Rod Stephens, Wiley, 2015.
All of those books are available through the Princeton Library as e-books, but some of the ebooks are not the most recent editions.
Academic Regulations #
Please read the Policies, especially those regarding collaboration and plagiarism.