PC / YOUNG / 01
Math through coding
School math learned in Python, ages 10 to 15.
Open the syllabusCanada · Python · Ages 9 to adult
Python is the language most Canadian learners meet first, whether that is a ten year old making a turtle draw a snowflake, a Grade 11 student writing the Canadian Computing Competition, or an analyst in Calgary tired of copying spreadsheets by hand. This page answers the questions that come before a first class: which version of Python to install this school year, where Python already turns up in Canadian schools and contests, what learning it looks like at 9, 14 and 40, and what a learner can do with a real 300,000-row file from the City of Winnipeg.
Teaching live online since 2020 · 10,000+ students · separate Python courses for kids, teens and adults
In short
Python classes in Canada teach learners to write, test and explain Python 3 programs, from first lines to files, data and small apps, with children from about 9, teens from 13 and adults at any age in separate courses. Modern Age Coders teaches them live online, in a batch or one to one, for example in Python for Teens.
One Python course per age
The same language, taught three different ways, because a nine year old, a fifteen year old and a forty year old do not learn alike.

PC / 01
Ages 9 to 12, complete beginners. Eight to ten months of typed Python: turtle art, Pygame games and kid-safe AI projects.
Open the syllabus →
PC / 02
Ages 13 to 18. Ten to twelve months from first programs through object-oriented code, web projects and a capstone.
Open the syllabus →
PC / 03
Ages 18 and up, complete beginners welcome. Nine to eleven months from core Python to professional tooling.
Open the syllabus →Which Python, this year
New learners often ask which Python to download, and the answer changed this month. These dates come from the Python project's own release schedules (PEPs 745 and 790) and python.org, read on 22 October 2026.
| Release | Date | What the Python project says |
|---|---|---|
| Python 3.14.0 | Tuesday, 2025-10-07 | PEP 745: "Python 3.14 will receive bugfix updates approximately every two months for approximately 24 months." |
| Python 3.15.0 | Friday, 2026-10-09 | PEP 790 lists "3.15.0 final" for that day. |
| Python 3.15.1 | Oct. 21, 2026 | python.org: "an expedited security release and the first maintenance release of 3.15". |
| Python 3.15 security fixes | Until about October 2031 | PEP 790 expects source-only security releases "until approximately October 2031". |
| Python on the CCC grader | For the 17 February 2027 contest | CEMC's sample document lists Python 3 as "Pypy3 7.3.9 (running Python 3.8.13)". |
Install the newest Python 3 release from python.org, unless a school or employer says otherwise. On 22 October 2026 that is the 3.15 line, whose first maintenance release came out the day before. Anything we teach in a first year works the same on 3.14.
Avoid Python 2. It is still listed as a CCC language, but it is not what any new course teaches, and code written for it trips over small differences in Python 3.
A student preparing for the Canadian Computing Competition should write code that also runs on Python 3.8, because that is what the CCC grader runs. Newer features, such as the match statement, fail there.
We teach contest students to keep to the plain core of the language for that reason. It loses nothing: loops, lists, dictionaries and functions are the same in every recent version.
Sources: PEP 745, Python 3.14 release schedule; PEP 790, Python 3.15 release schedule; python.org, Python 3.15.1; CCC sample programs. All read 22 October 2026.
Python in Canada
No province requires Python by name in the documents we read, but several ask for exactly the skills Python teaches well, and the national student programming contest and a free set of lessons from the University of Waterloo both use it.
| Where | What the source says | Why Python fits |
|---|---|---|
| CEMC's Computer Science Circles | Free "Python Programming Tutorials"; "These lessons teach Python version 3" | A free, self-paced introduction from the University of Waterloo's CEMC |
| Canadian Computing Competition | "CCC participants may use C, C++, Python 2, Python 3, or Java." | Python is allowed at both levels, though CEMC warns a perfect score is not always possible in Python or Java |
| Ontario, Grade 8 math | Code "that involves the analysis of data in order to inform and communicate decisions" | Reading a file and summarising it is a few lines of Python |
| Ontario, Grade 9 math (MTH1W) | "use coding to demonstrate an understanding of algebraic concepts including variables, parameters, equations, and inequalities" | Python variables and functions mirror the algebra directly |
| British Columbia, Computer Science 11 | Decomposition: "dividing complex problems into parts that are easier to conceive, understand, and program" | Python functions are the natural unit for those parts |
CEMC says of its resources: "There is no registration or fee required to access these materials." A motivated learner can go a long way with Computer Science Circles alone, and we recommend it.
What a free course cannot do is watch a learner think. Most people who stall with Python stall at the same place: they can follow an example, but cannot start a program from a blank file. A teacher sees that in minutes and changes the exercise.
For most learners in Canada, Python first. It reads close to English, runs the same on Windows, Mac and Chromebook-friendly online editors, and leads straight into data, automation and AI.
The exception is a student whose school course is taught in Java. Learning the school's language first avoids a confusing double load in Grade 11, and the habits transfer either way.
Sources: Computer Science Circles; CEMC, CCC; Ontario curriculum, mathematics; BC Computer Science 11. Read 22 October 2026. Modern Age Coders is not connected with CEMC or any ministry.
By age
We teach Python in three separate courses because the reasons for learning, the attention span and the first projects all differ. The rows below summarise each course's own syllabus.
| Python and AI for Kids | Python for Teens | Python Masterclass (adults) | |
|---|---|---|---|
| Ages | 9 to 12 | 13 to 18 | 18 and up |
| Length | 8 to 10 months | 10 to 12 months | 9 to 11 months |
| Live classes | Two a week | Two a week | Two a week |
| Practice between classes | 2 to 3 hours | 3 to 4 hours | 4 to 6 hours |
| First stretch | Python basics, then turtle art | Foundations and object-oriented code | Core Python |
| Middle | Real games | Games, apps and automation; Python on the web | Professional Python and a working toolkit |
| End | Kid-safe AI and a finale project | AI, quality and a capstone | Three specialist roads and a finale |
Short programs with a visible result: a turtle drawing a maple leaf, a guessing game. The win is typing a line correctly and reading it back aloud. Typing speed matters more than anyone expects.
Programs that solve something: a quiz with scores saved to a file, a small web page, a CCC Junior problem. The win is splitting a problem into functions before writing any of them.
Programs that remove a chore: renaming files, merging reports, reading a city dataset. The win is trusting your own script enough to use it on real work, because you tested it on purpose.
A real data project
The City of Winnipeg publishes its tree inventory under an open licence that allows commercial reuse: one row per city tree, with the species, the neighbourhood and the trunk diameter. At 42.9 MB it is far too big to scroll through, which makes it the right file for learning to summarise. The program, the rule inside it and every number below are ours, from the file downloaded on 22 October 2026.
The question: which species are most common on Winnipeg's city-owned land, and how thick is a typical trunk of each? The columns used are Common Name and Diameter at Breast Height, in centimetres.
# Our Winnipeg tree summary (Modern Age Coders, written for this page)
import csv
from statistics import median
sizes = {} # species name -> list of trunk diameters in cm
skipped = 0
with open("winnipeg-tree-inventory.csv", encoding="utf-8") as f:
for row in csv.DictReader(f): # one row at a time, never the whole file
name = row["Common Name"].strip().lower()
cm = float(row["Diameter at Breast Height"])
if cm <= 0 or cm > 500: # our sanity rule: no zero trunks, none wider than 5 m
skipped += 1
continue
sizes.setdefault(name, []).append(cm)
top = sorted(sizes.items(), key=lambda pair: len(pair[1]), reverse=True)[:5]
for name, cms in top:
print(f"{name:26}{len(cms):7} mean {sum(cms) / len(cms):5.1f} median {median(cms):5.1f}")
print("species:", len(sizes), " skipped rows:", skipped)green ash 81885 mean 31.4 median 31.0 american elm 39651 mean 43.7 median 47.0 linden species 28540 mean 28.1 median 28.0 siberian elm 17940 mean 40.5 median 38.0 bur oak 16226 mean 33.5 median 32.0 species: 197 skipped rows: 137
Green ash is the most common species by a wide margin. American elm has the thickest typical trunk of the five, and its median is larger than its mean.
| Decision | What we found | Why it matters |
|---|---|---|
| Use csv.DictReader, not line.split(",") | A plain split gives the wrong number of columns on 20,051 rows | Names such as "Manitoba maple, boxelder" contain a comma inside quotes, and only a real CSV reader respects them |
| Read one row at a time | 305,969 rows pass through without loading the file into a list first | The same code works on a file ten times larger |
| A written sanity rule | 118 trunks are listed at 0 cm; 19 are above 500 cm, the widest at 3552 cm | A trunk 35 metres across is a typing error, and it would wreck a maximum |
| Report the median beside the mean | American elm: mean 43.7 cm, median 47.0 cm | When the two differ, the data is lopsided, and one number alone misleads |
Our rule keeps diameters above 0 and up to 500 cm. It removes 137 rows. It also keeps a 489 cm American elm in Kildonan Park, which is almost certainly another error, and 75 values above 200 cm in all. A stricter rule is defensible; so is a looser one.
What is not defensible is having no rule. We ask every learner to write the rule as a comment, report how many rows it removed, and show the result both with and without it.
A twelve year old runs this program with the teacher, changes the species list and explains the output. A teenager writes it from a blank file and adds a neighbourhood filter. An adult rebuilds it with pandas and compares the two approaches line by line.
All three meet the same three ideas: never trust a split on commas, look at the extremes before the averages, and write down every rule that removes data.
Data: City of Winnipeg Open Data, Tree Inventory. Contains information licensed under the Open Government Licence, Winnipeg. The licence allows use "including for commercial purposes". Program, rule and results are ours; the City of Winnipeg does not endorse this page.
Exercises
Our exercises, each with the answer we got on the same file, so a learner can check their work. Change one thing at a time and rerun.
Exercise 4 is the one most learners miss. A program that counts non-empty cells in the Park column returns all 305,969 rows, because "Not In Park" is text. Looking at the actual values before writing a condition is a habit worth more than any library.
How we teach it
Our promise is the same in Canada as everywhere we teach: a learner leaves able to think a problem through and solve it, not to paste an answer from a forum or an AI tool. In a Python class that shows up in three habits.
A Python traceback names the file, the line and the kind of mistake. Learners read it aloud before touching the code, and most bugs are found right there.
Before running, the learner writes down what they expect. The gap between prediction and result is where the real lesson is.
After an example works, the learner closes it and writes it again from an empty file. What they cannot rebuild, they have not learned yet.
Adults in our classes may use an AI assistant to explain an error, then must explain the fix themselves. For younger learners the companies set the limits: OpenAI's terms require a parent's or guardian's permission for anyone under 18, and Anthropic's terms set 18 as the minimum age for Claude.
Children and teens in our Python courses write their own code. An assistant can make a program appear; it cannot make the learner able to write the next one.
Not the number of lessons finished, but the size of problem a learner can start alone. In the first month that is a few lines; by the end of a course it is a program like the Winnipeg summary, written from a blank file with its rule stated.
We report that progress in plain words after classes, so a parent or the learner can see it.
Times across Canada
Learners join from every province, and adults often need evening or weekend slots. Each class is booked in the learner's own zone; nothing on this page is a fixed batch time.
| Province or territory | Offset this winter | Changes on 14 March 2027? |
|---|---|---|
| Most of British Columbia, Yukon | UTC-7 | No |
| Alberta, Saskatchewan | UTC-6 | No |
| Manitoba | UTC-5 | No, from 1 November 2026 |
| Ontario, Quebec | UTC-5 | Yes, to UTC-4 |
| Nova Scotia, New Brunswick, PEI | UTC-4 | Yes, to UTC-3 |
| Newfoundland | UTC-3:30 | Yes, to UTC-2:30 |
Only the eastern half of the country moves its clocks in March 2027, so a class booked across provinces can drift by an hour that week. We confirm times with every learner when Eastern clocks go back on 1 November 2026 and forward on 14 March 2027.
Four stages
Our stages for placing a learner of any age in the first class.
| Stage | What the learner can do |
|---|---|
| 1. Runs code | Opens an editor, runs a program, changes a value and sees the effect |
| 2. Writes code | Writes loops, conditions and functions from a blank file |
| 3. Uses data | Reads a CSV file correctly, groups and summarises it |
| 4. Defends code | States the rules inside a program and tests the awkward cases on purpose |
Stage 2 is where most self-taught learners stall: they can follow, but not start. That is the stage a live teacher changes fastest.
Stage 3 is the Winnipeg program on this page. Stage 4 is the habit of saying why the program can be trusted.
Type every example yourself; never paste it. Your fingers learn the syntax your eyes skim past.
When something breaks, read the last line of the error first. It usually tells you exactly what went wrong.
Beyond a first course
Where learners go once the basics are in place, each taught live with one teacher, in a batch or one to one.
PC / YOUNG / 01
School math learned in Python, ages 10 to 15.
Open the syllabusPC / YOUNG / 02
How machines learn, ages 8 to 14.
Open the syllabusPC / YOUNG / 03
Contest Python for the 2027 CCC.
Open the syllabusPC / TEEN / 01
Python and first models, ages 14 to 18.
Open the syllabusPC / TEEN / 02
From Python to trained models.
Open the syllabusPC / TEEN / 03
Python certification, from about 13.
Open the syllabusPC / ADULT / 01
Scripting and applied AI for work.
Open the syllabusPC / ADULT / 02
Excel, SQL, Python and BI.
Open the syllabusPC / ADULT / 03
Django and Flask, with Python basics.
Open the syllabusHow classes run
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays.
Weekdays
After school for younger learners, evenings for adults.
Weekends
Mornings and afternoons, booked in your own zone.
1-on-1
For a learner who wants their own pace or project.
The current release, set up together in the first class.
Kids, teens and adults never share a batch.
Canadian open data under licences that allow it.
Tracebacks treated as clues, not failures.
Learners rebuild examples without looking.
Fifteen to twenty learners, or one to one.
Student work
Many of these began as Python programs. The student labs page has the rest.

AI and ML
An AI nutrition coach that reads what you eat and works you toward a target.

AI and ML
A chatbot that answers mathematics and programming questions, built and deployed by a student.

AI and ML
An assistant that helps a young person recognise unsafe situations online.

Web app
A weather forecasting site with live conditions for any location.
Fees
Each month's fee covers eight live Python classes, paid month by month. Adults working around shifts and families with busy terms can pause between months without a penalty.
Free first class
Free
no card required
Group batch
$140 CAD
a month, eight live classes
One to one
$210 CAD
a month, eight live classes
What families say
What parents and students wrote on Google, copied without changes.
★★★★★
"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
Questions about Python
The newest Python 3 from python.org. Python 3.15.0 came out on 9 October 2026 and 3.15.1, an expedited security release, on 21 October 2026. Everything taught in a first year works the same on 3.14. Students practising for the CCC should keep their code compatible with Python 3.8.
Our Python and AI for Kids course starts at 9, Python for Teens covers 13 to 18, and the Python Masterclass is for adults of any age. Younger children usually start with blocks first.
No provincial document we read requires Python by name. Ontario math asks for coding from Grade 1, with data analysis in Grade 8 and algebra through code in Grade 9, and BC's Computer Science 11 is built around decomposition. Many schools choose Python for those courses, and others choose Java.
Yes. CEMC allows C, C++, Python 2, Python 3 and Java. It also warns that a perfect score is not always possible in Python or Java, and its grader runs Python 3.8, so contest code should avoid the newest features.
Yes. CEMC at the University of Waterloo runs Computer Science Circles, free Python tutorials that teach Python 3, and says its resources need no registration or fee. A live class adds a teacher who watches how you think.
Our courses run eight to twelve months with two live classes a week, depending on age. Most learners write useful small programs within the first two months; writing a program like our Winnipeg tree summary from a blank file takes longer.
Yes. Our Python Masterclass is for complete beginners aged 18 and up, and the automation and data analysis courses build on it. We make no job or salary promises; we teach the skill.
Not to write it for them. Adults may ask an assistant to explain an error and then fix it themselves. OpenAI requires a parent's or guardian's permission under 18, and Anthropic requires Claude users to be 18 or over, so children and teens write their own code.
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays. Classes are booked in your own province's time zone.
It depends on the course: turtle art and games for children, apps and a capstone for teens, automation and data work for adults. Everyone works with real files, such as the City of Winnipeg tree inventory on this page.
Elsewhere on this site
More about Python, and more for learners in Canada.
Every Canadian page we have.
Contest Python for the 2027 CCC.
The language explained from first principles.
What Python looks like for a child.
What Python looks like for a teen.
Where the Winnipeg project leads.
The error beginners meet first.
Reading before writing.
Ontario's Grade 12 data course.
Start here
In the first class we install Python together if needed, write a few lines, and read one short program. The teacher then places you at a stage and suggests the course that fits your age and goal.
Want more detail first? How we teach describes a live class, and every course page lists its full syllabus.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
Teaching is live over video from India, so learners in any province join from home. A WhatsApp message is the fastest way to reach us.
A priority demo is a full class of about 45 to 60 minutes. After the class the mentor sends a written skill report and a personal learning roadmap on WhatsApp. If you enrol, the demo fee is adjusted against your first month's fee. Share your demo Order ID with us on WhatsApp and we take it off.
Book a priority demo