COP 5570: Concurrent, Parallel, and Distributed Programming 

Fall 2018


TuTh 2:00PM - 3:15PM
Love 103

Course Description

This course provides an introduction to the advanced programming in the Unix environment. Topics to be covered include: concurrent programming with processes and threads, file systems, advanced (both blocking and non-blocking) I/O, signals, inter-process communications and synchronization, network programming, broadcast and multicast, client-server and peer-to-peer paradigm, among others. This course is meant for graduate students having substantial programming experience. In this course, you will acquire training in good programming techniques, while learning important programming topics in a Unix environment.

Course Objective:

          At the end of this course, you should be able to 

  1. Use standard UNIX operating system API's
  2. Develop concurrent programs with processes and threads
  3. Develop network programs
  4. Write portable programs


  1. Proficient in C/C++ (If you are not comfortable with the pointers in C, you are NOT ready for this class. )
  2. COP 4610 Operating Systems or equivalent
  3. User-level knowledge of UNIX and comfortable working in a Unix environment
  4. Having completed CNT5505 (Data and Computer Communications) or CNT 4504 (Introduction to Computer Networks) is a significant advantage.

Talk to me if you are not positive.



Workload and Grading:

  1. Two individual programming projects: 35% (15% for the first one and 20% for the second one)
  2. One term group project: 20%
  3. One mid-term exam: 20%
  4. One final exam: 25%

Grading of programming assignments will be based not only on functionality, portability, and correctness, but also on your understanding of your program. Individual programming assignment should be implemented using C/C++.

Each group for the term group project consists of up to 3 students. The project topic can be either selected by the group with the approval of the instructor or obtained from the instructor. Each project should have substantial software development and/or research components, where the knowledge acquired in this class can be applied. The project will be graded based on the final software developed, the presentation, and demo at the end of the semester. Group projects can be implemented using C/C++, Java, Python, or Perl.

Final letter grades

A [90-100]
A- [87-90)
B+ [84-87)
B [81-84)
B- [78-81)
C+ [75-78)
C [72-75)
C- [70-72)
D [60-70)
F <60

Course Policies:

Attendance Policy:

The university requires attendance in all classes, and it is also important to your learning. The attendance record may be provided to deans who request it. If your grade is just a little below the cutoff for a higher grade, your attendance will be one of the factors that we consider, in deciding whether to "bump" you up to the higher grade. Missing three or fewer lectures will be considered good attendance. 

Excused absences include documented illness, deaths in the immediate family and other documented crises, call to active military duty or jury duty, religious holy days, and official University activities. Accommodations for these excused absences will be made and will do so in a way that does not penalize students who have a valid excuse. Consideration will also be given to students whose dependent children experience serious illness.

You should let me know in advance, when possible, and submit the documentation I seek if you miss a class. You should make up for any materials missed due to absences.

Missed exam Policy:

A missed exam will be recorded as a grade of zero. We will follow the university rules regarding missed final exams (see, for all the exams, including the final exam.

Late Assignment Policy:

In order to enable us to provide timely solutions to assignments, we have the following policy regarding submission of late assignments.

Incomplete Grade (Grade of 'I') Policy:

The grade of 'I' will be assigned only under the following exceptional circumstances:
The Florida State University Academic Honor Policy outlines the University's expectations for the integrity of students'
academic work, the procedures for resolving alleged violations of those expectations, and the rights and responsibilities of students and faculty members throughout the process.  Students are responsible for reading the Academic Honor Policy and for living up to their pledge to . . . be honest and truthful and . . . [to] strive for personal and institutional integrity at Florida State University.  (Florida State University Academic Honor Policy, found at


Students with disabilities needing academic accommodation should:
(1) register with and provide documentation to the Student Disability Resource Center; and
(2) bring a letter to the instructor indicating the need for accommodation and what type.  This should be done during the first week of class.

This syllabus and other class materials are available in alternative format upon request.

For more information about services available to FSU students with disabilities, contact the:

Student Disability Resource Center
874 Traditions Way
108 Student Services Building
Florida State University
Tallahassee, FL 32306-4167
(850) 644-9566 (voice)
(850) 644-8504 (TDD)
(850) 644-7164

Academic Integrity:

Remember that the goal of programming assignments and homeworks is to enhance your analysis, reasoning, and programming skills. Indulging in academic dishonesty defeats this purpose apart from being unfair to other students. In case you have any questions about whether an act of collaboration may be construed as academic dishonesty, please clarify the issue with the instructor before you collaborate.

All students should follow FSU Academic Honor Code. You might be assigned a grade of 'F', if you are found to have indulged in academic dishonesty.

Syllabus Changes:

This syllabus is a guide for the course and is subject to change with advance notice.