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 little or no C/C++ background. Students in other programs who have C/C++ experience beyond the introductory level should consider CIS 505 instead.
Lecture: Tues/Thurs 4:30-6pm,
There will be 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.