|
CSE 550: Introduction to Computer Systems Research, Autumn 2018
|
|
Overview
Instructor:
Arvind Krishnamurthy
Office hours: Fri 11-12, or by appointment.
TAs: Kaiyuan Zhang (kaiyuanz AT cs)
Office hours: by appointment (send email)
Lectures: MW 11:30am-12:50pm
This course will provide the common intellectual foundation for
systems research, suitable as a terminal course for those not
interested in further study in systems, or as a gateway course to the
various specialized systems courses the department offers. The course
will cover the common foundation for research in operating systems,
databases, cluster and wide area distributed systems, networking, and
parallel systems.
The course consists of four major components:
- You will read one or two papers per lecture. For each paper,
you will craft a blog entry contributing an answer to one of the
questions we pose in advance (some of which could involve running
some simple measurements).
- We will hand out two problem sets, which will consist
of a mixture of coding, measurement, or design questions. You can
perform the problem sets in teams of two.
- You will form teams of two or three, and each team will pick a
research project to do for the quarter. There will be intermediate
milestones associated with the project, as well as a final report
and presentation at the end of the quarter.
There is no midterm or final for the course.
Prerequisities: the basic prerequisite is to have taken an
undergraduate operating systems course (CSE
451 or equivalent). If you haven't taken an undergrad OS course, you
might still be able to manage the course but
please come talk to the teaching staff. We will not be covering
undergraduate material in this course.
Papers: you will be responsible for reading a research
paper or doing an experiment, and contributing your thoughts on each
assigned paper to the class discussion board before the class that
covers it.
Mailing list: When you register for the course, you'll
automatically be added to the class mailing list
(cse550a_au18@uw.edu). To manage your subscription, visit
the mailing
list web page. You've been subscribed using your
u.washington.edu email address. But, you can modify your
subscription to use an email address of your choice. Note that you
can only post to the mailing list from your subscribed email address.
Here's the link to the canvas page for the class discussion board and assignment uploads:
https://canvas.uw.edu/courses/1219636
The discussion board can be used for two purposes:
- Course discussion. This is a great place for you
to post questions about papers, programming assignments or design
exercises, to look for a project partner, or anything else
class-related.
- Paper discussions. For each lecture other than the
first, we will post a small set of discussion questions based on the
assigned papers. We'll create one thread per discussion question
set. You're required to add a comment to the discussion for
each of the threads by 9am on the day of the class. (This is to give
time for everyone to read the blog entries before class.) For each
thread, pick one of the questions in the question set to answer. Please
keep blog entries short: they can be anything that provides insight
into the question being asked. We will automatically grant two
mulligans during the quarter.
Your blog entries will be graded, but with a very simple 2-bit
scale. If you don't post a blog entry, you get a 0. If you post
something, but if there are significant problems with what you've
posted, e.g., we're not convinced you read and thought about the
paper, you get a 1. If you post something interesting and
thoughtful, you get a 2; we expect most of your postings to get this
grade. Once in a while, if you post something that is surprisingly
insightful or otherwise exceptional, you'll earn a 3; these grades
will be rare.
Here is the schedule of papers that will be fleshed out as the quarter
progresses. Note that you're required to read assigned papers, but
the optional additional papers are just that: purely optional, for your
interest, if you choose to go deeper on your own. Discussion board
entries for the assigned papers are due by 9am on the day of the
associated lecture.
Date |
Reading |
Notes |
Assignments |
Sept 26 |
Introduction
|
slides
|
Assignment #1
|
Oct 3 |
Concurrency
|
slides
|
|
Oct 8 |
Web services
|
slides
|
|
Oct 10 |
Transactions
|
slides
|
|
Oct 15 |
Distributed Transactions
|
slides
|
Assignment #2
|
Oct 17 |
Distributed Computation
|
slides
|
|
Oct 22 |
Consensus
|
slides
|
|
Oct 24 |
Paxos (contd.)
|
|
|
Oct 29 |
Virtualization
|
slides
|
|
Oct 31 |
Software virtual memory
|
slides
|
|
Nov 5 |
File Systems
|
slides
|
|
Nov 7 |
Large scale storage systems
|
slides
|
|
Nov 14 |
Structured Storage
|
slides
|
|
Nov 19 |
BFT/Bitcoin
|
slides
|
|
Nov 21 |
No class (pre-thanksgiving break!)
|
|
|
Nov 26 |
Big Data
|
slides
|
|
Nov 28 |
Networking: Cong control
|
slides
|
|
Dec 3 |
Networking: Routing
|
|
|
Dec 5 |
Networking: General discussion
|
|
|
Everybody registered for the course should already have had an
instructional UNIX account created for them by the department support
staff, and have been notified of it. Using this account, you can
remotely log into (via ssh) the attu.cs.washington.edu compute
cluster. You can find more information
about instructional resources here.
You should also be able to do the programming assignments on your
own personal machines; none of them require large or exceptionally
powerful machines. You might find it useful to install VMware for
assignments involving Linux development. Both VMware Player and
VMware Server are free, and downloadable from VMware's site.
Late days policy: you can accumulate a total of four late days
for the assignments without any penalties.
- Assignment #1
out: sep 26th
due: oct 15th at 5pm
- Assignment #2
out: oct 16th
due: nov 2nd at 5pm
- Project
proposal: nov 14
checkpoint: nov 26
final poster: dec 10th, in the Atrium
final report: Dec 13th