Program Specification and Documentation |
|
|
|
|
|
|
Novice |
Examples |
|
|
Analyze simple problem
statements, identify relevant information, represent it as data |
|
Variety of data: numeric,
text, images, colors, logical, ... |
|
|
|
|
Problems that involve
compound data, variants, self-reference, mutual reference |
|
|
|
|
Produce data from the given
information |
|
|
|
|
Describe the information
represented by the given data |
|
|
|
|
|
|
Advanced Beginner |
Examples |
|
|
Use diagrams to represent
the relationships among classes and among
methods |
|
Define and use class
diagrams to represent class hierarchies |
|
|
|
|
Define and use interactions
diagrams to represent the program dynamic behavior |
|
|
|
|
|
|
Competent |
Examples |
|
|
Turn requirements into
specifications and contracts |
|
Understand and use at least
one standard methods for program specification |
|
|
|
|
|
|
Proficient |
Examples |
|
|
Design program
specifications based on interactions with clients |
|
Some students will have the
opportunity to reach this level at their coop assignments or while working
on a research project |
|
|
|
|
|
|
|
|
|
|
Program
Design Skills |
|
|
|
|
|
|
|
|
Novice |
Examples |
|
|
Design functions/methods
for a variety of data types, including programmer-defined types |
|
|
|
|
|
|
|
|
Advanced Beginner |
Examples |
|
|
Design programs that
implement contracts for abstract data types |
|
|
|
|
|
|
|
|
Competent |
Examples |
|
|
Design moderate sized
programs that implement complex (possibly formal) contracts |
|
|
|
|
|
|
|
Proficient |
Examples |
|
|
Design
small application programs that utilize technical knowledge, such as data
base design, networks, operating systems, |
|
|
|
|
mathematical methods,
programming language theory, artificial intelligence, or domains such as
physics, biology, business processes, HCI |
|
|
|
|
|
|
|
|
|
|
|
|