Marking Coursework

Overview

Every week, our students complete coursework which aims to
  • Put what they've learnt into practice
  • Stretch their abilities
  • Display progress in their learning
Each week's coursework consists of
  • Reading
  • Watching videos, either
    • Explainers
    • Introductions, or
    • Code Alongs
  • Coding Exercises
and
  • Coding Challenges
Trainees submit their coursework and we give feedback. This feedback is a vital part of our trainees' development.

Technical Mentorship: Process

1) Finding Coursework

Coursework including code is always hosted as a Pull Request on GitHub.
Every week of the course has some coursework attached to it. Trainees open a pull request and unit tests are run. You might want to set up code review assignment system in your buddy team. Where do students submit coursework?
You can find all of a students open pull requests by using https://github.com/pulls?q=is%3Apr+is%3Aopen+author%3A${author}
And you can fetch from the GH Search API like this if you want to set up a notification:
1
Exercise 1 (5 minutes)
2
3
Can you find the homework from these students?
4
5
1) Git Week 1 - Chris Owen
6
2) All of ChrisOwen101's open pull requests
Copied!

2) Giving Feedback

Be Positive
Above all else be positive and be kind. Our trainees want to learn and want to understand.
You should pull out small wins from bad code and encourage them to continue and try again. Many of our trainees suffer from low confidence and a well timed comment of motivation can be all it takes to push them to success.
If in doubt, consult our key rules.
Directing to Resources
If you can tell that someone has been struggling with a particular area of the homework one key way that you can help is to
  1. 1.
    Acknowledge that they have struggled
  2. 2.
    Re-assure them that many people struggle with such problems
  3. 3.
    Direct them to an online resource that will help them understand the problem better
We should try to shy away from writing long, complex explanations to trainee problems. This can be a time sink, especially when great resources already exist. Try to spend as much time directly interacting with your trainees as you can. In other words: talk to them.
Please note: Do not just link to documentation! Link to a tutorial or guide that explains the documentation.
Fixing Bugs
If the bug is a simple compilation or formatting error, suggest a line fix to the issue. An incorrect relative URL, for example, is a simple error that does not imply a deeper misunderstanding of the content and so can be safely fixed. If your trainee persistently makes typos, work with them on error checking in the IDE, rather than cleaning up on Github for them.
Prompting to Ask Questions
Make every error a teaching moment, mention that you see other people struggling with the same concepts and that asking questions on Slack can be a way to remedy their problems.
Explaining an Obvious Mental Model Issue
When a trainee implements code in a way that seems nonsensical the root cause can often be a misconception in how they have built their mental model. If you can obviously tell from their homework what their misunderstanding is then you are encouraged to correct them.
If they seem to fundamentally misunderstand a concept then it is best to refer them back to the source material.
Formatting
It never hurts to remind the trainee of the importance of proper formatting and indentation. They should have Prettier installed in VSCode.
All code that our trainees write should follow our Style Guide. It's ok to remind them to self review this.

Quickly Giving Feedback

Visual Studio Github Plug-in
The VS Code studio plug-in can help speed up moving between pull requests and making comments.
It allows you to make comments from directly inside and VS Code and allows each comparison between Pull Requests.

Use the Code Review tools directly on Github

Do code review directly in Github using the PR tools. This is an important skill to demonstrate to your trainees and a good one to develop yourself if you haven't done this much yourself. There's more stuff in the main docs around this, and you might find this useful: Google Code Review Guide.

3) Grading Coursework

It is important that we track how well someone is doing on the course, so we can support each person as an individual and respond effectively to their challenges. This can happen in a variety of places, but there should be one Single Source of Truth (SSOT).
  • Class Tracking Spreadsheet
  • Google Classroom
  • Trello Cards
Please check in with your team to find out where your SSOT is, how your team has chosen and how best to update it.
If you'd like to do more intensive marking with your trainees, there is further reading here:
Marking Guide | CodeYourFuture Syllabus

4) Label the Pull Request

When you have given feedback it is important you add the label "reviewed".
If the homework has not been completed you should also add the tag "not-completed"

5) Tracking progress

It is important to track our students in one central location, so information doesn't get lost and so we can see who needs help and with what. Most commonly, you will do this in a Google Spreadsheet.
Please consult your team as each school approaches this differently.

Where do trainees submit coursework?

Coursework is listed on the syllabus and the For example, this is the first lesson for HTML/CSS
And here is the relevant coursework
Last modified 4mo ago