Parallel Programming in Java

,
Learn to use popular parallel Java frameworks to write parallel programs for a wide range of multicore platforms , while also learning about their theoretical foundations.

Concurrent Programming in Java

,
Learn to use basic concurrency constructs in Java such as threads, locks, accumulators, concurrent collections, and actors, as well as their theoretical foundations.

Distributed Programming in Java

,
Learn to use popular distributed programming frameworks from Java programs, as well as interfaces for locality-aware scheduling in multicore processors.

Initiating and Planning

,
Develop the tools to initiate a project plan, manage stakeholders and relationships, organize a team, develop a project charter, and build a business case for a project.