Back to Informatik

Algorithmen und Datenstrukturen

8 ECTS
Semester 2

Basic Data Structures

Overview

Fundamental data structures and their implementations

Learning Objectives

  • Understand arrays and linked lists
  • Master stack and queue implementations
  • Work with trees and graphs
  • Implement hash tables
  • Analyze space and time complexity

Practical Applications

Database Systems

Efficient data organization and retrieval

Example: B-trees in database indexing

Operating Systems

Memory management and scheduling

Example: Process scheduling queues

Practice Problems

  • Implement a balanced binary search tree
  • Design a hash table with collision handling
  • Create a priority queue using heaps

Algorithm Analysis & Complexity

Overview

Understanding and analyzing algorithm efficiency

Learning Objectives

  • Master Big O notation
  • Analyze time and space complexity
  • Compare algorithm efficiency
  • Understand NP-completeness
  • Identify algorithmic bottlenecks

Practical Applications

System Design

Optimizing large-scale systems

Example: Choosing efficient data structures for high-load services

Performance Engineering

Identifying and resolving bottlenecks

Example: Optimizing database query performance

Resource Planning

Estimating computational requirements

Example: Cloud infrastructure scaling decisions

Practice Problems

  • Analyze time complexity of recursive algorithms
  • Compare different solutions for the same problem
  • Identify complexity classes of algorithms
  • Optimize algorithms for better performance

Sorting & Searching Algorithms

Overview

Fundamental algorithms for organizing and finding data

Learning Objectives

  • Master common sorting algorithms
  • Understand searching techniques
  • Analyze algorithm efficiency
  • Implement optimal solutions
  • Choose appropriate algorithms for different scenarios

Practical Applications

Database Systems

Efficient data retrieval

Example: Implementing database indexing

File Systems

Organizing and searching files

Example: File name sorting in directories

Data Analytics

Processing large datasets

Example: Sorting and searching big data

Practice Problems

  • Implement QuickSort with different pivot strategies
  • Create an efficient binary search implementation
  • Optimize sorting for nearly sorted data
  • Implement hybrid sorting algorithms

Graph Algorithms

Overview

Algorithms for processing and analyzing graph structures

Learning Objectives

  • Understand graph representations
  • Master graph traversal algorithms
  • Implement shortest path algorithms
  • Work with minimum spanning trees
  • Analyze graph connectivity

Practical Applications

Social Networks

Analyzing relationships and connections

Example: Friend recommendation systems

Transportation

Route planning and optimization

Example: GPS navigation systems

Computer Networks

Network routing protocols

Example: Internet packet routing

Practice Problems

  • Implement Dijkstra's shortest path algorithm
  • Create a minimum spanning tree using Kruskal's algorithm
  • Detect cycles in directed and undirected graphs
  • Find strongly connected components

Algorithm Design Techniques

Overview

Fundamental approaches to solving algorithmic problems

Learning Objectives

  • Master divide-and-conquer strategies
  • Understand dynamic programming
  • Apply greedy algorithms
  • Implement backtracking solutions
  • Use branch and bound techniques

Practical Applications

Optimization Problems

Resource allocation and scheduling

Example: Job scheduling in cloud computing

Game Development

Path finding and AI strategies

Example: NPC behavior algorithms

Financial Systems

Trading and portfolio optimization

Example: Automated trading strategies

Practice Problems

  • Solve knapsack problem using dynamic programming
  • Implement traveling salesman using branch and bound
  • Create solutions using divide-and-conquer
  • Design efficient greedy algorithms