Introduction to Programming Systems

COS 217, Fall2026 - Course Info

Resources

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 the Computer Science Building small auditorium, room 105. 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. The course's teaching staff cannot manage precept assignments. Dramatic unresolved scheduling concerns can be addressed to the department's Undergraduate Program Manager: Colleen Kenny (ckenny@princeton.edu).

Week at a glance

For those who access this site on a device that does not display the calendar below well, here is a static image of the weekly schedule.

CH = Corwin Hall, CS = Computer Science Building, ENG = Engineering Quad, EP = East Pyne, FC = Friend Center, MD = McDonnell Hall

9:00am

10:00am

11:00am

12:00 noon

1:00pm

2:00pm

3:00pm

4:00pm

5:00pm

6:00pm

7:00pm

8:00pm

9:00pm

10:00pm

11:00pm

L01

CS 104 10:40-11:30 JP Singh

L01

CS 104 10:40-11:30 JP Singh

P01

MD 201A 1:20-2:10 Kevin Alarcón Negy

P01

MD 201A 1:20-2:10 Kevin Alarcón Negy

P02

FC 005 3:30-4:20 Brian Kernighan

P02

FC 005 3:30-4:20 Brian Kernighan

P03

MD 201A 12:15-1:05 Khai Evdaev

P03

MD 201A 12:15-1:05 Khai Evdaev

P04

EP 239 12:15-1:05 Nicholas Yap

P04

EP 239 12:15-1:05 Nicholas Yap

P05

FC 005 12:15-1:05 Christopher Moretti

P05

FC 005 12:15-1:05 Christopher Moretti

P06

FC 110 1:20-2:10 Christopher Moretti

P06

FC 110 1:20-2:10 Christopher Moretti

P07

FC 005 3:30-4:20 Baiang Li

P07

FC 005 3:30-4:20 Baiang Li

Intro COS Lab Hours

CS 105 7:00-11:00

Intro COS Lab Hours

CS 105 3:00-7:00

Intro COS Lab Hours

CS 105 5:00-11:00

Concept Hours

CS 324 11:30-1:00 JP Singh

Office Hours

CH 039 2:15-4:00 Kevin Alarcón Negy

Office Hours

CH 039 2:15-3:30 Kevin Alarcón Negy

Office Hours

FC 010A 4:30-7:30 Baiang Li

Office Hours

FC 010A 4:30-7:30 Nicholas Yap

Office Hours

CS 311 1:20-3:20 Brian Kernighan

Office Hours

FC 010A 1:20-4:20 Khai Evdaev

Office Hours

CH 036 1:20-4:20 Christopher Moretti

Concepts Study Hall

Frist 7:30-10:30 McGraw Tutors

Course staff


Jaswinder Pal Singh
Faculty
Lead Instructor

Christopher Moretti
Faculty
Co-Lead Preceptor

Kevin Alarcón Negy
Faculty
Co-Lead Preceptor

Brian Kernighan
Faculty
Preceptor

Khai Evdaev
Graduate Student
Preceptor

Baiang Li
Graduate Student
Preceptor

Nicholas Yap
Graduate Student
Preceptor

The staff is complemented by a team of undergraduate course assistants: TBA.

About the course

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, 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:40-11:30am on Mondays and Wednesdays in Computer Science 104. Attendance is required. This semester, to aid with participation and student focus, lectures will be device-free. As such, laptops, tablets, and phones are prohibited, except when instructed by course staff (e.g., for attendance) or provided for by an ODS accommodation.

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. Additionally, unlike in lectures, students should bring laptops to precepts and be ready to work on in-class activities.

P02 offers instruction on additional topics beyond the general scope of the course, in exchange for less coverage focused towards each assignment. This precept section is intended for well-prepared students seeking a more independent approach to the course. Students who would prefer a more traditional COS 217 precept experience should change their registration to any of the other precepts.

Textbooks and Other Readings

Required Textbooks. These books have been registered with the University's online bookstore for purchase. They are also accessible on limited electronic reserve from the Reserves menu on Canvas.

Recommended Textbooks.

Reference Manuals. The course uses these manuals, for reference only: