Downloads
Materials and software
Module materials and tools are posted here as they are released.
| Deliverable | Description | Status |
|---|---|---|
| Foundations of Concurrent Computing | Seven units of notes, exercises, and visualization activities | In development |
| Fault Tolerance in Distributed Systems | Notes, exercises, and TLA+ and Promela specifications | In development |
| Autonomous vehicle module | ROS 2 and CARLA laboratory exercise and supporting artifacts | In development |
| Aviation systems module | Agent-based simulation models and exercises | In development |
| Visualization system | Timeline, causality, object-centric, and component views | Prototype in classroom testing |
| Instrumentation wrappers | pthreads, FreeRTOS, and ROS 2 libraries | pthreads prototype; FreeRTOS and ROS 2 in development |
| CEDL | Language, compiler, and interpreter for scripted concurrency demonstrations | Development begins in month 9 |
Status reflects the project plan as of the start of the award. See the timeline for the full schedule.
Pilot a module
For instructors
Modules are designed to drop into existing engineering courses, either as three- to four-hour units or as a short intensive workshop, and they carry their own formative exercises and summative problem sets. If you would like to pilot one or give feedback on a draft, get in touch.
For students
The tools are meant to be used, not just read about. The visualization system runs on ordinary desktop Linux and macOS for pthreads work, and extends to microcontrollers running FreeRTOS and robots running ROS 2. Materials will be posted here as they are released.
Prior work this builds on
The toolchain extends ThreadMentor and ConcurrentMentor, NSF-funded systems for teaching multithreaded programming through visualization that have anchored concurrency education at the team's institutions for two decades. ThreadMentor pairs a C++ class library implementing the synchronization abstractions used in concurrency pedagogy with a visualization system that shows the dynamic behavior of threaded programs. Instrumentation is built into the library, so student programs and the visualization run together without a separate instrumentation step.
This project modernizes that foundation and retargets it for engineering audiences: new instrumentation for ROS 2 and FreeRTOS, a rebuilt visualization interface, and packaging into modular curricular components.