Download the iPDC Toolkit of Resources to enable the integration of PDC concepts into your CS0 and CS1 curriculum.
Online book chapter: How to Design a Parallel Program
Workshop Software
These resources for Windows include a full distribution of Java 8, and a full distribution of the MinGW compiler. Both of these zip files can be unzip into a directory on your machine and used without installing. You can use these distributions if you do not already have your own installed version, or the version of Java or C++ that you have does not have the necessary support to run the workshop code.
Exercises and Labs
The following are the downloadable materials for the workshop hands-on exercises and labs. The workshop presenters wrote the material with their own individual style. Some are written as incomplete code examples, other are written in a laboratory format. See the links below for descriptions of each exercise/lab, code that you will complete as part of the exercise, and other resources. Workshop participants will be given the the completed exercises at the workshop.
CS1 | ||||
Exercise/Lab |
Language | Description | Resources |
Code |
Exercises in Python | Python | Various exercises that demonstrate parallelism in the Python programming language. |
|
exercises.zip |
Image Processing | C++ | This exercise guides you through creating a program to gray-scale and flip an image in parallel. This image processing exercise is written in lab form. | Description in HTML | |
Parallel Sum | C++ | This exercise guides you through creating a program to sum numbers in parallel in C++. It is written as a CS1 lab. | Description in HTML |
|
Parallel Sum | Java | This exercise guides you through creating a program to sum numbers in parallel in Java. It is written as a CS1 lab. |
Description in HTML |
complete_me.zip |
Matrix Multiply | Java | This exercise guides you through creating a program to multiply two matrices in parallel in Java. It is written as a CS1 lab. |
Description in HTML | complete_me.zip |
CS2 | ||||
Exercise/Lab | Language | Description | Resources |
Code |
Image Processing | C++ | This exercise guides you through creating a program to gray-scale and flip an image in parallel. Unlike the CS1 lab of the same name, this lab uses functional decompostion instead of data decomposition. This image processing exercise is written in lab form. | Description in HTML |
|
Parallel Sort | C++ | This exercise guides you throug creating a program to sort an array of numbers in parallel. This simple sort divides the array, sorts the pieces in parallel, and then does a final merge to finish. | Description in HTML |
|
Minimax | Java | This exercise guides you through creating a program to use the minimax algorithm to play tic-tac-toe in parallel. This image processing exercise is written in lab form. | Description in HTML |
complete_me.zip |
Radix Sort | Java | This exercise guides you through creating a program to sort number using the radix sort algorithm in parallel. This image processing exercise is written in lab form. | Description in HTML | complete_me.zip |