06 Prove : Assessment Guidelines
Overview
This document outlines the guidelines for instructors and teaching assistants to use as they assess the assignment. It is intended to give structure and guidance to the grading process to ensure that the most important components of the assignment are highlighted, and to promote consistency across sections.
In all cases, the instructor has the latitude to deviate from this rubric on a case-by-base basis to provide the holistic assessment that, in their judgment, best matches the assignment.
Goal of Milestone Assessments
The goal of this assignment is to help students stay on track toward their future deliverable, and also to give them feedback quickly if they are headed down a bad path. With that in mind, the focus of this assessment is not to account for a few points here or there, but rather to give feedback and guidance.
Fundamental Concepts
This assignment is designed to highlight the following fundamental concepts:
Inheritance.
Inheritance.
Inheritance.
If nothing else, we need to make sure their classes are designed correctly, have the correct relationships, and that the right variables/methods are defined in the right place in the inheritance hierarchy.
Major Things to Look For
The following should be present for this milestone:
Point class (likely just an x and y).
Velocity class (likely just a dx and dy).
FlyingObject Base class (or something similar).
Class for a bullet.
Class for a target (for this week, only one is required).
Bullets firing in the right direction.
A target flying across the screen.
No collisions, scoring, or dying when things leave the screen is necessary at this point.
From a design standpoint, we also expect to see:
Point and velocity should be in the base class, not directly in the bullet or target.
Advance and
is_off_screenshould also be in the base class, not in the bullet or target.Use of the point class for drawing and moving. (Sometimes, a point is there, but then also add an x and y to the object that are used instead. This is not correct).
Bullet and target classes should each define their own draw functions.
Abstract methods may be present in base classes, which is excellent, but we haven't talked about this yet.
Make sure objects inherit from the appropriate base class, and also call
super().__init__()in their inits.
Scoring
Given the formative nature of this assessment, the scoring is done in broad strokes as follows:
100% - Functionality is there, and the base class is used correctly.
90% - Minor issue with functionality or inheritance, such as not putting advance in the base class.
75% - Program compiles/runs, but is missing major functionality or not using a base class.
50% - Some attempt was made and general concepts are started.
0% - Nothing submitted.