Welcome to COMP 339-439/Distributed Systems.
Warning
This syllabus should be mostly finalized by the time class meets on Monday, 26 August 2013. If any changes are made after this date, it will not affect the grading scheme and overall expectations of the course.
Please view our web pages for contact information.
This course is designed as a modern discussion of distributed computing systems, which represents one of the most important areas in academic and business computing today. When you hear about emerging ideas, e.g. service-oriented architecture and cloud computing, you are essentially hearing about distributed systems by any other name.
In this offering, we’ll explore (through lecture and class projects) current topics in distributed computing: interactive services, collaborative computing, peer-to-peer, grids, platforms and infrastructure as services (PaaS and IaaS), cloud computing, etc.
Various influential (and historical) distributed frameworks and technologies will be explored, e.g. DNS, CORBA, Java RMI, SOAP (XML-based RPCs), Message Passing Interface, and Globus. My version of this course also aims to introduce students to research methods and has a substantial written and oral communication component.
This offering will have a substantial technical component and a substantial scientific/technical writing component, leading to a substantial team project.
Students in this course are expected to have the minimum of exposure to data structures and algorithms (COMP 271) or equivalent work experience (three years in a job with computer science and software development requirements). You may be asked to provide a sample of your work if you are lacking in prerequisite background.
Systems programming (COMP 264), object-oriented programming (COMP 413), and operating systems (COMP 374) are all strongly recommended but are not required.
There are no required textbooks for this course. The hope is that you can learn everything you need to know through our lecture notes, supplemental readings (papers and web resources), and various open source projects that employ distributed design principles.
Distributed Systems: Concepts and Design by George Coulouris, Jean Dollimore, Tim Kindberg*
Distributed Systems: Principles and Paradigms by Andrew S. Tanenbaum and Maarten van Steen
Warning
We repeat: It is not required to own either or both of these books. You may even be able to borrow them from Loyola University Chicago’s library or the Chicago Public Library. In an effort to keep college affordable to all students, I am mostly phasing out required textbooks as of Fall 2013. The eventual goal is to have a robust online course, similar to what we have done for COMP 170.
This is subject to revision through the first week of classes only but the percentages are unlikely to change significantly.
The following is an explanation of the course breakdown:
All homework will be submitted using Bitbucket (bitbucket.org). In addition, for the team project, you must not only use bitbucket.org but there must be evidence of weekly progress to complete your project. This will be determined by looking at the commit logs of each team member. Details will be presented during class as we get closer to starting the project.
I do not take attendance in class. Significant absence from class, especially without any notification, will result in a zero grade for participation. If you anticipate a significant number of absences, I encourage you to consider dropping this course now and finding an alternative that better suits your schedule.
Late work is accepted but will carry a 20% penalty. Yes, this means that the highest grade you can earn for late work is a B. Owing to the nature of this semester’s offering, where we will be building up to a massive group project, it is crucial that work be completed on time.
Warning
You are strongly encouraged to find a partner for pair programming, especially on the warm-up assignments. Unlike other classes you may have taken, the focus is not only on individual celebrity but also on what you can accomplish as a group.
Our course embraces the trend of the industry where people have to learn to work with others and be productive in team situations. The team project is not an afterthought. It is deeply integrated into the social fabric of the course and will be an experience that you hopefully remember fondly when you are no longer a student but working on real-world problem solving in the future.
An unexcused absence results in a zero for the missed quiz.
An excused absence will only be granted for medical reasons or family emergencies. You may be asked to furnish evidence if either of these situations applies.
In the case of an excused absence, you must make up the quiz within one week. I will rarely make a quiz available early, owing to the fact that I do not always have the quiz ready until just a few days before the scheduled quiz date.
All quizzes are open notes and code. We will discuss the restrictions on computer usage in more detail as the first quiz date approaches.
In general, we observe the College of Arts and Sciences integrity policy found at http://www.luc.edu/cas/pdfs/CAS_Academic_Integrity_Statement_December_07.pdf.
You will be asked to sign your exam to indicate your intent to abide by these terms. More important than any terms and conditions is your own personal ethics. Please don’t ruin your future by doing something that you know isn’t right. We want to keep Distributed Systems fun for all.