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.
-
AI
Gateway Courses:
- For all 200-level and 300-level courses in AI: Introduction to Programming & Computer Science
100-level:
- AI in Society
200-level:
- Optimization Methods in AI
- Decision-making Methods in AI
- Discrete Mathematics & Logic
300-level:
- Reinforcement Learning
Course descriptions
100-level: Introduction to Programming & Computer Science
This is an introductory course in problem solving and computer programming in Python. The course begins by introducing traditional structured programming and data constructs (i.e. branching, loops, functions; tuples and lists). Then consideration is given to testing and debugging and finally the object-oriented programming constructs. During the entire semester, elements of discrete mathematics (e.g., logic, sets, enumeration) as well as certain computational problem solving techniques are also incorporated into the course material. -
Applied Data Science
Gateway Courses:
- For all 200-level and 300-level courses in Applied Data Science: 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, students develop the foundational abilities in data visualization and data wrangling (i.e. data cleaning and manipulation). Next to traditional data coming in the form of two-dimensional tables, we explore non-traditional data types (e.g., spatial, text, network) and interactive data graphics. The course includes much hands-on work (labs, projects) with example datasets coming from sciences, social sciences, arts and humanities.200-level: Machine Learning
The course provides an overview of the field of statistical learning. It presents some of the most important modeling and prediction techniques, along with relevant applications. Topics include linear regression, classification, resampling methods, shrinkage approaches, tree-based methods, support vector machines, clustering, and more. Real-world examples are used to illustrate the methods presented.200-level: Image Processing & Computer Vision
Computer vision deals with extracting high-level structural understanding from image and video data. As such, it is closely related to data science. The course covers the processing of image data to turn images into better images, and the analysis of image data to gain structural information. Students learn about image models, color spaces, linear, non-linear, and morphological filters, and basic image processing tasks such as edge and curve detection and automatic thresholding. They also about classification, detection and optical flow, and how to combine different views into a three-dimensional reconstruction.300-level: Neural Networks & Deep Learning
Neural networks are machine learning models that have enabled important advances in areas such as computer vision, large language models, and generative AI. The course focusses on the underlying mathematical theory as well as practical implementations in the Python programming language using TensorFlow. No familiarity with Python is assumed, but a willingness to learn and write code in Python is essential.We start by building and analyzing our own neural networks from scratch. This gives us time to get familiar with Python programming and to introduce many of the important concepts in a basic setting. We then move on to more complex neural networks for various applications such as computer vision. We implement these using TensorFlow. In the last part of the course, we turn to recent developments in large language models (such as ChatGPT) and image generation models (such as DALL-E).
300-level: Robotics
Robotics is an interdisciplinary area in engineering and science that brings together mechanical and electrical engineering, computing and information science, artificial intelligence, and other fields. Robots should be autonomous: they must be able to perform their tasks with as little external influence as possible. This course focuses on some of the most common technical abilities an autonomous robot must possess. Such a robot should be able to maneuver safely without colliding with the obstacles in its workspace and to manipulate certain target objects in the workspace. The course discusses the motion planning problem, its formulation in configuration space, and approaches to solving the problem. We consider forward and inverse kinematics for articulated structures such as robotic arms to establish relations between joint angles and the position and orientation of the hand or end-effector. We also focus on models for firm and loose grasps of objects and on non-prehensile forms of manipulation. -
Computer Science
Gateway Courses:
- For all 200-level and 300-level courses in Computer Science: Introduction to Programming & Computer Science
200-level:
- Database Management
- Networks & Operating Systems
- Software Development
300-level:
- Algorithms & Data Structures
- Advanced Algorithms
Course descriptions
100-level: Introduction to Programming & Computer Science
This is an introductory course in problem solving and computer programming in Python. The course begins by introducing traditional structured programming and data constructs (i.e. branching, loops, functions; tuples and lists). Then consideration is given to testing and debugging and finally the object-oriented programming constructs. During the entire semester, elements of discrete mathematics (e.g., logic, sets, enumeration) as well as certain computational problem solving techniques are also incorporated into the course material.200-level: Database Management
Database management systems are one of the foundations upon which a modern economy is built. This is a course about such systems. The course begins by introducing SQL, a special-purpose language designed for managing data in a relational database management system (RDBMS). Then consideration is given to the theory underpinning relational databases, data storage and querying, and transaction management. By the end of the course you will have obtained a reasonable familiarity with both relational and non-relational database management systems.200-level: Networks & Operating Systems
Computer networks are the foundations on which the modern commercial, entertainment, industrial, and social world is built. The subject is organized around layers of a network architecture. The course follows the top-down approach by beginning at the application layer and working its way down toward the physical layer. The main focus is on the Internet, its architecture and protocols are used for studying fundamental concepts. Thus, consideration is given to the Internet’s five-layer architecture: the application, transport, network, link and physical layers. Moreover, network security is also covered. By the end of the course, you will have obtained a reasonable familiarity with how the Internet works and how the Internet can be monitored and controlled.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. An emphasis is on the experimental performance analysis of algorithms. By the end of the course you will have obtained an understanding of how algorithms have helped shape the modern world. -
Mathematics
Gateway Courses:
- For all 200-level and 300-level courses in Mathematics: Calculus
100-level:
- Applied Mathematics
200-level:
- Linear Algebra
- Numerical and Computational Mathematics
300-level:
- Probability & Statistics
- Linear Systems
Course description
100-level: Calculus
This course prepares students with a strong mathematical component, such as physics, electronics, energy and flow, and materials science. The aim of this introductory course in the mathematics track is to learn basic widely-used mathematical techniques, with an emphasis on differentiation, integration, and solving differential equations. These techniques are put into context in projects related to real situations in a wide variety of fields.100-level: Applied Mathematics
The central topic is mathematical modeling; the process of describing and analyzing a real-world problem in mathematical terms.We begin by discussing a variety of deterministic models using recursive equations. For example, we will study how different patterns of administering medication to a patient will result in different fluctuations of the medicine concentration in the patient’s bloodstream.
But we will also study probabilistic models in which random events are incorporated. In this course, we will consider several waiting line models where the arrival times of customers and the times they require for service aren’t fixed but follow some probability distribution. We will for instance determine the average waiting time in a supermarket in situations with two, three, or more check-out lines.We will not just focus on these models but also discuss the underlying mathematical concepts. Topics that certainly will be included are statistics, probability and probability distributions, series and sequences, solving sets of linear equations, working with exponential and logarithmic functions etcetera. In addition to solving mathematical models with formulas, we will also run simulations. Our computational tool for this will be an Excel spreadsheet.
The course is open to everybody who did mathematics in high school. While no advanced skills in mathematics are a prerequisite, the course will include abstract notation, sophisticated reasoning, and detailed examples applied to particular contexts. Note that this course is not a gateway for the mathematics unit.
200-level: Linear Algebra
Linear algebra is the study of systems of linear equations and functions. Matrix operations and theorems involving matrices provide tools for handling many applications of linear algebra. Introducing the abstract concept of vector spaces allows for generalization of these ideas. Eigenvalues and eigenvectors are used to understand the action of a linear transformation. A method for producing approximate solutions for inconsistent linear equations is developed. Singular value decomposition is a factorization technique for an arbitrary rectangular matrix incorporating many important aspects.200-level: Numerical and Computational Mathematics
This course explores numerical methods and computational techniques essential for solving mathematical problems that arise in science, engineering, and applied mathematics. Students will learn to develop, analyze, and implement algorithms for numerical computation, gaining practical experience with modern computational tools and software. The course focuses both on theory and applications of these techniques; students will implement, test and validate the techniques discussed in the course in Mathematica or Python. The techniques discussed in the course deal with (1) equations in one variable, (2) interpolation and polynomial approximation of functions, (3) numerical methods for differentiation and integration, (4) initial-value problems for ordinary differential equations, and (5) direct methods and iterative methods applied in linear algebra. All these techniques, of course, are available as built-in functions in Mathematica; the aim of this course is to study the reasoning behind these algorithms and to investigate errors arising from these techniques.The learning outcomes of the course are the following: (1) understand the principles and techniques of numerical analysis, (2) develop and implement algorithms for solving mathematical problems, (3) analyze the accuracy, stability, and efficiency of numerical methods, (4) apply computational methods to solve problems in various scientific and engineering domains, and (5) gain proficiency in using computational software for numerical mathematics.
Prerequisite for this 200-level course is the course DISMATH101- Calculus. The course DISMATH101 – Calculus provides a sufficient introduction to the use of the computer algebra software package Mathematica. The course DISCOMP101 – Introduction to Programming is not a prerequisite for the course. Students who have taken this course can implement the methods discussed in Python instead of Mathematica. This course is relevant for students taking any course involving mathematical modeling.
300-level: Probability & Statistics
This course introduces Mathematical Statistics. The first part discusses probability theory. This theory allows for calculating probabilities of a large variety of events that may occur possibly under the condition that some other event did occur. Discrete probability functions and continuous probability density functions related to random variables and their properties are introduced. The last part of the course discusses various statistical estimators that allow for estimating parameters of the underlying probability density function based on a set of observations of a random variable.300-level: Linear Systems
The concepts of signals and systems appear in a variety of fields. The physical nature of signals and the measurement systems may differ between applications, but they have in common that signals contain information about the observed phenomenon. The systems respond to signals by producing other signals or certain behavior as output. This course discusses how to characterize a linear time-invariant system and how it will respond to various inputs; convolution, Fourier series representation, Fourier transform, Laplace transform and Z-transform and their properties are the main topics.