Skip to content
Surrey, British Columbia

AI and Python classes for teens in Surrey, British Columbia

Where can a teenager in Surrey, BC learn Python and AI live, with a real teacher?

Modern Age Coders teaches Python and AI live online to teens aged 13 to 18 in Surrey, British Columbia, in a class of fifteen to twenty or one to one. Students usually start with Python for Teens, then choose AI and Machine Learning for Teens, Data Science for Teens or CCC preparation. Classes are booked on Pacific time, which in BC no longer changes, and the first class is free.

This page is about Surrey in British Columbia, the city south of the Fraser River, not the English county. A Surrey teenager has more computing on offer at school than the course names suggest: British Columbia files programming under two different subject areas, so a student can meet Computer Programming in one corner of the timetable and Computer Science in the mathematics department. Outside school, CEMC’s contests start with a 45-minute challenge that needs no coding at all. Below we set out what the BC curriculum says, quoting it, what permanent Pacific time means for a live class with teachers in India, how contests fit a Grade 9 or 10 student, which AI tools a teen may legally use, and an unsupervised learning project built on the City of Surrey’s own playground map.

Facts last verified 22 October 2026. Teaching is online; no Surrey branch is claimed.

Course picks for Surrey teens

Four courses for a Surrey, BC student aged 13 to 18

Python comes first for almost everyone. The other three follow a student’s interest: models, data or contests.

Browse the course atlas for more than one hundred options and use the coding roadmap to check prerequisites.

The four we are known for

Python, AI, vibe coding and agentic coding

These run underneath everything above. Every one is live and online, placed by ability rather than by age, and the first class is free.

BC high school computing

Two homes for programming in BC schools: Applied Design and Mathematics

British Columbia lists programming courses in Applied Design, Skills, and Technologies (ADST) and, separately, Computer Science 11 and 12 in Mathematics. The quoted text is from curriculum.gov.bc.ca as we read it on 22 October 2026; the notes are ours.

Computing courses in the BC curriculum, Grades 10 to 12 (curriculum.gov.bc.ca, read 22 October 2026; the last column is our note)
CourseSubject areaWhat the curriculum text includesOur note
Computer Studies 10, Web Development 10ADSTBoth appear in the ADST 10 to 12 course listThe Computer Studies 10 content lists hardware, software types and security risks; Web Development 10 is the web-focused option
Computer Programming 11ADST“programming language constructs to support input/output, logic, decision structure, and loops”The first full programming course for most students
Computer Programming 12ADST“higher-level structures, such as functions, methods, or classes, that help improve the organization of source code”Organising larger programs, the step from scripts to software
Computer Science 11 and 12MathematicsBig idea of decomposition: “dividing complex problems into parts that are easier to conceive, understand, and program”Algorithmic and mathematical, closer to contest thinking
Robotics 11, Computer Information Systems 11ADSTBoth appear in the ADST 10 to 12 course listHardware control and information systems, for students who like applied work

Two lines in those documents describe our teaching better than we could. Computer Programming 11 defines computational thinking this way: “Key components are decomposition, patterns and generalizations, abstraction, and algorithmic thinking.” Computer Science 11 calls algorithms “sets of rules or instructions that precisely define a sequence of operations” and asks students, among its sample questions, “What makes one algorithm better than another algorithm?” That last question is the heart of the playground project further down: two runs of the same algorithm on the same data give different answers, and a student has to decide which one is better and why. Which BC courses a particular school offers, and in which grade, varies, so families should check the school’s own course list.

Grade 9 and 10

Before the senior courses, we get students writing full Python programs, so Computer Programming 11 starts with logic and loops they already trust instead of syntax they are still learning.

Programming or Computer Science?

Students who enjoy building apps and tools often like the ADST courses; those who enjoy puzzles and proofs often like Computer Science 11 and 12. Many take both, and our lessons support either.

More detail

Our page on Computer Programming 11 and 12 in BC covers the two ADST courses in depth, and coding curriculum by province compares BC with the rest of Canada.

We do not grant BC credits

Our classes run alongside school courses and we do not grant provincial credits; BC course credits come only from the student’s school. Modern Age Coders has no connection with BC’s education ministry or with any BC school district.

First contests

Beaver Challenge first, then the CCC: contests for a Surrey teen in 2026 to 2027

Both contests below are run by CEMC at the University of Waterloo and are written through a school. Facts and quotes are CEMC’s, read on 22 October 2026; the last column is our suggestion.

Two CEMC computing contests for teens, 2026 to 2027 (CEMC contest pages, read 22 October 2026)
ContestWhen, per CEMCFormat, per CEMCWho it suits
Beaver Computing Challenge, Grade 9/10Monday 9 November 2026 to Friday 20 November 2026“15 multiple-choice questions out of a total of 90”; “Time allowed for completion is 45 minutes.”Students in Grade 10 or below, including those who have never coded
Canadian Computing Competition (CCC)Wednesday 17 February 2027“5 questions.”, three hours, written online; Junior or Senior levelStudents who already write programs, at Junior first

The Beaver Computing Challenge is the gentler door. CEMC says its questions “only require familiarity with concepts covered in the mathematics curriculum across all Canadian provinces”, and that “Students in Grade 10 or below are eligible to participate in the Grade 9/10 BCC”. It is offered in English only. The CCC is the real programming paper, available in English and French, and CEMC notes that “participants can create a free practice account and access previous contests” on its online grader. For a Surrey student in Grade 9, a sensible year is the Beaver Challenge in November, then a CCC Junior attempt in February once loops and lists are comfortable. Both are written through a school: CEMC states that “all students must participate through their school.”

Pacific time on contest day

With BC on UTC-7 all year, the CCC falls on the same clock as every other week of the school year. We hold mock papers at the hour a student’s school plans to run the real one.

Python is enough to start

The CCC accepts Python, and for Junior questions it is all a teen needs. Students who later chase the hardest Senior problems add C++ with us in a later year.

Practice with our problems

We do not copy CEMC questions or solutions. Students use CEMC’s free archive and practice account on their own, and in class work through problems we have written. See the Beaver Challenge guide.

City of Surrey data project

Can a computer find Surrey’s communities on its own, from playground locations alone?

The City of Surrey maps every park playground it runs and labels each with a community such as Newton or Cloverdale. Our students hide those labels, let the k-means algorithm group the playgrounds by location, then compare its groups with the City’s. The clusters and counts here are our output; the community labels are the City’s.

Our k-means results on City of Surrey Park Playgrounds (167 playgrounds fetched 22 October 2026; k = 6 clusters; 20 random starts of 50 rounds each)
RunTotal squared distance to cluster centresPlaygrounds in a cluster led by their own communityCommunities leading the six clusters
Tightest of the 20 runs891 million square metres137 of 167Cloverdale, Guildford, Newton, South Surrey (twice), Whalley
Tightest run with six different leaders944 million square metres144 of 167Cloverdale, Fleetwood, Guildford, Newton, South Surrey, Whalley

This is the full program in standard-library Python. It downloads the playground outlines in the City’s own map grid, where positions are in metres, reduces each outline to a rough centre by averaging its corner points, and runs k-means twenty times from different random starting centres. When we ran it on 22 October 2026 it printed exactly the two rows in the table:import json, random, urllib.request from collections import Counter URL = ("https://services5.arcgis.com/YRpe0VKTJytZSSIB/arcgis/rest/services/" "Park%20Playgrounds/FeatureServer/0/query?where=1%3D1" "&outFields=COMMUNITY&f=json") spots = [] # centre of each playground outline, metres east and north (UTM zone 10N) for f in json.load(urllib.request.urlopen(URL))["features"]: ring = f["geometry"]["rings"][0] spots.append((sum(p[0] for p in ring) / len(ring), sum(p[1] for p in ring) / len(ring), f["attributes"]["COMMUNITY"])) def nearest(x, y, centres): gaps = [(x - cx) ** 2 + (y - cy) ** 2 for cx, cy in centres] return gaps.index(min(gaps)), min(gaps) def kmeans(k, seed): random.seed(seed) centres = [s[:2] for s in random.sample(spots, k)] for _ in range(50): groups = [[] for _ in range(k)] for s in spots: groups[nearest(s[0], s[1], centres)[0]].append(s) centres = [(sum(s[0] for s in g) / len(g), sum(s[1] for s in g) / len(g)) if g else centres[i] for i, g in enumerate(groups)] spread = sum(nearest(s[0], s[1], centres)[1] for s in spots) return spread, groups runs = sorted(kmeans(6, seed) for seed in range(1, 21)) def leaders(groups): return [Counter(s[2] for s in g).most_common(1)[0] for g in groups] def report(label, spread, groups): top = leaders(groups) print(label, "spread", round(spread / 1e6), "million m2;", sum(n for _, n in top), "of", len(spots), "match their cluster") print(" clusters led by", sorted(str(name) for name, _ in top)) report("tightest of 20 runs:", *runs[0]) six = next(r for r in runs if len({name for name, _ in leaders(r[1])}) == 6) report("tightest run with six different leaders:", *six)

1. No answers given

Unlike most school exercises, k-means is never told the right groups. It places six centres, gives each playground to the nearest one, moves each centre to the middle of its group, and repeats. The community names are used only afterwards, to judge the result.

2. Different starts, different answers

Twenty starts did not all agree. The run with the smallest total distance split South Surrey into two clusters and left Fleetwood without one of its own; a slightly looser run matched all six communities and placed 144 playgrounds with their own label.

3. Which one is better?

That is BC Computer Science 11’s own question, and here it has no single answer. The tightest run is better by the algorithm’s own measure; the six-community run is better at matching how the City describes itself. Students write down which they prefer, and why.

What the labels hide

Of the 167 playgrounds, 13 carry no community label and one is tagged City Centre. Newton has the most labelled playgrounds (38), then Cloverdale (32), Whalley (28), South Surrey (24), Guildford (18) and Fleetwood (13). Because South Surrey covers a large area with fewer playgrounds, a method that only cares about distance is tempted to cut it in two. Clusters reflect the data you give them, not the map in a resident’s head.

A note on the numbers: averaging an outline’s corners gives a rough centre, not a true centroid, which is close enough for clustering a city’s worth of small parks. The playground layer is published by the City of Surrey with an update frequency the City gives as monthly, so a later download may differ slightly. The City’s open data licence grants “a worldwide, royalty-free, perpetual, non-exclusive license to use the Information, including for commercial purposes”, and asks for the statement “Contains information licensed under the Open Government License”, with the City of Surrey named after it. Source: City of Surrey, Park Playgrounds layer. The City has not endorsed this page or our classes, and our clusters are not City boundaries.

AI tools and teen age limits

What a Surrey teenager may use: AI tools, ages and contest rules

Each rule comes from the organisation that owns the tool or runs the contest, read in its own document on 22 October 2026. The right-hand column is how we apply it.

AI tool rules for students under 18 (organisations’ own pages, read 22 October 2026)
Tool or settingThe organisation’s ruleIn our classes
ChatGPT (OpenAI Help Center)“ChatGPT is not meant for children under 13, and we require that children ages 13 to 18 obtain parental consent before using ChatGPT.”Optional, with a parent’s consent; never needed to finish a lesson
Claude (Anthropic Consumer Terms, Oct 8, 2025)Users “must be at least 18 years old”Never used or recommended for teens
Coding editors during the CCC (CCC Online Grader rules)“AI-based tools within an IDE cannot be used.”We switch editor autocomplete off in contest practice too

The editor rule is the one Surrey families tend to miss. Many school laptops and free editors now finish lines of code automatically, and a student who has always worked that way can be startled to find the help gone on contest day. We start contest students with plain editors early. In project work the issue is different: the playground program is short enough that a chatbot could write it, but the interesting work is deciding whether a split South Surrey is a mistake or a finding. A teen who learns to make that call, and to explain it, is learning the part of AI work that tools cannot do for them.

Consent before ChatGPT

OpenAI asks for parental consent from 13 to 18. We let the family decide, list the lessons where the tool might appear, and make sure a teen without it misses nothing.

Some tools wait until 18

Anthropic’s terms set 18 as the minimum age, so Claude stays out of teen classes; our adult agentic coding course is closed to under-18s for the same reason.

Assignments remain theirs

We explain, question and give practice. We do not complete marked school work, and we would rather see a shorter program a student can defend than a longer one they cannot.

Pacific time, now permanent

Surrey keeps one clock all year now: what that means for live classes

The BC government announced that “B.C. will adopt permanent, year-round daylight saving time after clocks shift forward an hour on Sunday, March 8, 2026”, and that “Pacific time will be set seven hours behind co-ordinated universal time (UTC-7)”. So Surrey does not fall back on 1 November 2026, while Ontario and Quebec do.

Surrey (America/Vancouver) against India and against Ontario through 2026 to 2027. Offsets from the BC release and IANA tzdb 2026e; conversions are ours
PeriodSurreyIndia is ahead of Surrey bySaturday 9 to 10:30 am in Surrey is, in IndiaWeekday 4:30 to 6 pm in Surrey is, in IndiaOntario is ahead of Surrey by
To 31 October 2026UTC-712.5 hours9:30 to 11 pm5 to 6:30 am, next day3 hours
1 November 2026 to 13 March 2027UTC-7, no change12.5 hours9:30 to 11 pm5 to 6:30 am, next day2 hours
From 14 March 2027UTC-712.5 hours9:30 to 11 pm5 to 6:30 am, next day3 hours

Steady with India

Because India and BC both stay put, the gap is twelve and a half hours all year. A Surrey class time never shifts against its teacher, which makes long-term timetables simple.

Shifting with Ontario

The difference from Ontario is what moves: two hours in winter, three in summer. Anything a Surrey teen joins on Eastern time, such as a national webinar, needs checking after 1 November.

Surrey phone numbers

Surrey numbers use 604 and the BC overlay codes 236, 257, 672 and 778. Enter the ten digits in the form below without a leading 1.

Learning ladder

From Python at 13 to an unsupervised model a Surrey student can explain at 18

Treat the ages as rough. Placement depends on what a student can already program, checked in the free class.

Ages 13 and 14

Python in full

Complete programs with loops, lists and functions, and the Beaver Challenge for students who want a first contest.

Python for Teens
Ages 14 and 15

Algorithms

Searching, sorting and careful counting, the CS 11 kind of thinking, with a CCC Junior paper in February.

Problem Solving for TeensCCC Junior and Senior Preparation (Canadian Computing Competition)
Ages 15 to 17

Data and clusters

Open municipal data cleaned and mapped, then k-means and other unsupervised methods on real files.

Data Science for TeensAI and Machine Learning for Teens
Ages 17 and 18

Bigger models, second language

Supervised models with proper testing, and C++ for students heading for CCC Senior.

AI and Machine Learning for TeensC++ for Teens
Judgement over tools

Why a Surrey teen should learn to judge a model before trusting an AI tool

Because k-means gave two different answers on the same playgrounds, and only a person can say which one matters.

Unsupervised learning is a good place to see the limits of automation. The algorithm optimises one thing, distance, and is perfectly happy to split a community in two. A student who has watched that happen understands that every model optimises something specific, and that the something is chosen by a person.

Our teaching follows from that. Students state the question first, write and run the steps, predict what should happen, and argue with what does. AI tools, where a family allows them, arrive later as a second opinion to be tested. Teens who work this way are the ones who notice when a confident answer is wrong.

The CCC enforces the same idea from the other side: no assistant in the editor, so the reasoning has to be the student’s. The longer argument is in why learning to code still pays off in 2026.

Delivery

Live classes for Surrey, Delta, Langley and White Rock

Classes are online, so a teen in Newton and another in Cloverdale, Delta or White Rock can sit in the same lesson without a trip over the Pattullo Bridge.

Times that suit

Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays.

South of the Fraser

Students in Delta, Langley and White Rock join the same groups as Surrey students, all on Pacific time.

Two formats

Groups of fifteen to twenty at one level, or private lessons for a student with a fixed aim such as a CCC paper or a BC course project.

Their own code

Students write and keep every project in their own files. Teachers review and explain; school assignments remain the student’s work.

What to have

A laptop or desktop able to run Python 3, a microphone and a reliable connection. Python is installed together in the first lesson if needed.

Free first lesson

The first class costs nothing, asks for no card, and ends with a recommended course and level from the teacher.

No Surrey centre

Modern Age Coders has no office or classroom in Surrey, BC and does not claim one. Teachers work from India and teach live online, on Pacific time.

Fees

Fees for families in Surrey, BC

Fees appear in your own currency, with the currency code printed beside each.

First classFree

A complete live class at no cost, finishing with a placement and a course suggestion.

Group tuition$140 CAD

A monthly fee for eight live classes with fifteen to twenty teens at one level.

Private tuition$210 CAD

A monthly fee for one teacher with one student, at hours the family chooses.

Surrey families pay the same as families anywhere in Canada. There is no charge until after the free class and an agreed course and schedule; the pricing page covers missed lessons and school breaks.

Reviews

Reviews from parents and students on Google

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

Free placement class

Book a free class for a teen in Surrey, BC

Tell us the grade and what the student has coded so far. A beginner writes a first complete program; a student with experience might try the Surrey playground data or a timed problem of ours in the CCC style.

+1

FAQ

Questions from Surrey, BC families

What parents and teens in Surrey, British Columbia ask us most.

Is this page about Surrey in British Columbia?

Yes. It is for families in Surrey, BC, on Pacific time and in the BC school system, not Surrey in England. Classes are live online from home.

Do you have a classroom in Surrey?

No. Every lesson is live online. Teens join a class of fifteen to twenty or have a private teacher.

Does your course count as BC Computer Programming 11?

No. We teach alongside school courses and do not grant provincial credits. The credit for Computer Programming 11, 12 or Computer Science 11 comes from the school.

What should a Grade 9 student in Surrey start with?

Python for Teens in most cases, plus the Beaver Computing Challenge in November if they want a first contest. The free class confirms the level.

Does my teenager need my consent to use ChatGPT?

Yes. OpenAI's help centre says children aged 13 to 18 need parental consent, and that ChatGPT is not meant for children under 13. Our lessons work without it.

Is Claude used in your teen classes?

No. Anthropic's terms say users must be at least 18, so no student under 18 uses Claude with us.

Is editor autocomplete allowed in the CCC?

No. The CCC grader rules say AI-based tools within an IDE cannot be used, so we practise for contests with those features off.

Did BC stop changing the clocks?

Yes. The BC government says the province adopted permanent daylight saving time after 8 March 2026, set at UTC-7, so Surrey does not fall back on 1 November 2026.

When do classes run for Surrey students?

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 confirmed in Pacific time.

Where does the playground project data come from?

From the City of Surrey's published Park Playgrounds layer, used under the City's open data licence. Students download it and run the clustering themselves; the City has not endorsed our courses.

More for British Columbia

Other pages for Surrey and BC students

Start with coding classes in British Columbia, or read about UBC computer science admission. For contests see the CCC Junior guide, and for scheduling across provinces the Canada time zones guide.

Free classPriority demoCall us

Keep exploring Modern Age Coders

Coding classes in nearby places

Learn more

Free resources

From the blog

Start here