Commit 08cbb39a authored by Robert Ricci's avatar Robert Ricci

More details, including about how my scoring system works

parent 43d15218
Instructor at the beginning of the class:
1) Create a project in gitlab (cs6963-s14)
2) Adds all students to the project as Reporters
3) Creates another project (cs6963-s14-grading in this example))
4) Create one repo per student in the -grading project. Name it with the
1) Create a group in gitlab (cs6963-s14 in this example)
2) Add all students to the project as Reporters. This allows them to see
all repos in the project and fork them (into their own namespace), but
not push
3) Optional: Make TAs Developers in this project so that they can upload or
update the homework repo
4) Creates group project (cs6963-s14-grading in this example). Students
are *not* members of this project; however, the instructor and TAs are
(as "Masters") allowing them to see everything the students turn in
5) Create one repo per student in the -grading project. Name it with the
student's username (gtw in this example)
a) Add the student and whoever is reponsible for grading as Developers
a) Add the student to the repo as a Developer
b) If using gitmail, set this push hook: http://localhost:4577/?noarchive=1
This causes mail to be sent to the instructor, TAs, and appropriate
c) Push up an empty master branch (necessary to make gitlab happy)
(Note that this step can be done per group for group projects, there is no
fundamental reason it must be per student.)
6) Create a monster grading repo (locally) that has every student's grading
repo as remote:
5) Create a monster grading repo (locally) that has every student's grading
repo as remote
git init
git add remote gtw
add-student <USERNAME>
add-student can be found in scripts/ in this repo - it just adds the
student's repo as a remote and does step 5c above (but no other part of
step 5)
Also note that if you have TAs, everyone does this step locally - just
make sure not to push up a master branch to each grading repo more than
To hand out an assignment:
1) Create a new repo in cs6963-s14
......@@ -34,13 +55,49 @@ Student workflow:
1) Fetch from all student repos at once:
git fetch --all -n
1) Fetch from all student repos at once; in local grading repo,
(another script from scripts/, just does 'git fetch all -n')
run 'show-submissions <HW>' to see who submitted, when, what grading
has been done, etc.
2) For each student:
a) Check out the submitted branch
git checkout -b --no-track gtw-hw1-submit gtw/hw1-submit
checkout-homework <HW> <USERNAME>
This creates a local branch called '<HW>-graded-<STUDENT>' and checks
it out.
b) Do stuff, commit a graded version
See below for score.txt convention
c) Push up the graded branch
git push gtw HEAD:hw1-graded
The checkout-homework script copies a file from ~ens/assignments/<HW>/score.txt
if it exists into the current directory. This is a pretty free form text file,
but any line that starts with:
I ( / J)?
... where I and J are any integers (and / J is optional) is interpted as a
score. The file can otherwise contain whatever you want, it will be left alone.
All Is are added to get the student's total score, all Js (where present) are
added to give the total possible. The script total-score adds these up, and
creates (or replaces) the final line of the file with something that looks
Total score: XX / YY
commit-score puts this line in the first line of the commit message. Therefore,
you can figure out if you've graded any particular assignment by checking
for a branch called <HW>-graded-<STUDENT>, and looking for this at the
beginning of the log message. show-submissions knows how to do this; eventually,
I will write some scripts that add up scores for students across mutliple
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment