This course uses a standards-based grading model rather than a more traditional weighted-average grading model. You are probably familiar with weighted-average grading, in which you earn some number of points on each assessment (lab assignment, test, etc.) and your point totals on those assessments are weighted and averaged in some way that produces your final grade (e.g. scoring at least 93% of the total points earns an A grade). The purpose of standards-based grading is to move our focus from fine-grained points to the learning goals of the course. The work you do in this course will be largely the same as in any other Computer Science course — completing lab assignments and taking written quizzes — but you will be given opportunities to correct your mistakes and, consequently, your work will be evaluated rigorously.

Letter grades

Each quiz in this course will cover 2-3 of the standards described below. There are 16 standards in this course. For each standard, you will earn one of the following results:

  • Qualified (Q). If your work meets the requirements and expectations of the relevant standard, then you are marked as qualified for that standard. Work with trivial errors can earn this grade, but any substantial errors will not earn a Q.

  • In progress (IP). If your work does not meet the requirements and expectations of the relevant standard, then you are marked as in progress for that standard. This mark is earned for work which contains significant errors, lacks important content, or has other issues. A mark of IP will include feedback about how to improve on this standard.

If your first submission earns an IP, you will have a later opportunity to try again for that standard and upgrade your mark to a Q. Once you have earned a Q, you do not need to submit work for that standard again.

Your final grade in this course is determined by the number of standards in which you qualified together with your project evaluation.

letter grade

requirements

A

16 standards met and project earns "excellent"

A-

15-14 standards met and project earns "excellent"

B+

13 standards met and project earns "excellent"

B

12 standards met and project earns "good" or better

B-

11 standards met and project earns "good" or better

C+

10 standards met and project earns "good" or better

C

9 standards met and project earns "satisfactory" or better

C-

8 standards met and project earns "satisfactory" or better

D+

7 standards met and project earns "satisfactory" or better

D

6 standards met and project earns "satisfactory" or better

D-

5 standards met and project earns "satisfactory" or better

NC

Does not meet the requirements for any other grade.

Additionally, you can increase your letter grade if you have submitted mostly/entirely complete lab write-ups for at least 9 of the labs. For example, a B student who completed at least 9 lab writeups would earn a B+. In order to count towards this number, your lab writeup must present an earnest effort to answer all lab questions. It does not need to be 100% correct, but you should include explanations of your though process for questions where you are unsure.

Standards

The standards for this course are separated into categories by topic. Each standard is identified by a two character abbreviation for reference.

Probability: (P1-P6)

  1. Use discrete probability theory to model a problem, describe it concretely, and solve basic probability questions.

  2. Use discrete probability theory to model a problem, describe it concretely, and solve intermediate probability questions.

  3. Use discrete probability theory to model a problem, describe it concretely, and solve complex probability questions.

  4. Rigorously prove a question using discrete probability.

  5. Can calculate conditional probability and use it appropriately to solve problems.

  6. Can calculate forwards/backwards probability and use it appropriately to solve problems.

Coding and information theory: (C7-C14)

  1. Use discrete probability to analyze the performance of a code.

  2. Can explain how a problem is represented as a code problem.

  3. Prove that a code is uniquely decodable or give a counterexample. Build a uniquely decodable code.

  4. Identify whether a code is instantaneous or not. Explain why/when this property is useful.

  5. Calculate the entropy of a source, build a code for that source, and argue why your code is optimally efficient.

  6. Can calculate a channel capacity and explain what it represents.

  7. Can define mutual information, explain why it is useful, and apply the concept in analysis/problem solving.

  8. Can calculate a transmission rate and use it in analyzing a code.

NP-completeness: (N15, N16)

  1. Can identify intractable problems and argue why they might be hard to solve efficiently.

  2. Can prove a problem is NP-complete.

Projects

Each student will complete a project, with a written component and a presentation at the end of the semester. Projects will be evaluated as:

  • excellent

  • good

  • satisfactory

  • unsatisfactory