Software Development
Fundamental Concepts of the Programming Process
- Concept of an algorithm.
- Development and semi-formal specification of algorithms, based on a simplified computer model.
- Understanding of sequential and parallel processing.
Phase-Specific Issues of Software Development
- Development tools such as code generators, design modelling or test generators.
- Development techniques such as modular programming, defensive programming or recursion.
- Approaches to software build, such as evolutionary prototyping or 4GL development.
- Objectives and principles of testing and test-case specification.
- Testing and debugging strategies including dry-running, white-box and black-box.
- Styles of software documentation, such as for users or support personnel.
- Content of software documentation such as GUI descriptions or maintenance details.
Introduction to Programming Concepts
- Types: numeric and non-numeric, elementary and derived, subtypes, and expressions such as assignments, input/output.
- Control structures: selection and iteration.
- Subprograms: procedures and functions.
- Data structures: Arrays (1- and 2-dimensions), linked lists using pointers; implementation of queues, stacks and lists. Concept of data abstraction.
- Sorting and searching algorithms: comparative effectiveness with respect to computation and storage of scanning versus indexing methods.
Files: Sequential, Index-Sequential and Random Access
- Comparative effectiveness of storage and retrieval for applications such as batch processing or on-line query or both.
Introduction to Concept of User-Interface Design
- User requirements and characteristics of user interfaces; principles and techniques of dialogue control, navigation and selection.
Role and Need for System Software
- System software and its relation to application software.

