First, I am going to use Modern Operating Systems by Andrew Tanenbaum. I love his textbooks and all CS majors should have and have read at least one of them. Furthermore, I am pondering giving an entirely new twist to the lab, one where I don't ask for big programming projects, but rather turn it into a study session. Since you need to be motivated to attend and work, I'll have to give a few quizzes and a few in-class exercises. The trouble with programming projects is that they are so difficult to do in such a short amount of time with this immense material.
Most projects end up either being too simplistic, or too monstrous.
I would rather that you study real OS code, and some other code like RPCs and RMI, and really get some depth of understanding, than prove to me that you can hack away at some C or Java code of dubious value. But maybe it is time to try something different, hopefully more fun and relaxing. I like this course. Operating systems are the heart of what gives a computer its personality and there are lots of controversial issues. I have always been troubled and amazed at the OS zealots and bigots, so I wanted to make sure that I was not an OS bigot, too.