C Programming
Basic syntax to support a structured approach to program development using procedural abstractions - program and control structures - basic data types - reuse of basic functions for I/O, string and mathematical manipulation.
Structured types - arrays, vectors and classes as records. Algorithm design. Simple file processing.
The use of functions and parameters. Global and local variables.
Bit-wise and logical operators
Using pointers for accessing data and invoking functions.
Simple input/output to a parallel port, involving timing for multiple simultaneous activities
Using ADCs and DACs as input and output devices, understanding relevant parameters: bandwidth, conversion rate, precision, slew rate, stability.
Elementary introduction to the problems of multi-tasking
Speed control for a small DC motor. Driving a stepper motor from a processor.
Synthesizing simple square, triangle and sine waves
Use of make files and project configuration spec
Very strong emphasis on practical work. Development of understanding by numerous demonstrations and simple, progressive exercises
First half of the course will concentrate on teaching basic syntax and use of a structured, stepwise-refinement approach to design and implementation with exposure to structure charts and finite state diagrams
Second half of the course will develop an understanding of the difficulties involved with I/O programming. Event driven programs will be implemented using finite state methods
An extended case-study, supported by focused tutorials and practicals, will allow the students to follow through an example application from design to implementation, and appreciate the relevance of all the component parts of the module syllabus