After completing the course, learners will be able to:
Knowledge and understanding
Explain what is a programming language
Describe what it is and how it works the Python interpreter
Describe different options to run Python code
Explain why we use Python 3
Explain why there are many programming language
List Python data types
Given a piece of code, describe (in comments) line by line what each line of code does
List structural components of Python language (e.g. functions, classes and modules)
Explain what is the meaning and usage of “.” (dot) in Python
Describe the purpose of the libraries needed to do ML with Python
Describe a range of machine learning techniques
List the differences between supervised and unsupervised learning
Explain when using a classification or regression algorithm
Make examples of dimensionality reduction
List the reinforcement learning key features
Make an example of reinforcement learning
List the 6 ML steps
Explain what is a training and a test set
Applying knowledge and understanding
Assign a value to a variable
Use an index to get a single character from a string
Use a slice to get a substring
Use the built-in function type() to identify data types
Write and run code on a Jupyter Notebook
Given a piece of pseudo code, write and debug the corresponding code
Use data type methods
Import libraries
Call (use) functions from an imported library
Import specific items from a library module
Give a library a short alias when importing it
Create and index lists
Change the values of individual list elements
Append values to an existing list
Reorder and slice list elements
Create and manipulate nested lists
Create a Python dictionary
Assign a dictionary item
Use at least one dictionary method
Use indentation to create an if block
Use booleans True and False in if conditions
Use >, <, >=, <=, === operators
Read data from a csv file into a Python Data Frame
Read a csv table from a URL into a pandas Data Frame
Create a Series and a DataFrame from Python dict
Explore and select data from Data Frames
Loop on a sequence of items and print each item
Loop on a pandas Series
Loop on a column of a pandas DataFrame
Replace non numerical values with NaN
Download a dataset from the Kaggle database
Implement ML models using the Scikit-Learn Python library
Making judgements
Given a dataset, decide if it is suitable for supervised learning or not
If yes, indicate whether classification or regression should be used
Recognize what machine learning method is most applicable to given data analysis problems
Manage errors and exceptions
Assess the performance of a ML method
The lesson plan provides a detailed week-by-week schedule for the course. For each lesson, it includes the date and duration, the teacher's objective (the pedagogical goal guiding that session), and the Learning Outcomes (LOs) — the specific knowledge and skills students are expected to demonstrate in assessments by the end of the course.
Each entry also describes the activity taking place (e.g., live coding, group discussion, diagnostic questionnaire), accompanied by a short description of its purpose and context. The Materials column contains links to all resources used in class — presentations, Jupyter notebooks, Google Forms, and external readings — so students can access everything in one place. Where relevant, the Python commands introduced in each session are listed explicitly, making it easy to track your practical progress through the language.
Homework assignments are included inline, clearly indicating what to prepare before the next lesson.
All activities are designed around the course's Learning Outcomes (LOs) — for each LO, the most appropriate activity or combination of activities is selected to help students achieve it.
Depending on the topic and the skills involved, activities may include:
Short interactive lectures introducing key concepts in programming and machine learning;
Participatory live coding sessions, where the instructor codes in front of the class and students follow along;
Hands-on coding sessions (individual, in pairs, or in small groups), where students independently use Python to solve data handling problems and implement ML algorithms;