This repository holds a collection of labs originally developed for CSC 213, the operating systems course at Grinnell College. A description of these labs and experience using them over three sections of CSC 213 will appear at SPLASH-E 2019 in October. A preprint version of that paper is available at https://www.cs.grinnell.edu/~curtsinger/files/splash-e-2019.pdf.
The labs are typically run in the following sequence:
Worm
Implement a simple cooperative multitasking library to run a provided command-line game.
Password Cracker
Write a brute-force password cracker that can invert MD5 hashes.
Parallel Data Structures
Implement and test three thread-safe data structures.
GPU Warmup
Introduction to GPU programming to prepare for the next lab.
Sudoku
Write a GPU-based sudoku solver using constraint propagation.
Autograders and solutions are available for some of the labs. I will happily provide these to faculty at other colleges and universities. Please send your request by email.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.