This is an education repository that aims to teach AI and Machine Learning using images.
The website provides Google Colab notebooks used in a workshop focused on teaching middle-school and high-school students to program AI models using Python. The website provides material for two major projects. The first project involved the creation of a digital color video using hexadecimal (see Session 8 below). The second project was to train multiple AI models (see Session 16 below).
The workshop was co-sponsored by CYENS, the IEEE Signal Processing Society, and the Cyprus Section of the IEEE Signal Processing Society.
To run the tutorials, you will need a free Gmail account. To run the tutorials, you will only need to click on the links below. If you need a video introduction on how to run Google Colab notebooks, you can use Google Colab tutorial.
If you use material from this website, please cite using:
APA style:
Marios S Pattichis. (2025). pattichis/AIML: An introduction to AI and Machine Learning for middle-school and high-school students (v1.0.0). Zenodo. https://doi.org/10.5281/zenodo.16888480
IEEE style:
Marios S Pattichis, “pattichis/AIML: An introduction to AI and Machine Learning for middle-school and high-school students”. Zenodo, Aug. 17, 2025. doi: 10.5281/zenodo.16888480.
If you prefer to cite the workshop itself, you can use:
Pattichis, M.S. (2025). Train your own Mini AI!, Summer School, CYENS. Nicosia, Cyprus.
https://github.com/pattichis/AIML.
- Session 1.1 Introduction to Variables and Strings
- Session 1.2 Working with AI
- Session 1.3 An adversarial attack example of where we are going
- Session 1.4 A video inference mode example of where we are going
- Session 9.1 Dictionaries
- Session 9.2 Functions
- Session 9.3 Object-oriented programming with classes.ipynb
- Session 10.1 Introduction to nearest neighbor classification
- Session 10.2 MNIST and K-nearest neighbor
- Session 10.3 K-means
- Session 10.4 Classifiers comparisons (from Scikit Learn)
- Session 10.5 Clusterings comparisons (from Scikit Learn)
The sessions were designed to be self-paced. Work through each Google notebook and try to answer each question. The following assignments help you think through the material.
Complete Sessions 1 through 8. At the end of Session 8, you are provided with a template to create your own color video. Use the template to create your own color video.
Your video should include:
- Complex object movements beyond the examples.
- A minimum of 10 color frames.
- The use of NumPy array operations as demonstrated in Sessions 1 to 8.
Deliverables:
- A PDF of the Python code used to make the video.
- The actual video that was generated.
Session 16 provides parametrizable CNN models that you can train. Experiment with a few (at least three) CNN models and the Linear model for the given classification problem.
Deliverables:
- A PDF of the Python code used to generate the different models. Use the provided code to print the architectures and the number of parameters.
- Screenshots of the achieved accuracy as a function of the number of epochs and the value of the loss function.
- A discussion comparing the required number of epochs, total number of parameters, final value of the loss function, and achieved accuracy.
