Thinking in Parallel Adopting the TCPP Core Curriculum in Computer Systems Principles Tim Richards University of Massachusetts Amherst
Computer Systems Principles A Core Course in Computer Systems UMass Amherst Computer Science Department To teach students fundamental principles and techniques in computer systems and how to program them. Hardware Software
Problem Introducing parallelism into an existing course is difficult Program Representation Architecture Virtual Memory Memory Management First Half Process & Exceptions Threads Synchronization Network Programming Second Half
Problem Introducing parallelism into an existing course is difficult Program Representation Architecture Virtual Memory Memory Management First Half Process & Exceptions Threads Synchronization Network Programming Second Half Abrupt Switch from sequential to parallel programming model Gap in Understanding
Goal #1 Re-focus existing course material to make parallelism a common thread Program Representation Architecture Virtual Memory Memory Management First Half Thinking in Parallel Multi-Processing in Life & Shell Pipelines, ILP, Multicore, GPUs Processing in Parallel
Enhanced assignments to include problems in parallelism, concurrency, & synchronization Enhanced assignments to include problems in parallelism, concurrency, & synchronization Goal #2 Migrate course material over time, teach students to think in parallel early, to reduce gap in understanding Program Representation Architecture Virtual Memory Memory Management First Half Thinking in Parallel Multi-Processing in Life & Shell Pipelines, ILP, Multicore, GPUs Processing in Parallel
Results Introducing parallelism incrementally in existing course infrastructure is easy. Making parallelism a common thread improved student success rates in project assignments. Improved discussion and understanding in class and online forums. Increased overall student performance in course.
Survey Results S13 Introducing parallelism incrementally in existing course infrastructure is easy. Making parallelism a common thread improved student success rates in project assignments. Improved discussion and understanding in class and online forums. Increased overall student performance in course.
Survey Results S13 Introducing parallelism incrementally in existing course infrastructure is easy. Making parallelism a common thread improved student success rates in project assignments. Improved discussion and understanding in class and online forums. Increased overall student performance in course.
Thanks! Tim Richards University of Massachusetts Amherst Computer Science Department