X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=sigcse2009%2Fprinciples.tex;h=9b015be34ca42462ed0f441a7a0a250e6fdf2ec0;hb=2e7e4557b7f84a1377d38c1b4db544251bcec317;hp=681234893245bc075e3d64764eb3873244fbb00f;hpb=02d9affcb344f1ebc4253c59230fea7119469a89;p=pintos-anon diff --git a/sigcse2009/principles.tex b/sigcse2009/principles.tex index 6812348..9b015be 100644 --- a/sigcse2009/principles.tex +++ b/sigcse2009/principles.tex @@ -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.