Course Syllabus

 

CompSci 131 - Parallel and Distributed Systems

 

Instructor: Prof. A. Veidenbaum

TA:            Sam Pyankov

 

Office Hours

Instructor:   Immediately after each lecture or by appointment.

TA:             During lab or discussion sessions or by appointment

 

Prerequisites: ICS53+53L or  CS143A (or equivalent)

 

Textbook: "Distributed Systems" by Maarten van Steen, Andrew Tannenbaum. 3rd edition

 

COURSE OVERVIEW

This course is an introduction to parallel and distributed systems and their programming. It examines major concepts involved in creating parallel/distributed software and applications using a collection of independent, communicating single-processor systems. Performance optimization of such systems is presented.

 

Major topics covered in this course are:

Overview of parallel and distributed systems

OS support, networking, communication

Parallel and Distributed programming and performance

Coordination: clocks, election, mutual exclusion, barriers

Consistency and replication

Consensus with failures and crashes

Deadlock and termination detection

 

The course is composed of three components: lectures, homework assignments, and programming assignments. The objective of the lectures is to introduce and help you understand the concepts.  The assignments aim to strengthen and enhance your understanding and prepare you for the exams. The assignments are based on lecture material and textbook readings. The focus of programming assignments is to put the concepts to practice and perform actual parallel/distributed programming.

 

GRADING

There will be 5 assignments, quizzes and a final exam.   All assignments will be posted on the class web page and must be submitted electronically via Canvas. Assignments will consist of 3 programming labs and 2 homeworks.

 

Assignments will be graded and need to be performed individually.

 

Lab programs will be checked for copying through MOSS.  There will be zero tolerance for cheating.

 

Your grade in CompSci131 will be based on your performance on assignments, quizzes and the exams.

The following approximate weights will be used:

Assignments - 35%

      30% programming (assignments “weights” depend on their degree of difficulty)

        5% homework   

Quizzes           - 5%

Midterm 1        - 25%

Midterm 2        - 35%

 

Late assignments will NOT be accepted  (exceptions for illness, etc. must be made, in writing, as soon as possible and before the due date)

 

Assignment re-grade requests are only considered for a period of 1 week following the date assignment scores were posted. You MUST write a cover sheet explaining why you believe a problem was mis-graded and return the assignment and the cover sheet to the TA.