UBC / MTH / 01
High school mathematics
Algebra and functions before Pre-calculus 12.
Open the syllabusUniversity of British Columbia · Vancouver · Read 22 October 2026
UBC is unusual among large Canadian universities: a high school student cannot apply straight into computer science. The route runs through a faculty, usually Science, and the computer science specialization comes after first year, with its own competition for seats. This page follows that route from UBC’s own pages, read on 22 October 2026: the Science course requirements for students in British Columbia, Ontario and Alberta, the personal profile, the dates for September 2027 entry, and what the Computer Science department says about the second step. UBC revises these pages, so check each one when your teen applies. We teach the skills; we never forecast a decision.
10,000+ students taught since 2020 · Pre-calculus 12, Math 30-1 and programming · Live online
In short
UBC has no direct admission into computer science: high school students apply to a faculty such as Science, then apply for the computer science specialization during first year. For British Columbia students, UBC Science listed English Studies 12 or English First Peoples 12, Pre-Calculus 12 and a Grade 12 science, plus Chemistry 11 and Physics 11. Modern Age Coders covers the Pre-calculus 12 and Math 30-1 work in Western Canada Grade 12 Math, live online, in a batch or one to one.
Ready for both steps
The first step is the Science admission, which rests on Grade 12 math. The second is first-year performance, which rests on real problem solving. These courses cover both.

UBC / 01
Pre-calculus 12 and Math 30-1, the courses UBC Science names for British Columbia and Alberta students.
Open the syllabus →
UBC / 02
Algorithm problems under time pressure, written by our teachers, for students who want to think harder than the school course asks.
Open the syllabus →
UBC / 03
For Ontario students applying west: Advanced Functions is on UBC Science’s Ontario list.
Open the syllabus →How the route works
The Computer Science department says so on its admissions page: “there is no direct admission into the Computer Science program, but rather, you need to apply to enter one of the three faculties that offer Computer Science specializations: Science, Arts, or Commerce.”
| Stage | What happens | Whose rules |
|---|---|---|
| 1. High school application | Apply to UBC and choose a degree such as the Bachelor of Science; meet the Science requirements for your province and write the personal profile | UBC Undergraduate Admissions |
| 2. First year | Study as a first-year Science student, taking courses toward eligibility for a specialization | The Faculty of Science |
| 3. Specialization application | Apply for the computer science specialization through the Faculty of Science Coordinated Admissions Process | The Faculty of Science, with the Department of Computer Science |
| 4. Outcome | If successful, the Faculty of Science notifies the student; if not, the student may try again the following year | The Faculty of Science |
An offer from UBC Science is an offer to the faculty, not a place in computer science. The department’s first-year procedure page is direct about the second step: it “may not have enough seats to accommodate everyone, and you may need to select a non-CPSC specialization.” CPSC is UBC’s course code for computer science.
That changes how to prepare. Grade 12 marks open the faculty door. What happens in first-year courses decides the specialization, which means arriving at university already able to study mathematics and programming well.
The department names Arts and Commerce as the other faculties with computer science specializations. This page follows the Science route, because the Bachelor of Science in Computer Science is the program UBC’s admissions site describes for Vancouver, and its high school requirements are the ones we read.
Students curious about the Arts or Commerce combinations should read those faculties’ own pages. The department also describes a separate process for students moving between faculties.
Sources: UBC Computer Science, admission processes and the department’s procedure page for students with first-year standing in Science, read 22 October 2026. Modern Age Coders has no connection with UBC.
Stage 1 requirements
UBC’s requirements tool shows a list per campus, province and degree. We read Vancouver, Science, for three provinces.
| Province | Grade 12 requirements | Grade 11 requirements |
|---|---|---|
| British Columbia | English Studies 12 or English First Peoples 12; Pre-Calculus 12; Anatomy and Physiology 12, or Chemistry 12, or Physics 12 | Chemistry 11; Physics 11 |
| Ontario | ENG4U (English); MHF4U (Advanced Functions); SBI4U (Biology), SCH4U (Chemistry), or SPH4U (Physics) | SCH3U (Chemistry); SPH3U (Physics), which UBC says may be waived with scores of 86% or higher in senior-level Math and Chemistry |
| Alberta | English Language Arts 30-1; Math 30-1 or Math 31 (5 credits); Biology 30, Chemistry 30, or Physics 30 | Chemistry 20; Physics 20, with the same waiver wording as Ontario |
| General requirement | UBC’s wording |
|---|---|
| Graduation | Graduation from high school |
| English | Minimum of 70% in Grade 11 or Grade 12 English (or their equivalents) |
| Course load | At least six academic/non-academic Grade 12 courses (recommended, but not required) |
| What is assessed | UBC considers grades in all academic Grade 11 and Grade 12 classes, paying special attention to courses related to the degree |
| Completion | All requirements must be complete by June 30 before the September start |
For British Columbia students the math requirement is Pre-Calculus 12, and no calculus course appears on the Science list. For Ontario students it is Advanced Functions, MHF4U, rather than Calculus and Vectors. Every province’s list adds a Grade 12 science and both Grade 11 chemistry and physics.
That science component surprises families who think of computer science as math plus code. At UBC the entry point is a science degree, so the faculty’s general expectations apply.
The program page lists the subject categories UBC considers particularly relevant for this degree: Language Arts, Mathematics and Computation, and Sciences. With UBC saying it pays special attention to related courses, those categories are the place to put Grade 11 and 12 effort.
The program page also notes that students outside Canada can sometimes use junior-level American courses or IGCSE and O Level courses as Grade 11 equivalents. Canadian students follow their province’s list above.
Sources: UBC requirements for Canadian high school students (requirements tool: Vancouver, Science; British Columbia, Ontario, Alberta) and UBC, Computer Science (BSc), Vancouver, read 22 October 2026. Other provinces are available in the same tool.
A worked example, ours
UBC’s list mixes two kinds of line. Some say one of several courses; some name a single course. A good way to make sure a program reads such a list correctly is to write the examples before the code. That habit, called test-driven development, is worth learning before first year. The plans below are invented, and the function only matches course names with the list as published.
# UBC Science, BC applicants: which listed course groups does a plan miss? (ours)
# Groups copied from UBC's requirements tool (Vancouver, Science, British Columbia), read 22 October 2026.
GRADE_12 = [
("English", {"English Studies 12", "English First Peoples 12"}),
("Math", {"Pre-Calculus 12"}),
("Science", {"Anatomy and Physiology 12", "Chemistry 12", "Physics 12"}),
]
GRADE_11 = [
("Chemistry 11", {"Chemistry 11"}),
("Physics 11", {"Physics 11"}),
]
def missing_groups(plan):
"""Names of listed groups with no course from the plan in them."""
return [name for name, options in GRADE_12 + GRADE_11
if not any(course in plan for course in options)]
# Examples first: we wrote these four before the function body (ours)
assert missing_groups({"English Studies 12", "Pre-Calculus 12", "Physics 12",
"Chemistry 11", "Physics 11"}) == []
assert missing_groups({"English Studies 12", "Pre-Calculus 12",
"Chemistry 11", "Physics 11"}) == ["Science"]
assert missing_groups({"English First Peoples 12", "Calculus 12", "Chemistry 12",
"Chemistry 11", "Physics 11"}) == ["Math"]
assert missing_groups(set()) == ["English", "Math", "Science", "Chemistry 11", "Physics 11"]
print("all four examples pass")Output: all four examples pass. Python stops at the first failing assert, so a silent run up to that print line is the proof. The course groups are UBC’s; the plans and the function are ours.
| Example plan | Expected result | What it proves |
|---|---|---|
| English Studies 12, Pre-Calculus 12, Physics 12, Chemistry 11, Physics 11 | Nothing missing | A one-of group is satisfied by any one of its members |
| The same, without a Grade 12 science | Science | A missing one-of group is found, and only that group |
| English First Peoples 12, Calculus 12, Chemistry 12, Chemistry 11, Physics 11 | Math | The list is read literally: Calculus 12 is not Pre-Calculus 12 |
| Empty | All five groups, in list order | The function reports in a stable, readable order |
Writing the examples first forces a decision about meaning before any code exists. The third example is the clearest case: someone has to decide what a plan with calculus but no pre-calculus should produce. Deciding it in a test, out loud, is better than discovering it later as a bug.
UBC’s sample first-year courses on the program page include Software Construction, described as covering “debugging, and testing” among other topics. Students who already test their own code meet that course on familiar ground.
The function does not know marks, the personal profile, the general requirements or the second-year specialization. A result of nothing missing means only that the course names match the Science list we copied on 22 October 2026.
Treat it as practice in careful reading and careful code. The authority remains UBC’s own requirements tool.
The personal profile
Most UBC applicants from high school write a personal profile as part of the online application. UBC’s page explains who must write one, how long the answers are, who the references are and how the profile is assessed.
| Question | What UBC says |
|---|---|
| Who writes one? | High school students applying to any degree on the Okanagan or Vancouver campuses, with three named exceptions (Design in Architecture, Landscape Architecture, and Urbanism; Dental Hygiene; Music) |
| How long? | Each question needs a short essay response of 500 to 2,100 characters, which UBC puts at roughly 50 to 500 words; the limit is in characters, and longer answers are cut off |
| What kinds of questions? | Who you are; up to five activities or accomplishments in areas such as clubs, family or community responsibilities, arts, work, athletics, volunteering and service; more on one or two of them; and optional additional information |
| References | Two people who know the student well; for current high school students one must be a school official; “Neither referee should be a friend, family member, or paid agent.” |
| How references are contacted | “UBC does not send a link to references.” UBC contacts them directly after offers of admission have gone out |
| How it is assessed | Trained readers assess it against four criteria: Engagement and accomplishment, Leadership, Substance and Voice |
The page gives three tips: take time to reflect, be specific, and “Be true to who you are.” It also says “We’re not looking for a particular experience, and there are no right or wrong answers.” Any experience, the page says, from winning an international award to taking care of a younger sibling, can teach something.
Under Voice, UBC asks whether a profile does “authentically reflect your own words”. That is the standard every applicant should hold their writing to, and it is why the writing has to be the student’s own.
We do not write, outline, edit or review personal profiles or any other application text, and a teacher of ours would not be a suitable referee for an application either: UBC rules out a paid agent as a referee. Our role ends at the teaching.
What the teaching can give a student is material that is genuinely theirs: a program they built and debugged, a contest problem they finally cracked, a skill they can demonstrate. Whether and how to write about it is up to them.
Source: UBC, Write your Personal Profile, read 22 October 2026. UBC prints the length range with a dash; we write it out.
Stage 2
This is the step that decides whether a UBC Science student studies computer science. The department’s pages describe it in three steps and are frank about competition.
| Step | What the department says |
|---|---|
| Step 1 | Confirm eligibility and requirements for choosing a specialization, following the steps the Faculty of Science sets out |
| Step 2 | Review the department’s information on what average is needed for the second-year specialization application |
| Step 3 | Apply for the CPSC specialization using the Faculty of Science Coordinated Admissions Process |
| Seats | The department may not have enough seats for everyone, and some students may need to choose a non-CPSC specialization |
| If unsuccessful | Students can try again the following year, and can still try to take computer science courses while progressing in their current major |
On its how-to-apply page, in the context of the second-year specialization, the department writes: “Historically, we have required an average in the low 80’s. But every year is different!” It names course availability, number of seats and number of applicants among the factors.
That figure is about university first-year results for students already in UBC Science. It is not a high school admission average, and we do not translate it into one. It does show that first-year performance, not Grade 12 marks, decides the specialization.
A student who arrives at UBC having only just met Pre-Calculus 12 faces first-year math and computer science at the same time as everyone else, with the specialization riding on the result. A student who arrives fluent in algebra, functions and basic programming has room to adjust to university.
This is the honest case for preparing deeply in Grades 11 and 12: not to meet a cut-off, but to be ready for a year that counts twice.
Sources: UBC Computer Science, admission processes; Application procedure for those with 1st year standing in the Faculty of Science; UBC Computer Science, how to apply, read 22 October 2026.
The degree
UBC’s program page describes the degree a successful student eventually joins.
| Item | What the page says |
|---|---|
| Faculty and degree | Faculty of Science; Bachelor of Science |
| Length | 4 years |
| Honours | Available, with additional requirements beyond the Major |
| Co-op | Available as an optional program alternating study and paid work terms |
| Options | Software Engineering, or combined honours with sciences, mathematics, or statistics |
| New in 2026 | Computer Science majors can now take the Artificial Intelligence (AI) Option |
| Sample courses | Computation, Programs, and Programming; Software Construction; Intermediate Algorithm Design and Analysis; Introduction to Artificial Intelligence |
The sample course descriptions make the preparation point concrete. The first introduces “Fundamental program and computation structures” and introductory programming. The algorithms course studies the design and analysis of algorithms, including the “choice of data structures”. Neither is a course a student can coast through on Grade 12 habits, which is why early depth in math and programming pays off. Our AI and machine learning classes for Canadian students give a first look at the ideas behind the new AI Option.
September 2027 entry
UBC’s dates page covers the whole cycle. These are the lines that apply to a Canadian high school student applying for September 2027.
| Date | What happens |
|---|---|
| Early October 2026 | Online application opens for Winter Session (September 2027 to April 2028) |
| December 1, 2026 | Canadian citizens and permanent residents: deadline to apply if you wish to be considered for the Presidential Scholars Awards, UBC Centennial Scholars Entrance Awards or the Beyond Tomorrow Scholars Award |
| January 15, 2027 (UBC prints 11:59 p.m. PST) | Deadline to apply for Winter Session |
| November 2026 to June 2027 | Admissions decisions for high school applicants, made on a continuous basis |
| March 1 to March 15, 2027 | Canadian high school applicants outside BC and Ontario upload a spring transcript of grades |
| May 1, 2027 or June 1, 2027 | Deadline for most students to accept the offer and pay the deposit, as stated in the letter of admission |
| June 30, 2027 | Canadian high school applicants: deadline to complete all high school courses to meet the conditions of the offer |
Students taking online or distance courses to meet degree requirements should arrange for interim grades, at 50 per cent complete, to reach UBC by March 15, UBC’s requirements page says, and the courses must be finished by June 30.
That matters for any student taking a required course, such as Pre-Calculus 12, through a distributed learning provider. Plan the timing early.
British Columbia now keeps UTC-7 all year, after its last clock change on 8 March 2026, so BC families no longer adjust in November or March. Alberta and Saskatchewan are UTC-6 all year. Our teachers work on India time, UTC+5:30, so India is 12 hours 30 minutes ahead of British Columbia year round.
UBC prints its application deadline with the label PST. We quote it as printed and do not convert it; check the time on UBC’s page if you are applying at the last minute, which we do not recommend.
Sources: UBC Dates and deadlines and UBC requirements for Canadian high school students, read 22 October 2026. Time-zone offsets from the IANA time zone database (2026e).
A plan, ours
This plan is ours. It covers the Science list and prepares for the year that decides the specialization. It promises nothing about either decision.
Ontario and Alberta students can follow the same shape with their own province’s courses from the table above: in Ontario, ENG4U, MHF4U, a Grade 12 science and the Grade 11 chemistry and physics; in Alberta, English Language Arts 30-1, Math 30-1 or Math 31, a 30-level science and Chemistry 20 and Physics 20.
Readiness for a year that counts
Our stages, built from years of teaching senior high school students in British Columbia and elsewhere who later studied science and computing at university.
| Stage | What you see |
|---|---|
| 1. Coursework | Completes assignments correctly with notes open |
| 2. Independent | Solves a fresh problem in pre-calculus or code without notes |
| 3. Self-checking | Tests answers and programs before handing them in, and finds their own errors |
| 4. University-ready | Learns a new topic from a textbook or documentation alone, then explains it |
Ask your teen to teach you one thing from this week’s math. Teaching it back is the quickest readiness test there is.
Stage 3 matters most at UBC, because first-year results decide the specialization, and self-checking students lose far fewer marks.
Before you look at an answer key, decide how confident you are. Track it. Calibration is a skill.
Write tests for your own programs, as in the example above. It is the habit that separates a student from a programmer.
The catalogue
Every course is live with one regular teacher, as a group class or privately, on British Columbia or Alberta time.
UBC / MTH / 01
Algebra and functions before Pre-calculus 12.
Open the syllabusUBC / MTH / 02
For schools that offer AP calculus.
Open the syllabusUBC / MTH / 03
Problem solving beyond the textbook.
Open the syllabusUBC / PRG / 01
Write, trace and test real programs.
Open the syllabusUBC / PRG / 02
Types, classes and larger programs.
Open the syllabusUBC / PRG / 03
Choosing data structures, as first-year algorithms courses ask.
Open the syllabusUBC / ADV / 01
A first look at the field behind UBC’s new AI Option.
Open the syllabusUBC / ADV / 02
Hard problems, solved and analysed.
Open the syllabusUBC / ADV / 03
The tools software courses take for granted.
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 in BC or Alberta, set when you join a batch.
Weekends
Weekend mornings on BC time, before sports and shifts.
1-on-1
Arranged around unit tests and the application season.
The same person through the year.
Pre-calculus 12, Math 30-1 or MHF4U by name.
Understanding first, then pace.
Students write examples before functions.
Profiles and essays stay the student’s.
Fifteen to twenty per class, or just your teen.
Student work
Work our students made themselves and can explain line by line. The student labs page shows more.

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
The opening class costs nothing. Continuing families pay monthly for eight live classes, with the currency code shown beside the fee, and there is no contract to stop you leaving after any month.
Free first class
Free
no card required
Group batch
$100 USD
a month, eight live classes
One to one
$150 USD
a month, eight live classes
What families say
Reviews from families and students, reproduced from Google 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
Families ask us
No. UBC's Computer Science department says there is no direct admission into the Computer Science program. Students apply to a faculty that offers computer science specializations, such as Science, Arts or Commerce, and apply for computer science after first year.
On 22 October 2026 UBC listed English Studies 12 or English First Peoples 12, Pre-Calculus 12, and one of Anatomy and Physiology 12, Chemistry 12 or Physics 12, plus Chemistry 11 and Physics 11 in Grade 11. UBC also asks for at least 70 per cent in Grade 11 or Grade 12 English.
UBC listed ENG4U, MHF4U and one of SBI4U, SCH4U or SPH4U, plus SCH3U and SPH3U in Grade 11. UBC says the Grade 11 sciences may be waived with scores of 86 per cent or higher in senior-level math and chemistry.
Not at the high school stage, on the lists we read. UBC Science named Pre-Calculus 12 for British Columbia, MHF4U for Ontario and Math 30-1 or Math 31 for Alberta. First-year university courses will still assume strong math.
UBC's admissions pages we read do not publish a high school average for Science. The department says that for the second-year specialization it has historically required an average in the low 80s, and that every year is different. That figure is about first-year university results, and we make no prediction for any student.
A set of short essay questions in the UBC application, required for high school applicants to most degrees. Each answer is 500 to 2,100 characters, and UBC asks for two references. Trained readers assess it for engagement and accomplishment, leadership, substance and voice.
No. We never write, outline, edit or review application text. UBC also says a referee should not be a paid agent. We teach math and programming, so the work a student describes is genuinely their own.
UBC's dates page gave January 15, 2027 as the deadline to apply for the Winter Session starting September 2027, and December 1, 2026 for Canadian applicants who want to be considered for certain major entrance awards. Applications opened in early October 2026.
UBC's department says the specialization may not have seats for everyone and some students may need to choose another specialization. It also says students can try again the following year and can still take computer science courses while progressing in their current major.
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays. British Columbia now stays on UTC-7 all year, so a class time agreed in BC does not shift in November or March.
Elsewhere on this site
More for students in British Columbia and the west.
Live classes for BC students of all ages.
Classes on Alberta time.
All our pages for Canadian families.
Pre-calculus and beyond, taught for understanding.
Models built and tested by students.
Canada’s programming contest, open to students nationwide through their schools.
A method instead of guesswork.
Practice that builds understanding.
Our live classes, explained.
Start here
Say which grade your teen is in, which math course they take and whether they write code yet. The first class picks up from their current unit or project.
Reading first? The Pre-calculus 12 and Math 30-1 syllabus lists the units, and how we teach describes a class.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
Classes are live on video with teachers in India, a fixed 12 hours 30 minutes ahead of British Columbia, so there is nothing to drive to. WhatsApp 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