FALL 2018
15-848: Practical information and coding theory for computer systems

Instructor: Rashmi Vinayak
Time: M-W 1:30PM - 2:50PM; starting Sept. 5, 2018
(Friday slot reserved for use only in case needed)
Location: NSH 1305 (Friday lectures, if any, will be at NSH 3002)
Units: 12
Office hours: Wednesdays 11:30 - noon and 3 - 3:30pm at GHC 9011

We will be using CMU Canvas for all communication. If you are enrolled in the course, please join the course site on Canvas here.
Emerging computing systems often operate in regimes where they are prone to failures, high variance in performance, and tight constraints on resources. This brings up the critical challenge of introducing resource-efficient redundancy at various levels of the system stack. The domain of information and coding theory (error-correcting-codes) provides many valuable tools to address this challenge, and these are increasingly finding their way into modern computer systems. In this course, we will cover practical tools from information and coding theory relevant to computer systems. Along the way, we will learn how these tools have impacted real-world systems through case studies. Coding-theoretic approach to computing often leads to insightful tradeoffs and surprising results. As such, this course should be of interest to both students interested in computer systems/networking and students interested in applied theory.

The course will be structured around lectures by the instructor and paper reading/presentations by the students with open discussions.
Grading: (tentative)
Final project with intermediate milestones (~60%), Class presentations (~15%), Homeworks (~15%), Class participation (~10%)
Basic understanding of probability (e.g., conditional probability) and basic understanding of linear algebra (e.g., matrix inverse, transpose) will be assumed. Basic understanding of computer systems will help in understanding the application context better.
Course goals:

Topics: (tentative; order of presentation may be differnt)