This document provides an overview of a course on programming massively parallel processors using CUDA. The course goals are to teach students how to achieve high performance, functionality, maintainability and scalability when programming parallel processors. Students will learn principles and patterns of parallel programming, processor architecture and programming tools and techniques. The course will be taught at MIT by Nicolas Pinto and feature guest lectures from NVIDIA researchers on GPU computing and scientific applications. Students will complete assignments, work in teams on projects and have access to over 30 GPUs and other hardware resources.