DAT158 Machine learning and advanced algorithms

Course description for academic year 2018/2019

Contents and structure

The course has two parts, 5 credits each.

Machine learning:

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 being practically useless to reach a near-human level; from limited ability to understand and synthesize text and speech to wide use of personal digital assistants; from amateur level at chess, poker, Go and Dota to beating world champions; from driving assistance to self-driving cars.

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 and software.

The course provides a practical, project-based, hands-on exploration of the fundamentals of machine learning, 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 with tackling real-world problems using standard workflows and modern tools and frameworks from data analysis 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 in artificial intelligence.

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 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
  • Be able to explain how advanced algorithms are working
  • 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 and develop ¿intelligent¿ applications using machine learning
  • Develop applications how to solve problems within different areas
  • 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 give a quick introduction to Python, and several online resources for acquiring the recommended background knowledge will be provided before the course begins.

Teaching methods

Lectures, labs, e-learning material.

Course requirements

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

Approved exercises also give access to postponed examination the following semester. However, before a new postponed exam can be taken (the next time the subject is taught), new exercises must be delivered.


Oral examination.

Grading scale is A-F where F is fail.

Examination aids


Course reductions

  • DAT157 - Nevrale nett og avanserte algoritmer - Reduction: 5 studypoints