Course Logistics
Clemens 322
thayes2@buffalo.edu
Davis 113R
First meeting: Monday, August 24.
What this course is about
We will study the design and analysis of algorithms for parallel and distributed systems. We will see how algorithm design changes when many processors cooperate or when machines communicate over a network.
Topics include parallel computation, message-passing algorithms, clocks and causality, distributed snapshots and leader election, fault tolerance and consensus, peer-to-peer systems, and blockchains. Depending on the model, we will care about running time, work, communication, synchronization, and other relevant costs.
Semester Schedule
The schedule is tentative; topics may shift by a class or two. University dates below are based on UB's Fall 2026 academic calendar.
In progress--revised schedule will be posted later today!UB's standard Fall 2026 calendar has its last day of classes on Monday, December 7, a reading day on Tuesday, December 8, and final examinations from December 9 through December 16.
Assessment
Homework is practice and is not graded. You may use notes, the internet, and AI tools while working on it. The in-class homework assessments and exams test whether you can solve related problems on your own.
Course grades will be computed using the following weights:
| Component | Weight | Purpose |
|---|---|---|
| Participation (including Top Hat checks) | 15% | Class participation, including low-stakes questions that provide practice and feedback. See the discretionary policy below. |
| In-class homework assessments (6; top 4 counted) | 30% | Short, individual problems based on recent homework and lectures. Only the top four assessments count toward the course grade. |
| Midterm exams (2) | 20% combined | In-class exams covering the first and middle parts of the course. |
| Final exam | 35% | Comprehensive final exam. |
| Homework | 0% | Regular practice for the in-class assessments and exams. |
Participation and instructor discretion
Up to a third of the participation grade (up to 5 percentage points of the overall course grade) is at my discretion. I reserve the right to use this leeway to correct anything I perceive as imbalanced or unjust in the course grades. This discretionary portion is included within the 15% participation component.
How homework and assessments fit together
A typical cycle is: learn a topic in lecture, work through related homework, and then solve new problems on an in-class homework assessment.
Important: In-class assessments and exams are individual work. No internet, AI tools, notes, or collaboration are permitted unless explicitly authorized.
Grading Scale
Final letter grades are calculated based on your accumulated weighted score across all components, using the following cut-offs:
- A 93% – 100%
- A- 90% – 92%
- B+ 87% – 89%
- B 83% – 86%
- B- : 80% – 82%
- C+ 77% – 79%
- C 73% – 76%
- C- 70% – 72%
- D+ : 65% – 69%
- D : 60% – 64%
- F : Below 60%
Exams
There are two midterm exams and one comprehensive final exam. Expect questions on algorithm design, analysis, correctness, impossibility results, and the computational model under discussion.
Course Policies
Prerequisite background
You should already be comfortable with asymptotic notation, recurrence equations, basic data structures, and standard sequential algorithms, including fundamental graph and tree algorithms. This course builds on that material rather than reteaching it from scratch.
Academic integrity
All graded in-class work must be your own work. Homework may use outside resources, including AI assistance. AI assistance is not permitted on an in-class assessment or exam unless explicitly authorized.
All students are expected to follow University at Buffalo and department policies concerning academic integrity.
Accessibility and accommodations
Students who need disability-related accommodations should contact Accessibility Resources, 60 Capen Hall, 716-645-2608. Please share your Accommodation Memo with me so that we can arrange the approved accommodations.
Course materials
Please do not redistribute course-specific materials, assessments, solutions, or recordings without permission.
Resources
Textbook
Algorithms Sequential & Parallel, 3rd edition, R. Miller and L. Boxer, Cengage Learning, 2013.
Lecture notes and problem sets will be posted through the course LMS.
Communication
Use the course Piazza space for questions of general interest to the class. Use email for private matters.
Additional University Information
Inclusive Learning Environment
Students of all backgrounds and perspectives are welcome in this course. Treat classmates, course assistants, and the instructor with fairness and respect. Respectful disagreement and questions are welcome. If you have concerns about the classroom environment, please contact me privately.
Absences and Unexpected Difficulties
If illness, an emergency, or another unexpected difficulty prevents you from attending class or completing an assessment or exam, please contact me as soon as possible. Requests involving university-recognized excused absences or approved accommodations will be addressed consistently with applicable UB policies. The course-specific grading and assessment rules above continue to apply.
University Policy References
Students are expected to follow UB's Academic Integrity Policies and Student Code of Conduct. Consult these resources for university procedures and student rights and responsibilities.
Student Support Resources
If you are unsure whether disability-related accommodations may be appropriate, contact Accessibility Resources for guidance about requesting accommodations.
For support with personal or emotional difficulties, contact UB Counseling Services at 716-645-2720.