Introduction to Programming Systems

COS 217, Spring 2026 - 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.

AB = Aaron Burr Hall, CH = Corwin Hall, CS = Computer Science Building, CW = Community Hall (Whitman College dining hall tables outside the card checker), FC = Friend Center, FH = Fine Hall, JR = Julis Romo Rabinowitz Building, NS = 221 Nassau Street (1st Floor), WH = Wallace 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

CS104 10:40-11:30 Christopher Moretti

L01

CS104 10:40-11:30 Christopher Moretti

P01

JRA12 1:20-2:10 Xiaoyan Li

P01

JRA12 1:20-2:10 Xiaoyan Li

P02

WH004 3:30-4:20 Nicholas Yap

P02

WH004 3:30-4:20 Nicholas Yap

P03

FH1001 12:15-1:05 Polly Ren

P03

FH1001 12:15-1:05 Polly Ren

P04

AB209 12:15-1:05 David Shustin

P04

AB209 12:15-1:05 David Shustin

P06

JR101 1:20-2:10 Lana Glisic

P06

JR101 1:20-2:10 Lana Glisic

P08

FH1001 3:30-4:20 Viola Chen

P08

FH1001 3:30-4:20 Viola Chen

Intro COS Lab Hours

CS105 7:00-11:00

Intro COS Lab Hours

CS105 3:00-7:00

Intro COS Lab Hours

CS105 5:00-11:00

Concept Hours

CS104→CW 11:30-1:20 Christopher Moretti

Concept Hours

CS104 11:30-12:00 Christopher Moretti

Office Hours

CH036 2:30-4:00 Christopher Moretti

Office Hours

FC010 6:00-9:00 Nicholas Yap

Office Hours

FC010 3:00-6:00 Lana Glisic

Office Hours

FH318 6:00-9:00 David Shustin

Office Hours

NS 9:00-12:00 Xiaoyan Li

Office Hours

FC010 10:00-1:00 Polly Ren

Office Hours

FC010 1:30-4:30 Viola Chen

Course staff


Christopher Moretti
Faculty
Instructor

Xiaoyan Li
Faculty
Instructor

Viola Chen
Graduate Student
Preceptor

Lana Glisic '24
Graduate Student
Preceptor

Polly Ren
Graduate Student
Preceptor

David Shustin '24
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. 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.

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: