Fall 2008 focus: Cloud and Edge Computing Systems
Course Overview. Distributed systems are difficult to build and understand, for all sorts of reasons. Failures are common in large systems, and we can't let them shut the application down; a well-engineered system will tolerate failures and repair any damage they caused. A single event, perceived at multiple locations, may not be totally ordered with respect to other, conflicting, events. Networks have annoying connectivity and bandwidth properties, that force the designer to confront challenging engineering trade-offs.
The focus of CS5410 is on the principles and techniques that one can use to achieve a high-quality, trustworthy, fault-tolerant distributed system. Lectures will present the principles; programming assignments will enable students to put these principles into practice. The course project will expose students to state of the art technology platforms (notably web services) but will also involve using cutting-edge techniques that are not available (yet) in products. The goal is to understand what these kinds of platforms can be expected to do “without help” but also to get used to the idea that one can push beyond their limitations when necessary, and that doing so can open the door to all sorts of creative possibilities.
During fall of 2008, the course will be organized around the themes of "Cloud Computing" and "Edge Computing" (the latter is sometimes called "Peer to Peer" computing). We'll be using the standard course textbook, but because the book isn't completely aligned with our themes, we aren't requiring it or assigning material from it. Instead, we'll give references to the book where additional readings may be helpful. A copy is on reserve in the Engineering Library for those who prefer not to purchase their own copy. The underlying technology area corresponding to CS5410 is associated with standards called, variously, Web Services, CORBA, GIG and SOA or SOS. But have no fear of the acronyms: cryptic multi-letter acronyms aren't really very interesting. Our emphasis is on the way things work, not the specifics of how they look in different technology packages. The theory is that if you understand the principles, working with a particular embodiment will be a breeze.
The tentative list of topics to be covered in each lecture is at Topic Outline. More details appear on the Slides Page, with links to the slides and recommend readings.
Our projects will be coded using Microsoft's .NET platform. The system supports a tremendous variety of programming languages, and we're not picky. However, Professor Birman himself works mostly with Visual Studio using C#, a version of Java with libraries nicely integrated into the .NET runtime enviroment. If you prefer to use Java, C++, Visual Basic, Python, or whatever, you are welcome to do so, but of course we may have more trouble helping if you depart from what we use ourselves and then hit "issues."
CS5410 targets many kinds of students -- the class typically includes MEng students from CS, ECE and ORIE, undergraduates who like the systems area and have taken CS4410 (cs414) and did well in the course, and a few PhD students too. The emphasis, though, is fairly practical. Students interested in a more theoretical treatment of the material might also consider CS6414, a course taught mostly from published research papers (many are "classics") and with a more foundational / research perspective.
Textbook: Reliable Distributed Systems. A copy of this book is on reserve in the Engineering Library.
MW 1010-1125A. Room Hollister 110. Please note that CS514 only meets twice weekly, on Monday and Wednesday.
Fall calendar information for
2008:
Instruction Begins | Thursday | August 28 |
First lecture: CS5410 | Monday | Sept 1 |
Homework 1 due | Monday | Sept 22 |
Fall Break Begins, 1:10 PM | Saturday | October 11 |
Instruction Resumes, 7:30 AM | Wednesday | October 15 |
Thanksgiving Recess Begins, 1:10 PM | Wednesday | November 26 |
Instruction Resumes, 7:30 AM | Monday | December 1 |
Last Day of Classes | Saturday | December 6 |
· Check out our newsgroup: news://newsstand.cit.cornell.edu/cornell.class.cs5410 (The server is newsstand.cit.cornell.edu)
· CS514 students who plan to use the CSUG lab should visit the new user web site to reset their passwords: http://www.csuglab.cornell.edu/userinfo
· Net-Print accounts, lab door and MSDNAA access will be activated shortly after classes begin.
Assignments: Basis for your CS514 grade. There will be three of them, weighted 25%/25%/50% in computing final grades.
Course Overview and Organization.
Lecture times, teaching staff, office hours, prerequisites, assignments and grading policy.
High-level listing of topics to be covered along with recommended readings.