Here you can find the complete syllabus of the course:
Upon successful completion of this course, students will be able to:
Knowledge and Understanding
Explain what a programming language is and how the Python interpreter works
Describe different options for running Python code and explain why Python 3 is used
List Python data types and structural components (functions, classes, modules)
Explain the meaning and usage of the dot operator (.) in Python
Describe the purpose of the libraries used for ML with Python (NumPy, Pandas, Matplotlib, Scikit-Learn)
Describe a range of machine learning techniques and list the differences between supervised and unsupervised learning
Explain when to use a classification vs a regression algorithm
Describe and give examples of dimensionality reduction
List the key features of reinforcement learning and provide an example
List the six steps of an ML workflow and explain the concepts of training set and test set
Applying Knowledge and Understanding
Assign values to variables; use indexing and slicing on strings and lists
Use the built-in function type() to identify data types; write and run code on a Jupyter Notebook
Write and debug Python code from pseudocode; use data type methods
Import libraries, call library functions, and use library aliases
Create, index, modify, and slice lists; create and manipulate nested lists
Create Python dictionaries and use dictionary methods
Use indentation, boolean values, and comparison operators in if/elif/else blocks
Read data from CSV files and URLs into Pandas DataFrames
Create Series and DataFrames from Python dictionaries; explore and select data from DataFrames
Loop over sequences, Pandas Series, and DataFrame columns
Replace non-numerical values with NaN; download datasets from Kaggle
Implement ML models using the Scikit-Learn Python library
Making Judgements
Given a dataset, decide whether it is suitable for supervised learning; if so, determine whether classification or regression should be used
Recognise the most applicable ML method for a given data analysis problem
Manage errors and exceptions in Python code
Assess the performance of a ML model
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;