The world's very first graph theory course was offered at the Budapest University of Technology and Economics some 80 years ago. The lecturer was Professor Dénes Kőnig, author of the first book on graph theory; his students included Paul Erdős, Tibor Gallai, Paul Turán and other pioneers of the subject. Building on this strong tradition, AIT offers a number of courses in the foundations of computer science.
Title  Descriptions  Faculty  Credits 

Algorithms and Data Structures
The design and analysis of efficient algorithms 
Judit Csima
Máté Vizer

4 credits  
Short descriptionThis introductory algorithms course covers the principles and techniques for efficient problemsolving in computer science. Students will explore key algorithms for sorting, graph traversal, shortest paths, and minimum spanning trees, along with fundamental data structures like heaps and redblack trees. The course also introduces NPcompleteness and methods to handle NPcomplete problems. The goal is to teach students to distinguish between easy and difficult algorithmic problems and solve them efficiently. The course emphasizes algorithm design, correctness, and efficiency analysis, providing a strong foundation in both practical and theoretical algorithms and data structures. Prerequisites: basic mathematical maturity, basic knowledge of programming 

Theory of Computing
Models of computation and the limits of computation 
Gyula Y. Katona
Balázs Patkós
Padmini Mukkamala

4 credits  
Short descriptionTopics of the course include finite automata, context free languages, and a strong emphasis on Turing machines as a universal model of computation. The theory of computing enables us to prove that certain problems cannot be solved by any algorithm, and others, though solvable, cannot be solved efficiently. The course forms the mathematical foundation of computation, independent of hardware and software considerations. Starting with precise formal definitions of an “algorithm” and a computational “problem”, we prove fundamental results that form the basis of the field of computer science. Prerequisites: some experience with basic proof methods 

Data Science
Transforming data into knowledge using machine learning 
Roland Molontay

4 credits  
Short descriptionData science is a rapidly growing discipline with wide applications to all sectors of society. In this course, students learn foundational concepts of data science and machine learning including topics such as classification, regression, and clustering. Lectures are supplemented by problemsolving sessions, programming exercises, and small team projects. Prerequisites: basics of linear algebra, basics of multivariate calculus, basics of probability, basics of Python programming 

Graph Theory
A discrete mathematical approach to the art and science of networks 
Gábor Wiener
Tamás Fleiner

4 credits  
Short descriptionGraph theory is an indispensable tool for studying many types of networks and other complex systems. This course begins with an introduction to basic concepts, explores classical topics in the field, and provides an opportunity for students to further develop their problemsolving skills. Prerequisites: experience with mathematical problemsolving and proofs in any mathematical area. 

Combinatorial Optimization
Applications of theoretical mathematics to reallife optimization problems 
Dávid Szeszlér
Péter Pál Pach

4 credits  
Short descriptionHow can tasks be assigned to workers in order to maximize profit? How can goods be transported through a network at minimum cost? These are examples of the types of practical algorithmic problems that are addressed in this course. In addition to learning specific efficient algorithms for some of these problems, we interactively develop the foundations of a powerful framework called linear and integer programming, under which many of these problems can be handled. While all this will happen in a rigorous, proofbased mathematics course, the course also emphasize the intellectual joy of problem solving. Prerequisites: Mathematical maturity, elementary concepts from linear algebra (matrix operations and their properties) 