Syllabus

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.

Instructors

George K. Thiruvathukal (primary instructor)
Professor of Computer Science
Joseph Kaylor (co-instructor)
Professional in Residence

Please view our web pages for contact information.

Additional Sites

Piazza (see Sakai for link to join)

Synopsis

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.

Prerequisites

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.

Course Requirements and Grade Breakdown

This is subject to revision through the first week of classes only but the percentages are unlikely to change significantly.

  • Warm-up Distributed Programming Assignments (25%)
  • Participation in Piazza Group (15%)
  • Quizzes (20%)
  • Written Lecture on a Distributed Topic (20%)
  • Group Project (20%)

The following is an explanation of the course breakdown:

Submitting Homework and Projects

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.

Attendance Policy

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 Policy

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.

Quiz/Exam Attendance Policy

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.

Academic Integrity Policy

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.