Adam Wierman, 258 Jorg
Office Hours: It's a small class so feel free to stop by whenever, send me an email first if you want to make sure I'm around.
When designing a new computer architecture, network protocol, distributed system, etc. it is essential to be able to quantify the performance impacts of design choices along the way. For example, should we invest in more buffer space or a faster processor? One fast disk or multiple slower disks? How should requests be scheduled? What migration policy will work best? Ideally, one would like to make these choices before investing the time and money to build a system. This class will teach students how to answer this type of "what if" question by introducing students to analytic performance modeling, the tools necessary for rigorous system design.
The course will focus on the mathematical tools, so it should be interesting and accessing both for Computer Science students and for students in Electrical Engineering, Applied Mathematics, Economics, and Operations Research.
The course will be packed with open research questions that are both interesting mathematically and important to computer system design today.
The topics covered in the two-term sequence include:
This course is targeted for graduate students and advanced undergraduates. Students should have a strong background in probability.
There is no required textbook. I will pass out course notes and supplementary handouts at the end of each class. Some good reference texts are listed here.
This is a preliminary breakdown that may change during the term.
In 147 the grade breakdown will be
In 245 the grade breakdown will change to
Since this is the first year of the course and I'm making all the lectures from scratch, As a result, you're stuck with my handwritten notes...I'll try to keep them legible! Because of that, I recommend taking notes yourself during class because I will occasionally say important things that won't be reflected in the notes.
This is a very tentative outline and topics may be added or dropped at any time!
This is a very tentative outline and topics may be added or dropped at any time!
Homeworks will be assigned every 1-2 weeks. Some of the problems will be challenging, so please start early. Most assignments will be primarily proofs, however there will be an occasional problem that requires you to build a simulator and/or do numeric experiments. I assume that you can code and use Matlab/Mathematica.
You will receive one homework every week or so. These will typically require a significant amount of work, and you should start immediately and come to office hours to discuss questions. Please do not search the web for help on the homework problems. It is difficult to develop good homework problems, and thus you may come across similar problems if you search the web for help.
You are strongly encouraged to collaborate with your classmates on these problems, but each person must write up the final solutions individually. You should note on your homework specifically which problems were a collaborative effort and with whom.