Thinking in ParallelAdopting the TCPP Core Curriculum
in Computer Systems Principles
Tim RichardsUniversity of Massachusetts Amherst
Computer Systems Principles
A Core Course in Computer SystemsUMass Amherst
Computer Science Department
To teach students fundamentalprinciples and techniques incomputer systems and howto program them.
Hardware
Software
Problem
Introducing parallelism intoan existing course is difficult
Program Representation
Architecture
Virtual Memory
Memory Management
First Half
Process & Exceptions
Threads
Synchronization
Network Programming
Second Half
Problem
Introducing parallelism intoan existing course is difficult
Program Representation
Architecture
Virtual Memory
Memory Management
First Half
Process & Exceptions
Threads
Synchronization
Network Programming
Second HalfAbrupt Switch
from sequential to parallel
programming model
Gap in Understanding
Goal #1Re-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 problemsin parallelism, concurrency,
& synchronization
Goal #2Migrate 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.
29%
44%
13%
14%
Understanding Parallelism (Start of Course)
NoneLittleSatisfactoryModerateExellent
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.
2%
14%
40%
39%
5%
Understanding Parallelism (End of Course)
NoneLittleSatisfactoryModerateExellent