Where can a Saskatoon student learn coding and AI from a real teacher?
Modern Age Coders teaches coding, Python and AI live online to Saskatoon students from age 6 to adult, in a group of 15 to 20 or one to one. Children usually begin with Python and AI for Kids and teens with Python for Teens, before AI and machine learning. Classes run on Saskatchewan time, and the first one is free.
Saskatchewan gives its high school computing course an unusual amount of freedom. Computer Science 20 lists what students must be able to do, from data types to functions and arrays, but leaves the programming language to each teacher, and asks that students start coding as soon as possible. For a Saskatoon student that can mean Python in one school and Java or JavaScript in another. This page sets out what the course expects in the ministry’s words, walks through a project we built on Saskatoon Transit’s bus stop file, names the Waterloo math contests a Saskatoon school can enter, and shows what the city’s fixed clock means for class times with teachers in India.
Facts last verified 23 October 2026. Teaching is online; no Saskatoon branch is claimed.
Matched to age and stage, then checked in the free first class. None of these grants a provincial credit.

Typed Python with drawings, games and gentle AI ideas, for children ready to leave blocks behind.
See the syllabus
A full Python course from a first program to files and data, covering the data types, control structures, functions and arrays that Computer Science 20 names.
See the syllabus
Machine learning in Python, built on data the student cleans and questions, never a black box.
See the syllabus
Built for Pre-calculus 12 and Math 30-1; for a Saskatoon student in Pre-Calculus 30 we match lessons to the school’s course outline in the free class. We do not grant provincial credits.
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 syllabusSaskatoon schools follow the Saskatchewan curriculum. We read the Computer Science 20 outcomes and the 2018 curriculum document from the province’s curriculum site on 22 October 2026; the quotes are the ministry’s and the plain readings are ours.
| Outcome | The ministry’s words | What it looks like in practice |
|---|---|---|
| CS20-FP1 | Use data types “including integer, floating point, Boolean and string” | Knowing why 7 / 2 and 7 // 2 differ in Python, and when text must become a number |
| CS20-FP2 | “Investigate how control structures affect program flow.” | Tracing if, else and loops by hand before running them |
| CS20-FP3 | Functions “to create reusable pieces of code” | Writing a distance function once and calling it 1,368 times, as in the project below |
| CS20-FP4 | “Investigate one-dimensional arrays and their applications.” | Lists of values, sorted and searched |
| CS20-CP2 | Coding techniques “to enhance code elegance and troubleshoot errors” | Readable names, small functions, and a calm method for bugs |
| CS20-SD1 | “Develop a coding project and/or research a topic related to computer science of the student’s choice.” | A self-chosen project, which is where outside depth shows most |
The same document is frank about language. It says the choice of programming language for Computer Science 20 is left to the teacher, suggests Python, Java, PHP, JavaScript or Visual Basic, and warns that a visual environment such as Blockly or Scratch is useful as an introduction but should not be used as the core language in Computer Science 20. It even suggests a modern version of Karel the Robot as a bridge between blocks and text. Our own path follows the same arc: blocks for young children, Karel-style puzzles for the step up, then Python.
Computer Science 20 is filed in Saskatchewan’s Grades 10 to 12 science framework, and the same document notes that graduation requires one 10-level and one 20-level science credit. How a school uses the course in a timetable is the school’s decision.
The follow-on course moves to external files, libraries and object-oriented programming. A Saskatoon student who arrives with confident functions and lists has the time to enjoy those topics instead of catching up.
The 2018 document says students should start coding as soon as possible in the course. We agree, and for most students we would start years earlier, with short weekly lessons from Grade 4 or 5.
Our lessons sit alongside a Saskatoon student’s courses. We do not grant provincial credits, and we do not mark or write school work. We are not connected with the Saskatchewan Ministry of Education, Saskatoon’s school divisions or the City of Saskatoon.
The City of Saskatoon publishes Saskatoon Transit’s stops as open data, in the GTFS format transit agencies use worldwide. Our teen students download the file, count one column and find that the obvious answer is wrong. Every number below is ours.
| wheelchair_boarding value | Rows | Meaning in the GTFS reference |
|---|---|---|
| 1, stop has no parent station | 998 | Some vehicles at this stop can be boarded by a rider in a wheelchair |
| 0, stop has no parent station | 340 (6 of them are the hub stations themselves) | No accessibility information, not “inaccessible” |
| Empty, no parent station | 9 | Also no accessibility information |
| 1, stop inside a station | 21 | For a stop inside a station: an accessible path exists from outside |
| 2, any stop | 0 | Boarding not possible; the file never says this about any stop |
This script prints those counts and the three stops nearest a point we picked downtown, using the haversine formula for distance on a sphere. It runs on Python 3 with no extra packages:import csv
import math
from collections import Counter
def km_between(lat1, lon1, lat2, lon2):
r = 6371.0
p1, p2 = math.radians(lat1), math.radians(lat2)
dp = p2 - p1
dl = math.radians(lon2 - lon1)
a = math.sin(dp / 2) ** 2 + math.cos(p1) * math.cos(p2) * math.sin(dl / 2) ** 2
return 2 * r * math.asin(math.sqrt(a))
here = (52.1300, -106.6600)
codes = Counter()
nearest = []
with open("transit-stops.csv", encoding="utf-8-sig") as f:
for row in csv.DictReader(f):
kind = "child" if row["parent_station"] else "own"
codes[(kind, row["wheelchair_boarding"] or "empty")] += 1
d = km_between(here[0], here[1], float(row["stop_lat"]), float(row["stop_lon"]))
nearest.append((d, row["stop_name"]))
for key in sorted(codes):
print(key, codes[key])
for d, name in sorted(nearest)[:3]:
print(round(d * 1000), "m", name)
A beginner counts the 1s, calls the rest inaccessible, and reports that about a quarter of stops cannot be used. The GTFS reference says 0 or empty means no information, and no stop in the file is coded 2, so the honest finding is: 1,019 marked boardable, 349 unknown, none marked impossible.
The same code means different things for a stop inside a station. Splitting by parent_station first, as the script does, keeps the 21 child stops from being read with the wrong rule.
From our sample point at latitude 52.1300 and longitude -106.6600, the closest stop is Downtown Terminal North at 82 m, then 3rd Avenue / 23rd Street at 102 m. Changing the point changes the answer, which makes a good first app.
There are 1,368 stop IDs but only 1,363 different stop codes. The gap is six rows with a blank code, and all six are hub stations rather than places a bus stops. Small audits like this decide whether a count can be trusted, and they are the habit we most want a student to take away.
The City of Saskatoon says the data shared on its Open Data site is “free to use, re-use and redistribute without any legal, technological or social restriction” (the city’s open data statement, dataset page). Code meanings come from the GTFS Schedule reference. The City and Saskatoon Transit do not endorse this page or our classes.
The Centre for Education in Mathematics and Computing (CEMC) at the University of Waterloo publishes these contests for schools across Canada. We read CEMC’s contest pages on 22 October 2026.
| Contest | Grade | Format | Date |
|---|---|---|---|
| Gauss | Grades 7 and 8; younger students welcome | 25 multiple-choice questions, 60 minutes | 10 to 21 May 2027 |
| Pascal | Grade 9 | 25 multiple-choice questions, 60 minutes | 23 and 24 February 2027 |
| Cayley | Grade 10 | As Pascal | 23 and 24 February 2027 |
| Fermat | Grade 11 | As Pascal | 23 and 24 February 2027 |
These are math contests, but they reward the same thinking a program does: break the problem into steps, test a small case, look for a pattern. We prepare students with problems we write ourselves and send them to CEMC’s free archive for past papers; we do not copy CEMC questions into lessons. A student in Saskatoon enters through a school, since CEMC does not register students one by one; when a school does not take part, CEMC suggests asking another local school to host. CEMC also runs Computer Science Circles, a free set of Python tutorials, which we recommend between lessons. Our Gauss preparation page and Pascal preparation page say more. Modern Age Coders has no connection with CEMC or the University of Waterloo.
Saskatchewan stays on UTC-6 all year, with no daylight saving time, according to the IANA time zone database (2026e). India also stays put, so the gap between Saskatoon and our teachers never moves.
| Compared with | In winter (from 1 November 2026) | In summer (from 14 March 2027) |
|---|---|---|
| India | India 11 hours 30 minutes ahead | India 11 hours 30 minutes ahead |
| Calgary and Edmonton | Same clock | Same clock |
| Toronto | Toronto 1 hour ahead | Toronto 2 hours ahead |
| Vancouver | Vancouver 1 hour behind | Vancouver 1 hour behind |
A 9 am to noon Saturday class in Saskatoon is 8:30 to 11:30 pm in India, every week of the year. A 4 to 7 pm weekday class is 3:30 to 6:30 am the following day there, which our teachers cover by choice.
When Ontario and the Atlantic provinces change their clocks on 1 November 2026, nothing moves for a Saskatoon family. A class booked now stays at the same local time all winter.
Phones in Saskatoon use 306, 639 or 474. Type the ten digits in the form; the +1 is already filled in.
Grades are only a guide; the free class finds each student’s starting rung.
Sequences, loops and events in a visual editor, the stage the Saskatchewan document calls an introduction.
Coding for KidsScratch Coding for KidsPuzzle-style programs in the spirit of Karel the Robot, then typed Python with conditions and functions.
Python and AI for KidsAI Literacy for Kids (Ages 8 to 14)Data types, lists, files and the Saskatoon stops file, with Gauss or Pascal for students who like contests.
Python for TeensWaterloo Math ContestsMachine learning on real data, and support beside the Grade 12 math course, with no credit granted by us.
AI and Machine Learning for TeensWestern Canada Grade 12 MathYes, because the hardest part of the bus stop project is not the code.
An AI assistant will happily write a script that counts accessible stops. Unless someone tells it, it will probably treat 0 as no, and report a confident figure that the GTFS reference contradicts. The code would be fine; the meaning would be wrong. Catching that takes a person who knows to look up what the codes mean.
We teach students to reason first, write the code themselves, and then question what it prints. As they get older they use AI tools within each tool’s age limits, to explain an error or check an approach, and never to hand in work they could not rebuild alone.
Computer Science 20 asks students to troubleshoot errors and write elegant code; both start with understanding what the program is for. The longer argument is in our case for learning to code in the age of AI assistants.
A student on either side of the river joins the same lesson from home, with the teacher seeing their screen.
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays.
A group of 15 to 20 at the same level, or a teacher to yourself for quicker progress or a particular project.
Teachers plan in Saskatchewan grades and know where Computer Science 20 and 30 and the Grade 12 math courses sit. School assignments remain the student’s own.
Families in the towns around Saskatoon, and anywhere else in Saskatchewan, join the same classes on the same unchanging clock.
A laptop or desktop with sound and a reliable connection. Younger children can start on a tablet; typed Python needs a keyboard.
A full lesson that ends with a suggested course, level and time. We take no payment details before it.
No Saskatoon office
Modern Age Coders has no centre in Saskatoon and claims none. Classes are live and online, taught from India in English.
Three choices, each shown in the currency your browser displays.
A full live lesson at no charge, ending with a suggested level and course.
The monthly fee for a group of 15 to 20 students working at one level.
The monthly fee for one-to-one lessons at times you choose.
Saskatoon families pay the same monthly fee as families in every other province. Nothing is charged before the free lesson, 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
Tell us the age and what the student has tried. We might start a seven-year-old on an animation, a twelve-year-old on a Python game, and a Computer Science 20 student on the stops file.
Answers to what Saskatoon parents and teens ask us most.
Yes, live online rather than in a local building. Children from age 6 join from home, in a group of 15 to 20 or one to one with a teacher.
It varies. The Saskatchewan curriculum leaves the language to the teacher and suggests Python, Java, PHP, JavaScript or Visual Basic, so ask the school. We teach Python first and can show the same ideas in Java or JavaScript.
No. We do not grant provincial credits. Credits come from school courses such as Computer Science 20; our classes build the skills alongside them.
Yes, one to one or in a group. Our Grade 12 math course was built for Pre-calculus 12 and Math 30-1, and for Pre-Calculus 30 we follow the school's course outline, which we check in the free class.
Both. From about age 9, children learn what AI is and how it learns from examples; hands-on machine learning with real data starts in the teen years.
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays. Saskatoon does not change its clocks, so a booked time stays put all year.
Yes, through their school, because CEMC does not take individual entries. CEMC lists Gauss for 10 to 21 May 2027 and Pascal, Cayley and Fermat for 23 and 24 February 2027.
Yes. Numbers with 306, 639 or 474 all work; enter the ten digits without the leading 1.
No. Every class is taught live online by a teacher in India, which is why the timing is flexible across weekdays and weekends.
The fees block on this page lists the free first lesson, the monthly group fee and the monthly private fee in your own currency. Billing begins only after the free lesson.
Begin at coding classes in Canada, see how the provinces compare on coding in each province’s curriculum, and check any city’s clock on Canada time zones for online classes. Contest families can read Waterloo contest preparation.