Outline of lectures
-------------------
* Day 1 - Introduction and basics
    * Modern CPU architecture and concurrency
    * Introduction to Git
    * Test Driven Design
    * Dennard Scaling
* Day 2 - Basic tools for concurrency
    * Threads
    * Mutexes
    * Asynchronous operations
* Day 3 - More tools and case studies
    * Atomics and the C++ memory model
    * When memory is not synchronized
    * Creating a responsive GUI
* Day 4 - Techniques for concurrent software design
    * Improving performance and scalability
    * Task-based concurrency
* Day 5 - Distributed memory parallel concurrency
    * Introduction to MPI
    * Hybrid parallelism

Outline of lectures
-------------------
* Day 1 - Introduction and basics
    * Modern CPU architecture and concurrency
    * Introduction to Git
    * Test Driven Design
    * Dennard Scaling
* Day 2 - Basic tools for concurrency
    * Threads
    * Mutexes
    * Asynchronous operations
* Day 3 - More tools and techniques
    * Atomics and the C++ memory model
    * Designing concurrent software
    * Task-based concurrency
* Day 4 - Case studies
    * Case study: Atomics and object lifetime
    * Case study: Making a cache thread safe
    * Case study: Synchronizing a thread pool 
* Day 5 - Distributed memory parallel concurrency
    * Introduction to MPI
    * Hybrid parallelism

Update the schedule of lectures.
Update the schedule of lectures.
