Teaching Material


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.


"Build an Operating System from Scratch"



A teaching operating system that students write from scratch over a semester.

The project handouts:

I presented a paper on this project at the 2009 SIGCSE conference. You can download it here

Other Operating System Projects

"Build a Computer from Scratch"



A sequence of digital hardware labs for computer science students. After completing the labs, each student team will have assembled a small 8085 computer on a breadboard.

Lab handouts:
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.

Handouts:
I presented a paper on this project at the 2008 ASEE conference. You can download it here.

Mini-Pascal Compiler

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. The finished project must compile a simple recursive program, such as factorial.

Network Simulator

I developed these two Java projects for an undergraduate computer networks course.

Introduction to Computer Science

A couple of my favorite Introduction to CS projects:


Artificial Intelligence Demonstrations

I taught a one-credit AI "teaser" course for non-CS majors. These are demonstrations I wrote that illustrate different AI concepts.

Return to the main page