Achieving your course grade goal

Written by Julie Zelenski

We hope your primary goal in taking this course is to learn and master the material and strengthen your programming chops, but earning a pleasing grade for your efforts is likely somewhere in the mix as well. Happily, these goals co-exist nicely! We have a sequence of lab exercises and assignments that guide and challenge you to build up your skills and we will reward you for working hard on them. The exams will follow up to let you demonstrate that growing mastery. You will be the best judge of how much a given course component contributes to your learning (and thus how much to emphasize it for its learning benefit), but we want to share the general scheme by which course grades are determined, so you can make informed choices that optimize for great outcomes in both.

Coursework

There will be weekly labs and regular programming assignments. Most of your learning will come from this hands-on work. Reading the text and listening in lecture only go so far, it is only by getting your hands on the keyboard and investing in exploring, observing, developing, and debugging that truly builds up your skills and accelerates your mastery.

You earn 25 points for each lab. During the quarter there will be N labs (8 or 9 depending on quarter schedule) and we expect participation in N-1 of them. You will earn full credit having missed one lab or can earn a nice 25-point bonus for participating in all labs.

The writeup for each assignment will indicate the number of functionality points available (typically 60-120) and how points will be apportioned in grading (re: sanity, comprehensive, robustness, stress, efficiency, and so on). Assignment code review is scored using buckets (--/-/ok/+ which roughly correspond to percentages 50/70/85/100, these style buckets usually contribute another ~20% on top of the functionality total). You can also earn a few bonus points for making an on-time submission. The details for a particular assignment may be a bit different, so refer to the writeup to be sure.

Your coursework percentage is the sum of lab and assignment scores divided by the total number of available points. Attending all labs or earning on-time points adds to the numerator but not the denominator, making them true bonus points.

Exams

The midterm reports on your mid-quarter progress and the final exam assesses the depth and completeness of your ending mastery. The final is generally weighted about twice that of the the midterm. Dividing your exam score by the number of points gives a percentage of points earned out of total possible.

Course grade

The components are aggregated together using these weights:

15% lab participation
35% assignments
17% midterm exam
33% final exam

Mapping percentage to letter grade is roughly on ordinary scale:

A+ are given at the instructor's discretion
>= 90% A-/A
>= 80% B-/B/B+
>= 70% C-/C/C+
>= 60% D
<  60% Not passing

Grades will be assigned no stricter than this; a more generous curve may be adopted at the instructor's discretion, depending on exam difficulty or other factors.

Median course grade is generally lands in neighborhood of B/B+ border. Coursework scoring is on absolute scale, no curve applied, and scores are very strong (median homework average trends in mid 90s, which is phenomenal!) Exams typically have lower absolute score. When you aggregate the two together, they produce a course grade median around the targeted B/B+. Extrapolating from raw numbers gives you a reasonable idea of where your course grade is headed. You can run some what-if analysis to try out different scenarios (what if my performance stays same/goes up/goes down?) to see how much of any effect possible changes would have.

For the CR/NC grading option, any course grade of C- or higher earns CR.

To pass the course, both the coursework and exam aggregates must each be passing work. Restated, if the composite of your exams is failing, then you will fail the class in spite of an astounding performance on coursework or vice versa. Passing performance on the coursework is a percentage >= 60% on the aggregate of all assignments/labs. Passing performance for the exams will be set at around -1.75 standard deviations below the class median of the composite score of the two exams.

Good learning and good grades

Labs

Assignments

Exams