CS5416: CLOUD AND ML SYSTEMS PROGRAMMING

Instructor:  Ken Birman.  4 credits, letter grades only, shares 2 lectures per week with cs4414.   TRF 2:55-4:10, room TBD.  The ugrad TAs will run additional coding workshops each week with hands-on demos building and debugging C++/Linux applications.

CS5416 is an evolution of CS5412, which is not currently being offered.   The idea is to share some lectures with CS4414 (two per week, the ones on Tuesday and Thursday), but to have a completely different Friday discussion section (recitation).  Whereas CS4414 will focus primarily on projects that looks at performance and parallelism internal to a single "monolithic" program, CS5416 will include a big hands-on project that will look at a complicated machine learning pipeline with multiple processes that talk to one-another and can run on different computers, and explore performance issues in that context.  The grading formula reflects this: both CS4414 and CS5416 will share the same prelim2 (and neither has a final), but the assignments for CS5416 will take more time, and project performance counts for 75% of your grade, versus 50% for CS4414 students.

Where will the cloud content come from?  Partly, we from moving a bit faster than CS4414 did in the past two years: by requiring CS3410 as a prerequisite, CS4414 can assume familiarity with C, threads, synchronization and how programming languages compile to instructions.   This will free up some of the Tuesday/Thursday lectures and about six lectures of content from CS5412 will be migrated into those new slots.

But the other big difference relates to the recitations, which are required: the Friday session is a genuine lecture, led by a CS PhD TA with a lot of experience.  In CS4414 the Friday lectures will focus on helping people become strong programmers in C++ and then teaching them to apply ideas about performance to a big program using various performance tools and ideas from the course.  In CS5416, we will also introduce C++, but then will shift much more towards understanding the practical question of how people deploy applications on clouds, and how to assess performance (all the tools are different than for a single process) and how to improve performance.  The focus will be on the ML pipeline mentioned above -- specifically, a multimodal RAG LLM that can answer questions about images using a precreated knowledge base that we'll provide, but will also teach you how it was built.  So you'll emerge from CS5416 with more of a hands-on cloud perspective, while CS4414 students will emerge with more of a single process orientation.

Because the lectures need to created for this new course, we'll do our best to post them after each lecture but won't have them earlier (and we also can't provide videos in this first instance of the course).  So if you do not attend lectures, you will quickly feel lost and there won't necessarily be a simple way to catch up.

Prerequisites: CS3410 or equivalent. 

Appropriate use of AI tools:  Please read our Academic Integrity policy.

Recitation:  Required.  We cover as lot of the material specific to CS5416 in the Friday recitation (which differs from the CS4414 one)

Enrollment restrictions: Students who have taken cs4414 are not permitted to enroll in cs5416.

CS Undergraduates:    Undergraduates are permitted to enroll under this course number, but should note that cs5416 does not satisfy the CS undergraduate systems course requirement.

Grading: We compute a weighted curve (a ranking) based on your scores, and assign letter grades based on this ranking.  Grades generally range from B- to A, with half or more of the students receiving A or A- grades.  At the instructor's discretion a few A+ grades are also awarded, but these are not purely based on the score ranking (attendance and participation are also considered, and prelim performance is given a slightly higher weighting). 


Getting Help

Ed Discussions Link
Office Hours Held online in Zoom
FAQ Link

Course Materials

Schedule Lecture schedule, slides, recitation notes, readings, and code
Lab Machines Instructions for using the lab machines are on the CS ugrad/MEng web pages
Resources Additional course resources are listed in the right-hand column on the syllabus

Course Information

For details See the course syllabus for details.
Lectures Tuesday and Thursday 2:55-4:10, with a required recitation Friday 2:55-4:10
Textbooks [1] Randal E. Bryant and David R. O'Hallaron,
Computer Systems: A Programmer's Perspective, Third Edition, Pearson, 2016
  [2] Bjarne Stroustrup,
A Tour of C++ (2nd Edition), Addison-Wesley Professional, (July 9, 2018)
  [3] Linux.  In fact we are not going to recommend a Linux book, although there are a great many of them.  Linux has online documentation for all the commands we expect you to use, and also for the "system calls" your code will use from C++.  Moreover, there is a built-in help feature in the bash shell, so you can easily obtain a list of shell commands, or details on how each specific command works and what arguments to use if you want custom behavior.  And now that Chatbots are universal (at Cornell, we even get access to a professional version: CoPilot for Office 365), we prefer that you use these standard ways of getting help.  Linux textbooks are fine but not really better in any sense.
Credit 4 credits
Grading In fall 2025, grading will be 25% prelim performance, 75% assignments.
ChatBots They aren't super useful for C++, especially when coding or debugging or performance-tuning, but can definitely help with Linux.  We do not consider it to be cheating to make use of these tools.  But check anything they recommend -- our entire course is on a topic they aren't very well "trained" on, so they are prone to hallucinations.
Homework There will be 5 or 6 homeworks, some fairly short and focused, and others more "project styled".  We post the assignments and quizzes on CMS, but you will need to use Canvas for handing in work that will be "autograded".  We don't use Canvas for anything else.
Exams We have two prelims (for details see the exams tab in the menu to the upper left).  We do not have a final; instead there is a final assignment that can be turned in early, but at the very latest must be submitted by the day and time Cornell selects for the final exam that we will not be having.
Home http://www.cs.cornell.edu/courses/cs5416/2025fa
Questions Ed Discussions Web Site, office hours, email
CMS We are using the department's CMS system to track grades for this course, not Canvas.  Just the same we do have a
Canvas web site and will try to keep it up to date. 

Main Instructor

Name Ken Birman
Contact ken@cs.cornell.edu,
x5-9199
Office 435 Gates Hall
Office Hours After class (or by appointment: email Ken to find a good time)

Recitation Instructors

Name TBD

Undergraduate TAs

Name TBA