Make.config: Use a different method to detect --build-id support.
[pintos-anon] / sigcse2009 / principles.tex
index 681234893245bc075e3d64764eb3873244fbb00f..9b015be34ca42462ed0f441a7a0a250e6fdf2ec0 100644 (file)
@@ -18,20 +18,19 @@ by example, the coding style we expect from students.
 %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.
 
@@ -56,17 +55,19 @@ As a result, Pintos kernels can be debugged in a manner that
 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.