CB.

Datastructuren en algoritmen voor KI (INFOB2DAKI)

Completed: 08-01-2025 | 7.5 EC | Universiteit Utrecht

What I Learned

In (INFOB2DAKI), I explored data structures and algorithms critical for designing efficient AI systems, mixing theoretical analysis with practical implementations in C#. The course was assessed via two exams and seven programming assignments. Below is a breakdown of the topics covered:

Foundations of Data Structures and Algorithms

Correctness and Efficiency: Studied loop invariants and algorithmic analysis to ensure reliability and performance.

Sorting Algorithms: Explored recursive and linear-time sorting techniques for organizing data.

Recursion: Learned to design and analyze recursive algorithms for problem-solving.

Basic Data Structures: Covered stacks, queues, and linked lists for data storage and manipulation.

 

Advanced Data Structures

Heaps and Priority Queues: Investigated prioritized data handling for scheduling tasks.

Hash Tables: Analyzed key-value storage for fast retrieval in AI systems.

Binary Search Trees: Studied balanced trees for efficient searching and ordering.

Graphs: Explored graph traversal and optimization techniques for network analysis.

 

Algorithmic Techniques

Mathematical Analysis: Used summations and logarithms to evaluate algorithm complexity.

Graph Algorithms: Applied shortest path and spanning tree methods for optimization.

Search Strategies: Implemented binary search and graph-based search for efficient solutions.

 

Practical Application

Assignment 1: Calculated lake diameters from robot measurements, practicing I/O and basic computation.

Assignment 2: Implemented binary search to minimize material use in a workshop, optimizing resource allocation.

Assignment 3: Used recursion to find minimal distances between aircraft, ensuring efficient spatial analysis.

Assignment 4: Developed a hybrid quicksort/selection sort algorithm to optimize sawing plans.

Assignment 5: Built a linked list to reconstruct passwords from keylogs, focusing on efficient data manipulation.

Assignment 6: Designed a graph search to solve a permutation game, minimizing steps for sorting.

Assignment 7: Implemented Dijkstra’s algorithm with a custom priority queue to find optimal bike routes.