At the Department of Computer Science, you can pursue two different undergraduate programmes - Computer Science and IT Product Development. An undergraduate programme takes three years, after which you have the option to apply for the master's programme. Both programmes gives you a very sought-after IT-profile, and there are many job opportunities in Aarhus and abroad. Also interested in a master's degree? Check out our exciting master's specialisations.
As a student you will engage in both theoretical and practical work, including software development, interaction design, artificial intelligence, and machine learning - and you will learn it all from scratch. Therefore, it's not necessary for you to have experience with programming, before you start. There are many ways to learn all the new material. For instance, we have lectures in auditoriums, exercises in smaller groups, and a study café where you can get help from our teaching assistants.
In the first year of Computer Science, you will take the following courses. You can expand the boxes to read more about each course.
Find an overview of all courses in the bachelor's programme at https://bachelor.au.dk/en/computer-science or in the course calaogue.
In this course, you'll learn basic concepts and techniques necessary for programming, testing your program, and debugging any errors. We use the programming language Java which allows you to quickly get started writing and running programs. The concepts and principles you learn are general and relevant to all types of programming languages. Programming is learned through practice, so the course includes many assignments where you write small realistic programs.
Instructor: Associate professor Magnus Madsen.
In this course, we focus on structuring calculations and organizing data to solve efficiently/quickly. The techniques in the course are discussed independently of a specific programming language, but there are some assignments where you'll need to translate the theoretical techniques from the course into concrete Java code. This takes advantage of concurrently following the Introduction to Programming course.
Instructor: Professor Gerth Stølting Brodal.
Gerth does research in algorithms and data structures and has been awarded the title Educator of the Year at the Department of Computer Science three times. In 2022, he was honored with Aarhus University's Anniversary Foundation Teaching Prize. Additionally, he has won the student association TÅGEKAMMERET's event (with the ironic title) "The World's Most Boring Lecture" three times.
In this course, mathematics is introduced with a focus on precise mathematical language usage in terms of logic and sets. The mantra is that mathematics is the ultimate programming language. Most of the course deals with applications such as linear equations, matrices, vectors, and optimization theory. The mathematics in the course is supported by small pieces of code in Python and the Sage overlay.
Instructor: Associate Professor Niels Lauritzen. Niels researches algebraic geometry with a penchant for anything related to programming. He has published two international textbooks (Cambridge University Press and World Scientific), but lately, he has become convinced that interactive textbooks are the future.
In this course, you'll learn how computers are built, how they run multiple tasks, and how they connect to the internet. You’ll start by exploring the basic building blocks of computers, including how they process instructions, using the x86 and ARM architectures as examples. Next, you'll dive into operating systems, discovering how they manage tasks like memory and file storage. Finally, you'll get an introduction to computer networks, learning how data moves between devices and the basics of internet communication.
Instructors: Peyman Afshani and Jean Pichon-Pharabod. Peyman has a background in computer systems and data structures, while Jean is a specialist in the interface between hardware architectures and operating systems.
Programming is an essential part of computer science. In this course, you'll gain a solid understanding of the fundamental mechanisms in modern programming languages. This is crucial for developing advanced and error-free software. The course covers the theory of syntax and semantics in programming languages. The theory is supplemented by practical programming assignments, including constructing an interpreter and a compiler.
Instructor: Professor Anders Møller and Associate professor Andreas Pavlogiannis.
Anders has received the Danish EliteForsk Prize for his research in programming and methods for analyzing the correctness of programs.
What can computers actually do — and what can they never do, no matter how powerful they become? In this course, you explore the fundamental ideas behind computation and learn how computer scientists reason about problems in a precise way.
You will work with simple models of machines to understand how computers process information and why some problems cannot be solved by any computer at all. These results do not depend on specific programming languages or technologies, but on deep mathematical principles.
The course also introduces logic as a tool for thinking clearly about programs and their behaviour. You will learn how logic can be used to argue that a program is correct, and you will explore the important difference between something being true and something being provable.
Overall, the course gives you insight into both the power and the limits of computer science, and shows how logic and computation are closely connected.
Instructors: Professor Jaco van de Pol and assistant professor Daniel Gratzer.
In the first year of IT Product Development, you will take the following courses. You can expand the boxes to read more about each course.
You can find an overview of all courses in the bachelor's programme at https://bachelor.au.dk/en/it-product-development or in the course calaogue.
How do you turn an idea into a digital product that people can actually use? In this course, you will learn the basic methods used to develop and test new IT products.
You will work hands-on with the entire design process – from your first ideas and hand-drawn sketches to physical and digital prototypes. You will explore how a product’s shape, size and placement affect the way we use it, and how technologies such as sensors can enable a product to respond to people and its surroundings. Along the way, you will learn how to investigate users’ needs, develop different solutions and build prototypes to test your ideas in practice. You will also get your first experience with programming and combining digital technologies with physical materials.
The course provides an important foundation for the rest of your degree: learning how to turn ideas and technology into IT products that make sense to the people who will use them.
Instructor: Majken Kirkegård Rasmussen
In this course, you'll learn basic concepts and techniques necessary for programming, testing your program, and debugging any errors. We use the programming language Java which allows you to quickly get started writing and running programs. The concepts and principles you learn are general and relevant to all types of programming languages. Programming is learned through practice, so the course includes many assignments where you write small realistic programs.
Instructor: Associate professor Magnus Madsen.
In this course, some of the most fundamental mathematical tools for solving scientific and technological problems are introduced. We will specifically focus on solving problems that depend on many variables, such as solving systems of linear equations and maximization problems. The course aims for students to gain familiarity with mathematical concepts through working on a wide range of concrete tasks.
Instructor: Jess Tolstrup Boye
How can a physical product sense what is happening around it – and respond to it? In Physical Computing, you will learn how to combine programming, electronics and physical materials to create interactive products and prototypes.
You will work hands-on with electronic components, sensors and small computers that can be integrated into physical products. Sensors can, for example, detect movement, sound or touch, while the product can respond with light, sound or movement. You will learn both how to build electronic circuits and how to program the technology that makes them work.
You will also work with 3D modelling and 3D printing and learn how to combine physical parts with electronics. This allows you to take an idea and turn it into a prototype that actually works.
The course gives you a basic understanding of how hardware, software and physical materials work together. This is important when designing new IT products where technology does not only exist on a screen but becomes part of the objects and environments we interact with in everyday life.
Instructors: Professor Eve Hoggan and Lab coordinator Simon Hoggan Christensen
In this course, you'll learn how computers are built, how they run multiple tasks, and how they connect to the internet. You’ll start by exploring the basic building blocks of computers, including how they process instructions, using the x86 and ARM architectures as examples. Next, you'll dive into operating systems, discovering how they manage tasks like memory and file storage. Finally, you'll get an introduction to computer networks, learning how data moves between devices and the basics of internet communication.
Instructors: Peyman Afshani and Jean Pichon-Pharabod. Peyman has a background in computer systems and data structures, while Jean is a specialist in the interface between hardware architectures and operating systems.
More information will follow.
More information will follow.
Every year, students from all over the world come to Aarhus to study in the master's programme in Computer Science. Here, we have gathered stories told by international alumni and current students to give you an insight into student life at the Department of Computer Science - and maybe a future life in Aarhus.