This course is about modern topics of advanced programming.

Learning outcomes

After passing this course successfully students are able to ...
  • learn the O-Notation, efficiency
  • know how to create pseudo-random number generators
  • know how to use heuristic algorithms (A*, CSP)
  • know how to define computational geometry, convex hull
  • knopw how to create and use spatial data structures, collision detection
  • learn modern C++ (lambda, monad)
  • know how to create parallel programs in OpenMP
  • create parallel algorithms
  • know how to use OpenCL

Course Contents

  • Complexity of algorithms, Recap Algorithms and data-structures
  • Random numbers
  • Computational Geometry 
  • Spatial Data Structures, Collision Detection
  • BFS, DFS, Heuristic Search Algorithms
  • CSPs
  • MiniMax, Alpha/Beta Pruning
  • C++ Performance Optimization and Parallel Programming
  • OpenMP
  • OpenCL

Prerequisites

  • C / C++ 
  • Algorithms and data-structures

Literature