Grading

  1. Grading is based on the 10 workbooks (40%, lowest two dropped), two projects (20%), one group project (10%), and the exams (20%), and in-class quizzes (10%, lowest four dropped).
  2. We will consider dropped in-class quizzes to adjust your grade at the end.

Canvas cannot compute your grade for you. It does not correctly deal with the way we handle dropping scores.

Your grade in this class will be determined by:

  1. (40%) Your total score on the 10 workbooks. Only one or two large exercises will be graded out of 5, and the remaining exercises are for practice (solutions will be posted before the due dates).
  • 5 - completed most of the advanced items (75%+) plus something creative or technically challenging; submission of the gallery files with screenshot and recording is required.
  • 4 - completed most of the advanced items (75%+).
  • 3 - completed some advanced items (50%+).
  • 2 - completed all basic items.
  • 1 - any submission.

To get 3-5, some advanced items require “Note” on the Workbook Form to explain how the grader should view or interact with your work. To get 5, you should also include explanations of the things you completed that you consider creative or technically challenging in the “Note” on the Workbook Form.

  1. (20%) Your grade on the projects (which are bigger workbooks). Same grading scheme as the workbooks (but double the points).
  • 9-10 - completed most of the advanced items (75%+) plus something creative or technically challenging; submission of the gallery files with screenshot and recording is required.
  • 7-8 - completed most of the advanced items (75%+).
  • 5-6 - completed some advanced items (50%+).
  • 3-4 - completed all basic items.
  • 1-2 - any submission.
  1. (10%) Your grade out of 10 on the group project (1 - 4 students): the grade will be based on the ranking in the class. You can also earn a maximum of 5 additional points for attending the student presentations, rating the other students’ projects and giving feedback.
  • 10 - top 10% of groups
  • 9 - next 10% of groups
  • 8 - next 10% of groups
  • 1 - next 10% of groups
  1. (20%) Your exam grades. There will be 2 exams.

  2. (10%) Your in-class quiz grades. They must be completed on TopHat during the lectures.

All class assignments will be graded on a point scale and converted to letter grades at the end. The class will use the following point scale:

  • 91 and above A - the University does not award A+, but you can earn that on assignments and exams. You may score more than 100 on individual assignments.
  • 86-90 AB
  • 81-85 B
  • 76-80 BC
  • 71-75 C
  • 61-70 D (the university does not give a “DC” grade)
  • below 60 F

Workbooks, project, exams, and in-class quizzes will provide points on this scale.

Canvas cannot compute your grade for you.

Stochastic Grading

We have limited resources for assessing student work. We can’t check everything. Therefore, we won’t. For some things (exam questions, items in workbooks), we might not actually check your work - but will just give you the points you reported in the Canvas hand-in assignment. We call this “stochastic” grading because we will check only some of the assignments chosen at random.

A few things to note about this:

  • Just because you got points for something, doesn’t mean you got it correct. We will generally release the answers to things so you can check yourself.
  • If you request a regrade, we may check something that wasn’t graded and find out that you didn’t deserve points.

Code Similarity

If you find code or ideas from other students, on the Internet, or generated using large language models (for example GPT),

  • You must give proper attribution (comments in the .js file), including name and ID of the student, or link to the web page, or prompt used for the large language model, and
  • You should rewrite the code yourself, but if you are unable to rewrite the code, you must add documentation (comments in the .js file) demonstrating that you understand what each line of the code is doing.

If your code is flagged during our code similarity check and you do not have sufficient documentation demonstrating your understanding of the code (or if your documentation is also identical to the ones written by the other student),

  • Your code will be submitted to the Office of Student Conduct OSC and we will suggest a grade of 0 for the whole workbook for the first offense, and a grade of F for the whole course for the second offense.

Note: allowing another student to copy your code and not making sure the student is giving proper attribution is also considered an academic offense (except if your code is stolen by another student without permission).

Generative AI Tools

You are permitted to use “Generative AI Tools” (such as ChatGPT, GitHub Copilot, and others) according to a set of rules. Basically, you should treat GenAI as if you would a classmate: you should view it as a helper, not a replacement. Some assignments explicitly ask you not to use GenAI tools.

The general rule of thumb for me is: treat an AI tool like another student. You can talk to them or get help from them, but you can’t have them do your assignments for you.

  1. Students are responsible for what they turn in. If some helper (automated or otherwise) gives you bad advice, it is on you.
  2. Students must disclose the tools they use, how they used them, and why.
  3. Students must not use GenAI tools in situations where I specifically ask them not to.
  4. Tools should be an assistant in your learning, not a replacement for your efforts.
  5. If you are in doubt, ask the course staff.

Using an AI tool (like GitHub Copilot) to help with programming assignments will be encouraged in many assignments. Our experience is that it is quite capable of doing the basic parts of the assignments (in part because example solutions have leaked into its training set). We hope that students use it to do the basic parts of the assignments, take the time to understand what it has done, and then use this baseline to create more interesting things.

Using these tools effectively is a skill that one can develop.