These tools have been useful to me in automating parts of TAing large classes. Please let me know if you have any questions.
-Geoff
A small python script
to extract all archives recursively. This is useful after you have downloaded all assignments from BBVista. I keep this script in my PATH, specifically in /usr/local/sbin. You'll have to run it twice (once to extract the main zip, then again to spider all of the assignments and extract them).
First of all you'll need moss. This program requires that you have the moss script in the same directory (MOSS/ in my example below). You can get the latest here
.
This program is a small bash script
that will copy and rename all .h and .cpp files with the students' ID numbers. I keep this script in a folder next to my assignment folders. For example, I might run it like:
$ pwd
/home/gao25/TA/HW2
$ ../MOSS/makeMoss
If all goes well this should send your files to the moss server which will respond with a URL. If it complains that some file is not ASCII, then you'll have to convert it. This can be done by using iconv on the original student file, then rerun makeMoss. The script tries to call iconv for you, but it may not detect all changes.
# file FILE.cpp
FILE.cpp UNICODE text
$ iconv -f UNICODE -t ASCII FILE.cpp > NEW.cpp
$ mv NEW.cpp FILE.cpp
To sort moss results by % match or by number of lines matched, use my Greasmonkey script
. If you have Greasemonkey installed, it should prompt you to install when you click the link. Greasemonkey
is a Firefox plugin.
If you ever upload homework grades via the "Import from spreadsheet" option on BBVista you'll have to manually release each student's grade. Instead you can use this iMacros script
. iMarcos
is a Firefox plugin. Once you have the script installed use it like this: