The crosscutting theme in this course is providing abstractions above imperfect hardware to make it usable by programmers and users. At the end of the course, students should understand a set of abstractions (concurrent programming, virtual addressing, memory protection, caching, ...) that are useful in many large-scale software systems, not just OS kernels. Students should come to understand these abstractions well enough to synthesize their own abstractions when faced with new problems. Another important goal of the course is for students to understand the computers they use and on which they build their applications: the course aims to make them see that there is no magic in how their computers operate, though, hopefully, still much wonder.
Prerequisites: CS 4410/5410 is open to any undergraduate who has mastered the material in CS3410/ECE3140. You may want to review the background document to make sure you remember everything. Students enrolled in 4410/5410 can also choose to take CS 4411/5411 and complete the practicum project.


You belong here, and we are here to help you learn and enjoy this course. We strive to make CS4410 a welcoming, inclusive, respectful, and supportive environment, consistent with Cornell's Computer Science Department's Values of Inclusion. If you witness something that goes counter to a supportive and inclusive environment, please let Lorenzo know so that the issue can be addressed. You can also file a confidential report with Cornell.

If you have any suggestions, such as improvements to the web site, syllabus, slides, etc., ypu can email cs4410-prof


Lectures take place on Tuesdays and Thursdays, 2:55PM-4:10PM in Baker Laboratory 200. Attendance at each lecture is expected: please contact the instructor if you cannot make class.

We also run a Recitation (optional), each week, to help you clarify any issues in the material discussed in class. The Recitation will take place on Thursdays, 6:00pm-7:30pm, in Gates G01.


  • All enrollment related questions should be sent to
  • Use the Ed Discussion for questions about course organization and technical material
  • Use this Zoom link to connect with the teaching staff during remote office hours.
  • For time-sensitive matters, please email cs4410-staff
  • For non-technical sensitive matters, please email cs4410-prof
  • Please do not contact any course staff or instructors via their email addresses, facebook, texting, etc. for matters concerning this course


  • The first homework assignment is already waiting for you -- it will become available on August 22 at 4:10 PM on gradescope.
  • Late policy: max 2 slip days per assignment, six slip days total.
  • Regrades: You have one week after a test or homework is returned to submit a regrade request. No regrade requests will be considered after that time.
  • Academic integrity:
  • Students are expected to know and abide by Cornell’s policy on academic integrity, including All submitted work should be your own
    • It is OK to discuss concepts explored in the homework with any other student. However, you are required to write up (and understand) the homework on your own, and you should acknowledge the names of the students, if any, with whom you collaborated.
    • You can work on programming questions in groups of 2 or 3.
    • Students in the same project group can submit the same code
    • Do not share your group's code with anybody.
    • OK to discuss concepts with students in other groups
    • Academic integrity violations will be prosecuted aggressively. If you are not sure what constitutes an academic integrity violation, please ask.

Assessing Student Achievement

  • The course offers two prelims and a final exam, all in person:
    • Prelim 1: September 28, 7:30pm, KLKG70 -- Alternate exam: September 28, 5:30 pm, GSHG76.
    • Prelim 2: November 21, 7:30 pm GSHG64, GSHG76, KLRKG70 -- We are working on a location for an alternate time exam, which will take place on the same day, most likely starting at 5:30 pm.
    • Final: TBD
    Your final grade will be determined by the two highest score across these three tests — indeed, students are required to only take two of the three tests, if they so choose. The two-out-of-three policy provides accommodation for situations where students cannot take a test because of an interview, participation in a conference or a sporting event, or a sudden emergency. Students who cannot make an exam because of religious observance or official Cornell sanctioned activities should notify the instructor at cs4410-prof
  • within the first three weeks of the semester.
  • Assignments will take the form of both homework (problem sets) and three programming projects. Homework is to be completed individually, while programming projects (coded in Harmony) can be completed in groups of two or three students.
  • Basis for grade determination: For students enrolled in CS4410: 37.5% assignments (3% homework, 34.5% programming assignments), 61.5% exams, 1% completing course eval. For students enrolled in CS5410: 37.5% assignments (6% homework, 31.5% programming assignments), 61.5% exams, 1% completing course eval. Note: As discussed in class, the percentage for homework has decresead by 3% to reflect that much of the homework let you know if you had the wrong answer and allowed you to submit until you got the right one. That 3% has been equally split between programming assignments and exams.
  • Grading scale: This class uses a letter grading system, which is the official grading system at Cornell University. Grading in CS4410 is not a competition with your peers, where only few can, by design, be at the top. Anyone who earns above 90% is guaranteed at least an A-, independent of how others in the class have done; similarly, everyone who earns above 80%, 70%, and 60% is guaranteed, respectively, at least a B-, C- and D.

    This said, an A can also be earned (and usually is) with a lower percentage of the overall score, depending on the distribution of scores in the class. Typically, about one third of the students earn at least an A-, and about 80% at least a B-, and the median is typically in the B/B+ range.

  • If you require exam accommodations, please contact Ms. Coralia Torres (ct635). We are happy to meet the needs of our students in this matter!