Available courses

This course introduces students to the basics of the Hungarian language and provides insights on various aspects of Hungarian culture. We help students navigate everyday life by being able to use Hungarian in different situations (shopping, getting around town, talking about yourself, etc.) and gain some experience of their stay in Budapest in this way. Culture is also an organic part of the course, which we approach through the learning-by-doing method.

This introductory algorithms course covers the principles and techniques for efficient problem-solving 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 red-black trees. The course also introduces NP-completeness and methods to handle NP-complete 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

Topics 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.

Graph 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 problem-solving skills.

Prerequisites: experience with mathematical problem-solving and proofs in any mathematical area.

How 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, proof-based 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)

Data 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 problem-solving sessions, programming exercises, and small team projects.

Prerequisites: basics of linear algebra, basics of multivariate calculus, basics of probability, basics of Python programming

This course provides a stimulating introduction to the history of Hungarian musical culture and its Central European environment in the last few centuries. In the class sessions, we listen to and discuss a wide array of music, giving insights into the art of influential classical composers (e.g. Joseph Haydn, Franz Liszt, Gustav Mahler, Béla Bartók, and György Ligeti). Students partake in the thrill of live performances, including two organized concert visits at the exceptional concert halls of Budapest.

This course introduces students to the basics of the Hungarian language and provides insights on various aspects of Hungarian culture. We help students navigate everyday life by being able to use Hungarian in different situations (shopping, getting around town, talking about yourself, etc.) and gain some experience of their stay in Budapest in this way. Culture is also an organic part of the course, which we approach through the learning-by-doing method.

This course provides an overview of Hungarian history and culture through watching films, walking in the city and discussing cultural heritage (arts, architecture, cinema, literature, sport, gastronomy, daily life, etc.). It is a 4-credit course that has two components in two separate timeslots: Budapest Studies and Hungarian Cinema. In Budapest Studies students acquaint themselves with the history of Budapest since Roman times to the present. The Cinema course gives an overview of 20th and 21st century Hungarian history through watching and discussing some of the most influential old and recent Hungarian movies. Note that Budapest Studies can be taken on its own, but the Budapest through Cinema course must be taken in conjunction with Budapest Studies.

This course provides an overview of Hungarian history and culture through watching films, walking in the city and discussing cultural heritage (arts, architecture, cinema, literature, sport, gastronomy, daily life, etc.). It is a 4-credit course that has two components in two separate timeslots: Budapest Studies and Hungarian Cinema. In Budapest Studies students acquaint themselves with the history of Budapest since Roman times to the present. The Cinema course gives an overview of 20th and 21st century Hungarian history through watching and discussing some of the most influential old and recent Hungarian movies. Note that Budapest Studies can be taken on its own, but the Budapest through Cinema course must be taken in conjunction with Budapest Studies.

Many of the most accomplished IT entrepreneurs and leaders come from engineering or computer science backgrounds rather than business administration. Therefore, CS students might consider an entrepreneurial career path. Regardless of their professional goals, this course helps students appreciate the broader impact of ethical business practices while addressing major themes in leadership and entrepreneurship.

In today's rapidly changing world, understanding social, technological, and business environments is crucial for scientists and engineers designing future IT products and services. This course addresses this issue while emphasizing the impact of globalization, cross-cultural adaptation skills, and the unique challenges facing entrepreneurs in the US, Europe, and Asia/Pacific, including cultural differences within Europe.

The course introduces the design principles and practices essential for crafting user-friendly digital products: products that meet real user needs and deliver positive experiences rather than frustration. Students will explore key human-centered design methods through lectures, collaborative workshops, and individual projects guided by professional UXD mentors. Topics include usability, human perception and cognition, research methods, information architecture, and rapid prototyping. This course equips students with the skills to evaluate existing design solutions and to identify opportunities for innovation.

For CS students focused on virtual reality, this workshop offers a reminder of the physical world's potential and constraints. It encourages exploration of space, form, material, and creativity under the guidance of a master of design thinking. Using materials like paper, wood, and wire, students unleash their creativity, giving shape to individual ideas. The workshop introduces key concepts of dimensionality, structure, and transformation, helping students appreciate the "real" world where their computer programs are applied.

Cryptography provides a set of powerful algorithms for protecting data at rest and in transit. This practical course teaches students how to use basic cryptographic primitives, such as encryption, integrity checksums, key derivation functions, etc, appropriately to design and implement secure cryptographic systems. This course emphasizes the engineering of cryptographic applications, rather than the mathematical foundations of cryptographic algorithms.

This course guides students through the process of mobile app design and development, focusing on best practices and skills via a deliberate mix of theoretical knowledge and hands-on experience. Students learn the latest technologies and programming languages essential for mobile development while gaining experience in clean code, agile development, and efficient coding techniques. The curriculum covers key technologies in modern user interface, maps, cloud services, networking, animation, AI, and multimedia.

Prerequisites: basic knowledge in object oriented programming

The aim of the computational neuroscience course is to use ideas and algorithms from machine learning and artificial intelligence to understand how human and animal cognition works. The course focuses on several important real-world problems such as decision making, navigation or reinforcement learning and directly look for the signatures of the algorithmic solution to those problems in behavioural and neuronal data. Participants will learn to critically assess published results in both neuroscience and artificial intelligence, as well as to gain hands-on experience in developing models, working with neuronal data and applying efficient algorithms to solve computational problems.

This course teaches the fundamentals of the computer representation of geometry, motion, and lighting, as well as surface colors, patterns, and textures, both in 2D and 3D. Along the way, students write programs that freely combine elements of this knowledge, possibly realizing their own game ideas. To do that, they need to gradually gather skills in Kotlin for CPU and GLSL for GPU programming. Both the software architecture knowledge and the GPU shaders written are transferable to other engines like Unity or UE. Students take away skills in the practical application of matrix-vector math, programming for interactive environments, game engine design, and understanding of highly parallel algorithms best suited to exploit the power of GPUs.

Prerequisites: fundamental skills in Trigonometry, Mathematical Analysis, Linear Algebra, Programming, and Physics

Complex systems consist of many interacting units and are characterized by nonlinearity, positive and negative feedback, and emergent cooperative phenomena. Examples are the brain, the cell, the internet, the economy etc. The course presents the foundations of complex network theory, including small world and scale-free properties, and analyzes examples from information technology, economy, sociology and biology.

Prerequisites: basic concepts of calculus and probability theory, programming aptitude is required

This course introduces the foundational principles and practical applications of deep learning, a cornerstone of modern artificial intelligence, equipping students with the skills to design, train, and deploy neural network models. Participants will explore the common deep learning architectures (e.g. fully connected, convolutional, recurrent neural networks and transformers) and training methods, preparing them to tackle complex problems in areas like computer vision and natural language processing.

Prerequisites: basic programming skills, basic matrix algebra knowledge, basic probability theory knowledge