Topics Schedule

Below is a list of lecture topics in the expected order of coverage, as well as significant milestones throughout the semester.
The list is provisional and subject to change.

TOPIC (reading)
Course intro
Basic concurrency: processes, threads, scheduling
Thread safety: interference, data races, locks, atomicity
Synchronization: atomicity, event ordering, Java synchronized
Synchronization: volatility, deadlock
Synchronization: more details on event ordering
Sharing objects: publication, mutability vs. immutability
Sharing objects: thread and stack confinement, thread locality
03/04: MIDTERM #1
Object composition: confinement and issues with deadlock
Synchronization: suspension / notification tools (eg: wait/notify)
Producer/Consumer Model
Synchronization tools: semaphores, latches, Futures, etc.
Concurrent collections: hash maps, array lists, queues
Synchronizers
Simple non-blocking algorithms using Compare and Set
Parallelization of loops, recursion
Tasks, executors, thread pools
Thread pools and recusion
04/15: MIDTERM #2
Data parallelism
Non-blocking algorithms
Distributed computing
Fork-join parallelism
FINAL EXAM - Wednesday, May 15 1:30-3:30pm



Menu Options

Announcements 
Syllabus 
Schedule 
Projects 
Materials 
Eclipse/CVS Info 
Grades Server 
Submit Server 
Office Hours 





























Web Accessibility