Program Specification and
Documentation |
|
Evaluate the ability of analyze problems, turn
requirements into specifications, and documentating. |
|
|
|
|
|
|
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 |
|
Evaluate the
ability of design functions and programs. |
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|
|
|
The
Nature of Computation and Program Evaluation |
|
Evaluate the ability of understanding the principles of
computations, the measurement of program complexity, etc. |
|
|
|
|
|
|
|
|
Novice |
Examples |
|
|
Understand the basic
principles of computation: expression evaluation, variable substitution,
method dispatch |
|
|
|
Advanced Beginner |
Examples |
|
|
Understand the different
ways of defining and assessing the equality of compound structures |
|
|
|
Programming
as a Teamwork |
Examples |
|
|
Understand and use the
basic measures of program complexity |
|
|
|
Proficient |
Examples |
|
|
Evaluate the complexity of
the program, use tools to measure the performance and to identify hot
spots |
|
|
|
|
|
|
|
|
|
|
|
|