| 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. | |