Catalog Description
Overview of parallel computing through study of parallel
programming. Topics include message passing, highly parallel
computations, partitioning and divide-and-conquer strategies,
synchronous computations, load balancing, programming with shared
memory systems, parallel sorting algorithms, numerical algorithms,
image processing, and parallel programming using current
technology. Offered periodically.
Prerequisites
CMSC 362 (Data Structures)
CMSC 370 (Computer Architecture)
Grade of C- or better in both
Outcomes
At the end of this course, a successful student will be able to
Textbook
An Introduction to Parallel Programming
Second Edition
Peter Pacheco and Matthew Malensek
Tentative Content
Other topics may be covered as necessary or if there's time and sufficient interest. Readings will be frequently assigned. Most exam material will come from the lectures and assignments.
Grade Breakdown
Final grades will be assigned using the standard 100-point scale.
| Percentage | Grade |
|---|---|
| 93+ | A |
| 90 – 92 | A- |
| 87 – 89 | B+ |
| 83 – 86 | B |
| 80 – 82 | B- |
| 77 – 79 | C+ |
| 73 – 76 | C |
| 70 – 72 | C- |
| 67 – 69 | D+ |
| 63 – 66 | D |
| 60 – 62 | D- |
| 59- | F |
Attendance
You are expected to attend class and lab, read the textbook, complete
assigned problems, participate in class discussions, and work
productively during problem sessions and labs. Lab attendance is
REQUIRED. Not attending a lab or leaving before completing all
outstanding assignments will result in a grade reduction of 2% per
class period missed.
Classroom Civility
Arrive at class promptly, prepared and ready to participate. Set
your phone to silent mode and, except in cases of emergency, remain
in the classroom for the duration of the meeting. If it is necessary
to leave or enter a room once class has begun, do so quietly and
with as little disruption as possible. Avoid talking which may be
disruptive to your fellow students and professor, avoid phone use,
and avoid using a laptop for a purpose other than note-taking.
You will asked to leave the classroom if you violate one of the principles above, or in some other way disrupt the class, and if this occurs more than TWICE, you may be expelled from the course.
Late Policy
Late submissions will not be accepted. If your assignment is
incomplete, submit it for possible partial credit.
Makeup exams will not be given — if you do NOT take an exam at the scheduled time AND location, you will receive a zero. Exceptions may be made at my discretion for truly extraordinary circumstances.
Graded Work
Several assignments will be given. Some will require a computer, others may not. Some labs may need to be completed by the end of the period, and some may be for extra credit only. For computer problems, you may be asked to demo and explain your solution to receive credit. Missing a lab will result in a score of zero, and no makeups will be given. Unless otherwise specified, you may complete assignments with a partner.
Format code according to these REQUIREMENTS. It is imperative that your code is neatly formatted (proper indentation and use of whitespace) and well-documented (comments, identifiers). Correct, but non-compliant, programs will not be accepted. Note well the format of programs distributed in class. A good code editor will help ensure your code is properly formatted.
Programs must compile and run for any credit. Developing your programs incrementally can provide assurance that you will receive some credit for your work.
We will use the Linux Lab (Caputo 130), which has 27 PCs which run a Linux operating system. See Linux Lab for more details.
Unannounced quizzes may be given during any class period.
Two examinations (including a final) will be given. Each MUST be taken in the lab on one of the lab machines (unless you have an accomodation from Learning Services). The exams will cover material from the lectures and assignments.
Exams are closed book, notes, calculator, and neighbor. Only a pen or pencil is allowed.
For all ONLINE exams, at a minimum the following will be expected.
Teams of at most three students will be formed to complete a final project. The project will involve solving a non-trivial problem using a parallel algorithm implemented using a parallel language or library, one that was not typically not discussed in class. Each team will submit a project proposal, which must be approved by the instructor. At the end of the term, each team will present their work. The presentation must include the following: a clear problem definition, solution design and implementation, results, a performance analysis, and future work.
Academic Honesty
I encourage you to ask me questions — this is always the safest approach. You can do so in person or via email. Tutors are also available. We also have a CS Discord server.
I expect you to complete assignments with ONLY your partner (unless otherwise specified). You MAY discuss syntax, compiler errors, example code, and concepts with others, but NOT the details of a homework problem solution. A good litmus test is "Would I be comfortable having this discussion in front of the professor?". If not, you are likely engaging in inappropriate collaboration. You may NOT copy a partial or full solution from another source. You may NOT use the internet for assignment hints, strategies, OR solutions. If you do so, you are committing academic dishonesty, which may result in failure of the course. Obtaining a solution on the Internet or elsewhere and submitting it as your own work is plagiarism and will result in SEVERE disciplinary measures. Be sure you can explain every step of every solution you submit.
Academic dishonesty WILL be reported to the department chair and provost.
Consult MU's Academic Honesty Policy for more details.
Generative AI Usage
The use of generative AI tools (ChatGPT, Gemini, etc.) to complete an assignment will be considered plagiarism, as defined in the Millersville University Student Handbook. This will result in a grade of ZERO for the assignment. Subsequent use of such software can result in automatic failure of the course or even expulsion from the university.
Title IX Reporting
Millersville University and its faculty are committed to assuring a safe and productive educational environment for all students. In order to meet this commitment and to comply with Title IX of the Education Amendments of 1972 and guidance from the Office for Civil Rights, Title IX requires University faculty members to report incidents of sexual discrimination, including sexual violence, shared by students to the University's Title IX Coordinator. Accordingly, if a student shares information about any incidents of sexual discrimination or sexual violence during a classroom discussion, in a writing assignment for a class, or in other contexts, faculty must report that information to the Title IX Coordinator. This information will only be shared with the Title IX Coordinator, who is the individual on campus designated to respond to reports of discrimination or sexual violence. While the Title IX Coordinator is not a confidential source of support, they will address matters reported to them with sensitivity and will keep your information as private as possible.
Additionally, faculty members are obligated to report sexual violence or any other abuse of a student who was, or is a child (a person under 18 years of age) when the abuse allegedly occurred, to the person designated in the University's Protection of Minors policy.
Information regarding the reporting of sexual violence and the resources that are available to victims of sexual violence are set forth at www.millersville.edu/titleix.
Counseling Resources
Students sometimes face mental health or drug/alcohol challenges in their academic careers that interfere with their academic performance and goals. Millersville University is a caring community and resources are available to assist students who are dealing with problems. The Counseling Center (871-7821) is an important resource for both mental health and substance abuse issues. Additional resources include Health Services (871-5250), Center for Health Education & Promotion (871-4141), Campus Ministries, and Learning Services (871-5554).