Welcome to the graduate course on Distributed Systems. This course introduces you to an exciting range of materials in this broad and hugely important field, including the fundamentals of distributed systems, massive-scale cloud storage, big data foundation, serverless computing, systems support of distributed machine (deep) learning, and a wide range of other important techniques and case studies about this fascinating area of study.
The only prerequisite is CS571. However, if you believe you have some of the following background:
You should be in communication with me (the instructor) before the semester begins to request an override.
This course is primarily intended for graduate students (CS/ECE/IST) and motivated seniors who want to learn the latest research advances in distributed systems and cloud computing areas, and are interested in building distributed systems used/demanded by existing/emerging data-intensive applications.
No textbook required. The course is based on readings (listed in the schedule of the course web page: https://tddg.github.io/cs675-spring20/) and in-class discussions/presentations.
A tentative list of topics covered in this class:
There will be a few programming labs to get you warmed up and going this semester. They will be linked from the main page and due about 1 or 2+ weeks from the day they are assigned. In these lab assignments, you will learn hands-on what it is to build distributed systems and cloud computing applications, usually with one partner. The assignments will involve extensive use of Go language and real-world cloud resources. And therefore, each student is expected to receive a number of AWS (or Google) cloud credits ($50-$200) for working on real-world cloud platforms. You should expect two (and hopefully one optional) programming labs:
The most important work outside of class will be the final project. This will form a large part of your grade, and is also done with a parter or two. Projects are the beginning of your venture into the world of research, and thus will be open-ended explorations of some kind. More information on final projects will be given about 1.5 months from the beginning of the semester. The final projects consist of a few phases with milestones: i) project proposal, ii) project checkpoint report, iii) final presentation and/or demo, and iv) final report and source code.
Your grade will be calculated as follows:
All students must adhere to the GMU Honor Code and the Computer Science Department's Honor Code Policies. The students are supposed to work individually on the homeworks, assignments projects, unless told otherwise. We reserve the right to use MOSS to detect plagiarism. Violation of the Honor Code will result in an F.
If you have a documented learning disability or other condition that may affect academic performance, you should: