ESNU Criteria

E(xcellent)
Evidence of meeting or exceeding all learning objectives is present. Work has only trivial or inconsequential flaws, if any. Little to no room left to improve understanding.
S(atisfactory)
Evidence of meeting most or all learning objectives is present. Work includes minor errors or inconsistencies, but no significant shortcomings. Understanding could potentially be improved, but demonstrated mastery is acceptable.
N(ot yet)
Evidence of meeting some learning objectives is present, but there are significant gaps and/or evidence of not yet meeting other learning objectives. Demonstrated understanding needs further development to meet expectations.
U(nassessable)
This may include, but is not limited to, work that is missing, does not demonstrate meaningful effort, does not provide enough evidence to determine proficiency, uses forbidden features, or violates other major course rules.

Programming Assignment Rubric

Behavior

E(xcellent) S(atisfactory) N(ot yet) U(nassessable)
Correctly implements all required functionality

Exhibits correct behavior in all cases
Attempts to implement all required functionality

Exhibits correct behavior in all common cases
Attempts to implement most required functionality

Exhibits correct behavior in most common cases
No attempt or unassessable

Concepts

E(xcellent) S(atisfactory) N(ot yet) U(nassessable)
Most appropriate variant of language features used throughout

Most appropriate type and/or data structure used for all data (e.g. variables, parameters, fields)

All data created and used in the most local scope possible

All code is appropriately factored to eliminate unnecessary redundancy and/or computation

No extraneous or unnecessary code or constructs (e.g. methods, parameters, conditional cases)

All assignment-specific implementation requirements met
Reasonable variant of language features used in all circumstances

Reasonable type and/or data structure used for all data (e.g. variables, parameters, fields)

All data created and used in local scope

No obviously unnecessary redundancy or computation

No obviously extraneous or unnecessary code or constructs (e.g. methods, parameters, conditional cases)

All key assignment-specific implementation requirements met
Some reasonable language features used

Some reasonable types and/or data structures used

All data created and used in local scope

Some unnecessary redundancy or computation eliminated

Some extraneous or unnecessary code or constructs eliminated

Most key assignment-specific implementation requirements met
No attempt or unassessable

Use of forbidden features

No demonstration of assignment learning goals

Quality

E(xcellent) S(atisfactory) N(ot yet) U(nassessable)
Comments are present on all classes and methods

All comments are concise and meaningful, and include all relevant information and no inappropriate information

All identifiers are descriptive and meaningful, and follow naming conventions

Names, comments, and line lengths make code more readable and maintainable

All code is indented and spaced consistently and cleanly

Code follows all guidelines from code quality guide

Personal style choices are reasonable and consistent
Comments present on most classes and methods

All present comments are concise and meaningful, and include all relevant information

Most identifiers are meaningful and follow naming conventions

Names, comments, and line lengths do not significantly reduce readability or maintainability

Indentation and spacing do not significantly reduce readability or maintainability

Code follows all major guidelines from code quality guide

Personal style choices are reasonable

Comments present on some classes and/or methods

Some comments are concise and meaningful, and include most relevant information

Some identifiers are meaningful and/or follow naming conventions

Some attempt made at appropriate naming, line lengths, Indentation and spacing

Some code follows guidelines from code quality guide
No attempt or unassessable

Little to no attempt at program quality

Creative Project Rubric

The key difference between Creative Projects and Programming Assignmnets is the inclusion of a Creative Extension. To avoid duplicatiing data between tables please refer to the Programming Asignment Criteria as a basis for Creative Projects. The below table explains how the Creative Extension is factored into the Creative Project grading.

Behavior

E(xcellent) S(atisfactory) N(ot yet) U(nassessable)
Correctly implements Creative Extension Creative Extension is missing or incorrectly implemented but the base requirements still function as expected Creative Extension causes the base requiremnets to fail in some way Creative Extension causes base requirements to be unassessable

Concepts

E(xcellent) S(atisfactory) N(ot yet) U(nassessable)
Correctly implements Creative Extension with excellent demonstration of concepts Creative Extension is missing, incorrectly implemented, or does not demonstrate excellent understanding of concepts Creative Extension introduces any N Criteria for Programming Assignmnet Concepts Creative Extension introduces forbidden features

Quality

E(xcellent) S(atisfactory) N(ot yet) U(nassessable)
Creative Extension demonstrates excellent code quality Creative Extension is missing or fails to meet excellent code quality criteria Creative Extension introduces any N Criteria for Programming Assignmnet Quality Creative extension causes program to be unassessable

Reflection Rubric

Each Programming Assignment and Creative Project (7 total) includes one reflection questionare. Each meaningful completetion will contribute to an overall reflection grade at the end of the quarter.

E(xcellent) S(atisfactory) N(ot yet) U(nassessable)
7 5 3 >3