pete > courses > Computer Architecture (CSCI 0202), Spring 2024 > Grading


Computer Architecture (CSCI 0202), Spring 2024 – Grading

This course uses a non-traditional grading scheme; please read the following carefully and ask questions sooner rather than later. I do not want you to be uncertain about how to manage and prioritize your time. (Also, while I have taught this course many times before, with the same general structure, I am still refining this particular implementation, so there may be some rough spots; I will address those should they arise during the semester.) Based on previous iterations, it takes a short time for students to get acclimated to how it works, but then it makes sense and provides helpful structure.

Traditionally-graded courses assign coursework (lab assignments, papers, exams) that is graded on a percentage or letter scale and, at the end of the semester, all of a student’s various percentages or letters are fed into a formula that spits out the grade that ends up on their transcript. This style of grading has several downsides: marks on individual assignments can feel arbitrary, a semester grade is difficult to relate to specific competencies, it is difficult for students to prioritize time and effort on particular assignments, and so on.

In this course, assigned work is divided into three tiers of increasing complexity. Complete the first tier to earn a C; complete the first two tiers to earn a B; complete all three tiers to earn an A. The specific tiers for this course are described below; the short version is that a collection of work is assigned to each tier and a student must complete a subset of that work to complete the tier. Note that individual pieces of work are graded on a "complete"/"incomplete" basis; students will have an opportunity to revisit most pieces of work and earn a "complete" mark. Details below.

I have used a variant of this method in other classes and have found it to have many benefits, the most significant being the clarity of expectations for individual assignments. Other benefits include a much clearer connection between individual assignment work and semester grade, the semester grade being clearly tied to a well-defined level of mastery, and lessened anxiety as to how performance on a given assignment will affect the semester grade. Additionally, because students submit assignments, get feedback, revise, and resubmit, their resulting understanding of the material is deeper and they gain comfort with real-life work patterns—especially in computer science-y industries, where one does not simply submit B+ work and move on, one revises until it’s done.

Coursework

As described above, the concepts in this course are divided into three tiers of increasing complexity: Mechanical, Application, and Creation & Analysis. The material of the course falls into three phases: circuits (weeks 1-3), microarchitecture (weeks 4-7), and software (weeks 8-12). Coursework consists of:

Following are more detailed descriptions of the three tiers.

Tier 1: Mechanical

This tier is comprised of things learned by rote: performing processes demonstrated in class, memorizing pertinent vocabulary. (If this was an introductory programming course, something in this tier could be "given a simple program, determine its output without running it" or "define variable".)

When a new mechanical skill is presented in class, students will be given access to sample problems that exercise the skill, along with complete solutions. (These will either be randomly generated or guidance to produce practice problems themselves will be given; in either case, the practice field will be effectively infinite in size.) Thereafter, that mechanical skill will be fair game for weekly quizzes; the questions on the quizzes pertaining to the skill will be phrased and formulated identically to the sample problems—there will be no surprises. Each quiz will contain four questions for each fair-game mechanical skill; a student will demonstrate proficiency on that skill by answering three of those questions correctly. After demonstrating proficiency on a particular mechanical skill, a student will no longer receive questions on it. There will be no partial credit.

Quizzes will consist of four questions for each presented mechanical skill that is not yet marked "proficient". (For example, if a student misses quiz 3, then those questions will be added to quiz 4.) Students may also contact the professor to schedule a quiz if they wish to demonstrate proficiency outside the regularly-scheduled quizzes—in doing so, a student could reduce the quantity of material covered in the subsequent quiz. At the opposite extreme, a student who misses every single quiz for the entire semester will be met with a massive, comprehensive, quiz on the very last day upon which their success determines whether or not they pass the course.

Quizzes outside class hours must be scheduled in advance by email, no more than once per day per student, and will not be allowed after the final lecture period (Monday, 13 May).

To demonstrate proficiency with definitions, a single correct answer is sufficient.

Tier 2: Application

This tier requires students to take the concepts covered by the mechanical tier and connect them together to build larger things. (If this was an introductory programming course, a problem in this tier could be "write a program to calculate the greatest common divisor of two integers".)

For each phase of the course, a collection of lab-like problems will be made available. The solutions to some of these problems will be useful in the Creation project; plan ahead. Problems will have a 1-week deadline, during which students will be allowed to submit solutions, receive feedback, and resubmit until complete.

Submitted homework solutions will be marked either "complete" or "incomplete". If the latter, feedback will be given that describes shortcomings to be addressed. Additionally, in either case, feedback will be given on style, though style is not a factor in determining sufficiency (this feedback is intended to inform project implementations in Tier 3).

Furthermore, each exam will include 4 questions that ask students to take the principles discussed in class and apply them in new and different areas. These questions will be clearly marked as "Application".

Tier 3: Creation & Analysis

This tier requires students to implement more ambitious and more complex creations, involving several different aspects of the course material and/or looking across multiple layers of abstraction. (If this was an introductory programming course, an assignment in this tier could ask students to combine several of the different programming concepts learned and write a large program that performs a non-trivial task.)

For each phase of the course, there will be a single, non-trivial implementation project. Each implementation will be evaluated on both correctness and style. These projects will have a 2-week deadline; feedback and resubmission policy TBA.

Additionally, each exam will include 3 questions that ask students to analyze multiple layers of abstraction at once. These questions will be clearly marked as "Analysis".

Grading

To earn a C, a student must…

To earn a B, a student must…

To earn an A, a student must…

Half-grades (other than A-) will be assigned at the discretion of the professor based on the quantity of work completed that does not fully satisfy the requirements of the next full grade. For example, if a student completes all requirements for a B as well as two of the three projects, they would earn a B+.

Advice

Due to the tiered nature of coursework, I strongly recommend you prioritize practicing and mastering the Mechanical skills (Tier 1) before moving on to the more complex tiers. Not only will mastering these skills help you with your work in Tiers 2 and 3, the Tier 1 work represents the minimum required to pass the course.

Similarly, I recommend completing each phase’s homework problems (Tier 2) before embarking too far upon the project (Tier 3). This advice is less strong than the first paragraph because a) the project may very well be made available before all related homework problems have been made available and b) the solutions of some of the homework problems will be directly useful in implementing the project. Therefore, I recommend at least familiarizing yourself with the project (Tier 3) when it becomes available so that you can think about how the problem solutions (Tier 2) interrelate.

Not only will this approach minimize the chance that you will have completed Tier 1 and Tier 3 work but not the Tier 2 work necessary to earn a B (and therefore render your Tier 1 work superfluous), I have designed the work within each tier such that the concepts exercised at the less complex tiers directly aid in completing the work of the more complex tiers.

Summary

Three phases of material: circuits, microarchitecture, and software.

Three tiers of skills: mechanical, application, and creation & analysis.

Mechanical skills: quizzes (which can be retaken).

Application skills: homework problems (which can be revised) and exam questions.

Creation & analysis skills: one significant implementation project in each phase and exam questions.

For a C, do all the mechanical stuff.

For a B, do all the mechanical stuff and homework problems and some exam questions.

For an A, do everything.

ChangeLog

Any changes made to the above will be recorded here. In no event will the requirements/expectations be increased.

Coda

I am so tired of typing the word "tier".

Last modified: