Understand the fundamental principles of recursion and its relationship with mathematical induction. |
Use recursion as a problem-solving and programming technique. |
Develop design and implementation skills for key abstract data types such as linked lists, doubly linked lists, stacks, and queues. |
Analyze discrete data structures, such as trees, using combinatorial methods. |
Understand algorithmic solutions for sorting and searching problems and design common search structures like binary search trees. |