CSC 376 Distributed Systems
Fall 2017-2018
TTh 11:50am - 1:20pm in CDM 224
Karen Heart, MS, Instructor
kheart@depaul.edu
(312)362-1469
Syllabus
Last revised: 8-28-17
Summary of the course
This course provides an introduction to distributed systems, primarily through a focus on the design and development of software that transmits information across networks. Topics will include some but, perhaps, not all of the following: the architecture of distributed systems; networking; synchronous and asynchronous protocols network programming; remote procedure calls; threading and shared memory concurrency; cryptography and security.
Textbooks and printed resources
Java Network Programming (4th edition), E. R. Harold. O'Reilly & Associates, 2013, Print ISBN: 978-1449357672.
The textbook is not required and no reading assignments will be given from it. It is a useful resource for learning the programming techniques in which you must develop basic proficiency in order to pass this course.
Prerequisites
CSC 301, 383, or CSC 393; and CSC 374
Office Hours
During classes, I will be in my office, CDM 838, as follows:
- T 2:00pm - 3:00pm
- W 1:30pm - 3:00pm
- Th 2:00pm - 3:00pm
During Finals week, I will be in my office as follows:
- T 2:30pm - 3:30pm
- W 1:00pm - 2:30pm
- Th 2:00pm - 3:00pm
- Th 3:30pm - 4:30pm
Approach, Exercises, and Grading
Overview
This course focuses on the implementation of distributed systems using a system level library. The programming languages used will be Python and Java. Ongoing programming projects will serve as the main focus on the course. Additionally, quizzes covering various aspects of networking and related topics will also be assigned. Your understanding of the material will be tested through these assignments and a final project. Further details will be posted on the class website, which is on Desire2Learn (D2L).
Approach
- This course covers a great many concepts and technologies, some discussed in brief while others are investigated in greater detail. A primary goal of the course is to apprise the students of the body of knowledge regarding distributed systems. An equally important goal is for the students to develop some level of proficiency at developing a simple distributed system.
Exercises
- The primary exercises will involve building distributed systems from scratch. Four projects will be assigned, each progressively more difficult, which are designed to develop proficiency in performing system level tasks that underpin distributed systems. You should complete these exercises individually in order to maximize your benefit; however, you may discuss them with your classmates.
- For each exercise, you will create a video in which you step through each line of your source code and briefly explain what it does. You will post your video to YouTube as a non-searchable video. You will submit your source code and the URL of your video to the Submissions folder on D2L.
- The official platform for this course is amd64 (64-bit) Ubuntu Server 16.04 LTS "Xenial Xerus". Moreover, the programming languages that you may use for assignments are limited to the following:
- the Python version that comes with Ubuntu Server, which is Python 3.5.2; and
- OpenJDK version 1.8.0_131 of Java
Your exercise submissions will be graded only on this platform. You are responsible for securing a working Ubuntu Server environment in order to test your work; however, I will supply specific instructions for downloading and installing it as a Virtual Machine (VM) using the Virtualbox hypervisor. For each programming exercise, you will be supplied with tools that are designed to assess your code's performance; these tools are designed to run on this version of Ubuntu Server. Consequently, you will be able to readily determine precisely how well your code achieves the goals of each exercise. You may develop your programs on another platform; however, for purposes of grading, your code must compile, link, and execute on the official platform for this class. Programs that fail to compile, link, or execute receive zero (0) points for that exercise.
- WARNING: If you code in Java, you may not create any packages. If your code contains ANY package statements, your submission will receive zero (0) points for that exercise. NOTE: Some Java tools create packages automatically; therefore, you are responsible for removing any package statement(s) added by the tool you are using.
- Programming assignments will be accepted until the beginning of the class session during which a solution is discussed. My intent is to discuss the solution on the due date; therefore, you may not rely on having additional time. You may revise your code and resubmit it as often as you like until the date that I discuss a sample solution in class. Your grade will be the score of your last, timely submission.
Quizzes
- I will provide sets of questions and answers on D2L, consisting mainly of problems involving protocols and infrastructure. You are expected to learn this material, although it will be covered during class.
- The quizzes cover this material and will be conducted online through D2L.
Grading
- The grade for the course will be the sum of the points earned as follows:
- The number of points that each programming exercise is worth will be provided with the exercise. In total, the programming exercises are worth 50 points.
- The quizzes are also worth different numbers of points but total 26 points.
- The final project, in lieu of a final exam, is worth 24 points.
- NOTE: I will not curve the course grades; therefore, you must earn at least 70 points in order to pass the course.
Policy on Working Together
Each student is expected to turn in original work for the assignments and final project. Copying code or other documents from another person is considered a serious violation of the university's academic integrity policy (see below).
Course Schedule
TBD
Attendance
Attendance is optional although encouraged.
Academic Integrity and Plagiarism
This course will be subject to the university's academic integrity policy. More information can be found at http://academicintegrity.depaul.edu/. If you have any questions be sure to consult with your professor.
Academic Policies
All students are required to manage their class schedules each term in accordance with the deadlines for enrolling and withdrawing as indicated in the University Academic Calendar. Information on enrollment, withdrawal, grading and incompletes can be found at: http://cdm.depaul.edu/enrollment.
Students with Disabilities
Students who feel they may need an accommodation based on the impact of a disability should contact the instructor privately to discuss their specific needs. All discussions will remain confidential. To ensure that you receive the most appropriate accommodation based on your needs, contact the instructor as early as possible in the quarter (preferably within the first week of class), and make sure that you have contacted the Center for Students with Disabilities (CSD) at: csd@depaul.edu.
Lewis Center 1420, 25 East Jackson Blvd.
Phone number: (312)362-8002
Fax: (312)362-6544
TTY: (773)325.7296
Online Course Evaluations
Evaluations are a way for students to provide valuable feedback regarding their instructor and the course. Detailed feedback will enable the instructor to continuously tailor teaching methods and course content to meet the learning goals of the course and the academic needs of the students. They are a requirement of the course and are key to continue to provide you with the highest quality of teaching. The evaluations are anonymous; the instructor and administration do not track who entered what responses. A program is used to check if the student completed the evaluations, but the evaluation is completely separate from the student’s identity. Since 100% participation is our goal, students are sent periodic reminders over three weeks. Students do not receive reminders once they complete the evaluation. Students complete the evaluation online in CampusConnect.
Changes to Syllabus
This syllabus is subject to change as necessary during the quarter. If a change occurs, it will be thoroughly addressed during class, posted under Announcements in D2L and sent via email.
School Policies
Policies of the school are explained on the webpage for this course on my.cdm.depaul.edu.