DAT158 Machine learning and advanced algorithms
Course description for academic year 2019/2020
Due to Covid-19, changes may occur in course descriptions for the spring semester of 2020. Changes in each course will be published on Canvas. When a course description has been changed on Canvas, the description on web is no longer valid. Examples of such changes could be accomplishment of practice, course type, or whether letter grades or passed/not passed will be used as grading scales.
Contents and structure
The course has two parts, 5 credits each.
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 what can be called "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.
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.
- 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 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 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
- 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
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 at the start of the course.
Lectures, labs, e-learning material.
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.
Grading scale is A-F where F is fail.
Examination support material
NoneMore about examination support material