1 Classes at University of Athens
ΘΠ23 – Computational Learning Theory
Summary
The course is offered in both undergraduate and graduate level and studies key topics in computational learning theory. It examines problems of learning and statistical testing of probability distributions, as well as training models for classification. We study well-defined computational learning models where it is possible to provide precise and rigorous analyses of learning problems and algorithms, with an emphasis on computational complexity.
ΘΠ24 – Algorithmic Problem Solving
Summary
Problem Solving and Algorithm Design with a focus on efficient implementation in C/C++. Emphasis will be placed on simplified implementation of complex algorithms and logic using libraries. Implementations through the STL library will be used, as well as ready-made solvers for linear programs and satisfiability problems. A wide range of algorithms and techniques will be covered, such as: Search and sorting algorithms, Greedy algorithms / Exhaustive algorithms with recursion, Efficient bit-level encoding, Data structures (Trees, Stacks, Queues, Heaps, Range Queries), Dynamic Programming, Graph Algorithms (Connectivity, Shortest Path Finding, Maximum Flow), Linear Programming.
K09 – Discrete Math
Summary
Introduction to the following concepts: Sets, Mathematical logic and iduction, binary relations, functions, combinations and permutations, discrete probability distributions, conditional probability, independent events, Bayes theorem, asymptotic behavior of arithmetic functions. Seminar exercises are given as well as a final test.
2 Classes at UW-Madison
CS 787 – Advanced Algorithms
(Spring 2022, Spring 2020, Fall 2019)
Summary
Advanced paradigms for the design and analysis of efficient algorithms, including the use of randomness, linear programming, and semi-definite programming. Applications to data structures, approximating NP-hard optimization problems, learning, on-line and distributed problems.
CS 880 – Topics in Algorithmic Game Theory and Machine Learning
Summary
How to design algorithms when inputs are given by strategic or malicious people and the outputs affect them directly? Topics include: Concepts from Game Theory Learning Dynamics and Convergence in Games Mechanism Design without money and Social Choice Theory Mechanism Design with Money Concepts from Learning Theory Optimization from Samples Learning under Adversarial or Strategic Inputs
CS 577 – Introduction to Algorithms
(Spring 2021, Spring 2020, Fall 2018)
Summary
Basic paradigms for the design and analysis of efficient algorithms: greed, divide-and-conquer, dynamic programming, reductions, and the use of randomness. Computational intractability including typical NP-complete problems and ways to deal with them.