TEK2950 – Machine Learning for Technology Systems

Course content

This course introduces machine learning (ML) through real-world technology systems applications, with a strong focus on hands-on projects. You will learn to understand, implement, evaluate, and fine-tune machine-learning models using Python and commonly used libraries. You will also become familiar with the theoretical concepts of machine learning, from the basics of what it is and when to use it, through best practices for training, to nuanced questions of algorithm choice or unbalanced datasets.

The theoretical knowledge is imparted through practical exercises that introduce a variety of machine-learning algorithms, both what are now considered classical methods (such as random forests or principal component analysis), as well as deep learning (deep neural networks, transformers). The topics of the exercises reflect the different technology application fields and provide learning opportunities beyond the typical toy examples. The curriculum covers the fundamental transition from understanding what ML is and which problems are suitable for it, to implementing complex deep learning architectures.

The course content is divided into several key pillars:

  • Foundations and Classical ML: history of ML, and the implementation of supervised learning (K-nearest neighbors, decision trees, random forests, SVM, linear/logistic regression) and unsupervised learning (K-means clustering, Principal Component Analysis)
  • Deep Learning: the mechanics of neural networks, including neurons, backpropagation, activation and loss functions, and advanced structures like CNNs and Transformers
  • Data Engineering: a heavy focus on "data preparation for the real world", including handling unbalanced datasets, biases, cleaning, and normalization
  • Emerging Paradigms: exploration of Reinforcement Learning (Q-learning, Deep Q-networks) and the use of Large Language Models (LLMs) from a user perspective

Applications are drawn from diverse fields such as space systems (satellite imagery), cybersecurity, renewable energy systems, healthcare technology, and robotics.

Learning outcome

Knowledge:

After completing this course, you will

  • understand the basic theory of machine learning and deep learning
  • be familiar with a wide range of algorithms and their specific use-cases, strengths, and weaknesses
  • identify technical problems that are uniquely suited for ML intervention

Skills:

After completing this course, you will be able to

  • choose the right algorithm for a given problem, recognizing that complex algorithms are not always the optimal choice
  • implement and optimize algorithms using Python and industry libraries such as scikit-learn, Pandas, and PyTorch
  • prepare and clean complex, noisy data for training and troubleshoot model performance
  • utilize techniques like pretraining, fine-tuning, and augmentation to improve model accuracy

General competence:

After completing this course, you will

  • critically approach and evaluate new methods and scientific literature
  • practice scientific literacy by applying published code to practical problems
  • master professional teamwork, project management, and presentation skills through collaborative project work

Admission to the course

Students who are admitted to study programmes at UiO must each semester register which courses and exams they wish to sign up for in Studentweb.

This course is open for admission to students on the bachelor's programme Technology Systems: Science and Engineering. Please refer to the programme description for admission requirements.

Teaching

The course employs a structured pedagogical approach that involves a shorter introductory series of lectures, that are then followed by group exercises where you get to dive deeper into the ML concepts.

Introductory part: A series of lectures offers a concise, accessible overview of the machine learning landscape that provides the conceptual structure on which you can later connect more detailed technical knowledge

Practical part: The core of the learning is achieved through 3-4 group projects. They are designed to simulate professional environments, focusing on noisy, real-world data and the strategic choice of algorithms.

Tools: You will gain hands-on experience with Tensorboard, Matplotlib, and Seaborn for data visualization and model monitoring.

Examination

The assessment is designed to evaluate both theoretical understanding and practical implementation and consists of the following:

  • Graded projects: 70% of the grade is based on the technical code, written reports, and group presentations produced during the semester.
  • Oral exam: A final oral examination counts towards 30% of the final grade, testing the student's ability to defend their technical choices and understanding of ML theory

Language of examination

The examination text is given in English, and you submit your response in English.

Grading scale

Grades are awarded on a scale from A to F, where A is the best grade and F is a fail.

Resit an examination

Students who can document a valid reason for absence from the regular examination are offered a postponed examination at the beginning of the next semester.

Re-scheduled examinations are not offered to students who withdraw during, or did not pass, the original examination.

More about examinations at UiO

You will find further guides and resources at the web page on examinations at UiO.

Last updated from FS (Felles studentsystem) Oct. 14, 2026 11:35:46 PM

Facts about this course

Level
Bachelor
Credits
10
Teaching
Autumn
The course is first taught autumn 2028.
Teaching language
English