Machine Learning for Kids
Contents
Course Introduction
Most computer science courses focus on programming algorithms. However, Machine Learning (ML) is becoming increasingly prevalent in our technology and shows no signs of slowing down. So, what's the difference between programming and ML?
Understanding ML
Imagine you want to create a personal assistant that turns on or off certain lights and appliances in your home. To give it commands, you want to speak to it like you would a person. For example: "Turn on the lamp", or "Turn off the fan". How might you program that using conventional programming?
Using conventional programming, or algorithms, you might write if-statements, like so:
if command == "Turn on the lamp":
lamp_on()
elif command == "Turn off the lamp":
lamp_off()
elif command == "Turn on the fan":
fan_on()
elif command == "Turn off the fan":
fan_off()
That works just fine if we speak the command exactly. But, what if we say "Turn the lamp on" instead of "Turn on the lamp"? We have to write another if statement. In fact, there are many different ways a person could ask to turn something on. Think of all the if-statements would you have to keep track of!
ML offers an alternative. We can train a machine to recognize our intention by feeding it many examples of what one might say when they want to turn on a lamp. We can't possibly think of every variation of a command, but with enough training data, our machine will be able to recognize virtually any command, even if it wasn't originally trained to recognize every variation.
ML also allows you to do more amazing things that would be nearly impossible using conventional programming. For example, we can train a model to recognize the difference between pictures of cats and pictures of dogs. We can then use that model to write a program to organize our "Pet Pictures" folder into separate folders for each pet.
Other things ML can be used for include:
- Recognize the difference between "positive" or "negative" sentiment in text messages
- Recognize what newspaper a given headline is from
- Play rock, paper, scissors with you via a webcam
- Recommend movies or books based on your preferences
To learn more about how to introduce ML to Kids, check out the following blog article by Dale Lane: http://dalelane.co.uk/blog/?p=3513
Machine Learning for Kids (ML4K)
Machine Learning for Kids (ML4K) is a website built by Dale Lane who works on the IBM Watson team in the UK. It was designed for use in the classroom by schools and volunteer-run coding groups for children, and provides an admin page for teachers or group leaders to be able to manage and administer access for their students.
The website makes it easy for students to use ML to train new models whether they're recognizing text, images, or numbers. While this platform was originally created for use with Scratch, in our course, we will be using Python to interact with the trained models.
Watch the video to learn more:
Project Worksheets & The Python Reference
This section is currently under construction. |
Project Worksheets are used to guide students through specific machine learning projects. The worksheets will tell the student what Python concepts they will need to know in order to complete the project. Newer students may need more time to practice Python concepts, while more experienced students may be more able to dive right into their projects. Other students might need a quick recap of certain concepts.
For example, in the first lesson, students will need to understand conditional statements (if statements). Your student should be able to tell you whether or not they know how to write an if-statement in Python. If not, you'll know pretty quickly whether or not a review is needed.
The purpose of the Python Reference is to help students become self-learners . Students aren't required to read the entire reference and do every practice activity. Instead, they emulate what developers do in the real world -- if you don't know how to do something, look it up and learn!
Opting for Scratch instead of Python
This course can be used with Scratch as well as Python. At age 10, children should be capable of learning Python as their first programming language. In fact, you could teach a child as young as 7. It depends less on their age and more on their typing and reading skills. If students have difficulty typing or reading, they might have better luck with Scratch. Throughout this course, you can opt to use the pre-built project worksheets from https://machinelearningforkids.co.uk instead of our Python worksheets. Students should still be able to accomplish the primary learning objectives of the course, as it is centered more on Machine Learning and Data Science than it is on programming. Click below to view the Scratch project worksheets.
Semester Overview
- Session 1
- Guided Project Sessions (Sessions 2-7)
- Creative Project Sessions (Sessions 8-13)
- Demo Prep (Session 13)
- Demo Day Session 14
Typical Session Structure
Each session follows a general structure:
- Warm-up / Icebreaker activity
- Introduction or recap
- Activity time
- Reflections
- Clean-up
- Mentor debrief
Some sessions are more heavily structured, such as the first session, and the start of the creative project phase.
Warm-up / Icebreaker activity
Most program sites like to begin their sessions with a fun game or activity to loosen everyone up and build team camaraderie. You can find a list of these activities on our Icebreakers page.
Be mindful that these activities do not eat up too much session time. About 5-10 minutes is a good target, but no more than 15 minutes. |
Sometimes, especially during the later sessions, students want to dive right into their projects, which is perfectly acceptable. The practice of warm-ups and icebreakers vary from site-to-site, and you should find what works best for your site. We do highly encourage using them early during the program.
Introductions
Some sessions require a mentor to lead the entire class in a group discussion. This is the case with the first session and the introduction to the creative project. You will need to prepare ahead of time and choose a mentor to lead these discussions.
Activity time
Learning activities take up the bulk of the session time. Students work in pairs with mentors to accomplish the learning objectives for the day.
Clean-up
5 minutes before the end of the session, all students and mentors help with clean-up:
-
Wrap up laptop cables
- PRO TIP: Don't wrap the cable around the power brick -- wrap the cable by itself and tighten the velcro strap around it
- Wrap up mice cable (wrap cable in a loop, then pass the USB end through the loop to tighten)
- Wipe down tables using included disinfectant wipes
- Lightly wipe down keyboard surface and mice (don't use dripping-wet wipes, wring out if necessary)
- Put laptops and cables in laptop cart
- Put supplies back in supply bucket
Reflection Time
Have students reflect on their learning experience in their Reflection Journals
Debrief
Mentors should spend a few minutes after to debrief. Ask questions such as:
- What went well?
- What issues did we encounter?
- What new ideas might we try next time?
- Are there any specific mentor roles we need to consider for the next session?