Where does a Brampton teenager get serious Python and AI teaching that fits around school?
Modern Age Coders teaches Brampton teens aged 13 to 18 live online: Python first, then machine learning or contest programming, either in a class of fifteen to twenty or one to one. The usual route is Python for Teens followed by AI and Machine Learning for Teens; contest students add CCC preparation and Grade 11 and 12 students the Ontario Computer Science Companion. The first class is free and booked in Eastern time.
Ask a Brampton Grade 10 student what comes after Python basics and the answer is often a shrug. Ontario has more on offer than most families realise: a university-preparation computer science pair, a college-preparation pair that leans into object-oriented programming and interfaces, a place for computer studies among the diploma’s required credits, a national programming contest with a road to the international olympiad, and a provincial skills competition with its own coding event. This page lays each of those out from the official source, explains which AI tools a teenager may use under the companies’ own terms, and walks through a real regression our students build on the City of Brampton’s published energy and emissions records for its own buildings.
Facts last verified 22 October 2026. Teaching is online; no Brampton branch is claimed.
Two build the foundations, two sit beside school and contest goals. The free class settles which one comes first.

Clean Python from the ground up, through functions and files, so that a teen can read a city’s data service and reshape what comes back.
See the syllabus
Models fitted, tested and questioned. The least squares project on this page, built on Brampton’s energy file, is one of its first exercises.
See the syllabus
Our own problems in the CCC style, from Junior loops to Senior sorting, searching and counting, under real time limits.
See the syllabus
Help with concepts, practice and project planning while the school course runs. The school awards the credit; we do not.
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 syllabusOntario lists four Grade 11 and 12 computer studies courses, two marked U for university preparation and two marked C for college preparation. The descriptions are the ministry’s, from its curriculum service on 22 October 2026; the notes are ours.
| Course | Ministry description, in part | Comes before it | Our note |
|---|---|---|---|
| ICS3C, Introduction to Computer Programming (Grade 11, College) | “This course introduces students to computer programming concepts and practices. Students will write and test computer programs” | Nothing required | A practical start for students heading to a college programme |
| ICS4C, Computer Programming (Grade 12, College) | “Students will learn object-oriented programming concepts, create object-oriented software solutions, and design graphical user interfaces” | “Introduction to Computer Programming, Grade 11, College Preparation” | Classes, objects and programs with windows and buttons |
| ICS3U, Introduction to Computer Science (Grade 11, University) | Software designed alone and in teams through a development life cycle (our summary) | Nothing required | The course the University of Waterloo lists as recommended for its computer science programme |
| ICS4U, Computer Science (Grade 12, University) | Modular design and complex, documented programs (our summary) | ICS3U | Larger programs, planned and documented in modules |
The diploma itself gives computer studies a place. Ontario’s graduation page for students who started Grade 9 in 2024 or later says: “Of the 17 compulsory credits, you must complete 1 from the following group:”, and computer studies is on that list beside business studies, cooperative education and others. So a computer studies course can do double duty: a credit the diploma asks for and a first real programming course. Which route suits a teen is a question of plans after Grade 12, and families should take it to the school’s guidance team, not to us. What we can say is that both routes reward the same habit, writing and testing programs often, and that a student who has written a few hundred lines of Python before Grade 11 starts either course with room to think instead of scrambling.
ICS3U and ICS3C both list no prerequisite. The difference is direction: the U pair moves towards algorithms and design, the C pair towards object-oriented programs with interfaces. We teach both kinds of student and adjust the projects.
Grade 9 math (MTH1W) already includes coding, and Grade 10 offers ICD2O. Students who arrive in our classes in Grade 9 or 10 usually reach Grade 11 already comfortable with loops, lists and functions.
The ICS3U and ICS3C comparison and the Ontario computer science pathway set the courses side by side for families still deciding.
Our classes run beside a student’s timetable and we do not grant Ontario credits; ICS3U, ICS3C, ICS4U and ICS4C are earned only at school. Modern Age Coders has no tie to the Ontario Ministry of Education or to any Peel school board.
CEMC, at the University of Waterloo, runs the Canadian Computing Competition and the invitation-only Canadian Computing Olympiad. Everything quoted here is from CEMC’s CCC page as read on 22 October 2026; the right-hand column is our advice.
| Stage | CEMC’s words or figures | What we suggest |
|---|---|---|
| Who writes Senior | “Senior level - any participant with intermediate to advanced programming skills.” | Move up once Junior questions 1 to 4 feel routine |
| Senior questions 1 and 2 | “(e.g. sorting, searching)” | Know the built-in sort and binary search cold |
| Senior questions 3 and 4 | “(e.g. careful counting, more advanced mathematical reasoning)” | Pair coding with contest math; prove a count before coding it |
| Senior question 5 | “IOI level question” | A long-term goal, not a first-year target |
| 2026 Senior results | Mean 15.56 and distinction cutoff 26, each out of 75, across 2439 Senior writers | In a first Senior year, aim at questions 1 and 2 |
| After the CCC | About 20 top official Senior writers are invited to the CCO; “CCO participants must use C++.” | Add C++ in the year before an expected invitation |
The Senior numbers surprise families. A mean of 15.56 out of 75 is about a fifth of the marks, and the distinction line at 26 was about a third. That is not a sign the paper is unfair; it is built to separate strong programmers from very strong ones. CEMC adds that the olympiad is “also used to select Canada’s teams for the International Olympiad in Informatics”. For a Brampton Grade 11 student, the realistic plan is to write Junior first, move to Senior the next year, and judge progress by questions solved rather than by the score alone. CEMC lists the 2027 CCC for Wednesday 17 February 2027, and the contest accepts C, C++, Python and Java.
Python is allowed in the CCC and is the faster language to think in. Because the CCO is C++ only, students who reach the top of Senior learn C++ with us as a second language, not as their first.
Skills Ontario lists the “2027 Skills Ontario Competition: May 3rd and 4th at the Toronto Congress Centre”, with a contest titled “Coding (S/PS)”. Its site says entry “must be done through your institution’s contact person”.
We do not reproduce CEMC’s past problems or solutions. Students find them in CEMC’s own archive; our classes use problems we wrote for the same skills. The CCC Senior guide has the full picture.
The City of Brampton publishes the yearly electricity use, natural gas use and greenhouse gas emissions of the buildings it operates, from offices and libraries to fire stations and arenas. Our students fit a two-input linear model to it. The figures in this section are our own output, not the City’s.
| Model | What it assumes | Average miss on the 2018 and 2019 rows |
|---|---|---|
| Mean guess | Every building emits the 2013 to 2017 average | 196,390 kg a year |
| Two-input line, fitted on 2013 to 2017 | Emissions = 1.885 kg per cubic metre of gas + 0.0491 kg per kWh of electricity | 10,928 kg a year |
| Two-input line, fitted on 2017 only | The same shape of model, learned from the most recent training year alone | 8,390 kg a year |
Here is the program. It downloads the whole layer in one request, solves the two least squares equations by hand (no libraries, so the algebra is visible), and prints the fitted factors for each year as well as the errors in the table. We ran it on 22 October 2026 with the output shown in the table and the list below:import json, urllib.request
URL = ("https://services3.arcgis.com/rl7ACuZkiFsmDA2g/arcgis/rest/services/"
"Environment/FeatureServer/0/query?where=1%3D1&returnGeometry=false"
"&outFields=REPORT_YEAR,NATURAL_GAS_M3,ELECTRICITY_KWH,GHG_EMISSIONS_KG"
"&resultRecordCount=5000&f=json")
rows = [f["attributes"] for f in json.load(urllib.request.urlopen(URL))["features"]]
data = [(r["REPORT_YEAR"], r["NATURAL_GAS_M3"] or 0, r["ELECTRICITY_KWH"] or 0,
r["GHG_EMISSIONS_KG"]) for r in rows]
def fit(points):
# least squares for kg = a * gas + b * kwh (two equations, two unknowns)
gg = sum(g * g for _, g, e, _ in points)
ee = sum(e * e for _, g, e, _ in points)
ge = sum(g * e for _, g, e, _ in points)
gy = sum(g * y for _, g, e, y in points)
ey = sum(e * y for _, g, e, y in points)
det = gg * ee - ge * ge
return (gy * ee - ey * ge) / det, (ey * gg - gy * ge) / det
def miss(points, a, b):
return round(sum(abs(a * g + b * e - y) for _, g, e, y in points) / len(points))
train = [p for p in data if p[0] <= 2017]
test = [p for p in data if p[0] >= 2018]
a, b = fit(train)
avg = sum(p[3] for p in train) / len(train)
print(len(data), "rows;", len(train), "train (2013-2017),", len(test), "test (2018-2019)")
print("kg per m3 of gas:", round(a, 3), " kg per kWh:", round(b, 4))
print("average miss, guessing the mean:", round(sum(abs(avg - p[3]) for p in test) / len(test)))
print("average miss, two-input line:", miss(test, a, b))
for year in range(2013, 2020):
ya, yb = fit([p for p in data if p[0] == year])
print(year, round(ya, 3), round(yb, 4))
a17, b17 = fit([p for p in data if p[0] == 2017])
print("trained on 2017 only:", miss(test, a17, b17))
| Report year | Rows | kg per cubic metre of gas | kg per kWh of electricity |
|---|---|---|---|
| 2013 | 97 | 1.891 | 0.076 |
| 2014 | 101 | 1.891 | 0.04 |
| 2015 | 103 | 1.899 | 0.043 |
| 2016 | 102 | 1.891 | 0.0355 |
| 2017 | 100 | 1.899 | 0.043 |
| 2018 | 106 | 1.888 | 0.03 |
| 2019 | 102 | 1.891 | 0.0305 |
A line that misses by about 11,000 kg on buildings that emit hundreds of thousands looks brilliant. The City’s own description explains it: “The software calculates the annual energy consumption and greenhouse gas emissions”. The emissions are worked out from the energy use, so the model is mostly rediscovering a formula.
The gas factor barely moves, between 1.888 and 1.899 kg per cubic metre every year. The electricity factor falls from 0.076 in 2013 to about 0.03 by 2018. The data does not say why; a student should find out what factor the reporting software used before claiming a cause.
Because the electricity factor dropped, a line trained on 2013 to 2017 overestimates 2018 and 2019. Training on 2017 alone cuts the miss from 10,928 to 8,390 kg. Old data is not always better data when the rule behind it shifts.
The item says the City submitted datasets for 2010 to 2019, yet the rows we downloaded run only from 2013 to 2019. Forty-three rows record zero electricity and 123 record zero gas; some buildings may genuinely use no gas, but a building with a gas bill and no electricity at all is more likely a missing record than a fact. A model trained without checking those rows learns from the gaps as well as the data.
The City notes that the reports are prepared under Ontario Regulation 25/23 and that “The City receives utility bills that contain energy consumption data.” Its item page adds: “Last updated: August 30, 2021 with 2018 & 2019 report values.”, so this is a historical file, ideal for practice and not a current account of any building. The dataset carries the licence label CC BY, credited to the City of Brampton; the Creative Commons deed says that licence allows use “for any purpose, even commercially.” Source: City of Brampton, Energy Consumption and Greenhouse Gas Emissions, GeoHub item. The City has not endorsed this page, our courses or our results.
Age limits sit in each company’s terms of use, and contest bans in the organiser’s rules. These lines were read in the original documents on 22 October 2026; the practice column is ours.
| Tool or setting | The rule, in the organisation’s words | How we apply it |
|---|---|---|
| ChatGPT, OpenAI Terms of Use (effective January 1, 2026) | “You must be at least 13 years old or the minimum age required in your country to consent to use the Services” and, under 18, “you must have your parent or legal guardian’s permission” | Used only with a parent’s yes, for checking work, never for writing it |
| Claude, Anthropic Consumer Terms (effective Oct 8, 2025) | Adults only: “You must be at least 18 years old” | Kept out of every teen class |
| The CCC, CCC Online Grader rules | Bars “generative AI such as CoPilot or ChatGPT” along with other internet use | Contest training with assistants off from the first lesson |
Before a Brampton teen opens any AI tool for schoolwork or a project, we suggest three questions. Is the student old enough under the company’s own terms, and has a parent agreed where the terms require it? Does the school or contest allow it for this task? And could the student explain every line of the result to a teacher without the tool open? The third question matters most. In the energy project above, a tool could produce the least squares code in seconds; it would not notice that the emissions were calculated from the bills, that the electricity factor dropped by more than half, or that 43 rows show no electricity at all. A student who notices those things has learned the subject. One who pasted the code has learned to paste.
OpenAI’s terms give the decision to a parent or guardian until 18. We tell families in writing which lessons could involve the tool, and every lesson is complete without it.
Anthropic’s terms require users to be 18, so Claude has no place in a teen lesson, and our agentic coding course for adults does not accept students under 18.
We explain ideas, review reasoning and set practice. We do not write graded assignments, and we tell a student when a piece of their code looks borrowed rather than understood.
Brampton falls back on 1 November 2026 and springs forward on 14 March 2027. India keeps the same clock all year, so the gap changes twice. These are sample hours, not a fixed timetable.
| Stretch of the year | Brampton is at | Gap to India | Saturday 8:30 to 10 am in Brampton | Weekday 6 to 7:30 pm in Brampton |
|---|---|---|---|---|
| To the end of October 2026 | UTC-4 | 9.5 hours | India 6 to 7:30 pm | India 3:30 to 5 am, next day |
| 1 November 2026 to 13 March 2027 | UTC-5 | 10.5 hours | India 7 to 8:30 pm | India 4:30 to 6 am, next day |
| 14 March 2027 onward | UTC-4 | 9.5 hours | India 6 to 7:30 pm | India 3:30 to 5 am, next day |
Each class time is sent in Eastern time. In the week of each change, families get their schedule again in writing so a lesson is never lost to a clock.
Brampton numbers come under the 905 area code and its overlays 289, 365 and 742, the same set used across Peel, York, Durham and Halton. The form below takes all ten digits, without the leading 1.
From 1 November 2026 to 14 March 2027 Brampton runs on UTC-5, which covers the whole run-up to the CCC on 17 February. Weekly mock papers stay at one fixed Eastern hour so the habit is set before contest day.
Bands are approximate. A student is placed by the code they can write today, which the free class checks.
Complete programs with input, loops, lists and functions, and the habit of testing small parts first.
Python for TeensSorting, searching and counting for the CCC, and first public datasets such as the Brampton energy file.
Problem Solving for TeensData Science for TeensSupport beside ICS3U or ICS4U, and regression and classification tested on years the model never saw.
Ontario Computer Science CompanionAI and Machine Learning for TeensCCC Senior practice, and C++ for students with a realistic shot at the olympiad invitation.
CCC Junior and Senior Preparation (Canadian Computing Competition)C++ for TeensBecause the best moment in the energy project is the suspicion that the result is too good, and that suspicion is human.
Least squares is two equations and two unknowns. A Grade 11 student who solves them in Python, with no library hiding the algebra, understands what a model is: a rule chosen to make the misses as small as possible on the data it was shown. Everything bigger in machine learning, including the systems behind chatbots, grows from that idea.
We teach in that order on purpose. Describe the problem in words, write the steps, predict the output, run it, and argue with the result. AI tools can come later, inside the age rules, as a second reader whose suggestions get checked. Teens taught this way become the people who can tell when a tool has made something up.
On CCC day there is no assistant in the room at all, which is the clearest test of whether the thinking was ever the student’s own. The longer argument is in an essay on why coding still matters in 2026.
Teaching is online, so a teen in Heart Lake and one in Mississauga or Caledon share a class with no commute.
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 elsewhere in Peel, in Mississauga and Caledon, join the same groups, all of them timed in Eastern time.
Groups hold fifteen to twenty teens at one level. A private teacher suits a student with a fixed target, such as the CCC in February or a Grade 12 project.
Students write and keep their own code. Teachers explain, question and review; marked school assignments remain the student’s.
A computer that runs Python 3, a microphone and a reliable connection. We install Python with the student in the first class if needed.
A full lesson at no charge and with no card asked for. At the end the teacher recommends a course and a level, in writing.
No Brampton premises
Modern Age Coders has no centre in Brampton and does not claim one. All classes are live online, taught from India, scheduled on Brampton time.
Fees display in your own currency, with the currency code shown beside each one.
A full live class, free, which ends with a placement and a course suggestion.
Eight live classes a month with a group of fifteen to twenty, charged as one monthly fee.
A teacher of the student’s own, at times the family sets, charged as one monthly fee.
Brampton families pay the same fee as families elsewhere in Canada. Billing starts only after the free class, once course and times are settled; the pricing page sets out how missed classes and breaks are handled.
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
Send the grade and a sentence about any coding so far. Beginners write a complete first program; experienced students might start on the Brampton energy data or a timed problem of ours in the CCC Senior style.
Answers to the questions Brampton families send most often.
No. Teaching is live and online, so Brampton teens attend from home, in a class of fifteen to twenty or with a private teacher.
That depends on plans after Grade 12, and the school's guidance team is the right place to decide. Both list no prerequisite; we support students in either course.
No. We teach beside the school course and we do not grant Ontario credits. Credits for ICS3U, ICS3C, ICS4U or ICS4C come only from the school.
Its terms say users must be at least 13, and that anyone under 18 needs a parent's or legal guardian's permission. We only involve it where a parent has agreed.
No. Anthropic's consumer terms set a minimum age of 18, so Claude is not used with any student under 18.
A top official CCC Senior result: CEMC invites about 20 Senior writers to the CCO each spring, and the CCO is written in C++ only.
It is designed to spread out strong programmers. In 2026 the Senior mean was 15.56 out of 75, and a writer needed 26, just over a third of the marks, for a Certificate of Distinction.
No. The grader rules bar generative AI such as CoPilot or ChatGPT and other internet use, so our contest practice is done without assistants.
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 Brampton's published energy and emissions file under its CC BY licence. Students download it and fit the model themselves; the City has not endorsed our courses.
School courses: ICS3U help, ICS4U help and ICS3U and ICS4U exam review. Contests: the CCO guide and how to register for Waterloo contests. The Ontario page covers the rest of the province.