Jump to content

DAT158 Machine Learning Engineering and Advanced Algorithms

Course description for academic year 2024/2025

Contents and structure

The course has two parts, 5 credits each.

Machine learning engineering:

Over the past few years, the field of artificial intelligence has gone through a dramatic development. Computer's abilities to recognize objects in images have gone from rarely resulting in useful systems to forming a fundamental component of many widespread products; from a limited ability to understand and synthesize text, speech, images, and video to widespread use of personal digital assistants and generative models; from an amateur level at chess, poker, Go and Dota to beating world champions; from simple driving assistance to autonomous vehicles.

What's behind these advances are breakthroughs in machine learning. This is an important field with a long history, consisting of a set of techniques enabling computers to uncover complicated patterns and connections in large data sets. There have been several interesting applications of machine learning over the years, but today it's more pervasive than ever, appearing throughout modern technology, science, and software.

The course provides a practical, project-based, engineering-oriented, hands-on exploration of the fundamentals of machine learning engineering, focusing on solving real-life problems.

By the end of the course, you will have a solid understanding of the main algorithms and ideas in machine learning, including good practical intuitions. You'll have experience tackling real-world problems using standard workflows and modern tools and frameworks from data analysis, software engineering, and machine learning. You'll also be familiar with the limitations of machine learning, when it's applicable, and how it relates to the ultimate objectives of artificial intelligence.

The course provides a solid background that you can build upon, for example, in the bachelor specialization in artificial intelligence or in a master's degree in software engineering, where the course DAT255 will be a natural extension of DAT158.

Advanced algorithms:

In the course, one will get an introduction to advanced and well-known algorithms within different fields. Different types of problem-solving and recursive thinking will also be given in the lectures. In addition, different aspects of complexity theory with an emphasis on the classes P and NP together with approximate solutions based on NP-complete problems.

Examples of algorithms are evolutionary algorithms and simulation of them, split and conquer algorithms and dynamic programming, approximate algorithms, randomized algorithms, graph algorithms, heuristic algorithms, and algorithms for text processing.

Learning Outcome


  • Able to explain fundamental machine learning concepts and algorithms, and their implementation
  • Able to explain how machine learning can be used to solve practical problems from a wide variety of domains, and how it can be used to build "intelligent" applications
  • Understand how practical machine learning relates to software engineering more broadly, and how it can be considered an engineering discipline (machine learning engineering and MLOps)
  • Be able to explain how selected advanced algorithms work
  • Explain how theory of Advanced Algorithms may be used within computer science and engineering
  • Explain how Advanced algorithms may be used to solve practical problems of different types


  • Develop solutions that can solve concrete, practical problems using machine learning
  • Can develop, find and use modern, state-of-the-art software tools and frameworks for data analysis, visualization and reporting
  • Design, develop and deploy machine learning-based applications
  • Design and develop applications how theory for advanced algorithms may be used to build more intelligent applications
  • Design effective algorithms for algorithmic problems

General competence:

  • Ability to formulate and complete a machine learning project
  • Ability to present their work, both in writing and orally
  • Ability to work in teams
  • Be able to handle complex algorithmic problems, by either design an exact or an approximation algorithm, or making a heuristic solution
  • Be able to compare different algorithmic solutions

Entry requirements


Recommended previous knowledge

Recommended prerequisites: Basic knowledge of programming and mathematics as covered by the first year of studies in the computing and information technology programs. In addition, you should have background in algorithms equivalent to DAT102 Algorithms and data structures. Knowledge of Python, Numpy and Pandas is a plus. The course will provide several online resources for acquiring the recommended background knowledge will be provided at the start of the course.

Teaching methods

Lectures, labs, e-learning material.

Compulsory learning activities

To get access to the exam, four obligatory assignments must be completed and approved by set deadlines. Graded as pass/fail.


4 hour written exam, but with fewer than 31 students the exam will be oral,

Grading scale is A-F where F is fail.

Examination support material


More about examination support material

Course reductions

  • DAT157 - Nevrale nett og avanserte algoritmar - Reduction: 5 studypoints
  • DAT801 - Maskinlæring for forretningsutvikling - Reduction: 5 studypoints