Courses in the Data Science & Intelligent Systems cluster count towards a B.Sc. degree. How it works is explained here.
The courses listed below are the ones that are planned to be on offer from Fall 2025 onwards. This includes gateway, core and responsive courses. Since responsive courses are built around the idea that they respond to different input, this also means that those will not necessarily be on offer more than once. Expect our course offerings to evolve with the changing world.
Course descriptions will be added as courses are being developed.
-
Gateway Courses
100-level:
- Mathematical Methods
- Introduction to Programming
Course descriptions
100-level: Mathematical Methods
The problem-solving process in many disciplines requires the ability to construct and interpret formulas, and to formulate and solve equations. In this course we introduce elements of linear algebra to help us solve systems of equations. Related concepts are vectors, matrices and eigenvalues. We also introduce elements of calculus as a tool to describe continuous change. We will discuss mathematical functions, the concept of limits, and the techniques of differentiation and integration.
100-level: Introduction to Programming
The gateway to computer science and AI studies is to learn how to create composition of sequences of instructions that computers can follow to perform tasks; that is to get experience in programming. The course begins by introducing traditional structured programming and data constructs, then consideration is given to testing and debugging and finally the object-oriented programming constructs. We focus on learning computational problem solving techniques using Python as programming language. -
AI
100-level:
- AI & Philosophy
200-level:
- Decision-making Methods in AI
- Logic & Discrete Mathematics
300-level:
- Optimization Methods in AI
- Reinforcement Learning
Course descriptions
100-level: AI & Philosophy
This course engages students in inquiry into the broad philosophical foundations and implications of artificial intelligence. In the first module of the course, we will examine the historical development of AI systems, distinguishing between the development of symbolic AI and additional approaches, including neural networks, through the lens of classical and recent philosophical treatments. In a second module, we’ll consider ethical ramifications of the use of AI, including issues such as interpretability, algorithmic bias, alignment, as well as issues related to surveillance and privacy. We will then approach the topic of AI consciousness, a topic of emerging debate and discussion in recent philosophy. In the fourth module, we’ll explore the implications of AI for an understanding of human nature and its purported uniqueness.200-level: Decision-making Methods in AI
The course focuses on planning. It introduces various techniques for AI systems to achieve goals by taking actions in a structured sequence, considering both deterministic and non-deterministic environments. The course covers classical algorithms, the challenges of handling uncertainty, and the complexity of partial observability in decision-making. It also explores planning with resources and how AI systems can optimize their behavior to handle real-world constraints and diverse situations.200-level: Logic & Discrete Mathematics
This course is about the mathematics of decision-making. Unlike fields like algebra or calculus, discrete mathematics deals with things you can count – like whole numbers, steps in a process, or connections in a network. It’s the math of logic, patterns, and structure. These are widely applicable concepts, but we will mostly focus on computer science and the construction of algorithms.300-level: Optimization Methods in AI
Considerable part of AI is about computational methods which aim to achieve the best expected outcome for search problems in complex and adversarial environment. Topics of this course include uninformed and informed search in discrete and completely known environments, local and global search methods in unknown and continuous environments, games played in adversarial environments and constraint satisfaction problems.300-level: Reinforcement Learning
Reinforcement learning explores how agents such as robots or game AIs can learn through trial and error. In this course, we discuss the fundamental theoretical framework for reinforcement learning as well as various classical learning algorithms. We also study some of the most important recent algorithms that involve neural networks. Students implement many of these algorithms and build agents that can solve complex tasks. -
Applied Data Science
100-level:
- Introduction to Data Science
200-level:
- Machine Learning
- Image Processing & Computer Vision
300-level:
- Neural Networks & Deep Learning
- Robotics
Course descriptions
100-level: Introduction to Data Science
Data science is the science of extracting meaningful information from data. In this course, you develop foundational abilities in data visualization as well as data cleaning and manipulation. Next to traditional data coming in the form of tables, we explore non-traditional data types such as spatial data and text data. The course includes much hands-on work with example data sets coming from sciences, social sciences, and arts and humanities.200-level: Machine Learning
Machine learning deals with extracting patterns from data and making predictions. In this course, we focus on core techniques and algorithms ranging from simple linear regression to advanced tree-based methods. In the theoretical part of the course, we discuss the strengths and weaknesses. of the different methods. In the practical part of the course, students apply machine learning methods to real data from fields such as medicine, physics, or economics.200-level: Image Processing & Computer Vision
The course covers the processing of image data to turn images into better images and the analysis of image data to gain high-level understanding of the content of images. Students also learn about feature and object detection and tracking. Image processing and computer vision are highly relevant to the medical domain, self-driving vehicles, interactive gaming, robotics, crowd and traffic management, and many other application areas.300-level: Neural Networks & Deep Learning
Neural networks have enabled major advances in areas such as computer vision, large language models, and generative AI. This course focuses on the underlying theory as well as practical implementations. We start by building and training our own basic neural networks from scratch. We then move on to more complex neural networks for applications such as computer vision. Finally, we discuss recent developments in large language models (such as ChatGPT) and image generation models (such as DALL-E).300-level: Robotics
This course focuses on crucial computational problems in robotics. Among the topics that we address are forward and inverse kinematics, which deal with controlling a robotic arm in such a way that it can accomplish a given task. We also consider the problem of modeling and planning the motion of an autonomous robot in an environment with obstacles, as well as local collision avoidance. Finally, the course focuses on modelling and planning of various forms of robotic grasping and manipulation. -
Computer Science
200-level:
- Database Management
- Networks & Operating Systems
- Software Development
300-level:
- Algorithms & Data Structures
- Advanced Algorithms
Course descriptions
200-level: Database Management
Database management systems are one of the foundations upon which our modern society is built. This is a course about such systems. We study SQL, a special-purpose language designed for managing data in a relational database management system. Consideration is also given to the theory underpinning relational databases, authorization, normalization and query processing.200-level: Networks & Operating Systems
Computer networks are the foundations on which our modern, computer-based world is built. An operating system (OS) is system software that is the interface between computer hardware and applications. By the end of this course we will have obtained a reasonable familiarity with how the Internet works and how it can be monitored and controlled, moreover, a sound understanding of the pivotal role an OS plays in the managing of resources and the running of applications.200-level: Software Development
Software development is designing, creating, testing, and maintaining software applications. We learn to program in C++, which offers fine-grained control over system resources, and in Haskell, which is a purely functional programming language. Various stages of software development such as planning and requirements gathering, testing and quality assurance, deployment and maintenance is covered in laboratory format consisting mostly on in-class discussions and code reviews.300-level: Algorithms & Data Structures
This course aims to provide you with knowledge, skills and critical thinking ability in algorithm design and analysis. Inappropriate choice of algorithm and associated data structure can seriously impact on the performance of an application. The study of algorithm design and analysis provides techniques which help minimize the execution time of an algorithm. We focus on the ‘greatest hits’ of algorithms and data structures with an emphasis on the experimental performance analysis.300-level: Advanced Algorithms
The realm of Algorithms certainly needs further exploration. We study modern algebraic algorithms and solution methods for optimization problems. The course will provide you with the knowledge and experience of advanced computational techniques with emphasis on algorithmic thinking and mathematical modeling. -
Mathematics
200-level:
- Advanced Calculus
- Linear Algebra
- Numerical & Computational Mathematics
300-level:
- Probability & Statistics
- Linear Systems
Course description
200-level: Advanced Calculus
This course builds on elementary calculus, extending concepts like differentiation, integration to multiple dimensions, differential equations. This course also includes some analysis involving complex-valued functions. Students will deepen their analytical skills and solve problems both by hand and using computer algebra software—preparing them for advanced applications in mathematics, science, and data analysis.200-level: Linear Algebra
This course introduces key concepts in linear algebra, such as systems of equations, vectors and matrices, and linear spaces, with a strong emphasis on visual and conceptual understanding. These ideas are widely applied across fields—from economics and physics to computer science and robotics. Students will develop their skills by solving numerous exercises, both by hand and using computer algebra software. This hands-on approach supports practical skills alongside theoretical understanding.200-level: Numerical and Computational Mathematics
Many mathematical problems do not have analytical solutions. They require a numerical algorithmic solution strategy. This course introduces key methods in computational and numerical mathematics, including root-finding, interpolation, numerical differentiation and integration, and solving differential equations. Emphasis is placed on understanding algorithmic accuracy, stability, and efficiency. Students will use computer algebra software extensively to apply these techniques to many exercises.300-level: Probability & Statistics
This course provides a solid foundation in mathematical statistics. The course discusses probability theory, discrete and continuous distributions, including joint distributions for two (or more) random variables, sample statistics and parameter estimation. Students will solve many problems analytically and use computer algebra software to simulate and validate results—developing both theoretical understanding and practical skills essential for data science.300-level: Linear Systems
This course focuses on the analysis of linear systems from an engineering perspective. The course explores multiple ways to represent systems — such as through linear differential equations, transfer functions, state-space representation and signal-flow diagrams — and discusses how to convert between these characterizations. Emphasis is placed on understanding the structure and behavior of systems, laying the groundwork for applications in control, signal processing, and modeling.