Can a Hamilton student take coding and Python classes live online?
Yes. Modern Age Coders runs live online coding and Python classes for Hamilton, Ontario students aged 6 to adult. A teacher sees the student's own code on a shared screen while it is written, in a group of fifteen to twenty or a private class. Children begin with Python and AI for Kids, teens with Python for Teens, and the first class is free.
Hamilton's open data includes a waterfall inventory: the City lists 103 of them, from cascades a few metres high to drops of forty metres. We use that file on this page the way we use real data in class, as something a student loads, sorts and questions in Python. Before that, the page answers the practical question parents ask first, which is what a live online class actually looks like on the screen in front of their child, and what separates it from a video course. Then comes the route we follow in Python, from short programs to a finished project, and the school and contest facts a Hamilton student should know for 2026 to 2027.
Facts last verified 22 October 2026. Teaching is online; no Hamilton branch is claimed.
All four are taught live with a teacher reading the student's code. The free first class sets the starting point.

Children type real Python from the first week: drawings, games and quizzes, each one run and explained on the shared screen.
See the syllabus
From variables and loops to functions, files and data, the skills the waterfalls project on this page is built from.
See the syllabus
A full Python course for Hamilton adults starting from nothing, aimed at scripting, data handling and work projects.
See the syllabus
Practice and projects that run beside a school ICS3U or ICS4U course. We do not grant Ontario credits; schools do.
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 syllabusParents often picture a lecture on video. The screen in our classes is mostly the student's own code. This is how it is laid out and who controls each part.
| On screen | Who controls it | Why it is there |
|---|---|---|
| The teacher's camera and voice | The teacher | So the student is taught by a person who can be asked anything, at the moment it matters |
| The student's editor, shared | The student | The teacher reads the real program as it is typed, including the mistakes |
| A short example from the teacher | The teacher, for a few minutes only | To show one new idea before the student uses it on a different problem |
| The output window | The student | Every program is run and its output read aloud, never assumed |
| Chat | Everyone | For questions in a group class without stopping the person who is speaking |
| Other students' code (group class) | Each student in turn | Two or three programs are read each class so students learn from each other's errors |
The student keeps the keyboard. When a program fails, the teacher does not take control and fix it; they ask the student to read the error message out loud, point to the line it names, and say what they expected that line to do. That habit, slowing down at the error rather than guessing, is most of what makes a programmer.
Every student in a group works at the same stage. Students are named and asked to share, so nobody spends a class hidden behind a muted microphone.
One teacher for one student. The whole screen is that student's code, and the pace follows them, which suits ICS4U projects and CCC practice.
A laptop or desktop, a headset or microphone, and Python installed in the first class with the teacher's help. A tablet works for blocks, not for typed Python.
Each milestone is a program the student writes alone; the third column is the Ontario expectation it carries further, quoted from the curriculum service on 22 October 2026. The milestones are ours.
| Milestone program | What it proves the student can do | Ontario expectation behind it |
|---|---|---|
| A times-table printer | Use a loop and a variable to produce output that would take a page to write by hand | Grade 3 C3.1: code with “sequential, concurrent, and repeating events” |
| A number-guessing game | Read input, compare it, and branch with if, elif and else | Grade 5 C3.1: “conditional statements and other control structures” |
| A quiz that reads its questions from a file | Get input from somewhere other than the keyboard | Grade 6 science A2.1: code “with a focus on obtaining input in different ways” |
| A slope and intercept checker | Predict what code prints, then change a parameter and predict again | MTH1W C2.3: “read code to predict its outcome” and alter its parameters |
| A data report on a city file | Load records, sort them, group them and write what the numbers do not show | ICS3U: students “design software independently and as part of a team” |
The milestones are checkpoints, not lesson titles. Between any two of them sit many smaller programs, and some students need longer on the guessing game than on everything after it. A child of 9 might take a school year to reach the third program; a teen or an adult who already thinks in steps can get there far sooner. The free class tells us which milestone a student has really reached, which is often not the one they expect.
Ontario's 2022 Science and Technology curriculum asks Grade 6 students to use coding in investigations and when modelling concepts, so a Hamilton student meets code outside math class as well.
MTH1W, the de-streamed Grade 9 course from 2021, expects students to read code, predict its result and change its parameters. The fourth milestone is practice for exactly that.
ICS3U has no prerequisite and leads to ICS4U. Our companion course adds practice beside them; the Ontario credit itself is only ever earned at the student's school.
The City of Hamilton publishes City Waterfalls, a file it describes as publicly accessible waterfalls in Hamilton, on both public and private property. We downloaded it on 22 October 2026 and analysed it with the program below. The figures are our counts, not the City's.
| COMMUNITY in the file | Rows | Mean height (m) | Tallest (m) |
|---|---|---|---|
| Hamilton | 41 | 10.8 | 39.5 |
| Flamborough | 23 | 9.9 | 41 |
| Stoney Creek | 17 | 11.1 | 37 |
| Ancaster | 15 | 8.0 | 21 |
| Dundas | 6 | 5.4 | 9 |
| Burlington | 1 | 25.0 | 25 |
Two small functions do most of the work: one loads the file, one takes a mean. The sort uses a key function, which tells sorted() to order whole records by a single field. This program, run on the saved file, printed every number on this page:import json
def load_falls(path):
with open(path, encoding="utf-8") as f:
return [feature["attributes"] for feature in json.load(f)["features"]]
def mean(values):
return sum(values) / len(values)
falls = load_falls("waterfalls.json")
tallest = sorted(falls, key=lambda fall: fall["HEIGHT_IN_M"], reverse=True)
for fall in tallest[:5]:
print(fall["NAME"], fall["HEIGHT_IN_M"], "m", fall["COMMUNITY"])
for kind in ("Waterfall", "Cascade"):
heights = [fall["HEIGHT_IN_M"] for fall in falls if fall["TYPE"] == kind]
print(kind, len(heights), round(mean(heights), 1))
by_community = {}
for fall in falls:
by_community.setdefault(fall["COMMUNITY"], []).append(fall["HEIGHT_IN_M"])
for place, heights in sorted(by_community.items()):
print(place, len(heights), round(mean(heights), 1), max(heights))
Sorted by HEIGHT_IN_M, the file puts Tew's Falls first at 41 m, then Lower Princess Falls at 39.5 m, Devil's Punchbowl Falls at 37 m, Ferguson Falls at 30 m and Snake Falls at 25 m.
The TYPE column splits the rows into 47 waterfalls with a mean height of 12.5 m and 56 cascades with a mean of 8.1 m. Students then ask whether the tallest few are pulling the waterfall mean up.
Snake Falls is the only row whose COMMUNITY is Burlington, so Burlington's mean of 25.0 m rests on a single record. A student who prints that mean without the count of 1 beside it has made a misleading table.
Across all 103 rows the median height is 7 m and 11 rows sit at the minimum of 3 m, while every community mean in the table is higher than 7 m except Dundas. A few tall drops lift a mean; the median shows the typical row. Writing both, with the counts, is the honest report.
Some columns are not explained in the file itself. RANKING holds A on 18 rows, B on 36 and C on 49, and OWNERSHIP includes a value written public-I on 28 rows. We teach students to say they do not know what a code means rather than invent a meaning, and to look for the publisher's documentation first. The data is used under the City of Hamilton Open Data Licence: contains public sector Data made available under the City of Hamilton's Open Data Licence (licence). The City does not endorse this page or these classes, and a file of accessible falls is not advice about visiting them.
Contest facts are as CEMC, the University of Waterloo centre that runs the Canadian Computing Competition, publishes them for 2026 to 2027, read on 22 October 2026.
| Feature | What CEMC says |
|---|---|
| Date | Wednesday 17 February 2027 (North and South America) |
| Length and questions | 5 questions in 3 hours, scored out of 75 |
| Levels | Junior or Senior, chosen by programming skill regardless of grade |
| First Junior questions | Basic loops and conditions, in CEMC's own example |
| How it is written | At school, online, individually |
| Practice | A free practice account with previous contests |
A Hamilton student who has written the guessing game and the file-reading quiz from our route already has the tools for the first Junior questions. Entry is through the school, since CEMC accepts no individual registrations; a student whose school does not take part can ask another local school. Our practice uses problems we write ourselves, and CEMC's free archive of past contests is there for anyone. We have no connection with CEMC or the University of Waterloo, and our CCC preparation page covers both levels.
Hamilton keeps Eastern time: UTC-4 until 1 November 2026, UTC-5 from then until 14 March 2027, and UTC-4 again after that, according to IANA tzdb 2026e.
Our teachers are in India, 9 hours 30 minutes ahead of Hamilton in summer and 10 hours 30 minutes in winter. A Thursday 5:00 pm class in Hamilton in December is 3:30 am Friday for the teacher; that is our arrangement to manage.
Hamilton numbers in the 905 belt, with the 289, 365, 742 and 905 codes, work in the booking form. Burlington, in the same metropolitan area, shares them.
A rough map by age. The program a student writes in the free class decides the real starting point.
Sequences and repeats in blocks, with the child explaining each step, ahead of any typing.
Coding for KidsScratch Coding for KidsThe times-table printer and the guessing game, then small games and drawings in Python.
Python and AI for KidsWeb Development for KidsThe quiz, the checker and a city data report, with CCC Junior or Senior for students who want it.
Python for TeensCCC Junior and Senior Preparation (Canadian Computing Competition)The same milestones at an adult pace, pointed at automation and data at work.
Python MasterclassPython Automation CourseBecause the hard part of the waterfalls project was never the typing.
An AI assistant will produce a script that sorts the Hamilton file in seconds. It will not stop to notice that one community has a single row, that a mean of 25.0 m is built on it, or that RANKING has no published meaning in the file. A student who has written the sort and the mean by hand notices all three.
We therefore teach the reasoning first: understand the problem, write the code, read the output critically. Older students later use AI tools within the age rules we follow, and they treat the answer as a draft to test, not a solution to hand in.
A Hamilton student who can explain why the median says more than the mean about these falls has learned something no code generator does for them. The longer argument is in why we still teach students to write the loop.
Because lessons are live online, a student on the Mountain and one in Waterdown share a teacher without a trip across the escarpment.
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 from Burlington, Grimsby and the rest of the area join the same groups, all on Eastern time.
Teachers talk in Ontario grades and course codes, so MTH1W or ICS3U needs no explaining. School assignments always remain the student's own work.
A group of fifteen to twenty at one level, or a private class with one teacher. The syllabus is identical; the pace is not.
Each milestone program is saved, so a parent can open the student's own files and see what they built that month.
A live lesson with real code that ends with a recommended course and level. No card details are requested.
No Hamilton office
Modern Age Coders has no classroom or office in Hamilton and claims none. Classes are live online, taught from India, over a stable connection.
Three lines, each shown in your own currency with its code beside it.
A first live lesson at no charge, after which we suggest a course and level.
The monthly fee for a group of fifteen to twenty students at one stage.
The monthly fee for private lessons with one teacher, at times you choose.
A Hamilton address changes nothing about the fee; it is the same across Canada. No payment is taken until after the free lesson, once course and time are agreed, and the pricing page covers missed classes and holidays.
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
Give us a grade or an age. A Grade 2 child might animate a looping story, a Grade 6 student build the guessing game, and a teen or adult open the waterfalls file in the first lesson.
Asked by Hamilton parents and students before the first lesson.
A teacher is present at a fixed time, reads the student's own code on a shared screen and asks questions while it is written. A video cannot see the student's mistakes.
No. There is no Hamilton classroom. Every lesson is live online, so students in Dundas, Ancaster, Stoney Creek, Waterdown or on the Mountain join from home.
Fifteen to twenty students at the same stage. Families who want one teacher for one student choose private lessons instead, with the same syllabus.
Usually about 9. From age 6 we start with blocks, then move to typed Python once the child can read and type comfortably.
Yes. Ontario math includes coding from Grade 1, Grade 6 science uses it in investigations, and MTH1W in Grade 9 asks students to read and change code. Our classes go deeper.
Yes. CEMC accepts Python 3 for the CCC on Wednesday 17 February 2027, entered through a school. We prepare students with original practice problems.
No. We do not grant Ontario credits. Credits such as ICS3U and ICS4U come only from the school; our companion course is extra practice beside them.
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays. We confirm in Eastern time.
Yes. Adults start from zero if they need to and follow the same milestones at their own pace, in a group or privately.
They do, along with 365 and 742. Key in the ten-digit number; the +1 for Canada is already set.
In the fees section of this page: the free first lesson, the monthly group fee and the monthly private fee, each in your own currency. You pay only after the free lesson.
The province is covered on coding classes in Ontario, and the country on coding classes in Canada. For contests see Waterloo contest preparation and the CCC Junior guide; for math help, online math tutoring in Canada.