Project Modules

Module

Description

(PM) Prerequisite technologies Module

Emacs, Unix operating system, Shell programming, Concurrent Versioning System CVS

(M0) Computing Environment

Compilers, editors, debuggers, and other components of programming environments

(M1) Algorithmic thinking

Algorithms as models of computational processes; examples of important algorithms

(M2) Data Models

Standard structures for representing data; abstract (described by a model) and concrete (described by an implementation) descriptions

(M3) Operation Models

Effects of applying operations to program objects; what an operation does (described by a model); how an operation does it (described by an implementation)

(M4) Standard control models

Sequence, selection, iteration; function calls and parameter passing

(M5) Encapsulation

Indivisible bundling of related entities; client view based on abstraction and information-hiding; implementer view based on internal detail

(M6) Components

The role of interfaces in mediating information exchange; responsibilities of encapsulated components to their clients; the value of inheritance

(M7) Testing and Debugging

The importance of testing; debugging strategies