Description
The course emphasises the implementation of disciplined and well structured code and the design of modules with clean interfaces.
Topics include:
Advanced use of dynamic data structures and algorithms for manipulating them
Structured interrupt handling
Implementation of simple schedulers and operating systems
Working with embedded operating systems
Understanding standard techniques for inter-process communication, and their uses
Finite state machines, statecharts, and their uses
Advanced algorithms and research-oriented approaches.
The course uses PIC16, PIC18, and PIC24 / dsPIC processors as a platform for hands-on work. However, the techniques taught can be readily applied to other architectures. Similarly, the course uses uCOSII and CMX as example operating systems, but Inter-Process Communication techniques are covered in a generic way so that they can be applied to other architectures and operating systems.
Personal Benefits
After completion of this course you'll be able to implement classical data structures such as circular buffers, linked lists and trees and you will have developed a thorough understanding of when it's appropriate to use them.You'll be exposed to a variety of advanced programming idioms and algorithms with their associated data structures, for tasks such as indexing, data compression and error detection. You'll learn to write event driven programs, to implement finite state machines, and to design hierarchical state machines using statecharts. You'll learn structured programming techniques for implementing multi-tasking applications, and you'll be able to work with embedded operating systems as well as the standard inter-process communication idioms such as producer-consumer, workcrew and monitors.