Instruction For Teaching Assistant

Responsibility

  1. Assignment grading

    Best to finish grading within one week after the due date.

    • Labs

    • Projects

  2. Student question answering

    • on Discord

    • by Email

Project Grading

Overview

Programming projects are given on Canvas as assignments. It require students to an implement application following the instruction. The grading is mostly functionality based, which means the 80-90% of points based on how the application compile and run. The rest of the grades require some brief code reviews.

Pre-requisites

  • A working development environment. Check the C/C++ Development Environment document for more details. Preferably a local environment. Linux, Mac OS or Windows WSL should all work well.

  • Knowledge on C++, CLI environment, and make

Workflow for Canvas Assignment

  1. Download from Canvas

    Canvas assignment allows the download of a single zip file for each assignment.

  2. Unzip and organize as individual directories

    A Python 3 script is available to automate the work but it is up to the TA to decide whether he want to use it. Take some time to learn and set up.

  3. Test run and grade

    The student submission is compiled, test-run and tested using make commands like make, make test-all, make test-run. You can check the project instruction for details.

  4. Update grades on Canvas

    Open the SpeedGrader, use to provided rubric to grade and leave brief feedbacks.

Workflow for GitHub Assignment

  • You may grade based on the autograding results from the GitHub Classroom interface.

  • Be careful with the late submission. You may need to look into the repository if a submission is late as GitHub Classroom is still working on the feature and the behavior is not consistent.

  • You can read code on GitHub website or download the code and run locally.

  • The GitHub command line tool is currently the best way to batch download the student submissions. It takes some time to learn and set up.

Resources And Tools

  • Submission prepare script

    • Prepare student submissions in individual directories

    • Python 3 and PyInvoke

      • Python3 is mostly pre-installed on Linux

      • install PyInvoke with the command pip install invoke

    • Usage

      • create a new directory

      • put the submissions.zip file downloaded from Canvas and tasks.py in the directory

      • Change to the directory in the terminal window

      • run inv organize in the directory in terminal

Policies

  • Late assignment

    Apply the penalty following this scheme: -10 < 1 day; -30 < 2 days

  • Resubmission

    Re-submissions are allowed only when the student has a good reason.

  • Appeal

    The TA can explain the grading details to the student. The appeal should be forwarded to the instructor.

Hints

  • Only fix problems for students if it can be done in very short time and minimal effort.

  • The student will lose all functionality points if their code does not compile using the make commands described in the instruction.

  • For advanced course like DSA 1 and 2, only read source code files for neatness, and style rather than correctness. No need to take points off for style unless it hurts readability badly.