********************************** Instruction For Teaching Assistant ********************************** Responsibility ============== #. Assignment grading Best to finish grading within one week after the due date. + Labs + Projects #. 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 :doc:`/cpp/ccpp-env` 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 ------------------------------ #. Download from Canvas Canvas assignment allows the download of a single zip file for each assignment. #. 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. #. 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. #. 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 :download:`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`` or ``pip3 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.