Where can a Guelph teenager learn Python, data and AI with a live teacher?
Modern Age Coders teaches Python and AI to Guelph students between 13 and 18 in live online classes, in groups of fifteen to twenty or one to one. The usual start is Python for Teens; after that, students choose AI and Machine Learning for Teens, CCC preparation, or the Ontario Computer Science Companion beside ICS3U and ICS4U. Every class runs on Eastern time, and the first is free.
In Ontario, data arrives in a student’s coding before most families notice. The Grade 8 math curriculum already asks for code that analyses data, Grade 9 math pairs code with algebra, and the senior computer science courses add software design and the place of computers in society. For a Guelph teenager that is a good thread to pull on, because the most useful skill in modern AI is not writing a prompt but working out what a column of numbers can and cannot tell you. This page quotes what the ministry asks at each stage, lists what CEMC offers free, sets out which AI tools a 13 to 17 year old may use under each company’s terms, and walks through a forecasting project on the City of Guelph’s own green bin records.
Facts last verified 22 October 2026. Teaching is online; no Guelph branch is claimed.
One builds the language, one the models, two sit beside school and contests. The free class decides the starting point.

Python properly, through functions, dictionaries and files, so that cleaning a messy public table like Guelph’s green bin file becomes routine.
See the syllabus
Forecasting, classification and clustering, always tested against a simple baseline first, as the green bin project on this page is.
See the syllabus
Problems we write in the CCC format, from Junior loops to Senior algorithms, sat under the real three-hour limit.
See the syllabus
Concept help, extra practice and project feedback while the school course runs. The school grants the credit, never us.
See the syllabusBrowse the course atlas for more than one hundred options and use the coding roadmap to check prerequisites.
The four we are known for
These run underneath everything above. Every one is live and online, placed by ability rather than by age, and the first class is free.

Python, web and AI projects where the learner still owns the thinking.
See the syllabus
Automate the work you already do, then let AI carry part of it.
See the syllabus
Train a model, read what it learned, and be able to say why it is wrong.
See the syllabus
Run AI coding agents on real work without losing control of the codebase.
See the syllabusQuoted text: the Ontario curriculum service and the 2008 computer studies document, both checked on 22 October 2026. Right-hand notes: ours.
| Grade and course | Ministry wording | Our note |
|---|---|---|
| Grade 8 math, C3.1 | Students code “including code that involves the analysis of data in order to inform and communicate decisions” | A 13 year old is already expected to use code to reason about data |
| Grade 8 math, C3.2 | Students “read and alter existing code involving the analysis of data in order to inform and communicate decisions” | Reading someone else’s analysis and changing it, a real-world skill |
| Grade 9, MTH1W, C2.1 | Students “use coding to demonstrate an understanding of algebraic concepts including variables, parameters, equations, and inequalities” | Variables in code and variables in algebra, taught as one idea |
| Grade 10, ICD2O (2023) | Strands titled “Computational Thinking and Making Connections”, “Hardware, Software, and Innovations” and “Programming” | Broad by design: thinking, technology and code in one course |
| Grades 11 and 12, ICS3U and ICS4U (2008) | Each course opens with Programming Concepts and Skills and Software Development; “The fourth strand (strand D) deals with the role of computers in society” | Building software and asking what it does to people, both on the syllabus |
Notice how often the word data appears before Grade 11. The Grade 8 expectations do not ask students to analyse data by hand and then learn to code separately; they ask for code that analyses data to support a decision. That is exactly the shape of a small machine learning task, and it is why our Guelph students meet real public datasets early. There is also a small curriculum change families sometimes ask about: the 2008 document still describes a Grade 10 course, ICS2O, that is “organized in three strands”, but the current ministry list of computer studies courses does not include ICS2O and does include ICD2O. We state both facts and leave the history to the ministry; the practical point is that ICD2O is the Grade 10 course on today’s list.
We give Grade 8 students a small real table, ask a question it can answer, and have them write the code that answers it. The decision part matters: what would you do differently because of this number?
MTH1W’s link between code variables and algebra is a gift. Students who see that a function in Python and a function in math are the same idea find both subjects easier.
Strand D asks about computers in society. AI gives that question plenty to work with, and our older students write short, evidence-based notes on what a model they built could get wrong.
Our lessons sit beside the school day, and we do not grant Ontario credits: ICD2O, ICS3U and ICS4U are earned only at school. Modern Age Coders has no connection with the Ontario Ministry of Education or any Guelph-area school board.
CEMC, part of the University of Waterloo, publishes practice material and runs the CCC. The quotes below are CEMC’s own, read on 22 October 2026; the right-hand column is our advice.
| Resource | In CEMC’s words | How a teen can use it |
|---|---|---|
| Courseware | “Covering topics from Grades 4 to12 mathematics and computer science”; “No registration is required to access these resources.” | Self-paced lessons for gaps; CEMC adds that “there is no certificate or other form of credential awarded” |
| Problem of the Week | Problems “e-mailed to educators for use with their students from Grades 3 to 12”; “New problems are sent every Thursday, and their solutions are sent one week later.” | A weekly reasoning habit, best done before looking at the solution |
| CCC Junior level | “Junior level - any participant with beginner to intermediate programming skills.” | The right first paper for most Guelph students who already code |
| CCC date | Wednesday 17 February 2027 for North and South America | A teacher orders the paper, since in CEMC’s words “all students must participate through their school.” |
Free material is valuable, and we point students to it. What it cannot do is notice the specific mistake a particular student keeps making. A student working alone through Courseware can finish a unit while still misunderstanding why a loop runs one time too many. In a live class the teacher sees the error the first time it appears, asks the student to predict the output, and lets them find it. That difference, between material and feedback, is the reason most families come to us, and it is why we encourage students to keep using CEMC’s resources alongside our classes rather than instead of them.
We never reproduce CEMC problems or solutions. Students read CEMC’s archive and Problem of the Week on their own; class time goes to problems we write for the same skills.
Most first-time writers from Guelph should sit Junior. Those who find Junior questions 1 to 4 routine in practice move up to Senior the following year.
The CEMC free resources guide lists everything CEMC offers, and the CCC past problems guide explains how to use old papers well.
Modern Age Coders is independent of CEMC and the University of Waterloo and is not endorsed by either. Waterloo contests are entered through a school, never through us.
The City of Guelph publishes the monthly volume of organic waste collected through its green bin program from 2012 to 2019. Our students clean the table, then forecast every month of 2019 from earlier years and check how far off each forecast is. All results here are our own calculations; the volumes are the City’s, in the units it published, which the dataset does not state.
| Forecast method | How it guesses a 2019 month | Average miss per month |
|---|---|---|
| Flat average | The 2018 monthly average, for every month | 98.2 |
| Same month last year | The value for the same month in 2018 | 38.5 |
| Same month, six-year mean | The average of that month from 2013 to 2018 | 51.4 |
The code below uses nothing beyond Python’s standard library, and most of it is cleaning: the year appears only on each January row, so the code carries it forward, and the month names arrive in several spellings with stray spaces, so the code trims and shortens them. Only then does it forecast. Run on 22 October 2026, it printed the three averages shown above:import json, urllib.request
URL = ("https://services5.arcgis.com/k3dd78JyG9GFoZHG/arcgis/rest/services/"
"CoG_Org_Waste_Month_Vol_2012_2019/FeatureServer/0/query"
"?where=1%3D1&outFields=*&orderByFields=ObjectId&f=json")
rows = [f["attributes"] for f in json.load(urllib.request.urlopen(URL))["features"]]
# The year is filled in only on each January row, and month names are typed
# inconsistently ("Feb ", "April", "Sept "), so clean both before anything else.
volume, year = {}, None
for r in rows:
year = r["Year"] or year
volume[(year, r["Month"].strip()[:3].title())] = r["Volume"]
MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
print(len(rows), "rows,", len(volume), "year-month cells,",
min(y for y, m in volume), "to", max(y for y, m in volume))
def miss(guess):
return round(sum(abs(guess(m) - volume[(2019, m)]) for m in MONTHS) / 12, 1)
last_year = sum(volume[(2018, m)] for m in MONTHS) / 12
print("flat 2018 monthly average:", miss(lambda m: last_year))
print("same month in 2018:", miss(lambda m: volume[(2018, m)]))
print("same month, mean of 2013-2018:",
miss(lambda m: sum(volume[(y, m)] for y in range(2013, 2019)) / 6))
lowest = [min(MONTHS, key=lambda m: volume[(y, m)]) for y in range(2012, 2020)]
print("lowest month each year, 2012-2019:", lowest)
The table looks like a copied spreadsheet: a year written once, then blanks, and month labels typed sixteen different ways, such as “Aug” and “Aug ” with a trailing space. Students who skip this step get twelve months that do not line up.
Guessing that a month will look like the same month last year is called a seasonal naive forecast, and it is the baseline every serious forecaster tries first. Here it beats both alternatives: an average miss of 38.5 against 51.4 and 98.2.
A six-year mean should be steadier, yet it does worse. In 10 of the 12 months the 2018 value is higher than the 2013 value, so the older years drag the mean down. Recent data wins when a series is trending, an idea students test by trying three-year and two-year means.
February has the lowest total in every year from 2013 to 2019. That looks like a pattern in behaviour until a student divides by the number of days: per day, February is the lowest month only in 2014, 2015 and 2019. Most of the dip is simply a shorter month. Turning totals into per-day rates is a first taste of feature engineering, choosing what to measure so that a model learns the right thing.
A few more honest details. The program began in 2012, and January 2012 shows 74.33 against 256.67 in February, so the first months describe a launch rather than normal service, which is why the six-year mean starts at 2013. The same-month model’s biggest misses on 2019 were April, 81.5 too low, and August, 73.3 too high. The City notes that the figures do not include organic waste collected in Waterloo Region and processed at the Guelph Waste Resource Innovation Centre, so this is Guelph’s own green bin collection only. We never add the monthly rows into yearly totals; the City publishes a separate yearly file for that. The data is used under the City of Guelph’s Open Data Licence Version 2.0, which grants a licence “to use the Information including for commercial purposes”, and attribution goes to the City of Guelph under its Open Government Licence. No endorsement by the City of Guelph is implied.
Each rule is quoted from the source document, checked on 22 October 2026; the right-hand column is how we teach with it.
| Tool or setting | What the document says | Our practice |
|---|---|---|
| ChatGPT, OpenAI Terms of Use (effective January 1, 2026) | Users must be at least 13, and “If you are under 18 you must have your parent or legal guardian’s permission to use the Services.” | Parent decides; no lesson needs it |
| Claude, Anthropic Consumer Terms (effective Oct 8, 2025) | “You must be at least 18 years old” | Not used with under-18s |
| The CCC, CCC Online Grader rules | Generative AI is banned by name, and “AI-based tools within an IDE cannot be used.” | Contest work in a plain editor |
The green bin forecast shows why we hold AI tools back for teens who are still learning. An assistant asked to forecast the series would produce a confident model in seconds. It would be unlikely to point out that the year is missing from eleven rows in twelve, that “Sept ” and “Sept” are the same month, or that February’s dip is mostly the calendar. Those are the observations that turn a script into an analysis, and a Guelph teen who makes them is ready to use AI tools well later, because they will know what to check.
OpenAI’s terms give the permission to a parent or guardian until 18. We say in advance which lessons might involve it, and every lesson works without it.
Anthropic’s terms set 18 as the minimum for Claude. We keep it out of teen classes, and our adult agentic coding course does not enrol under-18s.
We explain and review but never write marked school assignments. If a student’s code looks borrowed, we say so and work through it together.
Guelph falls back an hour on 1 November 2026 and springs forward on 14 March 2027; India does not change. The sample hours below are illustrations, not a published timetable.
| When | Guelph offset | India ahead by | Saturday 11 am to 12:30 pm in Guelph | Weekday 4 to 5:30 pm in Guelph |
|---|---|---|---|---|
| Until 1 November 2026 | UTC-4 | 9 h 30 min | India 8:30 to 10 pm | India 1:30 to 3 am, next day |
| 1 November 2026 to 14 March 2027 | UTC-5 | 10 h 30 min | India 9:30 to 11 pm | India 2:30 to 4 am, next day |
| After 14 March 2027 | UTC-4 | 9 h 30 min | India 8:30 to 10 pm | India 1:30 to 3 am, next day |
All confirmations state Eastern time. Ahead of each clock change, families receive the new schedule in writing so no lesson goes missing.
Guelph shares 519 and its overlays 226, 382 and 548 with the rest of south-western Ontario. Enter the ten digits in the form without a leading 1.
The CCC on 17 February 2027 falls in the UTC-5 months. Students who plan to write it get weekly mock papers at a fixed Eastern hour from January.
Ages are only a guide. Placement depends on what the student can already program, which the free class checks.
Complete programs that read a small dataset and answer a question about it, the Grade 8 expectation taken further.
Python for TeensSearching, sorting and counting, and a CCC Junior paper for students who want one.
Problem Solving for TeensCCC Junior and Senior Preparation (Canadian Computing Competition)Cleaning messy public files and testing forecasts against honest baselines, starting with the green bin series.
Data Science for TeensAI and Machine Learning for TeensSupport beside ICS3U and ICS4U, and larger machine learning projects explained line by line.
Ontario Computer Science CompanionAI and Machine Learning for TeensBecause “same month last year” beat two more elaborate guesses, and only a student who tried it would know.
Forecasting is full of clever methods that lose to a plain baseline. A teen who has watched a six-year average lose to last year’s value understands something many adults do not: complexity is not accuracy, and every model has to earn its place against the simplest reasonable guess.
We teach in that spirit. State the question, clean the data, try the obvious answer, then try to beat it, and explain why the winner won. AI tools can join later, inside the age rules, as a reviewer whose suggestions are tested like any other model. Students who learn this way can tell a good result from a lucky one.
On CCC day there is no assistant at all, so the reasoning has to be the student’s from the first line. The longer argument is in an argument for learning to code in 2026.
Classes are online, so a teen near downtown Guelph and another in Fergus, Elora or Cambridge join the same lesson without a drive down the Hanlon.
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays.
Students in Wellington County and nearby Waterloo Region join the same groups, all on Eastern time.
Groups of fifteen to twenty at one level, or a private teacher when the aim is fixed, such as a CCC paper or a final ICS4U project.
Students write and keep their own code in their own folders. We explain and review; graded school work stays theirs.
A computer able to run Python 3, a microphone and a steady internet connection. Python can be installed together in the first lesson.
A full lesson at no cost and with no card requested, ending with a written course and level recommendation.
No Guelph classroom
Modern Age Coders has no centre in Guelph and claims none. Classes are live online, taught by teachers in India, at Guelph times.
Fees show in your own currency, with the currency code beside each one.
A complete live lesson, free, ending in a placement and a suggested course.
Charged as a monthly fee: eight live classes with fifteen to twenty teens at the same level.
Charged as a monthly fee: one teacher for one teen at hours the family sets.
Families in Guelph pay the same as families elsewhere in Canada. Nothing is charged before the free class or before a course and schedule are agreed; the pricing page explains how missed classes and holidays work.
Rated 4.9 across 547 Google reviews. These are real reviews, reproduced as written.
★★★★★
"The one step solution for my son. Modern Age Coders make learning coding so simple that kids love it. The teachers explain complex concepts clearly with practical exercises and interactive content."
Ria Mukherjee
Parent
★★★★★
"Modern Age Coders has been a game-changer for me. I struggled to grasp IT concepts and coding before joining, but their classes transformed everything. I can now confidently write complex programs with ease."
Samriddha Mondal
Student
★★★★★
"One of the most wonderful education centres out there. Education is not limited to school syllabus but focuses on skill development."
Vansh Agarwal
Student
★★★★★
"My child Dhairya is really enjoying the Modern Age Coders classes. This is his first online class and he eagerly looks forward to it. I can already see his improvement, and the teachers are very cooperative."
Sonam Oswal
Parent of Dhairya
★★★★★
"Modern Age Coders have wonderful teachers who teach in a clear, easy and practical way. The teacher boosts students' confidence and inspires them to learn without hesitation."
Sonu Goyal
Parent
★★★★★
"I highly recommend this computer coding class! The teachers are incredibly knowledgeable and passionate about coding."
Ritu Kedia
Parent
Share the grade and a line about any coding so far. A beginner writes a full first program; a stronger student might clean the Guelph green bin table or try one of our timed CCC-style problems.
The questions Guelph parents and teens send us most.
They are online and live, so students join from home in Guelph. There is no local centre; teens choose a group of fifteen to twenty or a private teacher.
No. Ontario's Grade 8 math already asks for code that analyses data, and Python for Teens starts at that level.
No. We teach alongside school courses and do not grant Ontario credits; ICD2O, ICS3U and ICS4U credits come only from the school.
OpenAI's terms set 13 as the minimum and require a parent's or guardian's permission under 18. We involve it only where a parent agrees.
No. Anthropic's terms say users must be at least 18, so Claude is never used with anyone younger.
Yes. CEMC says no registration is required for its Courseware, and its Problem of the Week sends new problems every Thursday. It also notes Courseware gives no certificate.
Junior, in most cases: CEMC describes it as suited to beginner to intermediate programmers. Students move to Senior once Junior feels routine.
No. The CCC grader rules ban generative AI and say AI-based tools within an editor cannot be used, so contest practice uses a plain editor.
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays. Times are confirmed in Eastern time.
Yes. It uses the City of Guelph's published monthly organic waste volumes under its open data licence. Students clean and forecast it themselves; the City has not endorsed our courses.
For school courses, see Ontario coding by grade, 1 to 8, MTH1W explained and ICD2O explained. For contests, read the CCC Senior guide. The Ontario page covers the province.