C Programming - Course Syllabus

(This page uses style sheets.)

An in depth course on the C Programming language for programmers who are going to write both application and system programs. Some prior knowledge of a high level language (eg, Pascal, Basic, Fortran) is a pre-requisite. The course is platform independent and any system can be used for the practical work (eg. Linux, Unix, MS-DOS, Windows, VMS, etc.).

Introduction
History, facilities, concepts, uses
Simple C
Basic program structure
Simple data types, variables, constants, operators, comments
Control Flow; if, while, for, do-while, switch
Functions
Functions; Types, parameters, prototypes, recursion
Arrays & Pointers
Array usage
Pointers, addresses and types, call by reference
Pointer - array duality
Strings
Arrays of pointers
Arguments to main
Pointers to functions
Structures
Member accessing, pointers to structures
Structures and functions
Arrays of structures, linked lists, trees
Other Data Types
Unions, enumerations and bit fields
Bitwise Operators
Usage, device accessing
Type manipulation
Coercion, typedef, initialisation
Static, global, external, register
Dynamic Allocation
Uses, pitfalls
The Pre-processor
Define, include, macro's, ifdef
Input and Output
Concepts
Character and File I/O, Basic Curses
Simple File I/O
The Standard I/O Routines
ANSI Standard Libraries

Notes

  1. A comprehensive list of exercises is provided along with worked solutions.
  2. All participants receive copies of the slide material as well as a textbook. Where appropriate, participants receive a pocket reference guide as well.
  3. Emphasis on different aspects will change according to the participants interests.
  4. The Course is applicable to all versions of C, not just for use under a Unix System.
  5. The length of the Course is normally five days.