C Programming, Advanced

C remains one of the most popular programming languages. It is widely available on most, if not all, computing platforms. This language is highly valued for its speed, low-level capabilities and platform independent characteristics. It is also actively used in the development of other languages. This course will broaden your skills as a C language programmer by introducing sophisticated problem-solving techniques, including the advanced use of pointers, abstract data types, data structure concepts and optimization techniques.

This course delves into the design, implementation, and use of advanced data structures, based on primitive data types. Students will solidify their understanding of strings, arrays, structures, unions and bit manipulation. Emphasis will be on programming that employs and improves upon a variety of data structures. Through this course, you will learn to write efficient programs by understanding the complexities of various algorithms.

Topics Include:

Data types, variables, operators, and operator precedence

Arrays in general, including two-dimensional and multi-dimensional configurations

Dynamic memory allocation, linked, circular and doubly linked lists

Binary trees in general, including implementation, traversal and drawbacks

Recursions and implementation of recursive algorithms

Huffman algorithm

AVL trees, B trees, and B+ trees

Sort routines, big 0 notation and the complexity of algorithms

Graphs: their traversal and applications

Hashing and hash tables

Skills Needed: Students should have a good understanding of programming using data types such as pointers, control flow, structures and functions.