COP 5570: Concurrent, Parallel, and Distributed Programming (Spring 2024)
Syllabus
General Information
- Place and times: HCB 0316, MW 3:05pm - 4:20pm
- Course URL: Canvas and http://www.cs.fsu.edu/~xyuan/cop5570
- Instructor: Porf. Xin Yuan
- Office hours: Monday and Wednesday 1:30pm-2:30pm or by appointment
- Office location: 168 Love Building
- Email: xyuan@cs.fsu.edu
- Phone: (850)644-9133
- Teaching Assistant: Tania Taami
- Office hours: TBD
- Office location: TBD
- Email: ttaami@fsu.edu
Course Description
This course provides an introduction to the advanced concurrent,
parallel, and distributed programming in the Unix environment.
Topics to be covered include: UNIX system call API's (process management,
file systems, advanced blocking and non-blocking I/O,
inter-process communication and synchronization, sockets),
concurrent programming with processes and threads,
network programming with sockets, client-server and peer-to-peer paradigm,
and parallel programming with OpenMP and MPI(Message Passing Interface)
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 the
Unix environment.
Course Objectives
At the end of the course, you should be able to
- Use standard UNIX operating system API's
- Develop concurrent programs with processes and threads
- Develop network programs with sockets
- Develop parallel programs with OpenMP and Message Passing Interface (MPI)
- Write portable programs.
Prerequisites
- Proficient in C/C++ (If you are not comfortable with the
pointers in C, you are NOT ready for this class. )
- COP 4610 Operating Systems or equivalent
- User-level knowledge of UNIX and comfortable working in
the UNIX environment
- Having completed CNT5505 (Data and Computer Communications)
or CNT 4504 (Introduction to Computer Networks) is a
significant advantage.
Textbooks
- Required textbook: "Advanced Programming in the Unix Environment",
Third Edition. By W. Richard Stevens and Stephen A. Rago, Addison Wesley. 2013
- Recommended textbooks:
``Unix Network Programming, Volume 1: The Socket Networking API,''
Third Edition. By W. Rickard Stevens, Bill Fenner, and Andrew M. Rudoff.
Addison-Wesley. 2004. ISBN 0-13-141155-1.
- Other References: Kernighan & Ritchie's The C Programming Language
Wordload and Grading
- 40% - Four individual programming assignments
- 15% - One term group project
- 20% - One midterm Exam
- 25% - One final Exam (cumulative)
Grading of programming assignments will be based not only on
functionality, portability, and correctness, but may also on your
understanding of your program. Individual programming assignment
should be implemented using C/C++.
The following grading policy will apply to all programming assignments
unless explicitly modified:
- A program with unknown bugs of any kind (even minor bugs)
will get at most 85% of the grade for the program.
- The first known (or uncertain) bug/unimplemented feature costs extra
8% of the project.
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
programming
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/demo at the end of the semester, and the interim
progress reports. The term project can be implemented in the language of your
choice (but you must be able to demo the project on linprog).
Final letter grades (tentative)
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+ |
[66-70) |
D |
[63-66) |
D- |
[60-73) |
F |
<60 |
Excused Absence Policy
- Excused absences include documented illness, deaths in the family
and other documented crises, call to active military duty or jury duty,
religious holy days, and official University activities. These absences
will be accommodated in a way that does not arbitrarily penalize students
who have a valid excuse. Consideration will also be given to students
whose dependent children experience serious illness.
- It is the student's responsibility to notify me as soon as possible
regarding any excused absences that affect graded work.
Miscellaneous Policies
- The course web page is your friend -- check and refresh it
frequently! It will be continually updated with essential course
materials, such as assignments, examples, and notes outlines. It will
also include other helpful supplements, such as instructions for using
the compilers, suggested exercises, and other useful help materials. It
is your responsibility to check the web page often for posted
materials.
- Students in the class should have a computer account from the
Computer Science Department (sign up for one if you don't already have
one), and this can and should be used to store project files and access
one of the compilers used in the course.
- Knowing the contents of this syllabus is each student's
responsibility. "I didn't know" in regards to a clearly stated course
policy will NOT be considered a valid excuse for anything during the
course
Academic Honor Policy
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
http://fda.fsu.edu/Academics/Academic-Honor-Policy.)
In addition to this information, please be aware of the
following:
- It is NOT APPROPRIATE to utilize websites such as: CHEGG.com, COURSEHERO.com, etc. DO NOT post our assignments to these websites to solicit answers,
and DO NOT use/view/utilize the 'solutions' found on these websites. Doing so is in direct violation of the FSU honor policy.
- It is NOT APPROPRIATE to work on assignments with other students or to
give or receive solutions to or from anyone before an assignment is due and handed in (by all parties).
- It is NOT APPROPRIATE to share any amount of code with your classmates. When you turn in code with your name on it, you are representing that work as
your own. If your submission matches that of another student, this is considered a violation of the Academic Honor Code.
- It is NOT APPROPRIATE to copy/paste, or use any amount of code written
by other people from any web sources, forums, etc. as your own solutions.
- It is NOT APPROPRIATE to post your code online. If I find your code online (unapproved online compilers, text sites, blogs, help sites, etc...), no ma\tter what the intent was in posting your code, this is automatically in violation of the Academic Honor Policy and the appropriate actions will be taken. If you are keeping code on sites like GitHub, make sure your code is not searchable and viewable by the public.
- Plagiarism detection tools, such as MOSS, will be used in the
grading process.
- A first violation of the honor code will result, at minimum
(but not limited to), a penalty of a 0 grade on the assignment or test
involved, along with a reduced letter grade in the course.
- Any second violation of the honor code will result in a Hearing
Referral under FSU Honor Code policies (this is an FSU requirement
for any case in which a student has a prior violation in ANY
course).
- A second violation in THIS course will result in a Hearing Referral
with the proposed minimum sanction of an F for the course.
Additionally, if you are found to violate the honor code by the
university honor court, the proposed minimum sanction will be
an F for the course.
Late Assignment Policy
In order to enable us to provide timely solutions to assignments, we have the
following policy regarding submission of late assignments.
- An assignment that is turned in no more than 24 hours late will be
scored with a 10% penalty.
- An assignment that is turned in more than 24 and no less than 48 hours
late will be scored with a 20% penalty.
- An assignment that is turned in more than 48 hours late will receive
the score of zero.
Incomplete Grade Policy
The grade of 'I' will be assigned only under the following exceptional
circumstances:
- The final exam is missed with an accepted excuse for the absence. In
this case, the final exam must be made up during the first two weeks of
the following semester.
Americans With Disabilities Act
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)
sdrc@admin.fsu.edu
http://www.disabilitycenter.fsu.edu/
Syllabus Changes:
This syllabus is a guide for the
course and is subject to change with advance notice.