This page contains computer science projects, supplemental materials, and Java demonstrations that I have developed for my classes. These project descriptions include detailed step-by-step instructions intended for undergraduate computer science students to reproduce my work. If you find them useful or interesting, please send me an email.
Lab 3: Make a traffic light controller using a ROM
Lab 4: Make a simple 8085 computer that counts to 15
Lab 5: Add on a serial port, make it communicate with a laptop
Last semester, one team made their computer into a synthesizer and programmed it to play the Super Mario theme. You can watch their youtube clip here.
I presented a paper on these labs at the 2008 CCSCE conference. You can download it here.
A few years ago, I built a simple 8088-based computer that includes an LCD display and homebrew keyboard.
I haven't got around to turning it into labs yet, but you can download my schematics and operating system for it here.
"Design and Simulate Your Own Processor"
A set of projects for an introductory computer organization course.
I presented a paper on this project at the 2008 ASEE conference. You can download it here.
This is my take on a fairly common sort of project for an undergraduate compilers course. Not having a compilers course, I offered it in Programming Language Design. Students write a compiler that compiles a small subset of Pascal into MIPS assembly (which they then run on SPIM). The projects are done entirely in Java.
Project 4: Implement procedures and local variables
The finished project must compile a simple recursive program, such as factorial.
I developed these two Java projects for an undergraduate computer networks course.
Data Link: Students are given a Network class that sends a packet down a wire, and a Wire class that randomly scrambles characters. They are required to write a Data Link class that breaks the message into frames, adds a checksum, and retransmits bad frames. For bonus credit, they must write a simple sliding window protocol. Supporting files can be downloaded here.
Network: Building on top of their data link project, students simulate a network layer. Students are given a topology of a network as a text file, and are required to implement a distance vector protocol. Supporting files can be downloaded here.