CMPT 431 D1
CMPT 431: Distributed Systems
When and where:
- September 2, 2014 to November 27, 2014
- Tuesdays (RCB 8100/ASB9840) 11:30-13:20 and Thursdays (ASB 3154) 11:30-12:20
Time | Tuesdays | Thursdays |
---|---|---|
11:30-12:20 | Group A: RCB 8100 Group B: ASB 9840 | Group A: AQ 3154 Group B: AQ 3154 |
12:30-13:20 | Group A: ASB 9840 Group B: RCB 8100 |
Announcements:
Note that the final exam will take place in ASB9838-North. It's a lab area within CSIL.
Old micro-quizzes with answers are posted here.
Course staff:
- Course lead: Dr. Alexandra Fedorova
- Teaching assistant: Justin Funston
Office hours:
- TA: W 12:30-1:30, ASB 9838 TA 1
- Instructor: by appointment
Syllabus:
Course syllabus and links to lectures
Assignments:
- Assignment 1 - due Monday, September 29 by 5pm PT. Q&A Wiki | Grading rubric
- Assignment 2 - due Monday, November 3 by 5pm PT. Q&A Wiki | Grading rubric
- Assignment 3 - due Monday, December 1 by 5pm PT. Q&A Wiki | Grading rubric
Micro-quizzes
Previous Micro-quizzes with answers
Grading formula:
- Two quizzes: 30% (15% each)
- Quiz 2 consists of an in-class quiz worth 5% and many micro-quizzes collectively worth 10%.
- Final exam: 25%
- Assignments: 45% (15% each)
Course rules and logistics:
- Bring a nameplate to every class.
- Bring lots of paper and a pen or pencil to class.
- No use of computers allowed in class unless otherwise specified. A computer is anything with a CPU and a screen.
- Late assignments are accepted at the penalty of 10 points per 24 hours or fraction thereof.
- Rules on micro-quizzes
- If you cannot attend an in-class quiz, you can arrange a make-up date with the professor before the date of the quiz. If you do not attend the quiz and do not arrange the make-up date you get 0 for the quiz.
- Course policy on cheating
What we will learn
This course is about distributed computer systems: systems built of multiple independent components that communicate via network and co-ordinate to accomplish a common computational task. We will focus on understanding the most difficult issues involved in design of such systems: unusual failure modes (such as partial failure), synchronization, co-ordination, reaching an agreement, maintaining data consistency, replication, etc. Course readings will be derived mostly from the text book, but towards the end of the course we will start reading papers describing recent research on distributed systems. There will be two programming assignments and one final project. The final project will involve implementation of a distributed system that supports transactions and replication. You will need to focus on challenging system design issues during the assignments and the project, so your programming skills must be solid. Programming assignments and projects will be implemented in C and Java on Unix systems.
How we will learn
This class will be using a "flipped classroom" approach. What this means is that you will acquire "static" content: watch lectures, read textbooks - at home. In class you will spend time on acquiring "dynamic" content: solving problems in groups, discussing with the instructor the things you have trouble understanding and doing hands-on work. As a result, you spend less class time on passive learning and more time on active learning: doing and thinking.