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
- Thomas H. Cormen: Introduction to Algorithms, 3rd edition, MIT Press
- C. Ericson: Real-Time Collision Detection, Morgan Kaufmann, 2005
- Lecturer: Hofer Karl
- Lecturer: Mehnen Lars
- Lecturer: Nimmervoll Alexander