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.
- 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.