Quick links

COS126 Information

COS126 Information For Students and Advisors:

This page is intended for students (and their advisors) interested in taking COS126, the department's introductory course. You can also attend this year's Academic Expo to learn more. 

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 CS in high school) can take a placement exam to go directly into COS217 or COS226. See prerequisites


  • This course has several components:
    • Video lectures - self-paced.
    • Two precepts/week, either 50 minutes or 80 minutes (student choice).
    • One 80-minute in-person class meeting (listed as C01) used for
      • Exams - required
      • Guidelines for assignments, practice exams, exam review, etc.
      • Note - the class meeting will occur after video lectures and precepts for the week.

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 five “flavors” of precepts we’ll be offering:
  1. Less comfortable: 80-min extended time precepts (P11-P16)
    • These precepts cover the same material as the 50-min precepts but at a more relaxed pace.
  2. Somewhat comfortable: 50-min Monday-Wednesday precepts (P01-P05)
    • These precepts give students a bit more time in the week before exams and assignment due dates.
  3. More comfortable: 50-min Tuesday-Thursday precepts (P07-08A)
    • These precepts are more likely to be composed of “more comfortable” students.
  4. P16A - 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 Tuesday/Thursdays from 11 am - 12:20 pm  (P16A*) below.
  5. P10 - Students who are interested in biology and medicine can read about a new precept being offered on Monday/Wednesday from 11 am - 12:20 pm (P10*) below.
  • Students who aren't sure whether extended-time precepts are right for them should consider registering for a Monday-Wednesday 1:30 pm or 3:00 or 3:30 pm precept -- these time slots offer both regular and extended-time options (P03/P03A, P11; P05, P12/P12A) with some flexibility to switch between the two in the first few weeks.

What to expect in a typical week:

  • Students are expected to watch the assigned video 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:
    • Watch video lecture 1, then attend precept 1 (Monday or Tuesday)
    • Watch video lecture 2, then attend precept 2 (Wednesday or Thursday)
    • Attend class meeting on Thursday (as needed)
    • 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 precept P10 - Biomedical

In Fall 2023 we will offer a new biomedically-themed precept. The precept is intended for students who are interested in biology and medicine. Examples will be presented from relevant biomedical applications, scenarios and datasets. Therefore familiarity with or curiosity about fundamental concepts from biology is recommended but not required. The overall COS 126 requirements for students enrolled in this precept will remain the same, and students will participate in the same lectures, assignments, projects, and exams as the rest of the class. Contact Dr. Yuri Pritykin with any questions about this precept. 

*Information for precept P16A - Raspberry Pi

We will also offer a new precept 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 (P16A) precepts are Tuesdays/Thursdays from 11:00am–12:20pm. 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 watch the lecture videos 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 P16A?

  • First take the placement exam to assess your background
  • You can enroll in P16A directly in TigerHub.
  • Note - enrollment in this precept is limited.  It is only available on Tu/Thu from 11 am - 12:20 pm.

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


Follow us: Facebook Twitter Linkedin