CS302 - Parallelism and Concurrency in Software