This course is a continuation of CIT 593 and is divided into three parts. We will begin by building on your knowledge of C and covering systems programming in C for Linux, specifically the libraries that programmers use for threading and concurrency, synchronization, inter-process communication, and networking. The second part of the course introduces the C++ programming language, and the final part of the course covers important concepts in modern operating systems: processes, scheduling, caching, and virtual memory.
After completing this course, you will have the requisite knowledge and experience for systems-focused CIS electives such as 505 Software Systems and 553 Networked Systems.
This course is currently only open to students in the MCIT program and assumes prior C knowledge (specifically, what is covered in CIT 593) but not C++. Due to the large size of the MCIT class, students in other programs and/or who have prior C++ experience are unlikely to be admitted and should consider CIS 505 instead.
Lecture: Tues/Thurs 10:30-11:50am, Moore 216
There is no required textbook for this course.
There will be numerous assigned readings over the course of the semester, but they will be made available to you via Canvas.
Course PoliciesPolicies related to absences, regrade requests, academic honesty, etc. will be made available to registered students via Canvas.