Akdeniz University · Computer Engineering (English) · Semester 7 · 6 ECTS
An open study archive for this course. A week-by-week plan built from the official syllabus, plus working MPI and pthreads lab code you can compile and run.
| Component | Count | Weight |
|---|---|---|
| Midterm | 1 | 30% |
| Assignments | 5 | 20% |
| Final | 1 | 50% |
Five assignments — the highest assignment count of any course this semester.
| # | Topic | Note |
|---|---|---|
| 1 | Introduction to parallel programming | weeks/01 |
| 2 | Parallel programming platforms | weeks/02 |
| 3 | Principles of parallel algorithm design | weeks/03 |
| 4 | Basic communication operations I | weeks/04 |
| 5 | Basic communication operations II | weeks/05 |
| 6 | Analytical modeling of parallel programs | weeks/06 |
| 7 | Programming with message passing (MPI) | weeks/07 |
| 8 | Shared address space platforms | weeks/08 |
| 9 | Midterm | weeks/09 |
| 10 | Dense matrix algorithms I | weeks/10 |
| 11 | Dense matrix algorithms II | weeks/11 |
| 12 | Sorting I | weeks/12 |
| 13 | Sorting II | weeks/13 |
| 14 | Graph algorithms | weeks/14 |
1. Open the week you are on in weeks/ — goals, concepts with their
actual cost formulas, and a practice list.
2. This course is learned by running code, not by reading. Every week's
practice list points at something in labs/ to build and run.
# MPI
mpicc labs/mpi/openmpi_hello.c -o hello && mpirun -np 4 ./hello
# pthreads
gcc labs/shared-memory/mythread.c -o mythread -lpthread && ./mythread
# matrix multiplication, with the timing harness
cd labs/matrix-multiplication && ./test.shInstall MPI first: brew install open-mpi on macOS, apt install libopenmpi-dev openmpi-bin on Debian/Ubuntu.
3. Measure everything. The exam asks for speedup, efficiency and isoefficiency,
so get in the habit of timing at 1, 2, 4 and 8 processes and computing
S = T₁/T_p and E = S/p yourself.
4. Write under your own ## Notes — <Name> (<term>) heading at the bottom of each
week note — see Taking notes.
| Path | What it is |
|---|---|
labs/mpi/ |
Hello world, send/receive, scatter, find-max — the MPI starting points |
labs/shared-memory/ |
A pthreads example |
labs/matrix-multiplication/ |
Matrix multiply with a timing script, a visualizer, results, and a write-up on spatial locality |
labs/missing-numbers/ |
A standalone exercise |
Compiled binaries are ignored by git — build them yourself.
The lab code is shared and kept working; it is not filed by term because it is the course's permanent starting material.
assignments/2023-2024-spring-mustafa-arinmis/ holds a previous student's two
homeworks and midterm project from when the course was coded CSE 440. The midterm
report — parallel 5000×5000 matrix multiplication in MPI, with speedup and
efficiency measured against a single-processor baseline — is the clearest model of
what the course expects a report to look like.
The syllabus's only cited source is Grama, Gupta, Karypis & Kumar, Introduction to
Parallel Computing, 2nd ed., Addison-Wesley. The book itself is not here, but
the authors publish their own slides for every chapter and those are:
resources/slides/ — 12 decks, 773 slides, covering the whole
book. Every week note links the deck for its chapter.
Source: Ananth Grama's CS525 page, Purdue.
| Week | Chapter deck |
|---|---|
| 1 | Ch. 1 Introduction |
| 2 | Ch. 2 Parallel Programming Platforms |
| 3 | Ch. 3 Principles of Parallel Algorithm Design |
| 4-5 | Ch. 4 Basic Communication Operations |
| 6 | Ch. 5 Analytical Modeling |
| 7 | Ch. 7 Programming Message Passing Platforms |
| 8 | Ch. 6 Programming Shared Address Space Platforms |
| 10-11 | Ch. 8 Dense Matrix Algorithms |
| 12-13 | Ch. 9 Sorting |
| 14 | Ch. 10 Graph Algorithms |
Chapters 11 (discrete optimization) and 12 (dynamic programming) are also in
resources/slides/ — beyond the syllabus, but they connect straight to CSE 413.
README.md This page
course-info.md Glossary (Turkish ↔ English)
weeks/NN-*.md One file per week: the shared plan on top, everyone's notes below
labs/ Lab code, kept working
assignments/ Coursework, one folder per <term>-<person> — including a previous student's CSE 440 work
exams/ Past papers (none collected yet) and how to add one
resources/ Syllabus PDF, slides/ (the authors' chapter slides, 12 decks)
Open the week, scroll to the bottom, write under your own heading:
## Notes — <Name> (<term>)
### Lecture
### Worked out by hand
### Questions
### Exam-worthyAdd your heading below the existing ones and never edit someone else's section — different sections merge in git without conflicts. Everything under your own heading is yours. The shared plan at the top of the week is not — if the course changed, fix it there so the next person gets the corrected version.
| What | Who edits it | When |
|---|---|---|
Top of weeks/NN-*.md (goals, reading, practice) |
anyone | Only when the course itself changes — a new topic, a better reading, a correction. Never for personal notes. |
## Notes — <you> in a week file |
only you | Every week. This is your notebook. |
course-info.md, exams/README.md |
anyone | When you learn something durable: a new exam pattern, a better source. |
assignments/<term>-<you>/ |
only you | Your assignments, projects, submissions. Use a lowercase, hyphenated name — 2026-2027-fall-efe-kurucay, not Efe Kuruçay. Material from a term whose author is not known goes in assignments/<term>-unattributed/. |
resources/<term>/ |
anyone in that term | Slides, syllabus and lab sheets the instructor issued that term — they are the same for everyone taking the course that term. |
exams/ |
anyone | When you get hold of a new paper — blank or answered. Put the writer's surname in the filename (2026-2027-final-answered-altungoz.pdf). Exam papers never go under assignments/. |
Two students in different years never touch the same file except to improve the shared plan — which is the point.
| Term | Instructor | Schedule | Midterm | Final | Notes |
|---|---|---|---|---|---|
| Spring 2023-2024 | — | — | — | — | Mustafa Arınmış — two homeworks and a midterm project, from when the course was coded CSE 440: assignments/2023-2024-spring-mustafa-arinmis/ |
| Fall 2026-2027 | TBD — fill in during week 1 | TBD | TBD | TBD | Efe — in every week file |
When you take the course, add a row naming the instructor and dates, put your
assignments under assignments/<term>-<you>/ and your notes in the week files.
Keep the shared plan in weeks/ and course-info.md general.