CPSC 233 Programming Assignment Rubric

Assignment 5 Game: Frogger

Brief problem statement:

Write a program that will implement the old arcade game, Frogger.

Rubric Part One (Style) Marks:

/15

Rubric Part Two (Design) Marks

/35

Bonus & Challenge Points:

 

Total Marks this Assignment:

      /50

 

 

X Group Work Offset _____ =

/50

 

 

Any amount > 50/50 gets added to Bonus / Challenge points

 

RUBRIC PART ONE : STYLE

Attribute

Unacceptable

Meets Requirements

Exemplary

 

Points

Presentation

Information

Missing Information

[0.5] Properly prepared for submission; includes all student names; TA; Lab section; Assignment number.

N/A

 

 

Files

Missing files

 

[0.5] All included: required source, documentation, script, instruction (readme) files

N/A

 

 

Demo: [worth triple]

Major Problems: Program won't run or crashes unexpectedly. Submitted code seems different from that demonstrated. Programmers seemed confused by the program they were demonstrating. Only one group member participated (out of three).

[1.0] Minor Problems: Program runs reasonably well. Knew what they were doing. Submitted code matches demo. One group member did not participate.

[2.0] Good! Demo went well; major features shown and explained. Demonstrators clearly understood their work. All group members participated.

*

 

Presentation Total

/3

Documentation

Overall Impression

Misleading; confusing; too much or too little

[0.5] A few missing, redundant, or irrelevant parts

[1.0] Accurate; reasonable; easy to read;

 

 

Identifier Names

Meaningless or misleading names

[0.5] Some poor choices. Most identifiers were explained where appropriate.

[1.0] Meaningful identifier names [some single letter names are OK, such as i,j for indices]. Explanations of identifiers where appropriate.

 

 

Indentation; White Space

Misleading indentation; too much or too little white space

[0.5] Some inconsistencies; some inadequate or wasted space

[1.0] Consistent indentation; good use of white space

 

 

External Documentation

No external documentation when some is needed. External documentation not useful, confusing, out of date, or misleading

[0.5] Adequate external documentation [javadoc or reasonable facsimile]. The key point is that someone else could work with this program with a little help from the original programmer(s).

[1.0] External doc. as appropriate; [javadoc or reasonable facsimile]. The key point is that someone else could work with this program based on code and documentation alone.

*

 

Classes & Logical Blocks

Few or no logical blocks documented

[1.0] Most MAJOR logical blocks documented

[2.0] Documentation for each function and MAJOR loop and MAJOR logical block (possible use of Pre & Post Conditions for functions / blocks)

*

 

Classes:

Missing class diagrams

[0.5] Reasonable attempt at class diagrams: some sort of picture that shows the classes defined and their relationships to each other.

[1.0] Includes some readable form of class diagram – includes public interface; organized pictures

*

 

Documentation Total

/7

Style

Implemented what was asked.

Hardly followed specs; no explanations for deviations

[1.0] Some deviations; mostly OK

[2.0] Followed specs (deviations well justified – marker was convinced this approach was reasonable)

*

 

Style & Efficiency

Program Subdivisions (classes and functions) & Flow

Poor choices of code; too many awkward structures

Too many or too few subdivisions: piles of one-liners or almost everything's in one function.

 Rule-of-thumb: functions/methods shouldn't be much more than one printed page long.

Confusing; hard to follow

[1.0] Mostly well thought out; most parts reasonably efficient; a few remaining awkward parts

Mostly reasonable with a few poor choices

**************************

 Mostly Logical, justifiable structure

[2.0] Well thought out; reasonably efficient (code & data structures)

Reasonable subdivisions (classes/ functions – tasks; roles; behaviors & responsibilities make sense);

*

 

Constants; Magic Numbers, Globals

Magic numbers; hard-coded values Inappropriate use of globals.

[0.5] Appropriate use of constants Most globals properly justified.

N/A

*

 

Initialization & Clean-up

Insufficient: Uninitialized values; no clean-up

[0.5] Good! Reasonable initialization and clean-up

N/A

*

 

Design Total

/5

[Rubric One] Style Total:

   /15

 


 

 

RUBRIC PART TWO: FUNCTION & DESIGN

Attribute

 0.0

Attempt

Meets Requirements "C Version"

Exceeds Requirements  "B Version"

Exemplary  "A Version"

 

Points

Program Specifications

35

Inheritance

Unable to assess.

[2.0] Minimal Some kind of inheritance.

[3.0] OK, uses Thing class, at least two classes derived from it.

[5.0] Good Reasonable classes, relationships.

[7.0] NICE Well thought out. Some interesting ideas.

 

 

Frog

Unable to assess.

[2.0] Frog, sort of moves

[3.0] Frog, moves left, right, forward under player's control

N/A

N/A

 

 

Homes

Unable to assess.

N/A

[3.0] 1 (ONE) home

[4.0] 3 (Three) Homes

[5.0] 5 (FIVE) Homes

 

 

Vehicles

Unable to assess.

[2.0] Some kind of vehicle, sort of moves.

[3.0] 2 (two) Rows of Different Vehicles going in opposite directions

[4.0] 5 (five) rows of vehicles going in different directions.

N/A

 

 

Boulevard

Unable to assess.

N/A

N/A

[4.0] Boulevard, but no timer

[5.0] Boulevard, With Timer

 

 

Critters

Unable to assess.

[2.0]

[3.0]

[4.0] Alligator (closed mouth) & Small Log

[5.0] Turtles & Long Log, 5 (five) rows altogether

 

 

Debugging Aids (tracing)

Unable to assess.

[0.0] No evidence of debugging aids

[1.0] Some evidence of built-in debugging aids; a few output statements in key locations.

"in function X"; "got to here"

[2.0] Reasonable use of DEBUG flags or reasonable alternative, program tracing and other debugging aids; considerable number of output traces in various locations which give useful information; "in function X: value of counter is: ---"; easy to turn on and off

N/A

 

 

Output

Unable to assess.

[1.0] Display works.

[2.0] Recognizably distinct things on the screen.

[3.0] Can tell what is what, some different vehicles & critters.

[4.0] Good! All there.

 

 

[Rubric Two] Design Total:

   /35

BONUS:

 

1.

[up to 6 points]

Make a girl frog.

 

 

2.

[up to 6 points]

Make the alligator's mouth open.

 

 

3.

[up to 10 points]

Include the snakes.

 

 

4.

[up to 10 points]

Multiple (5) frogs per game. [homes can be occupied by only one frog]

 

 

5.

[2-3 points]

Detect "Game Over": when Frog dead; or when Frog gets across.

 

 

6.

[2 points]

Keep score.

 

 

7.

[2-5 points, per level]

Allow different levels of difficulty (different #'s of things, different ranges, etc.)

 

 

8.

[2 points]

Set up "key bindings" so player can use the arrow keys, etc.

 

 

 9.

[4-? points]

Make it Interrupt Driven

 

 

Challenge:

 

1.

[4-? points]

Add sound.

 

 

2.

 [4-? points]

Create a full GUI

 

 

3.

[5-? points]

Do it in colour

 

 

4.

[5-? points]

3-D