## CS5620:001 Fall 2017 Syllabus

**Syllabus for CS:5620:001 Fall 2017 **

Course Title: Distributed Systems and Algorithms

Course Meeting Times: TTh 11:00-12:15 in 1100 UCC starting 22 August, last day 8 December.

Course Instructor: Ted Herman

Office Hours: Monday 11:30-12:30 and 2:30-3:30. Generally any time on Monday after 10:30am can be arranged with some advanced notice. Wednesday 1:30-2:30. Other times on Wednesday are possible with advanced notice, though some other meetings from 3:30-5:00 have already been set up and are not available. Other times and other days are possible for office meetings, by appointment.

**Textbook**

There is no required textbook for this course. Some lectures will draw from standard textbooks on distributed algorithms, for instance texts by Attiya & Welch, Lynch, Tel, and Peleg. It should not be necessary to obtain these books. For motivation about distributed system topics there are also textbooks about distributed systems, for example Tanenbaum & Van Steen or Kshemkalyani & Singhal, however distributed systems are rapidly evolving beyond the material in textbooks (though fundamental principles still apply).

Instead of textbooks, notes will be available as PDF files (see ICON for these files); for some topics, students can find tutorials and technical papers online, in conference proceedings, or journals.

### Course Plan

### Student Expectations

**Required and Helpful Background**: a prerequisite for this course is to have taken some course on algorithms, so as to understand complexity terminology like "O(n/lg n) execution time"; also a course on operating systems should have been taken, so that concepts of mutual exclusion, deadlock, and threads are familiar. Implicitly required is basic knowledge of logic and proofs, such as encountered in typical introductory courses covering discrete mathematics.

**Homeworks**: homeworks will relate to assigned readings and lecture topics. Most homeworks will be written and due on paper in class; a few homeworks can be computing assignments, using tools to specify and test properties of algorithms.

**Exams**: exams are meant to be a check on student understanding and how well the student is keeping up with the lectures and assigned reading material. There will be approximately six exam events in class during the semester. There is no final exam in this course.

**Reports**: written reports exercise the student's analytic, comprehension and communication skills. Each student is expected to write two reports during the semester which will cover some assigned technical topic.

**Meetings**: each student is expected to meet with the instructor outside of class for discussion several times during the semester.

**Grading**: grades will be assigned, including +/- grades, based on homework scores, exam scores, reports, and student participation in class and meetings. Homework scores will count 40%, reports 20%, exam scores 35%, and in-class participation plus meetings (asking questions, perhaps occasional presentations) contribute 5% of the total.

### General Policies and Expectations

See the Syllabus Insert for standard college-wide policies. In particular, for this course, students are expected to be the original authors of work they submit or present. Hence, collaboration, obtaining solutions from outside resources, other students, experts, tutors, found programs on the internet, and other similar shortcuts are not allowed except by permission of the instructor.

University deadlines: visit the registrar site, click on calendars, then academic deadlines; then scroll by month or get a PDF by choosing Fall 2017.

### Other Boilerplate Required Information

The DEO for Computer Science is Prof Segre.

The administrative home for this course is CLAS.