|
 |
Course Main Module : Programming in
C++
Duration
Full time : 5 hours per day for 8 weeks
Part time : 2.5 hours per day for 16 weeks
Course days : Monday - Friday
Career Opportunity
Computer programmers in Tanzania are in
high demand in Tanzania due to the large number of organisations
who have embarked on some of computerisation. Employment is
available in both the Government and Private sectors. In the
private sector, opportunities exist in user organisations or
computer systems companies.
Objectives
- To provide participants with adequate
knowledge of computing required to understand the
functionality and operation of computer systems.
- To provide participants with adequate
knowledge of a Principles of Programming and hence enable
a thorough understanding of manner in which computer
based systems are designed and developed.
- To provide participants knowledge of a
common programming language to level of being able to
develop the systems.
Course Structure
This course is concerned with techniques
which have been developed to enable the programmers to make
effective use of the computer, with emphasis being placed on the
software engineering aspects of program design, development and
maintenance. The programming language which will be taught is
C++.
General Introduction to Computers
- Computer System Structure, General
devices and usage, operating system and functions
- Application Software - types and
applications. Use of common application packages -
Word Processors and Spreadsheets. This part of the
course will cover practical training on common word
processing and spreadsheet packages.
Software design and Development
- The stress in this section will be on
basic software engineering principles such as
reliability, robustness and maintainability.
The interpretation of a software
requirement specification
- The design and representation of
algorithms. A detailed understanding of and the
ability to apply, at least one systematic design method -
top-down, bottom-up, modular, data-driven,
object-oriented etc. Automated software design
tools.
- Structured programming, choice of
control structures, graphical and textual representations
of design.
- Program development: selection of a
language: prototyping: user and programmer documentation.
Data and its structure
- Data types: simple and compound data
types and their realisation in the high level and
low-level language chosen for study.
- Data Structures: strings, arrays,
tables, stacks, queues, lists, trees, contiguous and
linked structures.
- File organisation and access: serial,
sequential, direct, indexed and inverted files.
Database principles.
Programming Languages
- A detailed knowledge of C++ which
includes data types, declaration, assignments,
conditionals, looping, subprograms, parameter passing,
the proper use of explanatory comments, classes and
object-orientation.
- Simple assembly-level programming:
symbolic operation codes and operand addresses; absolute
and relative addressing; the use of indirect and indexed
addresses; directives; macros.
Software Tools
- A user's view of operating
systems(interactive, batch and real time) and utility
software.
- The programming support environment:
types of text editor and their facilities: features and
relative merits of compilers and interpreters; linkers
and leaders; bootstrapping; filing system and operations
and command languages; data dictionaries, DBMS and query
languages; program and application generators; source and
object program libraries.
- Debugging and tuning tools; trace
facilities, source level debuggers cross-references,
program formatters, performance monitoring etc.
Testing and Debugging
- Systematic testing: syntactic,
semantic and run-time error. Interpretation of
diagnostic messages. the design of test data,
including 'white-box' and 'black-box' approaches; test
documentation.
- Systematic debugging and checking;
walk-through; user-inserted trace statements; selection
of appropriate software tools.