Our core courses are Introduction to Machine Learning 1 and 2. These courses are intended to provide a comprehensive introduction to the current field of machine learning. Both courses are built around programming and experimentation as the primary means of understanding machine learning algorithms. You will progress from implementing basic learning algorithms to creating more advanced neural networks. In addition, you will dive into the math behind these algorithms, and we will discuss the societal impact of applying such methods in practice.
To complement these Machine Learning courses, you can first take Scientific Programming 1 and/or Scientific Programming 2, in order to reach the required programming level. SP1 is about the basics of Python, while SP2 covers some more advanced Python topics, like designing larger programs, writing more efficient code, and using libraries such as Pandas. For most students who have taken one Python course as part of their bachelor, we would still recommend at least following SP2, which can also be done in parallel to ML1.
The machine learning courses consist of programming notebooks, theory videos, and written assignments. Programming notebooks will be the main component of each module, where you'll build and experiment with the ML algorithm covered that week. The office hours for the courses mainly consist of laptop practicals in our lab, where you can come and ask any questions you have about the theory or specifics of the programming assignments. Machine Learning 1 and 2 conclude with a written final exam. Programming courses generally have code-writing exams.
These courses are primarily aimed at students who have already taken Python programming courses, as well as good introductions to Calculus, Linear Algebra, and Statistics. Note that none of these courses are hard entry requirements, but you should expect to spend more time if you still need to study some of these topics on your own. For the maths topics we provide self-study modules, and there are several programming courses that you can take in parallel, as listed below.
If you intend to follow ML1 and ML2 without prior Python programming experience, or you still feel a bit uncomfortable programming, we would recommend that you register for the minor AI instead. The minor will cover most of the same material as our electives, but we can offer more support and supervision for students learning both programming and machine learning at the same time. However, this does require full-time time investment, has mandatory attendance and is only offered in Dutch.
The elective courses below do not add up to 30EC, and cannot be considered an official minor program. But you may be able to combine them with other courses as electives in your bachelor. Ask your study adviser to help you get permission to put them on your diploma. Also realise that our courses cannot be used to fulfill entry requirements to the Master AI at the UvA.
Below are the courses offered as Machine Learning electives. In most circumstances you will not need permission from your own program to take any of these courses; however, if you would like to use the courses for your diploma, please contact your own program's study adviser to plan ahead.
Workload: 80 hours total makes 10 per week / Course code: 50621SCP3Y
This course is a basic introduction to Python. Assuming you have prior Python experience, this course will not cover new material. If you intend to follow ML1 and ML2 without prior programming experience, we would recommend you register for the minor AI instead (Dutch only), which offers both programming and machine learning simultaneously. Students without prior programming experience following an elective track can also register for SP1 and SP2 separately, and then register for the ML electives the semester after. See the SP electives for more details.
Workload: 80 hours total makes 10 per week / Course code: 50622SCP3Y
This course is useful to most students taking ML1 and ML2, as it covers more advanced Python topics that are needed for ML programming, but are not part of most introductory Python courses. Topics include: designing larger programs, writing more efficient code, using the Numpy and Pandas libraries to write vectorized code, and working with object-oriented code by writing your own classes. This course contains material relevant for the programming assignments of both ML1 and ML2, but can be started simultaneously with ML1.
Workload: 160 hours total makes 20 per week / Course code: 5062DAPR6Y
This course focuses on programming with larger data sets. This includes aspects like gathering data, representing that data in code, processing it and ultimately visualizing the results. The course does not cover techniques required for ML programming, but can be very useful if you want to start working on your own ML project.
Workload: 160 hours total makes 20 per week / Course code: 50821ITM6Y
In this course you will become familiar with the fundamentals of artificial intelligence and machine learning. We will cover a number of basic machine learning algorithms, and you will implement these yourself using Python. This is a broad introductory course, which means that we will also discuss the mathematics, mainly calculus and statistics, that are the driving force behind these algorithms. We will also discuss the philosophical and societal consequences of applying these learning systems.
Workload: 160 hours total makes 20 per week / Course code: 50822ITM6Y
In this course we continue our discussion of machine learning models and algorithms. While the focus in Introduction to Machine Learning 1 was on programming basic models, here we will make more use of libraries that provide ready-made algorithms, and the focus will mainly be on how to combine these parts into more complex models, like neural networks. You will apply these advanced models to real-life data sets. We will also cover common preprocessing operations for data.
You can earn a certificate or course credit by registering for one or more of the courses. Make note of the entry requirements for each course and feel free to e-mail us for advice on compiling a good course package.
Always take the course workload and the course periods into account when registering! When starting a course you must finish during the same semester to get credit.
Have questions? Send us an e-mail at ai@proglab.nl. One of the teachers or assistants will help you out.