CS 744: Design and Engineering of Computing Systems
Lectures: Slot 2 (Mon 9:30 am, Tue 10:35 am, Thu 11:35 am), Venue: SIC 301.
Instructor: Mythili Vutukuru (mythili @ cse.iitb.ac.in)
Instructor Office Hours: By appointment (please send email to fix up a time).
The course is designed to be a broad introduction to computer
systems. It is primarily aimed at PG students (Masters and Ph.D) who
wish to pursue research in the area of systems. The course is a
hands-on course, with multiple programming-based assignments. The
course is not open to IITB undergraduates (please take the UG OS
The topics covered in the course include:
- Recap of operating systems: processes, memory, concurrency,
and I/O management.
- Client-server networking application architectures: multithreaded
and event-driven I/O-based architectures.
- Basics of performance measurement and testing.
- Advanced performance optimization techniques such as cache-aware
application design, high performance network stacks, multicore
scalability, advanced locking and lockfree synchronization methods.
- Basics of distributed system design.
- Exams (50%). The mid-semester
exam will contribute to 20% of your grade, and the end-semester exam
will account for 30%. All exams are closed book and closed notes.
- Quizzes (20%). There will be
two in-class quizzes, with 10% weightage each.
- Programming Assignments
(30%). There will be multiple programming assignments throughout
the semester, accounting for 30% of your grade.
The course will roughly follow the content
here Lecture Notes
on Operating Systems. Please see the above link for lecture notes,
videos, practice problems, and programming assignments.
Please use Moodle for all assignment submissions.