-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathcs451.html
322 lines (274 loc) · 13.3 KB
/
cs451.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html> <head>
<title>CAS CS451/651 Distributed Systems Fall 2019</title>
</head>
<body link="#FF0000" vlink="#FF0000" alink="#000000">
<div style="position: relative;
background: url(images/cs451banner.png); width: 702px; height: 217px;">
<div style="position: absolute; top: -25px; left: 110px; width:
500px; font-size: xx-large; text-shadow: 0.10em 0.15em 0.2em black; font-weight: bold; color: #fff; text-align: left">
<p>CAS CS451/651 Distributed Systems<br>Fall 2019</p>
</div>
<div style="position: absolute; bottom: 5px; left: 20px; width: 113px; height: 51px;">
<a href="http://www.bu.edu"><img src="images/bu.gif" width="113px"; height="51px"></a>
</div>
<div style="position: absolute; bottom: -20px; left: 135px; width:
800px; font-size: x-large; text-shadow: 0.10em 0.10em 0.2em black; font-weight: bold; color: #f00; text-align: left">
<p>
<a href="http://www.cs.bu.edu">Department of Computer</a><br>
<a href="http://www.bu.edu/cas">College of Arts and Science</a>
</p>
</div>
</div>
<p style="font-style:italic; font-weight: bold">
"A distributed system is a collection of independent computers that appears to its users as a single coherent system." [Tanenbaum and Steen 2006]. Every major internet service is a distributed system. Examples include Google, Facebook, Youtube, banking websites and for that matter the World Wide Web itself. Other fundamental services such as Global Positioning Systems (GPS), Domain Name Services (DNS) and email are also distributed systems. For students to be effective, today and in the future, as decision makers, technical advisors, innovators and implementors they should be familiar with the principles and paradigms that underlying this important class of systems.</p>
<blockquote>
<hr>
<pre>
This page <a
href="http://www.cs.bu.edu/~jappavoo/jappavoo.github.com/cs451.html">http://www.cs.bu.edu/~jappavoo/jappavoo.github.com/cs451.html
</a>the course <a href="http://piazza.com/bu/fall2019/cascs451651/home">piazza site</a>
</pre>
<ul>
<li><a href="#announce">Announcements/NEWS</a></li>
<li><a href="#instructor">Instructors</a></li>
<li><a href="#office">Office Hours</a></li>
<li><a href="#time">Time And Place</a></li>
<li><a href="#desc">Course Description</a></li>
<li><a href="#prereq">Prerequisites</a></li>
<li><a href="#grade">Grade Break Down</a></li>
<li><a href="#structure">Weekly Class Structure and
Evaluation</a></li>
<li><a href="#project">Project and Workload</a></li
><li><a href="#651">CS651</a></li>
<li><a href="#schedule">Class Schedule</a></li>
<li><a href="#texts">TextBooks</a></li>
<li><a href="#oref">Online References</a></li
<li><a href="#honesty">Academic Honesty</a></li>
</ul>
<hr>
</blockquote>
<hr>
<h1><a name="announce">Announcements/NEWS</a></h1>
<hr>
<b>Welcome! Here's to a fun term hacking!</b>
This year we have completely revamping the course and modeling it after
the <a href="https://pdos.csail.mit.edu/6.824/">MIT 6.824</a>.
We will be learning right along with you. It should be a fun term
where we will read some papers together and write some go code!
<hr>
Please use <a href="http://piazza.com/bu/fall2018/cascs451651/home">Piazza</a>
to read announcements and discuss labs, lectures and papers.
We will look at Piazza regularly and answer
questions (unless one of you answers first);
the entire class can see and benefit from these exchanges.
<hr>
<h1><a name="instructors">Instructor</a></h1>
<a href="http://www.cs.bu.edu/~jappavoo">Prof. Jonathan Appavoo</a>
<br><a href="http://www.bu.edu/maps/?id=757">Math & Computer Science
Building</a> Office: <b>293</b>
<br> 111 Cummington Street, Boston, MA
<br>Phone: (617) 358-1062
<br>Email: jappavoo (at) cs.bu.edu
<br><a name="instoffice">Office Hours: Mon 4:00PM-6:00PM and Wed 4:00PM-6:00PM</a>
<br>
<a href="">James Cadden</a>
<br><a href="http://www.bu.edu/maps/?id=757">Math & Computer Science
Building</a> Office: <b>203</b>
<br> 111 Cummington Street, Boston, MA
<br>Phone: (617) 358-1062
<br>Email: jappavoo (at) cs.bu.edu
<br><a name="instoffice">Office Hours: TBA</a>
<br>
<h1><a name="tf">Teaching Fellow</a></h1>
Tommy Unger
<br>Email: tommyu (at) bu.edu
<br><a name="tfoffice">Office Hours: TBA</a>
<br>
<p>
To reach the instructor or TF at times other than office hours please send
email.
The purpose of the office hours is to answer specific questions or clarify specific issues. Office
hours are not to be used to fill you in on a class you skipped or to
explain entire topics.
<hr>
<h1><a name="time">Time And Place</a></h1>
<h2>Lectures</h2>
<dl>
<dt><b>Time:</b></dt><dd>Monday, Wed 2:30pm to 3:45pm</dd>
<dt><b>Place:</b></dt><dd><a href="http://www.bu.edu/classrooms/classroom/sar-101/">SAR 101</a> (Sargent College of Health and Rehabilitation Sciences 101)</dd>
</dl>
<h2>Discussions</h2>
<dl>
<dt><b>Time:</b></dt><dd>Monday 9:05-9:55am, 10:10-11:00am, 11:15am-12:05pm, 12:20-1:10pm</dd>
<dt><b>Place:</b></dt><dd><a href="http://www.bu.edu/classrooms/classroom/fcb-104/">FCB 104</a></dd>
</dl>
<hr>
<h1><a name="desc">Course Description</a></h1>
<h2>Introduction</h2>
<p>
CS451/651 (Distributed Systems) is a fast-paced, broad and practical
introduction to the fundamentals of distributed systems.
The class will be taught in the style of a graduate course and requires the reading
research papers and independent exploration of the material. The class will include
lectures, readings, programming labs, a mid-term exam, and a final exam.
It will present abstractions and implementation
techniques for engineering distributed systems. Major topics include
fault tolerance, replication, and consistency. Much of the class
consists of studying and discussing case studies of distributed
systems.
<p><b>
This version of the course draws heavily from <a href="https://pdos.csail.mit.edu/6.824/">MIT 6.824</a>. This class owes most of it contents to Robert Morris, Frans Kaashoek and Nickolai Zeldovich who developed much of the 6.824 course material. It is with great admiration and thanks that we are using it.
</b>
<h2>Formal Description</h2>
<p>
Programming-centric introduction to how networks of computers are
structured to operate as coherent single system. Introducing
principles of architecture, processes, communications, naming,
synchronization, consistency and replication, fault tolerance and
security, and paradigms such as web-based, object-based, file systems,
and coordination-based.
<hr>
<h1><a name="prereq">Prerequisites</a></h1>
<p>
The prerequisites for this course are CS 112, CS 210 Computer Systems.
It is also helpful if you have taken one or both of CS 455 and CS 452.
Substantial programming experience will be helpful for the
lab assignments. Students without the prerequisites will not be allowed to enroll in the course. If you you are unsure about your preperation please see the instructor.
</p>
<hr>
<h1><a name="grade">Grade Breakdown</a></h1>
<p style="font-weight:bold">
Your final grade will be determined approximately as follows:
</p>
<table border="1" bordercolor="#000000"
style="background-color:#FFFFFF" width="100%" cellpadding="3" cellspacing="3">
<tr>
<td>
Programming Labs
</td>
<td>
50%
</td>
</tr>
<tr>
<td>
Mid-term and Final
</td>
<td>
35%
</td>
</tr>
<tr>
<td>
Class participation, lecture question, paper question answer, and code review
</td>
<td>
15%
</td>
</tr>
</table>
<hr>
<h1><a name="labs">Programming Labs</a></h1>
<p>
You must write all the code you hand in for the programming labs, except for code that we give you as part of the assignment. You are not allowed to look at anyone else's solution (and you're not allowed to look at solutions from previous years). You may discuss the assignments with other students, but you may not look at or use each other's code.
Please do not publish your code or make it available to current or future students. github.com repositories are public by default, so please don't put your code there unless you make the repository private.
You may discuss the paper questions with other students, but you may not look at other students' answers. You must write your answers yourself.
<hr>
<h1><a name="structure">Weekly Class Structure and Evaluation</a></h1>
<p>
<p> Most class
meetings will be part lecture and part paper discussion. You
should read the paper <i>before</i> coming to class, and be prepared
to discuss it. You can find out what paper to read for each meeting in
the <a href="451/schedule.html">schedule</a>.
<p>
We will post a question about each paper 24 hours before
the beginning of class.
Your answer need only be long enough to demonstrate that
you understand the paper; a paragraph or two will usually be enough.
We won't give feedback, but we will glance at your answers to make
sure they make sense, and they will count for part of the
paper discussion grade.
<p>Will have an exam during class in the middle
of the term, and a final exam during finals week.
<p>There are programming labs due every week or two throughout the term.
<hr>
<h1><a name="project">Workload</a></h1>
<p style="font-weight:bold">Be forewarned the workload in this course will be heavy. To master
the conceptual material covered in the lecture and prepare you for
completion of the labs there will be required weekly research papers to
read and programming required outside of class time.</p>
<h2>
<h1><a name="651">CS651</a></h1>
Graduate students will be required to either do the 4th assignment or a final project with an associated report and presentation.
See the <a href="451/project.html">Project Page</a> for more details. Projects must be done in groups of 3-4 students.
<hr>
<h1><a name="schedule">Class Schedule</a></h1>
<p>
<a href="451/schedule.html">See the separate schedule page</a>
<hr>
<h1><a name="texts">TextBooks</a></h1>
<p><b>There is not required text for this class</b>
<p> You may find this book useful to get an overview of various topics
that we will be covering in the research papers we read.
<p>[DS:CS Required Text] Andrew S. Tanenbaum and Maarten Van Steen, Distrib
uted Systems Principles and Paradigms,
<p>
<hr>
<h1><a name="oref">Online References</a></h1>
<h2>Distributed Systems</h2>
<ul>
<li> "Distributed systems for fun and profit" <a href="http://book.mixu.net/distsys/index.html">http://book.mixu.net/distsys/index.html</a></li>
<li> appendix from the above book has some great links(see Seminal Papers section near the bottom)
<a href="http://book.mixu.net/distsys/appendix.html">http://book.mixu.net/distsys/appendix.html</a></li>
<li>covers 1970-2013: <a href="http://christophermeiklejohn.com/distributed/systems/2013/07/12/readings-in-distributed-systems.html">
http://christophermeiklejohn.com/distributed/systems/2013/07/12/readings-in-distributed-systems.html</a></li>
<li>covers 2014-2015: <a href="http://muratbuffalo.blogspot.com/2015/12/my-distributed-systems-seminars-reading.html">
http://muratbuffalo.blogspot.com/2015/12/my-distributed-systems-seminars-reading.html</a></li>
<li>Advanced coverage can be found in this text book -- The book can be downloaded for from from the campus network. "Introduction to Reliable and Secure Distributed Programming"
<a href="http://link.springer.com/book/10.1007%2F978-3-642-15260-3"> http://link.springer.com/book/10.1007%2F978-3-642-15260-3</a>
By a team out of EPFL / IBM Research (Switzerland). They take a nice approach to introducing dist. system fundamentals (failures, replication, timing, membership, consensus) through the context of programming abstractions & psuedocode.</li>
</ul>
<h2>C/Unix</h2>
<ul>
<li><a href="http://csapp.cs.cmu.edu/public/unixfaq.html">Unix FAQ</a> (courtesy <a href="http://www.cs.cmu.edu/~bryant">Randal
E. Bryant</a> and <a href="http://www.cs.cmu.edu/~droh">David R. O'Hallaron</a> of CMU)</li>
<li><a href="http://heather.cs.ucdavis.edu/~matloff/unix.html">Norm
Matloff's Unix/C Tutorial Center</a></li>
</ul>
<h2>GNU/Unix Tools</h2>
The <a href="http://www.gnu.org/">GNU project</a> provides <a
href="http://www.gnu.org/manual/">online manuals</a> for all of the
GNU tools, including:
<ul>
<li><a href="http://projects.gnome.org/gedit/">gedit</a>(a simple graphical unix text editor)</li>
<li><a
href="http://www.ece.uwaterloo.ca/~ece250/Online/Unix/pico/">pico</a>
(a simple text editor). </li>
<li><a href="http://www.gnu.org/software/emacs">Emacs</a> (text
editor) (reference card for version 21) </li>
</li>
</ul>
<hr>
<hr>
<h1><a name="honesty">Academic Honesty</a></h1>
<p>
Assignments must be completed individually. Discussion of issues in
computer systems is encouraged, but representing the work of another
person as your own is expressly forbidden. This includes "borrowing",
"stealing", copying programs/solutions or parts of them from
others. We may use an automated plagiarism checker. Cheating will not
be tolerated under any circumstances. Handing in your own work a day
or two late will affect your grade far less than turning in a copy of
someone else's work on time!
<p>
See the <a href="http://www.bu.edu/cas/students/undergrad-resources/code/">CAS
Academic Conduct Code</a>, in particular regarding plagiarism and
cheating on exams. Copies of the CAS Academic Conduct Code are also
available in room CAS 105. A student suspected to violate this code
will be reported to the Academic Conduct Committee, and if found
culpable, the student will receive a grade of "F" for the course.
<hr>
<address></address>
</body> </html>