Learned the ff:
- Sequential vs. parallel computing
- Shared vs. distributed memory
- Using multiples threads and processes
- Basic stages of a thread lifecycle
- Preventing data races
- Enforcing mutual exclusion
- Locks (deadlock/livelock)
- Checking for liveness