About Us | [Public iPhone iPad Courses] | [Public Android Courses] | [Public Arduino Courses] | [Contact Us]

Course CL102
Foundations of Dynamic Data Structures and Algorithms in C

Duration: 5 Days

Intended Audience

Attendees should have some experience of C programming and a basic understanding of arrays, pointers and data structures.

Course Overview

The course emphasises the implementation of disciplined and well structured code and the design of modules with clean interfaces. The course provides and intensive overview of a wide variety of important data structures and algorithms. Topics include:

Lab exercises are used to consolidate key concepts.

The course uses the GNU gcc compiler and associated tools such as make and gdb. As well as command line approaches use of the Eclipse IDE for C application development is also covered

Course Benefits

Students completing this course will considerably improve the discipline and rigour with which they design and write embedded systems applications in C, possibly, learn more about algorithms and data structures (e.g. refreshing topics rushed over in University computer science courses), reinvigorate their passion for programming.

You'll be able to implement classical data structures such as circular buffers, linked lists, and trees -- and you'll know 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 how complex algorithms and data structures are applied and used (some of the examples will be taken from the Linux Kernel source code).


Course Contents

Intensive overview of essential C concepts and idioms

Arrays and buffers

Linked Lists in depth

Binary trees, their uses and their relations

Error detection

Implementing simple memory management schemes

Implementing simple flash memory file systems

State Machines and Statecharts

Statecharts

Pattern Matching, Searching and Sorting

Advanced Topics