This page gives ideas for projects for a variety of subject areas. This list is rough and subject to change. Not all of the ideas are practical, and only a small number can be used for student projects. Eventually, each project should have notes describing which sequential and parallel topics of interest it will cover.
Some of these projects are for student implementation while others may be more suitable for classroom demonstration.
| Project | Sequential Concepts | Parallel Concepts | Parallel Payoff | Difficulty |
|---|---|---|---|---|
| Games | ||||
| Light Cycle Game | class design, inheritance | thread scheduling, synchronization, event driven programming | Design simplicity | 3 |
| Checkers AI | arrays (multi), recursion, GUI* | task allotment | Response time | 4 |
| Chess AI | arrays (multi), recursion, GUI* | task allotment | Response time | 4 |
| Connect Four AI | arrays (multi), recursion, GUI* | task allotment | Response time | 4 |
| Puzzles | ||||
| Word Hunt (DNA search) | arrays (multi), strings | task allotment | Essentially none | 2 |
| 15-Puzzle | arrays (multi), recursion, GUI* | task allotment | Speedup | 3 |
| 8-Queens | arrays (multi), recursion | task allotment | Speedup | 3 |
| Simulations | ||||
| Monte Carlo Approximation for Pi | arithmetic, GUI* | task allotment | Speedup | 1 |
| Life | arrays (multi), GUI* | task allotment, synchronization | Essentially none | 2 |
| Planetary Motion | arrays, arithmetic, GUI* | task allotment, synchronization | Speedup | 3 |
| Ideal Gas Simulation | dynamic data structures, arithmetic, GUI* | task allotment, synchronization | Speedup | 3 |
| Business Applications | ||||
| Spell Checking (with suggestions) | string manipulation, arrays (multi), file I/O, dynamic data structures | task allotment | Speedup | 4 |
| Multithreaded Banking | file I/O, dynamic data structures | non-determinism, synchronization | Response time | 5 |
| Stock Market | file I/O, dynamic data structures | non-determinism, synchronization | Response time | 5 |
| Online Auction | file I/O, dynamic data structures | non-determinism, synchronization | Response time | 5 |
| Web Server | file I/O, strings | non-determinism | Response time | 3 |
| Multithreaded Database | file I/O, strings, dynamic data structures | non-determinism, synchronization | Response time | 5 |
| Mathematics | ||||
| Matrix Multiplication | arrays (multi), arithmetic | task allotment | Speedup | 1 |
| Prime Number Testing | arithmetic | task allotment | Speedup | 1 |
| Direct Approximation of Pi | arithmetic | task allotment | Speedup | 1 |
| Sorting | dynamic data structures | task allotment, synchronization | Speedup | 3 |
* GUI can be supplied by the instructor or given as part of the assignment, depending on needs.