Can a Kingston teen or adult learn to build with AI properly, not just prompt it?
Yes. Modern Age Coders runs live online classes for Kingston, Ontario: Vibe Coding for Teens for 13 to 17 year olds, and a Codex and Claude Code agents course limited to adults. Study in a class of fifteen to twenty, or privately with one teacher, and learn to make every AI answer show where its facts came from and how old they are.
Kingston, at the eastern end of Lake Ontario, is the city on this page; not Kingston upon Thames and not Kingston, Jamaica. Vibe coding is writing software by describing it to an AI model, while an AI agent hands the model a set of tools, lets it call them, and has it act on whatever comes back. A model will happily tell you a rink is closed tonight. What it will not tell you, unless someone forces it to, is that its information was last updated in March. This page builds a small rink agent on the City of Kingston's own outdoor rinks file, then adds the check that makes it honest about dates. It also covers the AI tools a Kingston teen may use, the Ontario courses and contests a student meets, and how lesson times move with Ontario's clock changes.
Facts last verified 23 October 2026. Teaching is online; no Kingston branch is claimed.
Which tools a learner may use depends on age, so the course does too; level is settled in the free lesson.

Python, web and AI projects with assistants a teenager may use, where every answer the software gives must cite its source and date.
See the syllabus
Python written by hand, from variables to dictionaries and dates, so that AI-written Python can be read rather than trusted.
See the syllabus
Coding agents on real repositories for working adults. Anthropic restricts Claude Code to people aged 18 and over, so no teen is enrolled.
See the syllabus
Scripts that fetch, clean and report on real data for adults at work, the everyday ground where agents are most tempting and most risky.
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 syllabusThe City of Kingston publishes its public outdoor rinks as open data: seventeen rinks, each with hours, a status and a few yes or no fields. We built a tiny agent around it and a check a person wrote first. Code, output and counts are ours; the file was downloaded on 23 October 2026.
| Field | Values in the file |
|---|---|
| Status | Closed on all 17 rows |
| Type | City Operated 13, Community Rink Agreement 4 |
| Hours of Operation | 7:00 am - 9:00 pm on 16 rows, one rink with later hours |
| Washroom | Yes at 6 rinks |
| Staffed | Yes at 7 rinks |
| Capacity | Only the numbers 0, 5, 10 and 25, with no unit or definition anywhere in the dataset description |
| Layer last edited | 21 March 2026, according to the City's map service |
Every rink reads Closed. On a late October download that is no surprise, and the City's own description says that the existence of the rinks is weather dependent and that unstaffed rinks may be maintained by volunteers under a community agreement. But an agent asked “is Polson Park open tonight?” in January would still read Closed from a file last edited in March, and answer with total confidence.
So the tool returns the edit date with every row, and the check refuses answers that leave it out:# Kingston rink agent: every answer must say how old its data is (our classroom example)
import csv, json
from datetime import datetime, timezone
RINKS = list(csv.DictReader(open("kingston-rinks.csv", encoding="utf-8-sig")))
EDITED_MS = json.load(open("layer0.json", encoding="utf-8"))["editingInfo"]["dataLastEditDate"]
AS_OF = datetime.fromtimestamp(EDITED_MS / 1000, timezone.utc).strftime("%d %B %Y")
def rink_status(name):
"""Tool: one rink's row, plus the date the City last edited the layer."""
for r in RINKS:
if r["Name"].lower().startswith(name.lower()):
return {"rink": r["Name"], "status": r["Status"], "hours": r["Hours of Operation"],
"washroom": r["Washroom"], "staffed": r["Staffed"], "as_of": AS_OF}
return {"error": "no rink starting with " + name}
def check(answer, result):
"""Human-written check: a status claim needs the as-of date and must match the tool."""
problems = []
if result["status"].lower() not in answer.lower():
problems.append("status differs from the tool")
if result["as_of"] not in answer:
problems.append("no as-of date")
if "capacity" in answer.lower():
problems.append("uses Capacity, which the file never defines")
return "OK" if not problems else "REJECTED: " + "; ".join(problems)
result = rink_status("Polson Park")
print("tool ->", result)
# Two stand-in answers in place of a model, so the check can be tested offline.
honest = "The City's layer, last edited " + AS_OF + ", lists Polson Park Outdoor Rink as Closed."
hasty = "Polson Park rink is Closed tonight and holds 10 skaters at capacity."
for a in (honest, hasty):
print(check(a, result), "|", a)
What it printed on our machine:tool -> {'rink': 'Polson Park Outdoor Rink', 'status': 'Closed', 'hours': '7:00 am - 9:00 pm', 'washroom': 'Yes', 'staffed': 'Yes', 'as_of': '21 March 2026'}
OK | The City's layer, last edited 21 March 2026, lists Polson Park Outdoor Rink as Closed.
REJECTED: no as-of date; uses Capacity, which the file never defines | Polson Park rink is Closed tonight and holds 10 skaters at capacity.
Every tool result carries the layer's last-edit date. An answer that drops it is rejected, because a status without a date is a guess dressed as a fact, especially for something as changeable as ice.
Capacity holds 0, 5, 10 and 25, and nothing in the City's description says what they count. The hasty answer turned 10 into skaters. Our check rejects any answer that uses the field until someone finds a definition.
The two answers are written by us in place of a model, one honest and one hasty, so the check can be tested on any laptop with no AI service. In the adult course the stand-ins are replaced by real model calls and the check stays.
Two OBJECTIDs, 2 and 3, are missing from the sequence; the rows may have been retired, and the file does not say. A careful agent would also point users to the City's own rink page for live conditions, rather than treating a spring snapshot as tonight's news.
Used under the City of Kingston Open Data Licence 1.0, which the City adapted from version 1.0 of the Open Government Licence for Ontario; its grant covers commercial purposes as well (licence, dataset). Contains information licensed under the Open Data Licence - City of Kingston. The City does not endorse this page or our classes.
Anthropic, writing about agents its engineers build, puts the risk plainly: “The LLM will potentially operate for many turns, and you must have some level of trust in its decision-making.” Our job is to make that trust earned.
| Rule | What it looks like in code | Ontario link |
|---|---|---|
| Every fact has a source | Tool results carry the dataset name and row ID | ICS4U: programs that are “fully documented” |
| Every fact has a date | Tools return the data's last-edit date; answers must repeat it | ICS3C: students “write and test computer programs” |
| Undefined fields are off limits | The check rejects answers that use columns without a definition | MTH1W: decomposing situations “into computational steps” |
| Stand-ins before models | Test the loop with hand-written answers first, good and bad | Grade 6 math: writing and executing “efficient code” |
Vibe coding gets the same treatment at a smaller scale. When a Kingston teen asks an assistant for a function, the first question in class is not whether it runs but what it assumes: which file, which date, which meaning for each column. A function that silently assumes the data is current is the same bug as the rink agent, only harder to see.
This is the owner's promise in our own words: we teach learners to think a problem through and solve it, never to copy an answer, and that includes an answer from an AI. A Grade 11 student and an adult who works with data are both asked, at the end of each task, where each fact came from and when it was true.
Every AI company sets a minimum age. Their pages, checked on 22 October 2026, decide which course a Kingston learner joins.
| Tool | Age 13 to 17 | 18 and over | What the company says |
|---|---|---|---|
| GitHub Copilot | Yes | Yes | GitHub accounts from 13; free Copilot for verified students through GitHub Education |
| ChatGPT | With a parent's consent only | Yes | OpenAI says it requires children aged 13 to 18 to obtain parental consent |
| Claude and Claude Code | No | Yes | Anthropic: users must be at least 18 |
| Any AI help in the CCC | No | No | Contest rules forbid generative AI, including editor features |
We never ask a teen to create an account their age does not allow. Lessons that would use ChatGPT wait until a parent has said yes, which is what OpenAI itself asks.
Adults learn on agentic tools that edit code and run commands, inside a Git project, so each change is reviewed as a diff and can be undone.
These are company rules, not laws we can promise will stay fixed. We review them before each new course; read the live terms for any tool you choose.
Publicly funded schools in Kingston follow the Ontario curriculum. Phrases in quotation marks are taken from the province's online curriculum and from CEMC, both consulted on 22 October 2026; the summaries are ours.
| Course | Grade | In the ministry's words |
|---|---|---|
| ICD2O, Digital Technology and Innovations in the Changing World | 10, open (2023) | Strands on computational thinking, on hardware, software and innovations, and on programming |
| ICS3U, Introduction to Computer Science | 11, university | Software designed independently and in teams; no prerequisite |
| ICS3C, Introduction to Computer Programming | 11, college | “Students will write and test computer programs” |
| ICS4U, Computer Science | 12, university | “modular design principles to create complex and fully documented programs” |
We teach beside these courses and do not grant Ontario credits; a student earns ICS3U or ICS4U at school. Kingston students who began Grade 9 in 2020 to 2021 or later also need at least two online learning credits for the diploma, according to the Ontario government. Those credits come through the school system; our classes are not credit courses. EQAO lists Ontario's literacy test, the OSSLT, for 3 to 30 November 2026.
CEMC lists the 2027 Canadian Computing Competition for Wednesday 17 February 2027. Junior questions start with basic loops and conditions and end with recursion and two-dimensional arrays.
CEMC lets participants create a free practice account and access previous contests. We point Kingston students there and write our own practice problems rather than copying CEMC's.
Students write CEMC contests through a school, not on their own. A Kingston student whose school does not take part can ask another local school about joining.
Kingston is on Eastern time and India, where our teachers are, never changes. The gap between them grows by an hour on 1 November 2026 and shrinks again on 14 March 2027.
| Period | Kingston | India |
|---|---|---|
| To 1 November 2026 | 5:00 pm, UTC-4 | 2:30 am, next day |
| 1 November 2026 to 14 March 2027 | 5:00 pm, UTC-5 | 3:30 am, next day |
| After 14 March 2027 | 5:00 pm, UTC-4 | 2:30 am, next day |
Your class stays at the same Kingston time through each change; our teachers move their side. Schedules are re-sent in Eastern time the week before.
Numbers with the 613, 343 and 753 area codes are accepted in the form. Enter the ten digits without a leading 1.
Clock changes are where date code breaks. The rink agent stores its as-of date in UTC for the same reason: the moment does not move when the clocks do.
The ages are a guide only. Each learner's free lesson decides the real starting point.
Python without assistants, including files and dates, the basis for reading AI output.
Python for TeensGit & GitHub Course for TeensProjects with permitted assistants, every result sourced and checked.
Vibe Coding for TeensData Science for TeensGenerative AI, retrieval and automation for students and career changers.
Generative AI CoursePython Automation CourseCoding agents on live repositories, with sourced answers and safe rollback. Adults only.
Codex & Claude CodeVibe Coding for CollegeBecause the script was never the hard part of the rink agent; the questions were.
Writing the rink tool takes an assistant a few seconds. Knowing that the answer needs a date, that Capacity has no definition, and that two IDs are missing takes someone who has opened the file and thought about it. Those are the decisions that separate a toy from something a person can rely on.
Our classes put the time there. Teens learn on tools their age allows and adults on agents, but both learn to ask what the data is, when it was true and what it does not say, and both explain their finished code without help.
An agent that says “as of 21 March 2026” is less impressive and far more useful than one that sounds certain. The longer argument is in is coding still worth learning in 2026.
Lessons happen at home with a live teacher who watches the screen and asks the learner to explain each step aloud.
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays.
Fifteen to twenty learners of one age band and level share a class, or a learner has the teacher alone, which suits adults working on their own data.
Because their permitted tools differ under the companies' terms, teens and adults are always taught in separate courses.
Learners from Napanee, Gananoque and the surrounding townships take the same online classes on the same Eastern clock.
A laptop or desktop, a microphone and a steady connection. No paid AI subscription is needed for the teen course.
The first lesson is a full class at no cost, closing with a placement. We do not ask for card details.
No Kingston location
We have no centre in Kingston and do not claim one. Teaching is live and online from India, and we are not connected with the City of Kingston, the Ontario Ministry of Education, EQAO or CEMC.
Three items; the price anchors show each one in your own currency.
A full trial lesson, free, finishing with a level and a course suggestion.
The monthly fee for a group of fifteen to twenty, eight live classes a month.
The monthly fee for private lessons at times you choose.
Kingston learners pay the same monthly fee as anyone else in Canada. Billing starts only once the trial is done and a course and time are agreed.
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
The opening lesson starts with an AI-written answer that forgets to say how old its data is. Spotting that, and fixing the code so it cannot happen again, shows the teacher your level.
What Kingston families and adult learners most often ask.
Yes, live online with a real teacher. Kingston teenagers from 13 to 17 learn together, and adults learn in their own courses. There is no Kingston classroom.
Kingston, Ontario, at the east end of Lake Ontario. Lesson times are quoted on Eastern time, and the courses and contests described are Ontario ones.
A program where an AI model decides which tools to use, runs them, and reports back. We teach learners to build one and to make it say where its facts came from and how current they are.
No. Anthropic requires users to be at least 18, so Claude and Claude Code belong to our adult course only. They are never suggested to anyone younger.
Not necessarily. OpenAI requires parental consent for ages 13 to 18, so we use it only with a parent's agreement. GitHub Copilot is free for verified students and is what teens use otherwise.
Yes. The Codex and Claude Code course is for adults only and uses real repositories in Git. Python automation is a gentler start for adults who want to work with data first.
Because the City's rink layer was last edited on 21 March 2026, and a status is only true as of its date. Our check rejects any answer that leaves the date out.
No. We do not grant Ontario credits. Courses such as ICS3U and ICS4U, and the online learning credits in the diploma rules, are earned through school.
No. The rules ban generative AI and AI tools inside the editor. CEMC lists the 2027 CCC for Wednesday 17 February 2027, entered through a 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. Every time is given in Eastern time, and kept steady through clock changes.
For the country-wide view see vibe coding and AI agents classes in Canada; for the province, coding classes in Ontario. Students can read the CCC Junior guide and ICS3U help; adults can start with coding classes for adults in Canada.