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: 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
- Differential Equations & Numerical 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.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.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.