%This style includes purely syntactical convention such as the choice of the
%GNU indentation style, and extends to commenting style and naming conventions.
We continuously refined the internal code documentation over several
-semesters, focusing on those
-portions that initially proved difficult to understand or confusing.
+semesters, focusing on those portions that initially proved difficult to understand.
\paragraph{Maximize Creative Freedom}
OS design involves a tremendous amount of creative freedom, both in the
-choice of algorithm and data structures. Our projects are designed to
+choice of algorithms and data structures. Our projects are designed to
stimulate creativity by avoiding the prescription of specific approaches
-to accomplish each project's goals. Instead, students must design their
+to accomplish each project's goals. Instead, students design their
own data structures and associated algorithms as much as possible.
\paragraph{Practice Test-driven Development}
%Test-driven development~\cite{Edwards}
-Each project includes a large number of test cases that is accessible
-to students, as shown in Table~\ref{table:tests}.
+Each project includes a large number of test cases that are accessible
+to students, as shown in Table~\ref{table:tests}.
They must implement the API that is exercised by these test cases.
Students are encouraged to add their own test cases.
is substantially similar to how user programs are being debugged.
\paragraph{Include Analysis Tools}
-Static and dynamic analysis tools are now being widely used; an OS course should
-be no exception. We have extended the QEMU emulator~\cite{Bellard2005QEMU} to
-perform tailored analyses that point out errors such as race conditions.
+Dynamic analysis tools are now being widely used in software development;
+an OS course should be no exception.
+In Section~\ref{sec:dynamicanalysis}, we describe how we
+extended the QEMU emulator~\cite{Bellard2005QEMU} to
+perform tailored analyses that find errors such as race conditions.
\paragraph{Provide Extensive and Structured Documentation}
If using an instructional system requires too much undocumented knowledge,
-the system is often not shared, or falls into disuse, because the learning curve
-for instructors wishing to use it is too steep and training teaching assistants is difficult.
+the system is often not shared or falls into disuse because the learning curve
+for instructors is too steep and training teaching assistants is difficult.
Pintos includes an extensive 129 page manual, a sample solution,
-and instructions for teaching assistants. The assignment documentation separates sections
-students must read from sections that merely provide supplemental information.
+and grading instructions for teaching assistants. The project documentation
+highlights sections students must read from sections that merely provide supplemental information.
%Even though Pintos uses an existing and complex architecture, our experience indicates
%that the manual is sufficient for most students.