Here are some projects I am interested in, and would like to recruit students to work on. If you are interested, please send me email.
For Software Design, I would like to record a lecture series and make it available for students on and off campus. I would like to get help with:
1) Setting up a mini-studio.
2) Recording the videos.
3) Editing the videos, especially figuring out a good way to cut back and forth between a screenshot and me with a whiteboard.
4) Maintaining the video archive (which probably just means posting them somewhere like YouTube, but also organizing them into something like a channel).
Status: Geoff Pleiss is working on this Spring 11.
The Cat Book is the book we use in Modeling and Simulation. It is a Free Textbook, but it is about a proprietary language, which limits the people who can use it. Octave is a Free Language that is mostly compatible with MATLAB, so it should be straightforward to make a version of the book for Octave.
One challenge is that the book warns readers about some gotchas that are specific to MATLAB, so some of them can be removed. But there might be some new Octave gotchas that we have to add (or we could fix Octave!).
Time permitting, you might also develop new examples or chapters for the Cat Book.
Prereq: you should know MATLAB and be good at figuring stuff out in a new language/environment. You should be a good writer, and you should be able to anticipate the problems new programmers will have.
Status: I have started this and I think it won't be too hard. Done in May 2011?
Sync is a thread simulator written in Python. This video shows some examples that use it. Currently it is limited because it can only execute one line of Python at a time; it can't handle program blocks. I would like someone to work on getting Sync to run code blocks. I don't think it will be super-hard, but you will need solid Python skills.
The Little Book of Semaphores is based on...wait for it... semaphores. An alternative model of software synchronization is CSP (communicating sequential processes), which is implemented in languages like Go and Occam. It would be challenging and interesting to translate the LBoS into the Little Book of CSP, using either Go or Occam to implement the examples. For this project, you should be a good programmer who can pick up a new language, and a good writer. If you have taken Software Systems (or another OS class) that is a plus.