Section 6: Object-Oriented Design
  Column:   D C B A
Row: Basic Object Design: YOUR SCORE Attempt Meets Requirements Exceeds Requirements Exemplary
  Minimum Points   Must exceed requirements in at least one area. Total
10 0       16
1 Explain encapsulation and information-hiding.      rote definitions  define in own words  simple demonstration of use  can explain as well as distinguish or demonstrate with code
2 Separation of behaviour and implementation. [distinguish between]     rote definitions  define in own words  explain with examples  can explain as well as distinguish or demonstrate with code
3 What is a class?     rote definitions  define in own words  simple demonstration of use  can explain as well as distinguish or demonstrate with code
4 Similarities and differences between classes & structures.     rote definitions  define in own words  explain with examples  can explain as well as distinguish or demonstrate with code
             
  Column:   D C B A
Row: Objects: YOUR SCORE Attempt Meets Requirements Exceeds Requirements Exemplary
  Minimum Points   Must exceed requirements in at least three areas. Total
  25 0       40
1 Object Design [demonstrate]     can talk about it  effective design for relatively clear-cut problems  reasonable design for more complex problems  shows clear understanding of some subtleties - able to justify decisions
2 Aggregation [show]    define term  simple relationships  effective use  shows sophisticated understanding
3 Classes and subclasses [use]    define term  effective use of pre-defined  classes  able to define and create simple  classes  able to define and create relatively sophisticated classes
4 Use of Pre-defined classes     define term  simple relationships  competent use  fairly sophisticated
5 Constructors [explain; use]     can define  effective use of pre-defined constructors  can create reasonable  relatively sophisticated
6 Deep vs. Shallow copies [explain]     rote definitions  define in own words  simple demonstration of use  effective, well-integrated demonstration of use
7 Copying vs. creation [explain, with examples]     rote definitions  define in own words; can use pre-defined  simple demonstration of use  effective, well-integrated demonstration of use
8 Overloading [explain; show]     rote definitions  define in own words; can use pre-defined  simple demonstration of use  effective, well-integrated demonstration of use
9 Object vs. Class entities [distinguish]     rote definitions  define in own words; can use pre-defined  simple demonstration of use  effective, well-integrated demonstration of use
# Collection classes and iteration protocols [describe; use]     rote definitions  define in own words; can use in simple contexts  simple demonstration of use  effective, well-integrated demonstration of use
             
  Column:   D C B A
Row: Inheritance & Polymorphism: YOUR SCORE Attempt Meets Requirements Exceeds Requirements Exemplary
  Minimum Points   Must exceed requirements in at least three areas. Total
  15 0       28
1 Classes and subclasses [describe; use]     define  use in a relatively simple example  use in a moderately complex example  consistent, effective use
2 Inheritance : use     ---  effective use of pre-defined derived classes  able to define and create simple inherited classes  consistent, effective use
3 Inheritance : creation   n/a  can define own simple inheritance relationship  reasonable sophistication  consistent, effective use
4 Class hierarchies [explain; demonstrate]     define  use in a relatively simple example  use in a moderately complex example  consistent, effective use
5 Overriding [explain; show]     define  use in a relatively simple example  use in a moderately complex example  consistent, effective use
6 Polymorphism [explain; use]     define  use in a relatively simple example  use in a moderately complex example  consistent, effective use
7 Abstract classes [define; use]     define  use in a relatively simple example  use in a moderately complex example  consistent, effective use
             
  Column:   D C B A
Row: Exceptions: YOUR SCORE Attempt Meets Requirements Exceeds Requirements Exemplary
  Minimum Points   Must exceed requirements in at least one area. Total
  14 0       24
1 Understand the concept of Exceptions    Attempt at definition – some parts right.  Describe how they are used.  Describe how & when they are used.  Describe circumstances when exceptions are appropriate and when they are not.
2 Familiarity with Exception syntax    Able to follow simple ones in existing code.  Describe necessary constructs.  Describe necessary constructs in the correct order & context.  Able to detect subtle errors in code examples.
3 Ability to follow exceptions used and defined in existing code.     Simple examples.  Ability to follow exceptions used and defined in existing code.  Ability to follow complex exceptions used and defined in existing code.  Ability to detect and correct errors in exceptions used and defined in existing code.
4 Ability to use pre-defined exceptions.    Hand execution of valid code.  Can use pre-defined exceptions.  Recognize different classifications of exceptions.  Clear understanding of appropriate use of exceptions.
5 Ability to define new exceptions.    Hand execution of valid code.  Can create simple exceptions.  Create exceptions that recover conditions.  Well-defined; justified.
6 Functional understanding of Exception Propagation    Can follow valid code.  Can create simple exception handlers.  Can propagate one exception through multiple levels of code.  Can propagate multiple exceptions through multiple levels of code.