Canada · Coding for teenagers · Ages 13 to 18

Coding classes for teens in Canada

A Canadian teenager's first serious programming usually happens in a high school computer course, and every province names and builds those courses differently. This page lays the courses out side by side from the provincial documents, sorts teenagers into four common situations, gives one real project on the City of Calgary's public art data, and lists the contests and programmes worth knowing for 2026 to 2027. Our classes sit alongside the school course: we teach the skills, and we do not grant Ontario credits or any other province's.

Teaching live online since 2020 · 10,000+ students · teens write, test and defend their own code

In short

Coding classes for teens in Canada take students aged 13 to 18 from first programs to Grade 12 computer science, contests such as the CCC, and real projects, alongside school courses like ICS3U, with no credits granted. Modern Age Coders teaches them live online, in a batch or one to one, starting with its Python for Teens course.

Three starting points

Courses for Canadian teenagers

One for a teen starting from nothing, one built around Ontario's Grade 11 and 12 computer science, and one for the Canadian Computing Competition.

What high school offers

High school computer courses in Canada, by province

There is no national course. Each province decides what its computer courses are called, when they start and what they ask. The rows below come from the curriculum pages we could read on 22 October 2026, quoted where the wording matters.

High school computer science and programming courses named in provincial documents (read 22 October 2026)
ProvinceCourses namedWhat the document says
OntarioICD2O (Grade 10, 2023, Open); ICS3U and ICS3C (Grade 11); ICS4U and ICS4C (Grade 12), all 2008ICD2O has students "build hands-on projects and investigate artificial intelligence, cybersecurity, and other emerging digital technologies"; ICS3U students "design software independently and as part of a team".
Ontario, prerequisitesICS4U needs ICS3UICS4U lists "Introduction to Computer Science, Grade 11, University Preparation"; ICS3U and ICS3C list none.
British ColumbiaComputer Programming 11 and 12 (ADST); Computer Science 11 and 12 (Mathematics)Programming 11 covers "input/output, logic, decision structure, and loops"; Programming 12 adds "functions, methods, or classes".
SaskatchewanComputer Science 20 and 30Provincial curricula, filed with the sciences ("Computer Science 20 and other science curricula").
ManitobaComputer Science 20S, 30S and 40SA framework of outcomes for "Senior 2 (20S), Senior 3 (30S), and Senior 4 (40S) Computer Science".
New BrunswickComputer Science 110 and 120, among othersIn 110, "Learners will gain a strong foundation in coding", including with "AI-assisted debugging tools".
Nova ScotiaComputer Programming 12, through the Nova Scotia Virtual SchoolIts course page lists "CodeHS: NSVS Computer Programming 12 (Java)."
Quebec, Alberta, Newfoundland and Labrador, PEI, the territoriesNot verifiedWe could not read a primary page for these courses that day, so we list none.

Three things the table shows

First, the language is rarely fixed by the province. Ontario's ICS3U describes skills, not a language, so one school teaches it in Python and another in Java. Nova Scotia's virtual Programming 12 is an exception that names Java outright.

Second, the courses come late. In the documents above, a dedicated programming course first appears in Grade 10 or 11, so a curious Grade 8 or 9 student has no programming course of their own to take yet. Third, the Ontario chain is strict: a student who skips ICS3U cannot take ICS4U, the university preparation course.

What a credit is, and what we are not

In Ontario, the 2008 computer studies document says "Each of the courses listed above is worth one credit", and computer studies sits in the group of subjects a student can use for one of the compulsory diploma credits. Credits come only from a school.

We teach alongside those courses. A teen in our classes gets the programming practice, explanation and project feedback the school timetable rarely has room for, and earns the credit at school as usual. We do not grant Ontario credits, and no province's credit comes from us.

Sources: Ontario curriculum course data and the 2008 computer studies document; BC Computer Programming 11; Saskatchewan Computer Science 20; Manitoba Computer Science; New Brunswick Computer Science 110; Nova Scotia Virtual School, Computer Programming 12. All read 22 October 2026. Modern Age Coders is not connected with any ministry or school board.

Four kinds of teenager

Which course suits which teen

Teenagers arrive with very different starting points, and the right first course depends far more on that than on age. These four situations cover most of the teens we meet. The matching is our advice.

Four common starting points and where we would begin (Modern Age Coders guidance)
The teenWhat they usually needWhere we start
Grade 8 or 9, curious, never codedA real language from the first week, with projects worth finishingPython for Teens, from the beginning
In ICS3U or ICS4U now, finding it fastPractice beyond the school assignments, and someone to explain the hard week againThe Ontario Computer Science Companion, paced to the school course
Solves puzzles for fun, likes deadlinesContest technique and timed papersCCC Junior and Senior Preparation, aiming at 17 February 2027
Wants to build an app, a site or an AI projectA route from code to a finished, public thingPython first, then web, app or AI courses for teens

The student who is ahead of school

Some Grade 9 students have already taught themselves loops from videos, and find the first school course slow. The risk for them is not boredom but gaps: they can make things work without being able to say why. We test that early with a short program they have to explain line by line.

If the explanation holds, they move quickly to object-oriented code, data structures and contests. If it does not, a few weeks of honest fundamentals save months later.

The student who is behind

Others reach the middle of ICS3U and realise the first unit never landed. The fix is rarely a new topic; it is going back to variables, conditions and loops with harder problems, until reading a program is as natural as reading a paragraph.

We ask such students to bring their actual school assignment, read it together, and plan the solution in plain words before any code. We never write the assignment for them; the school's marks have to reflect the student's own work.

A real data project

Searching Calgary's public art for the word "light"

The City of Calgary publishes descriptions of its public artworks under a licence that allows commercial reuse. A teen asked to find the artworks that use light will usually write one line, check the count, and move on. The count is wrong. This project, ours from start to finish, is about why.

The task: list the Calgary artworks whose descriptions mention light, lights, lighting, lit or illuminated. The file has 140 rows with columns including ART_ID, TAB_NAME (the city quadrant or Downtown), TITLE, SHORT_DESC and five long description columns, DESC1 to DESC5.

Our program · light_search.pypython
# Our search for Calgary public art that uses light (Modern Age Coders, written for this page)
import csv
import re

TEXT_COLUMNS = ["TITLE", "SHORT_DESC", "DESC1", "DESC2", "DESC3", "DESC4", "DESC5"]
WORD = re.compile(r"\b(light|lights|lighting|lit|illuminated)\b", re.IGNORECASE)

naive = folded = rows_found = 0
artworks = {}                      # ART_ID -> title, so one artwork counts once

with open("calgary-public-art.csv", encoding="utf-8-sig") as f:
    for row in csv.DictReader(f):
        text = " ".join(row[c] for c in TEXT_COLUMNS)
        if "light" in text:
            naive += 1
        if "light" in text.lower():
            folded += 1
        if WORD.search(text):
            rows_found += 1
            artworks[row["ART_ID"]] = row["TITLE"]

print("substring, case-sensitive:", naive)
print("substring, lower-cased:   ", folded)
print("whole words, rows:        ", rows_found)
print("whole words, artworks:    ", len(artworks))
print(sorted(artworks.values())[:4])
Output on the city's file, downloaded 22 October 2026text
substring, case-sensitive: 30
substring, lower-cased:    31
whole words, rows:         16
whole words, artworks:     13
['Below/Before/Between', 'Chinook Arc', 'Confluence', 'Flock']

Four ways of counting the same thing give 30, 31, 16 and 13. Only the last is the number of artworks.

Why the four counts differ (our analysis of the same file)
MethodCountWhat it gets wrong or right
"light" in the text30 rowsMisses one row where the only match is a capital "Light"
"light" in text.lower()31 rowsCatches capitals, but 18 of these rows match only through other words: highlight 7 times, lighthearted 4, highlighting 3, and flight, sunlight, enlighten, highlighted and slight once each
Whole words with \b, five word forms16 rowsDrops the false matches and adds 3 rows that say only lit or illuminated
The same, keyed by ART_ID13 artworksLuminous Crossings alone is 4 rows sharing one ART_ID, P2013.002.001, because it is listed at more than one LRT station

The three ideas a teen should leave with

Case. Text typed by people mixes capitals; compare lower-cased text, or tell the search to ignore case. Words, not letters. A substring search finds the letters l-i-g-h-t inside highlight and flight. A word boundary, written \b in a regular expression, stops that.

Rows are not things. A spreadsheet row is a record, and one artwork can have several records. Counting distinct keys, here ART_ID, is the difference between 16 and 13. The file has 140 rows but 134 distinct ART_ID values.

The judgement call left open

Is sunlight about light? Our list of five word forms leaves it out, so one artwork described with sunlight is not counted. A different reader could include it. We ask students to write their rule down in a sentence before they search, and to report the count with the rule beside it.

That habit, stating the rule before the result, is what makes a number trustworthy, in a school assignment, a contest or a job.

Data: City of Calgary Open Data, Public Art. Contains information licensed under the Open Government Licence, City of Calgary. The licence permits use "including for commercial purposes". Code, counts and analysis are ours; the City of Calgary does not endorse this page.

Practice set

Five search traps to try before your next assignment

Our own short exercises, in the same family as the Calgary project. Write each one in Python, then check it against the answer. None needs a file; make your own small lists.

  1. Count the cats. Given the sentence "The cat sat by the category of catalogue cats.", count how many times the word cat or cats appears as a whole word. (Answer: 2.)
  2. Case trap. Given the list ["Ottawa", "ottawa", "OTTAWA", "Ottawa River"], count the entries equal to the city name Ottawa, ignoring case. (Answer: 3; "Ottawa River" is not equal to it.)
  3. Duplicate records. Given rows [("A1", "Bridge"), ("A2", "Tower"), ("A1", "Bridge"), ("A3", "Bridge")], count distinct IDs and distinct titles. (Answer: 3 IDs, 2 titles; two different IDs share a title.)
  4. Prefix or word. Find every word in "Snowshoe snow snowy snowflake Snow" that is exactly snow, ignoring case. (Answer: 2.)
  5. Write the rule first. Choose a word with several forms, such as run, runs, running, ran. Write your rule in one sentence, then a regular expression that matches only those forms, and test it on a sentence that also contains "brunch" and "rerun".

Exercise 5 has no single right answer, and that is deliberate. In class, two students' rules are compared on the same sentence, and each has to defend what theirs includes and leaves out.

Beyond the classroom

Contests and programmes for Canadian teens in 2026 to 2027

Outside school, a teenager can test their code against a deadline, a judge or a team. These are the options whose details we could read on the organisers' own pages.

Coding contests and programmes open to Canadian teenagers, from the organisers' pages (read 22 October 2026)
WhatOrganiserWhat the organiser says
Canadian Computing CompetitionCEMC, University of Waterloo"North and South America: Wednesday, February 17, 2027"; each writer picks Junior or Senior "regardless of their grade"; "CCC participants may use C, C++, Python 2, Python 3, or Java."
Skills Ontario Competition, CodingSkills Ontario"2027 Skills Ontario Competition: May 3rd and 4th at the Toronto Congress Centre"; the list includes "Coding (S/PS)"; entry must be "through your institution's contact person"
FIRST Tech ChallengeFIRST Robotics Canada"Teams design, build, and program robots to compete in an alliance format against other teams"; robots "can be coded using a variety of levels of Java-based programming"
ShadShad CanadaA pre-university STEAM and entrepreneurship programme "Delivered in partnership with 28 post-secondary campuses across Canada"

Entering through a school

The CCC and Skills Ontario both run through schools: CEMC says students must take part through their school, and Skills Ontario says a student cannot register directly. A teen who wants either should ask a computer science or technology teacher in September or October, not in February.

FIRST teams are usually based at a school or a community group, so the practical question is whether one exists nearby.

Choosing one

A teen who enjoys working alone against a clock suits the CCC. One who likes building with a team suits FIRST. Skills Ontario rewards a strong, reliable performance on the day. None of them needs to be chosen this year, and none is required for university.

Waterloo, for example, names Grade 11 U Introduction to Computer Science as a recommended course for its computer science programme; it does not require a contest for admission.

Sources: CEMC, CCC; Skills Ontario Competition; FIRST Robotics Canada; Shad Canada; University of Waterloo, Computer Science. All read 22 October 2026. We are not connected with any of these organisations.

AI tools and teenagers

What the AI companies allow at 13 to 17, and how we use it

Teenagers will meet AI coding assistants whether or not a class mentions them. The age rules are set by each company, and they differ. We teach teens to use the tools their age allows to explain and check code, never to hand in code they cannot explain.

Age rules from each company's own terms (read 22 October 2026)
ToolWhat the terms sayWhat it means for a Canadian teen
ChatGPT (OpenAI)"If you are under 18 you must have your parent or legal guardian's permission to use the Services."Allowed from 13, with a parent's permission until 18
Claude (Anthropic)"You must be at least 18 years old"Not for teenagers; we never recommend it to anyone under 18
GitHub CopilotGitHub Copilot Student is "Available for free to verified students, teachers, and open-source maintainers"; GitHub says "A User must be at least 13 years of age."Free for a verified student aged 13 or over
In the CCCThe CCC rules forbid generative AI during the contestPractise without an assistant before February 2027

Our rule in class

A teen may ask an allowed assistant to explain an error message or suggest a test case. They may not paste in code they cannot explain. Every program a student submits to us, they walk through aloud, and a line they cannot explain is rewritten by them.

New Brunswick's Computer Science 110 already mentions "AI-assisted debugging tools", so this is not a fringe question. The skill being tested in school, in contests and in interviews is still the student's own reasoning.

Why this matters more for teens than adults

Grade 11 and 12 are when a student builds the habits they will take to university. A student who learns to reach for an assistant before thinking ends up unable to start a problem alone, which is exactly what a contest, an exam or a technical interview asks.

Our promise is the same in every country we teach: students learn how to think through a problem and solve it, not how to copy an answer or an AI's output.

Sources: OpenAI Terms of Use (effective January 1, 2026); Anthropic Consumer Terms (effective Oct 8, 2025); GitHub Education for students; GitHub Terms of Service; CCC rules. All read 22 October 2026.

Coast to coast

Fitting classes around a Canadian high school week

Teenagers carry homework, sport and part-time jobs, so we book each class in the family's own zone and keep a slot steady through the year. Canada's clocks changed in several provinces in 2026, so the offsets below are this year's.

UTC offsets used for booking, winter 2026 to 2027 and summer 2027 (IANA tz database 2026e)
ZoneWinter, from 1 November 2026Summer, from 14 March 2027
Pacific: British Columbia (most) and YukonUTC-7UTC-7, unchanged
Alberta and SaskatchewanUTC-6UTC-6, unchanged
ManitobaUTC-5UTC-5, unchanged
Eastern: Ontario and QuebecUTC-5UTC-4
Atlantic: NS, NB, PEIUTC-4UTC-3
NewfoundlandUTC-3:30UTC-2:30

Teens in Vancouver and Calgary sit one hour apart all year, since both provinces now keep one clock. Teens in Toronto and Winnipeg share a clock all winter and split by an hour once Eastern clocks go forward on 14 March 2027. Exam weeks move around, so a teen can shift a class with a message, and a one-to-one student can change times as the school calendar changes.

Four levels

How far along is your teen?

Our levels for placing a teenager honestly in the first class.

Four levels for teenagers (ours)
LevelWhat the teen can do
1. Reads codeFollows a short program and predicts what it prints
2. Writes codeBuilds programs with loops, lists and functions from a blank file
3. Designs codeSplits a larger problem into functions or classes and tests each part
4. Judges codeCompares two working solutions and explains which is better and why

For parents

Most teens who are new to coding reach level 2 within a few months. Level 3 is roughly where ICS4U sits, and level 4 is where contest and university work begins.

A teen who can produce working code but not explain it is at level 1, whatever the program does.

For teens

Write your plan in comments before the code. If you cannot write the plan, you are not ready to write the program.

When a test fails, change one thing at a time. Two changes at once teach you nothing.

Further courses

Nine more courses for teenagers in Canada

All live, all with one regular teacher, in a batch or one to one, from any province or territory.

I

Languages and foundations

Ages 13 to 18

TC / LANG / 01

Java for teens

From first class to data structures in Java.

Open the syllabus

TC / LANG / 02

C++ for teens

The language contest coders move to.

Open the syllabus

TC / LANG / 03

Problem solving for teens

Logic, data structures and algorithms.

Open the syllabus
II

Build things

Ages 13 to 18

TC / BUILD / 01

Full stack web for teens

React and Node.js, front to back.

Open the syllabus

TC / BUILD / 02

App development for teens

Real apps with React Native.

Open the syllabus

TC / BUILD / 03

Game development for teens

Unity and C#, to a shipped game.

Open the syllabus
III

AI, data and contests

Ages 13 to 18

TC / AI / 01

AI and machine learning for teens

Python to trained models.

Open the syllabus

TC / AI / 02

Data science for teens

Real data and first models, ages 14 to 18.

Open the syllabus

TC / AI / 03

Competitive programming

Contest-level problem solving.

Open the syllabus

How classes run

Live classes that work around school

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

Evening batches booked in your province's time.

Weekends

Morning or afternoon, clear of the school day.

1-on-1

Times that bend around exams and tournaments.

Real languages

Python from week one; Java and C++ when needed.

School-aware

We know ICS3U and ICS4U and teach alongside them.

Explain it aloud

Every submitted program is walked through by its author.

Projects on real data

Canadian open data, under licences that allow it.

Contest track

CCC practice on original problems and CEMC's archive.

Batch or private

Fifteen to twenty teens, or a teacher of your own.

Student work

Built by our students

Teenagers in our classes publish their work. A few projects are below; the student labs hold many more.

NutriLife AI nutrition coach project screenshot

AI and ML

NutriLife

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

by Bhavya · Open it

Misti AI chatbot for maths and coding screenshot

AI and ML

Misti

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

by Harshit · Open it

GuardianX AI internet safety assistant screenshot

AI and ML

GuardianX

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

by Vivaan · Open it

SkyCast weather forecast application screenshot

Web app

SkyCast

A weather forecasting site with live conditions for any location.

by Krish

Fees

Fees

A single monthly fee pays for eight live classes. There is no contract for the year, so a teen can pause in exam season or over the summer and restart later.

Free first class

Free

no card required

  • A free first class
  • A placement program to read and explain
  • No card required
Book it

Group batch

$140 CAD

a month, eight live classes

  • Fifteen to twenty teenagers
  • The same teacher each week
  • Classes on weekdays or at weekends
  • Billed one month at a time
Start here

One to one

$210 CAD

a month, eight live classes

  • A teacher to yourself
  • Paced to your school course
  • Built around your own projects
Enquire

What families say

Rated 4.9 across 547 Google reviews

Reviews from parents and students on Google, reproduced word for word.

★★★★★

"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

Teens and parents ask

Coding for teens in Canada: common questions

What coding courses do Canadian high schools offer?

It depends on the province. Ontario lists ICD2O in Grade 10 and ICS3U, ICS3C, ICS4U and ICS4C in Grades 11 and 12. British Columbia has Computer Programming 11 and 12 and Computer Science 11 and 12. Saskatchewan has Computer Science 20 and 30, and Manitoba 20S to 40S.

Do your classes give my teen an Ontario credit?

No. We teach alongside school courses such as ICS3U and ICS4U, and we do not grant Ontario credits or credits from any other province. Credits come only from the student's school.

Which language should a teenager learn first?

We start most teens in Python, because the code reads clearly and the same skills carry into Java or C++ later. A teen whose school course uses Java can learn Java with us from the start.

My teen is in ICS3U and struggling. Can you help?

Yes. Our Ontario Computer Science Companion is paced to the student's own ICS3U or ICS4U course, in Python or Java. We explain and practise; we never write the school assignment for the student.

When is the Canadian Computing Competition in 2027?

CEMC lists the 2027 CCC for Wednesday, February 17, 2027 in North and South America. Students choose Junior or Senior regardless of grade and enter through their school.

Can teenagers use ChatGPT or Claude for coding?

OpenAI's terms allow users from 13, with a parent's or guardian's permission under 18. Anthropic's terms require Claude users to be at least 18, so we never recommend Claude to teens. GitHub Copilot is free for verified students aged 13 or over.

Is coding useful for university admission in Canada?

Waterloo names Grade 11 U Introduction to Computer Science as a recommended course for its computer science programme. We make no admission promises; what coding gives a teen is the problem solving behind any strong application.

What class times suit Canadian teenagers?

Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays. Every class is booked in your own province's time.

How big is a teen batch?

Fifteen to twenty teenagers with one regular teacher. One-to-one classes suit a teen who wants a pace of their own or help with a specific school course.

What will my teen build?

Programs that answer real questions, such as our Calgary public art search, which shows why four ways of counting the same thing give 30, 31, 16 and 13. Later, web apps, games or AI projects, depending on the course.

Elsewhere on this site

Related pages

More for Canadian teenagers who want to go further with code.

Coding classes in Canada

Our pages for every province.

ICS3U computer science help

Ontario's Grade 11 course, explained.

CCC Junior guide

The 2027 Junior paper and how to prepare.

CCC preparation

Our main page on the CCC.

Coding curriculum by province

Where coding sits in each province.

Coding for teens

Our teen courses at a glance.

Vibe coding for teens

Building with AI help, honestly.

How to read code

The skill under every other skill.

How to debug code

Finding the bug a test has exposed.

Start here

Book a free first class

The first class opens with a short program for the teen to read and explain, then a small problem to solve together. From that, the teacher can say which level the teen is at and whether Python, a school-course companion or contest work comes first.

Prefer to read first? How we teach describes a class from start to finish, and each course page has its complete syllabus.

WhatsApp us · +91 91233 66161 · connect@modernagecoders.com

Our teachers are based in India and every lesson is live video, so students join from any province without travel. WhatsApp is the quickest way to ask a question.

The first class costs nothing, and no card is taken.

Want a class sooner? Book a priority demo

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

Keep exploring Modern Age Coders

Related courses and guides

Learn more

Free resources

From the blog

Start here

Free classPriority demoCall us