Posting Solutions & Post-Mortems
Preparing Solutions
We typically release partial solutions for each assignment after the deadline (usually the following weekday). These will either be prepared by ISAs or the instructors (this should be discussed and decided at the beginning of term) but should be proofread by both ISAs and instructors before posting. Also, since we tend to reuse questions it is important to ask the instructors which questions to release (since we do not always release all of them). These solutions should follow the style guide, and should be correct (passing all correctness tests and including all required assertions). There are often many approaches to solving assignment questions, so the sample solutions should highlight the cleanest, most direct approach so that students can understand and learn from the solutions. We do not post sample solutions for the bonuses, as these tend to be re-used from year to year.
The following information is specific to CS136 (although it might be relevant to other courses).
There is a script to help generate the
LaTeX file for solutions called
make-sol.sh which can usually be found in public_html/current/protectPDF/work. It is not necessary to use, but can make things easier. There are instructions as to how to use this script inside it, but to summarize you will have to manually modify the assignment number, the name of the questions you are releasing solutions to, and the name of the file that contains the solution for each question you are releasing. You may also have to modify the path to these files in the script as well.
Once the make-sol.sh has been modified accordingly, run ./make-sol in the terminal in the same folder to generate a
LaTeX file called aX-solutions.tex. Then you can run the command pdflatex aX-solutions.tex to create the PDF file. (this command will also create two files called aX-solutions.aux and aX-solutions.log, these can be deleted).
Posting Sample Solutions
Sample solutions for CS136 are compiled into a single aX-solutions.pdf file and made available for students to download from the course website. When a student requests a solution set, protectPDF/watermark.sh will add a watermark of the student's userid to the pdf, and we save a record of the request in protectPDF/log.txt. This lets us track who has accessed the solutions, and, if solutions are being distributed around the internet, we can track down which student distributed these solutions. The process to posting sample solutions is as follows
- Prepare sample solutions as described above
- Put the created aX-solutions.pdf in the course account under public_html/current/protectPDF/aX-solutions.
- Note: This folder should already exist and there should be two folders for each assignment: aX-solutions/ and aX-post-mortem/. If they are not already there you will have to create them. Ensure both the aX-solutions directory and the aX-solutions.pdf file have 710 permissions (rwxr---- or rwxr-s—).
- Edit requestAssgnSolnCommon.php (which usually can be found in public_html/current/protect) to include an entry in $file_list for the assignment. This typically means uncommenting a line like "aX-solutions" => "Assignment X Solutions".
- Double-check that the solutions are properly accessible from the website https://student.cs.uwaterloo.ca/~cs136/current/protect/
Post-Mortems
Post-Mortems aim to summarize common errors in style, approaches to problems, and failed correctness tests for each assignment. There is a bit more freedom with generating Post-Mortems (there is no script or specific format it should be) however, there is a simple template that can be used called
a_-post-mortem.tex which can be found in the same folder as the ./make-sol.sh script if you desire to do so.
Post-mortems for CS136 are posted in the same way and same place as solutions (create the PDF, place it in the corresponding aX-post-mortem folder and comment out the line corresponding "aX-post-mortem” => "Assignment X Post-Mortem” line in requestAssgnSolnCommon.php to post it to the website with the watermark).
--
Simone Percy - 2021-02-18
Comments