Course info:
This course is designed to give students a clear and intuitive understanding of the most essential Machine Learning methods. To achieve this, we will implement key algorithms, such as decision trees, backpropagation, and bagging trees from scratch, so students can reimplement them when needed. We’ll also explore and gain hands-on experience with the `sklearn` library, and develop a practical sense of when to prefer one algorithm over another.
Course prerequisites
To take this course, students are expected to be proficient in Python programming and familiar with the NumPy and Pandas libraries. Completing LTAT.03.001 Programming provides sufficient background. It is also recommended to review basic concepts from Probability, Calculus, and Linear Algebra.
Course schedule:
- The course starts on September 8, 2025
- Lectures:
- Monday 10:15 - 12:00 in Narva mnt 18, room 1037 and in [log into courses to see link]
- Practice Sessions:
- Group 1: Monday 12:15 - 14:00, Narva mnt 18, room 1008 and (log into courses to see link) (Dmytro (aka Dima) Fishman)
- Group 2: Monday 12:15 - 14:00, Narva mnt 18, room 2010 and Zoom (log into courses to see link) (Mari-Liis Allikivi)
- Group 3: Tuesday 16:15 - 18:00, Narva mnt 18, room 1017 and Zoom (log into courses to see link) (Chingiz Alikhanov)
- Group 4: Tuesday 16:15 - 18:00, Narva mnt 18, room 1006 and Zoom (log into courses to see link) (Ali Zeynalli)
- Group 5: Wednesday 16:15 - 18:00, Narva mnt 18, room 1008 and Zoom (log into courses to see link) (Hasan Tanvir)
- Group 6: Wednesday 16:15 - 18:00, Narva mnt 18, room 1006 and Zoom (log into courses to see link) (Dzvinka Yarish)
- Contacts:
- Lecturer:
- Dmytro Fishman (dmytro.fishman@ut.ee)
- Teaching Assistants:
- Mari-Liis Allikivi (mari-liis.allikivi@ut.ee)
- Chingiz Alikhanov (chingiz.alikhanov@ut.ee)
- Ali Zeynalli (ali.zeynalli@ut.ee)
- Hasan Tanvir (hasan.tanvir@ut.ee)
- Dzvinka Yarish (dzvenymyra-marta.yarish@ut.ee)
- Lecturer:
Course forum:
Forum and discussions will be held in Slack. All the registered students will be enrolled by the instructors (you need to confirm your enrollment). Also, here is a [log into courses to see link] that you can use to add yourself to slack.
Grading and requirements:
The grade is calculated from the total number of points (max 100). The points can be earned as follows:
- Homeworks (60 points): there will be 6 homeworks, each worth 10 points;
- Paper summary (15 points);
- Project completed in teams (25 points);
Bonus points
Homeworks will include optional exercises that can be done for bonus points. To earn these points, we expect you to do what is asked in the bonus exercise and also go beyond this. To be more precise, we expect an extra effort in the presentation + interpretation of the results. Hence, even if the bonus exercise does not explicitly tell you to interpret the results, you should know that by default we expect you to provide a really good presentation of the results, including the interpretation.
Passing criteria
In order to pass the course, the student must have at least 51 point (grade E) in total and get at least 50% from regular exercises (30 homeworks points from the homework exercises).
Exam
There will be no exam. The final grade is calculated as explained above.
Attendance
Attendance of both lectures and practice sessions is not compulsory. But we encourage students to participate physically if there is a possibility.
Deadlines
All deadlines in the course, are strict deadlines. Students have 6 late days in total per semester. Late days will be automatically taken away once the student submits an assignment after the deadline. Generally, 1 minute after the deadline means 1 late day. After the late days are exhausted, each additional late day is -20% of the assignment total (i.e. if homework is 10 points, the penalty is 2 points per additional late day used).
Plagiarism
All homeworks are checked for plagiarism. If caught first time, we will subtract points for the exercise(s) from the homework total. If caught the second time, formal notification to the Dean's office will be filed. You are allowed to discuss your assignments in groups, but not to copy the exact solutions. If you worked in a group, please list all the other students of your study group at the top of your colab notebook.
The course performance will be published using pseudonyms. You can find your pseudonym here.
ChatGPT Usage
You will likely be tempted to use ChatGPT or other generative tools to help with your homeworks or writing a paper summary. This is a completely reasonable thing to do in 2025; however, we would like to highlight a few important caveats:
- LLMs hallucinate.They can invent terms or make errors in formulas, algorithms, code, or calculations due to their auto-regressive nature.
- They often mix up concepts and do so very confidently. Always verify any claims or ideas against independent sources (e.g., lecture slides or recommended readings).
- Free versions may have limited memory, which means the model might forget or ignore earlier parts of your conversation.
- They can give you code, but not understanding. Blindly copying code will not help you learn. Use AI assistants to debug or clarify issues rather than to solve exercises from scratch. Not only is making this generated code work very hard in itself, but you will also learn much more by working independently.
Regarding all this, if you are using generative models, it is your responsibility to prevent these risks. We will check your text and code for logical errors, misconceptions, and made-up content.
Course programming language:
Homeworks are required to be solved using Python version 3. Practice sessions, examples and support is given only for that language. We will be using Google Colab during the practice sessions, so it is recommended to get familiar with Colab and also make sure you have Google account.
Links to previous courses:
Taught by Dmytro Fishman et al.:
2024 fall,
2023 fall,
2022 fall,
2021 fall,
2020 fall;
Taught by Meelis Kull:
2019 fall,
2018 fall,
2018 spring;
Taught by Sven Laur: 2017 spring, 2016 spring,
2015 spring,
2012 spring;
Taught by Phaedra Agius:
2008