How to teach OS

Hi, I have a pedagogical question.
If you (a developer) were teaching a first level college course in
operating systems with the goal of (eventually) transforming each student
into a *BSD developer, then how would you teach the course?
Specifically, what programming assignments would you have? What material
would you cover?
When you took your first course in OSes, what was wrong with it? What
would you have taught yourself then?
I know these kinds of questions frequently pop-up on mailing lists (how do
I become a developer, etc??), but I'm asking these questions with the
intention of suggesting your ideas to my instructor so that I might be
able to do them as assignments (and get grades for them).
Thank you, Zera Holladay