Repo containing all code and data needed for machine learning exercises, alongside associated lectures for IEG Lycée Français Guy de Maupassant and Lycée Français Sophie Germain students (K-12 grades 9 and 10) during IAP 2025 MIT Global Teaching Labs Morocco. Code/data generated by Mahmoud Abdelmoneum (mabdel03@mit.edu), and taught by Mahmoud Abdelmoneum and Nicolas Stone Perez (nstonep@mit.edu).
We taught this course from January 6th 2025 through January 24th 2025. For the school weeks of January 6th and January 13th we taught at Lycée Français Guy de Maupassant in Casablanca, Morocco. For the week of January 20th we taught at Lycée Français Sophie Germain in Rabat, Morocco. Each week there was a different set of kids who were at different levels with respect to math and programming experience. For the week of 1/6, the students were all in their last year of middle school, and had no python programming experience (only Scratch), and little to no algebra experience. For the week of 1/13, the students had both basic python and basic algebra experience. For the week of 1/20, the students were about a 50/50 split of python/algebra and no python/no algebra experience. Subsequently, each week had slightly different material. The content for the course that we published is that which we taught to the students of Lycée Français Sophie Germain on the week of 1/20. It is geared towards a mixed audience. The theoretical content is challenging for both groups of students, giving them an understanding of the real theoretical foundation of machine learning, while abstracting away a lot of the math such that they do not need to know linear algebra and calculus to learn the material.
As we mentioned in our previous note, this course abstracts away most of the rigorous math that underlies machine learning. To truly understand the theory underlying machine learning, we encourage advanced students to develop basic understanding of linear algebra and calculus. We will link resources for this at the end of this ReadMe.
That being said, we have some bare minimum prerequisites for this course. While we taught this course to both low and high math/programming experience students, for future courses, we strongly recommend that only students with basic math/programming experience. It will become evident why when we go through our learning objectives in the next section.
If a student wants to take this course and really get the most out of it, we recommend they have the following skills:
- Basic python experience. This means understanding basic python logic and syntax (different variable types, conditional statements, imports, etc.). Experience with pandas and/or matplotlib is a big plus.
- Basic algebra experience. This means knowing what a function is, and how it is defined. A bare minimum is understanding functions at the level of linear functions in slope intercept form, but we encourage students to have more advanced understandings of functions, including quadratic and higher order polynomial functions.
- Extremely basic understanding of data science. What is data? How might patterns in data look like? Where might we find data? Etc.
- Curiosity and a desire to learn!
The core of what we wanted the students to learn was the fundamental theory of machine learning, and the process to identify problems suitable for machine learning to solve, and to implement basic solutions in python for them. To this end, here are our stated learning objectives for this course:
- Develop a theoretical understanding of the basics of machine learning. E.g what ML is, what a ML model is, how an ML model is trained, supervised vs unsupervised learning, and regression vs. classification
- Develop a basic understanding of how to implement basic regression/classication machine learning models in python with real data to solve a real problem, most notably using the scikit-learn library.
- Develop a basic idea of how to leverage all of the tools available to build sophisticated code that works to accomplish our objective while still understanding what it does. Basically leveraging LLMs, internet search, and documentation to translate theoretical ideas into real programmatic implementations with little to no instructor help.
- Develop an understanding of what problems are suitable for solution via machine learning, and what machine learning solutions are optimal for what problems. Develop a systematic framework for going from a problem to a machine learning based solution.
Each directory in this repository contains a ReadMe file explaining its contents. Here we will provide an overview of each directory, alongside a link to it
Contains all of the lecture slides for this course. Lectures were the primary medium through which the course's content was administered to the students. Unfortunately, there are no lecture recordings. Please reach out to Mahmoud (mabdel03@mit.edu) if you have any questions about the lectures' content.
Contains exercises that consist of python implementations of regression models for different datasets. Directory also contains instructions for the exercises, alongside a template of the code for students to fill out with their exercise alongside an example answer key. Associated w/ Lecture Day 1.
Contains exercises that consist of python implementations of classification models for different datasets. Directory also contains instructions for the exercises, alongside a template of the code for students to fill out with their exercise alongside an example answer key. Associated w/ Lecture Day 2.
Contains OPTIONAL exercises that consist of python implementations of two deep learning model for the MNIST handwritten letters dataset. Directory also contains instructions for the exercises, alongside a template of the code for students to fill out with their exercise alongside an example answer key. Associated w/ Lecture Day 3.
Contains OPTIONAL exercises that consist of python implementations of a machine learning model for a FIFA Worldcup results dataset. Directory also contains instructions for the exercises, alongside a template of the code for students to fill out with their exercise alongside an example answer key. Associated w/ Lecture Day 3.