Program composition

We define this as an ability to design a programming solution to a medium size programming problem that involves teamwork and results in a working product.

  1. Be able to define requirements and produce specifications for the problem.
  2. Have a knowledge of tools and environments and be able to use those appropriate for solving the problem in a creative manner.
  3. Understand higher level programming components:
    classes design and implement
    exception handling understand and use
    libraries understand and use a subset
    GUI be familiar with
    scripting languages be familiar with at least one
  4. Be able to work in a team and to implement (with the team) a complete program from given specifications.