The course is divided into two main sections:
-
Programming and Algorithms: In this section, we explore fundamental computing algorithms with a focus on searching and sorting techniques. The projects demonstrate the application of these algorithms in various scenarios, emphasizing algorithm analysis to understand their efficiency and limitations.
-
Data Structures: This section delves into abstract data types and their implementations using different data structures such as sets, lists, trees, and graphs. Each data structure is represented through practical coding examples that showcase their unique properties and operations. Additionally, we discuss memory management techniques including storage allocation and garbage collection.
-
Projects: This repository is structured to include directories for each major topic, featuring implementations and detailed examples:
LinkedLists: Custom implementation of linked lists, showcasing insertion, deletion, and traversal operations.
Stacks and Queues: Examples of stack and queue operations using arrays and linked lists.
Trees: Various tree structures including binary trees, AVL trees, and B-trees with operations such as searching, insertion, and balancing.
Graphs: Implementation of graph structures and algorithms for traversal, including depth-first and breadth-first searches.
Sorting Algorithms: Implementation of fundamental sorting algorithms like quicksort, mergesort, and heapsort.
Searching Algorithms: Demonstrations of linear and binary search techniques.