Quick links

COS 126 Information

COS 126 Information For Students and Advisors:

This page is intended for students (and their advisors) interested in taking COS 126, the department's introductory course.

Who should take this course?

  • Anyone who is interested in the field, regardless of their background. More than half of Princeton students, representing every major on campus, have taken the course in recent years. Many students with no background in programming or computer science enjoy this course, and some of them subsequently become majors. 
  • Students with a substantial background in computer science (e.g., took AP CSA in high school) can take a placement exam to go directly into COS 217 or COS 226. See prerequisites


  • This course has several components:
    • Two in-person lectures (new for Spring '24).
    • Two precepts/week, either 50 or 80 minutes (student choice).

Which precept to choose?

  • Students enrolling in COS 126 are welcome to take any precept that is convenient for their schedule, regardless of their background.
  • All precepts cover the same material.
  • That said, this course covers a lot of ground in one semester, and some precepts are designed to cover the material at a more relaxed pace while others move more briskly.
  • Here are the three “flavors” of precepts we’ll be offering:
  1. 80-min extended time precepts (P10-P15A, except Raspberry Pi*)
    • These precepts cover the same material as the 50-min precepts but at a more relaxed pace.
  2. 50-min precepts (P01-P06)
    • These precepts cover the same material as the 80-min precepts but at a faster pace.
  3. Raspberry Pi precept* - Students who have some previous experience in Java  and interest in learning topics beyond the scope of the course can read about a new precept being offered on a schedule TBD.
  • Students who aren't sure whether extended-time precepts are right for them should consider registering for a 50- or 80-minute precept that overlaps with a precept of the other length. There will be some flexibility to switch between the two during add/drop.

What to expect in a typical week:

  • Students are required to attend lecture before attending the associated precept.
  • Programming assignments (for the most part on a weekly basis) due on a Sunday evening
  • A typical weekly cadence:
    • Attend lecture, then attend precept 1 (Monday or Tuesday)
    • Attend lecture, then attend precept 2 (Wednesday or Thursday)
    • Submit programming assignment on Sunday
  • This course offers abundant resources to help students along the way, including staff office hours, lab TAs, McGraw, etc.

Please email Kobi Kaplan kskaplan @princeton.edu if you have any questions.

*Information for Raspberry Pi Precept

We will also offer precept in a new format that is intended for students who have some previous experience in Java — for example, for students that have taken a Java AP class in high school — but who do not have enough experience to place out of COS 126. This precept will explore the use of Java to program on the Raspberry Pi platform, a low cost, credit-card sized computer that utilizes a variety of sensors, displays, and actuators.

The overall requirements for COS 126 will stay the same—students enrolled in this precept will still have the same lectures, assignments/projects, and exams as students enrolled in our other precepts. However, approximately half of the precept schedule will be devoted to Raspberry Pi programming. Enrollment in this precept is limited to 13 students.

How do I know if I have a sufficient background for this precept?

  • In addition to having a previous experience in Java and interest in learning topics beyond the scope, you should have a maker spirit, meaning you should have the desire and interest to learn how to wire sensors, breadboards, etc.

What are the goals of this precept?

  1.  Learn how to program and debug Java code on a Raspberry Pi.
  2. Programmatically control various sensors, such as LEDs, infrared beam sensors, environmental sensors (pressure, humidity, temperature), orientation sensors (accelerometer, 3D gyroscope, magnetometer), range finders, and cameras.

How are the precepts organized?

  • The 126RPi precepts schedule is TBD. Attendance is mandatory.
  • About half of the precepts are devoted exclusively to Raspberry Pi development. The other half will cover the same content as our traditional 126 precepts.
  • The Raspberry Pi precepts will NOT teach Java. Students are expected to still attend lecture before precept. However, the Raspberry Pi precept exercises will not be directly related to the lecture content. Instead, precept exercises will focus on creating projects (in Java) on the Raspberry Pi.
  • Students will be provided with a Raspberry Pi device, along with all necessary sensors and materials.
  • Students must bring a modern laptop (Mac OS 11 or Windows 10) that supports Wi-Fi network connections.
  • Students must work with a partner during each precept.

How do I enroll in the Raspberry Pi Precept?

  • First take the placement exam to assess your background.
  • You can enroll in the precept directly in TigerHub. Exact precept time TBD.
  • Note - enrollment in this precept is limited.

Who should I contact if I have questions about this precept?


Follow us: Facebook Twitter Linkedin