Next: Synchronization
Up: Experience With Nachos Assignments
Previous: Experience With Nachos Assignments
- Use a debugger. Nachos programs simply cannot be debugged by
looking at source code or inserting print statements. Unfortunately,
that is what many students do (with obvious consequences). I found it
necessary to force students to learn to use a debugger (e.g., no help
in office hours otherwise).
- Use of code browsing tools (e.g., the emacs ``tags''
facility) greatly simplifies the reading and understanding of source
code.
- Students don't always test programs well. If it works on one
test case, they assume it works for all of them. For those studying
operating systems for the first time, designing test cases is
particularly difficult. When grading programs, it was not uncommon for
student-supplied test programs to work, with all of my test cases
failing. I found that I got much improved submissions by supplying
concrete test programs that students had a chance to experiment with
themselves.
- The Nachos assignments included in the distribution are very
general and leave out many details. I got much better results by
providing more detail about what needs to be done and how to do
it. Although students get a benefit greatly from figuring out things
on there own, I found too many students were getting lost and
frustrated. Students with weak backgrounds are especially
vulnerable. Later subsections (and indeed, this entire document)
provide examples of such additional details.
- Students have a tendency to try to solve the entire problem at
once, rather than one step at a time. This is particularly
problematical with Nachos, because students often don't understand the
big picture. I found it useful to break up an assignment into smaller
standalone pieces, each building on the previous pieces, with a rough
indication of the weight for each part. There are two benefits. First,
solving one component of an assignment frequently leads to a better
understanding of the issues necessary to solve subsequent
components. Second, students know how much credit they will receive
for the work done so far, and can better decide whether they should
keep working on a project or use their time in other ways.
Next: Synchronization
Up: Experience With Nachos Assignments
Previous: Experience With Nachos Assignments
Thomas Narten
Mon Feb 3 15:00:27 EST 1997