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
Grading scale
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
- Use of sources and citations
- How to use AI as a student
- Special exam arrangements due to individual needs
- Withdrawal from an exam
- Illness at exams / postponed exams
- Explanation of grades and appeals
- Resitting an exam
- Cheating/attempted cheating
You will find further guides and resources at the web page on examinations at UiO.