CS 142, Fall 2019: Difference between revisions
From Murray Wiki
Jump to navigationJump to search
No edit summary |
|||
(50 intermediate revisions by 2 users not shown) | |||
Line 8: | Line 8: | ||
* Richard Murray (CMS) | * Richard Murray (CMS) | ||
* Mani Chandy (CMS) | * Mani Chandy (CMS) | ||
* Lectures: MW, 9-10 am, | * Lectures: MW, 9-10 am, 213 Annenberg | ||
* Office hours: by appointment | * Office hours: by appointment | ||
| width=50% | | | width=50% | | ||
=== Teaching assistants === | === Teaching assistants === | ||
* Prithvi Akella (ME), Tung Phan (ME) | * Prithvi Akella (ME), Tung Phan (ME) | ||
* Problem solving sessions: Fri, 9 am, | * Problem solving sessions: Fri, 9 am, 213 Annenberg | ||
* Office hours: | * Office hours: Sun, 5-6 pm, Mon, 5-6 pm and Tue, 5-6 pm; 243 Annenberg | ||
* Online resources: [https://piazza.com/caltech/fall2019/cs142 Piazza]] (Q&A forum), [https://courses.caltech.edu/course/view.php?id=3539 Moodle] (HW submission) | * Online resources: [https://piazza.com/caltech/fall2019/cs142 Piazza]] (Q&A forum), [https://courses.caltech.edu/course/view.php?id=3539 Moodle] (HW submission) | ||
|} | |} | ||
Line 21: | Line 21: | ||
|- valign=top | |- valign=top | ||
| width=50% | | | width=50% | | ||
=== Course description === | === Course description === | ||
CS 142. Distributed Computing. 9 units (3-0-6); first term. Prerequisites: CS 24, CS 38. Fundamental concepts for the design and analysis of distributed systems and algorithms, including reasoning about distributed programs, handling the lack of global time and global state, achieving distributed consensus in the presence of faults and asynchrony, and designing fault-tolerance for distributed systems. Review of state-of-the-art distributed systems, particularly cloud computing systems. Instructor: Murray/Chandy. | CS 142. Distributed Computing. 9 units (3-0-6); first term. Prerequisites: CS 24, CS 38. Fundamental concepts for the design and analysis of distributed systems and algorithms, including reasoning about distributed programs, handling the lack of global time and global state, achieving distributed consensus in the presence of faults and asynchrony, and designing fault-tolerance for distributed systems. Review of state-of-the-art distributed systems, particularly cloud computing systems. Instructor: Murray/Chandy. | ||
| width=50% | | | width=50% | | ||
=== Course announcements === | === Course announcements === | ||
* 9 Oct 2019: HW #2 has been posted; due 16 Oct (Wed) at 2 pm | |||
* 2 Oct 2019: HW #1 has been posted; due 9 Oct (Wed) at 2 pm | |||
* 29 Sep 2019: Monday lecture posted + Piazza signups created (if you didn't get added, sign up using the link above) | * 29 Sep 2019: Monday lecture posted + Piazza signups created (if you didn't get added, sign up using the link above) | ||
* 21 Sep 2019: web site under construction; use with care | * 21 Sep 2019: web site under construction; use with care | ||
Line 41: | Line 44: | ||
| W1 (30 Sep) | | W1 (30 Sep) | ||
| | | | ||
* Motivation, course admin | |||
* Logic and computation | * Logic and computation | ||
* Propositional logic, guarded command programs | * Propositional logic, guarded command programs | ||
| | | | ||
* Sivilotti, Chapters 1 and 2 | * Sivilotti, Chapters 1 and 2 | ||
* HW #1 due on 9 Oct | * {{CS 142 pdf|fa19|hw1-fa19.pdf|HW #1}} due on 9 Oct | ||
* {{CS 142 pdf|fa19|L1-1_intro-30Sep2019.pdf|Mon lecture slides}} | * {{CS 142 pdf|fa19|L1-1_intro-30Sep2019.pdf|Mon lecture slides}} | ||
* {{CS 142 pdf|fa19|L1-2_computation-02Oct2019.pdf|Wed lecture slides}} | |||
* {{CS 142 pdf|fa19|L1-3_predicates-04Oct2019.pdf| Fri recitation slides}} | |||
* Fri | |||
|- valign=top | |- valign=top | ||
| W2 (7 Oct) | | W2 (7 Oct) | ||
Line 60: | Line 61: | ||
| | | | ||
* Sivilotti, Chapters 3 and 4 | * Sivilotti, Chapters 3 and 4 | ||
* HW #2 due on 16 Oct | * {{CS 142 pdf|fa19|hw2-fa19.pdf|HW #2}} due on 16 Oct | ||
* {{CS 142 pdf|fa19|L2-1_reasoning-07Oct2019.pdf|Mon lecture slides}} | |||
* {{CS 142 pdf|fa19|L2-2_safety-09Oct2019.pdf|Wed lecture slides}} | |||
<!-- | <!-- | ||
* Fri lecture slides | * Fri lecture slides | ||
--> | --> | ||
Line 69: | Line 70: | ||
| W3 (14 Oct) | | W3 (14 Oct) | ||
| | | | ||
* HW #3 due on 23 Oct | * {{CS 142 pdf|fa19|hw3-fa19.pdf|HW #3}} due on 23 Oct | ||
* {{CS 142 pdf|fa19|L3-1_progress-14Oct2019.pdf|Mon lecture slides}} | |||
* {{CS 142 pdf|fa19|L3-2_examples-16Oct2019.pdf|Wed lecture slides}} | |||
<!-- | <!-- | ||
* Fri lectures slides | * Fri lectures slides | ||
--> | --> | ||
Line 82: | Line 83: | ||
| | | | ||
* Sivilotti, Chapter 5 and 6 | * Sivilotti, Chapter 5 and 6 | ||
* HW #4 due on 30 Oct | * {{CS 142 pdf|fa19|hw4-fa19.pdf|HW #4}} due on 30 Oct | ||
* {{CS 142 pdf|fa19|L4-1_clocks-21Oct2019.pdf|Mon lecture slides}} | |||
* {{CS 142 pdf|fa19|L4-2_diffusing-23Oct2019.pdf|Wed lecture slides}} | |||
* Wed lecture slides | |||
|- valign=top | |- valign=top | ||
| W5 (28 Oct) | | W5 (28 Oct) | ||
Line 92: | Line 91: | ||
* Mutual exclusion | * Mutual exclusion | ||
|| | || | ||
* Midterm office hours: | * Midterm office hours: Fri, 4-6 pm (213 ANB) and Sun, 4-6 pm (107 ANB) | ||
<!-- | <!-- | ||
** Friday, 3-5 pm, 107 ANB | ** Friday, 3-5 pm, 107 ANB | ||
Line 99: | Line 98: | ||
* Sivilotti, Chapter 7 | * Sivilotti, Chapter 7 | ||
* Midterm: out 30 Oct, due 5 Nov | * Midterm: out 30 Oct, due 5 Nov | ||
* {{CS 142 pdf|fa19|L5-1_mutex-28Oct2019.pdf|Mon lecture slides}} | |||
* {{CS 142 pdf|fa19|L5-2_mutex-01Nov2019.pdf|Fri lecture slides}} | |||
* | |||
|- valign=top | |- valign=top | ||
| W6 (4 Nov) <br> KMC | | W6 (4 Nov) <br> KMC | ||
| | | | ||
* | * Dining philosophers | ||
| | | | ||
* Sivilotti, Chapter 8 | * Sivilotti, Chapter 8 | ||
* | * {{CS 142 pdf|fa19|hw5-fa19.pdf|HW #5}} due on 13 Nov | ||
* {{CS 142 pdf|fa19|L6-1_philosophers-04Nov2019.pdf|Mon lecture slides}} | |||
* {{CS 142 pdf|fa19|L6-2_philosophers-06Nov2019.pdf|Wed lecture slides}} | |||
* Wed lecture slides | |||
|- valign=top | |- valign=top | ||
| W7 (11 Nov) | | W7 (11 Nov) <br> RMM/KMC | ||
| | | | ||
* Specifications, refinement, program composition | |||
* Snapshots | * Snapshots | ||
| | | | ||
* Chandy and Misra, Chapter 7 | |||
* Chandy and Misra, Chapter 12 (optional) | |||
* Sivilotti, Chapter 9 | * Sivilotti, Chapter 9 | ||
* HW #6 due on 20 Nov | * {{CS 142 pdf|fa19|hw6-fa19.pdf|HW #6}} due on 20 Nov | ||
* {{CS 142 pdf|fa19|L7-1_specifications-11Nov2019.pdf|Mon lecture slides}} | |||
* {{CS 142 pdf|fa19|L7-2_snapshots-13Nov2019.pdf|Wed lecture slides}} | |||
* Wed lecture slides | |||
|- valign=top | |- valign=top | ||
| W8 (18 Nov) <br> KMC | | W8 (18 Nov) <br> KMC | ||
Line 132: | Line 127: | ||
| rowspan=2 | | | rowspan=2 | | ||
* Sivilotti, Ch 12 | * Sivilotti, Ch 12 | ||
* {{CS 142 pdf|fa19|hw7-fa19.pdf|HW #7}} due on 27 Nov | |||
* {{CS 142 pdf|fa19|L8-1_snapshots-18Nov2019.pdf|Mon lecture slides - Snapshots}} | |||
* {{CS 142 pdf|fa19|L8-1_byzantine-18Nov2019.pdf|Mon lecture slides - Byzantine Agreement}} | |||
* {{CS 142 pdf|fa19|L8-2_paxos-20Nov2019.pdf|Wed lecture slides}} | |||
<hr> | |||
* Paxos Made Simple (Lamport, 2001) | * Paxos Made Simple (Lamport, 2001) | ||
* HW # | * {{CS 142 pdf|fa19|hw8-fa19.pdf|HW #8}} due on 6 Dec (Fri) | ||
* {{CS 142 pdf|fa19|L9-1_paxos-25Nov2019.pdf|Mon lecture slides}} | |||
<!-- | <!-- | ||
* Wed (27 Nov) lecture slides | |||
* Wed | |||
--> | --> | ||
* No | * No office hours on 27 Nov (Sun) | ||
* Office hours: 5 Dec (Thu), 5-6 pm, 243 ANB | |||
|- valign=top | |- valign=top | ||
| W9 (25 Nov) | | W9 (25 Nov) <br> KMC | ||
|- valign=top | |- valign=top | ||
| W10 (2 Dec) | | W10 (2 Dec) | ||
Line 147: | Line 147: | ||
* Distributed consensus and distributed ledger | * Distributed consensus and distributed ledger | ||
| | | | ||
* | * [[http:bitcoin.org/bitcoin.pdf|Bitcoin: A Peer-to-Peer Electronic Cash System]] | ||
* [[http:d28rh4a8wq0iu5.cloudfront.net/bitcointech/readings/princeton_bitcoin_book.pdf|Bitcoin and Cryptocurrency Technologies]], Narayanan et al, 2017. Chapter 2 | |||
* | * {{CS 142 pdf|fa19|L10-1_bitcoin-02Dec2019.pdf|Mon lecture slides}} | ||
** | * {{CS 142 pdf|fa19|L10-2_bitcoin-04Dec2019.pdf|Wed lecture slides}} | ||
** 6 Dec | * {{CS 142 pdf|fa19|L10-3_review-06Dec2019.pdf|Fri review slides}} | ||
* Final: out 6 Dec, due 13 Dec @ 5 pm | |||
* Finals week office hours | * Finals week office hours | ||
** | ** 8 Dec (Sun), 5-6 pm, 106 ANB | ||
** | ** 9 Dec (Mon), 5-6 pm, 243 ANB | ||
** 10 Dec (Tue), 5-6 pm, 243 ANB | |||
* | |||
* | |||
|} | |} | ||
Line 184: | Line 174: | ||
The following additional references may also be useful: | The following additional references may also be useful: | ||
* K.M. Chandy and J. Misra, Parallel Program Design: A Foundation, Addison-Wesley, 1988 | * K.M. Chandy and J. Misra, Parallel Program Design: A Foundation, Addison-Wesley, 1988 | ||
* M. Singhal and N. G. Shivaratri. Advanced Concepts in Operating Systems. McGraw-Hill, 1994 | |||
[[Category:Courses]] | [[Category:Courses]] |
Latest revision as of 17:01, 5 December 2019
Distributed Computing | |
Instructors
|
Teaching assistants |
Course descriptionCS 142. Distributed Computing. 9 units (3-0-6); first term. Prerequisites: CS 24, CS 38. Fundamental concepts for the design and analysis of distributed systems and algorithms, including reasoning about distributed programs, handling the lack of global time and global state, achieving distributed consensus in the presence of faults and asynchrony, and designing fault-tolerance for distributed systems. Review of state-of-the-art distributed systems, particularly cloud computing systems. Instructor: Murray/Chandy. |
Course announcements
|
Course syllabus and schedule
Lecture Schedule
Date | Topic | Reading/Homework |
W1 (30 Sep) |
|
|
W2 (7 Oct) |
|
|
W3 (14 Oct) |
| |
W4 (21 Oct) |
|
|
W5 (28 Oct) |
|
|
W6 (4 Nov) KMC |
|
|
W7 (11 Nov) RMM/KMC |
|
|
W8 (18 Nov) KMC |
|
|
W9 (25 Nov) KMC | ||
W10 (2 Dec) |
|
|
Grading
The final grade will be based on homework sets, a midterm exam, and a final exam:
- Homework (50%): Homework sets will be handed out weekly and due on Wednesdays by 2 pm (submitted via Moodle). Each student is allowed up to two extensions of no more than 2 days each over the course of the term. Homework turned in after Friday at 2 pm or after the two extensions are exhausted will not be accepted without a note from the health center or the Dean.
- Midterm exam (20%): A midterm exam will be handed out at the beginning of midterms period (25 Oct) and due at the end of the midterm examination period (1 Nov). The midterm exam will be open book (textbook and course notes OK: access to the Internet is not allowed).
- Final exam (30%): The final exam will be handed out on the last day of class (1 Dec) and due at the end of finals week. The final exam will be open book (textbook and course notes OK: access to the Internet is not allowed).
Collaboration Policy
- Collaboration on homework assignments is encouraged. You may consult outside reference materials, other students, the TA, or the instructor, but you cannot consult homework solutions from prior years and you must cite any use of material from outside references. All solutions that are handed in should be written up individually and should reflect your own understanding of the subject matter at the time of writing.
- No collaboration is allowed on the midterm or final exams.
Course Text and References
The primary course text is
- P. Sivilotti, Introduction to Distributed Systems, Course notes, 2007.
The following additional references may also be useful:
- K.M. Chandy and J. Misra, Parallel Program Design: A Foundation, Addison-Wesley, 1988
- M. Singhal and N. G. Shivaratri. Advanced Concepts in Operating Systems. McGraw-Hill, 1994