Computer Science 217
Developing programming skills for systems building, including modular program design, programming style, testing, debugging, and performance tuning. Additionally, an introduction to ARM assembly language and machine language.
All times listed are "Princeton time" (United States Eastern time).
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. Please direct further questions concerning your precept assignment to Colleen Kenny, the CS Department's Undergraduate Coordinator. Colleen's contact information is provided later on this page. The course's teaching staff cannot manage precept assignments.
|MW 1:30PM-2:20PM||P01||Xiaoyan Li|
|MW 3:30PM-4:20PM||P02||Xiaoyan Li|
|MW 7:30PM-8:20PM||P03||Donna Gabai|
|MW 9:00PM-9:50PM||P08||Donna Gabai|
|TTh 12:30PM-1:20PM||P04||Ben Kaiser|
|TTh 12:30PM-1:20PM||P04A||Pi Songkuntham|
|TTh 1:30PM-2:20PM||P05||Anne Kohlbrenner|
|TTh 1:30PM-2:20PM||P05A||Weicong Dong|
|TTh 3:30PM-4:20PM||P06||Huihan Li|
|TTh 3:30PM-4:20PM||P06A||Scott Karlin|
|TTh 4:30PM-5:20PM||P10||Dale Lee|
|TTh 7:30PM-8:20PM||P07||Juan Duque|
Christopher Moretti, Ph.D. : firstname.lastname@example.org
Watch Party: Tuesday and Thursday 10:00am-11:00am
Office Hours: Friday 1:00pm-3:00pm
Xiaoyan Li, Ph.D. : email@example.com
Office Hours: Thursday 12:00noon-2:00pm
Donna Gabai : firstname.lastname@example.org
Office Hours: Monday 10:00pm-12:00midnight (except 9/28)
Scott Karlin, Ph.D. : email@example.com
Office Hours: Wednesday 10:00am-12:00noon
Weicong Dong : firstname.lastname@example.org
Office Hours: Tuesday 3:00pm-5:00pm
Juan Duque : email@example.com
Office Hours: Tuesday 5:00pm-7:00pm
Ben Kaiser : firstname.lastname@example.org
Office Hours: Friday 10:00am-12:00noon
Anne Kohlbrenner : email@example.com
Office Hours: Sunday 2:00pm-4:00pm
Dale Lee : firstname.lastname@example.org
Office Hours: Wednesday 5:30pm-7:30pm
Huihan Li : email@example.com
Office Hours: Monday 10:00am-12:00noon
Pi Songkuntham : firstname.lastname@example.org
Office Hours: Thursday 2:00pm-4:00pm
Colleen Kenny : email@example.com
Available on Zoom via LabQueue. A lab teaching assistant schedule provides details.
COS 126. More specifically, you should have substantial programming experience using some high-level programming language such as Java. Prior experience with the C programming language is helpful but not essential.
The course uses these textbooks and manuals:
C Programming: A Modern Approach (Second Edition), K. N. King, Norton & Co. 2008. The book covers the C programming language and advanced C programming.
ARM 64-bit Assembly Language, Larry Pyeatt with William Ughetta, Newnes 2019. Available with Princeton login here. The book covers the ARMv8 assembly language.
Those books are also accessible in limited electronic reserve on the Reserves menu on Canvas.
The Practice of Programming, Brian W. Kernighan and Rob Pike, Addison-Wesley 1999. Available with Princeton login here. The book covers program and programming style. Many of the software engineering topics in the course are derived, in part, from this book.
Linux Pocket Guide, Daniel J. Barrett, O'Reilly 2016 (or 2012 or 2004). Available with Princeton login here. The book covers the most fundamental aspects of the Linux operating system and the Bash shell from the user's point of view.
The course uses these manuals, for reference only:
Please study the course Policies, especially those regarding collaboration on assignments.