Algorithmic and Data Structure
This course is inspired and partly based on the one written by Christophe Gravier. It will evolve over the next few years according to feedback from students and teachers.
This course provides a comprehensive understanding of fundamental data structures and algorithms while emphasizing proficiency in C/C++ implementation.
Prerequisites
Participants are expected to have a proficient understanding of the following prerequisites:
- Fundamental problem-solving skills.
- Familiarity with algorithmic (loops, conditional statements, etc.).
- Basic mathematical concepts such as sets, functions, and elementary algorithms.
- Prior experience in computing (Python or C/C++), ensuring a comfortable entry into the complexities of data structures and algorithms.
Educational Goals
This course delineates specific educational goals aimed at enhancing algorithmic and data structure skills:
- Master the art of structuring programs using static arrays, dynamic allocation, character arrays, linked lists, stacks, queues, hash tables, binary search trees, and bloom filters.
- Develop advanced problem-solving skills by selecting and implementing appropriate data structures and algorithms for diverse scenarios.
- Analyze the time and space complexity of algorithms, facilitating informed decision-making in real-world programming challenges.
- Hone coding proficiency through practical examples and exercises.
- Cultivate a deep understanding of the principles behind data structures and algorithms, ensuring participants can confidently tackle intricate computational problems.
Course Materials
Course ProgramIntroduction
Structure Variables
Functional Programming
Parameter Passing Techniques
Static Arrays
Dynamic Allocation
Characters Arrays
Linked Lists
Stacks Queues
Hash Tables
Binary Search Trees
Bloom Filters