This seminar is pass/no-pass. At the end of the quarter, your
instructors must decide whether you've learned what they intended
to teach (see below). That decision will be determined approximately
- 30% -- Participation. Participation in
classroom discussions, attendance of office hours, and activity
on the course mailing list.
- 15% -- Project 2. Completeness and correctness
of your code, and quality and comprehensiveness of the writeup.
- 30% -- Project 3. Same as project 2, but with an added
- 15% -- Quizzes. Short, topic-specifc quizzes.
There is no final exam.
- 10% -- Retrospective statement. What you have
learned, what you wish you had learned, and how the seminar
could be made better.
The goal of this seminar is to introduce students to the basic
principles behind parallel programming and distributed system design.
We will be using an open source implementation of Google's MapReduce
system, HaDoop, for exercises and examples throughout the seminar.
At the end of the seminar, students should be able to:
- successfully decompose problems into
- decide whether a problem can be solved with parallel algorithm
- evaluate the strengths and weaknesses of a parallel algorithm
- understand the basic tradeoffs and major issues in distributed
- know the common pitfalls of distributed system design