Discussion forum. The best way to ask a short question about the course materials is via Ed Discussion, an online discussion forum where you can ask (and answer) questions.
Lab TAs. Undergraduate lab TAs are available to answer general computing questions in Lewis 121/122. They can assist you in debugging, provided you have first made a reasonable effort to identify the bug and isolate the problem. For non-debugging questions, use Ed Discussion or office hours.
Canvas. You can find links for Zoom office hours, electronic reserves of course materials, and recorded versions of precepts in Canvas.
Precept Assignment. The best way to get a spot in the precept of your choice is to regularly check the registrar's Course Offerings page and/or the listings on TigerHub. In our experience, more than a quarter of the total class enrollment changes precepts during shopping period. Dramatic unresolved scheduling concerns can be addressed to our course administrator Sue Giranda (sgiranda@princeton.edu). The course's teaching staff cannot manage precept assignments.
F = Friend Center, CS = Computer Science Building, C = Corwin Hall, N = 221 Nassau Street, L = Lewis Library
Christopher Moretti Lead Instructor |
Xiaoyan Li Lead Preceptor |
Sue Giranda Course Administrator |
Donna Gabai Preceptor |
Dwaha Daud Preceptor |
Guðni Nathan Gunnarsson Preceptor |
Gongqi Huang Preceptor |
Austin Li Preceptor |
Nanqinqin Li Preceptor |
Indu Panigrahi Preceptor |
The staff is complemented by a team of undergraduate course assistants: Praneeth Bhandaru '27, Mila Bileska '25, Andres Blanco Bonilla '24, Connor Brown '26, Alina Chen '24, Jacob Davis '26, Alejandra Durán '25, Sava Evangelista '26, Emily Gai '26, Quinn Haverstick '25, Andrew He '26, Vernon Hughes '27, Rishabh Jain '26, Joshua Lau '26, Alice Lee '24, Chaeyoung Lee '26, Annie Lin '25, Sonny Lowe '27, Vasila Mirshamsova '26, Christina Nikolova '26, Lauren Okamoto '24, Denish Patel '26, Sabrina Van '26, Kayla Waitman '25, Kaitlyn Wen '26, Kevin Weng '25, Peter Wu '26, Charles Yu '26, Leo Yu '26, Connor Zenker '26, and Christina Zhang '26.
Description. Developing skills for composing large programs, including modularity, abstraction, programming style, and best practices for code development, testing, debugging, and performance tuning. Additionally, an overview of computing environments and architectures, through the C programming language, assembly language, and machine language.
Prerequisites. COS 126, ECE 115, ISC 231-234, or approval by the COS placement officer.
COS 217 and 226 may be taken in any order. A student planning to take both can do so in the order that best fits their interests and schedule constraints.
Lectures. Lectures meet at 10–10:50am on Mondays and Wednesdays in Friend 101. Attendance is required. Laptops, tablets, and phones are prohibited, except for activities directly related to lecture, such as answering iClicker questions or annotating notes on lecture slides.
Precepts. Precepts meet twice per week and cover details pertinent to programming assignments and exams. Come prepared to participate in the discussion, not just ask questions. This includes reading the assignment specification before the corresponding precept.
Required Textbooks. Also accessible on limited electronic reserve from the Reserves menu on Canvas.
Recommended Textbooks.
Reference Manuals. The course uses these manuals, for reference only: