Course Brief

Learners will be exposed to the main concepts of procedural programming, building on the theory previously explored in problem-solving. The principles of effective program design, implementation and debugging will be explored.

  • This course is offered in 50 contact hours.

Upon successful completion of this unit, learners will be able to:

  1. Understand the concepts, principles and features involved in programming in a high-level language;
  2. Design a computer program;
  3. Develop programs in a high-level programming language;
  4. Test a computer program.

Understand the concepts, principles, practices and features of programming in a high-level language:

  • Characteristics of programming: low-level languages; high-level languages; generations; algorithms, source code, machine code etc.
  • Programming languages and paradigms: procedural; object oriented; functional; event driven; simple overviews and uses
  • Language selection considerations, criteria for selection
  • Key features of high-level programming languages: comments, variables, constants, functions, procedures, keywords, predefined functions; programming libraries, I/O
  • Programming Environments: Compiler, Interpreter; Features of the development environment: code generation, syntax highlighting, line numbering, refactoring, debuggers, watch, breakpoints, single-step, step-throughs; tools and techniques.
  • Programming standards and practice: modularization; use of comments, code layout eg. consistent indentation and descriptive identifiers


Design a computer program:

  • Systematic approach for the development of a solution to a problem: structure diagrams, data flow diagrams, entity relationship models, flow charts, pseudo code, decision tables, state-transition diagrams
  • Basic constructs of algorithms: assignment, sequence, selection and repetition
  • Technical documentation: requirements specification, preliminary design, detailed design, data design, input/output design, procedural design, modular design, structured design, object design, file design


Develop programs in a high-level programming language:

  • Programming language features, keywords and syntax
  • Comments; data types and structures; declare and use variables, constants; variable scope; statements, expressions, creating and evaluating expressions, rules of precedence; assignment operator; operators (arithmetic, relational and boolean); constructs (sequence, selection and repetition)
  • Arrays: one and two-dimensional arrays; iterating through; linear search;
  • Methods, procedures, functions, subroutines
  • Parameters: data types, passing data, return values
  • Basic I/O functions: Input and Output – Screen; File Handling: reading and writing files.
  • Exception Handling


Test a computer program:

  • Program testing and documentation: Debugging; Test documentation; Test plan, Test strategy; black box, white box testing, unit testing, functional testing, regression testing, usability testing; Dry run, trace tables
  • Types of error in programs: logic, syntax, runtime
  • Test data: Normal, abnormal, extreme


Students must utilize one of the following programming languages:

  • Python
  • Java
  • C-based language