Multicore computers are now the norm. Taking advantage of multiple cores requires parallel and concurrent programming. There is therefore a pressing need for courses that teach effective programming on multicore architectures. We believe that such courses should emphasize high-level abstractions for performance and correctness and be supported by tools. We present a set of freely available course materials for parallel and concurrent programming, along with a testing tool for performance and correctness concerns called Alpaca (A Lovely Parallelism And Concurrency Analyzer). These course materials can be used for a comprehensive parallel and concurrent programming course, a la carte throughout an existing curriculum, or as starting points for in-depth graduate special topics courses. We also discuss tradeoffs we made in terms of what to include in course materials.