---
title: "Waterloo Computer Science Admission Requirements, 2027"
description: "Waterloo CS admission from the university pages: required courses in seven provinces, the published average, the AIF, contests and the dates for 2027 entry."
canonical: https://learn.modernagecoders.com/waterloo-computer-science-admission-requirements
source: src/pages/waterloo-computer-science-admission-requirements.html
---
> Waterloo CS admission from the university pages: required courses in seven provinces, the published average, the AIF, contests and the dates for 2027 entry.

In short

On pages read 22 October 2026, Waterloo Computer Science asked Ontario students for Advanced Functions, Calculus and Vectors, a university English and one more U course, inside at least six Grade 12 U or M courses, plus the Admission Information Form; its average reads “Individual selection from the low to mid-90s”. Modern Age Coders teaches that math and coding live online through Ontario Grade 12 University Math, as a batch or one to one.

Build the skills, not a story

## Three courses that match what Waterloo lists

Two of Waterloo’s four named Ontario requirements are math courses, and its recommended course is computer science. These three cover that ground and the contest it mentions.

[![Ontario Grade 12 University Math course thumbnail](/images/ontario-grade-12-university-math.webp)  WCS / 01 Ontario Grade 12 University Math Advanced Functions and Calculus and Vectors, taught alongside the school course, with proof-style reasoning rather than drilled steps. Open the syllabus →](/courses/ontario-grade-12-university-math-mhf4u-mcv4u-course)[![Ontario Computer Science Companion course thumbnail](/images/ontario-computer-science-ics3u-ics4u.webp)  WCS / 02 Ontario Computer Science Companion For students taking ICS3U or ICS4U at school: tracing, testing and design habits that carry into a first university course. Open the syllabus →](/courses/ics3u-ics4u-computer-science-companion-course)[![CCC Junior and Senior Preparation (Canadian Computing Competition) course thumbnail](/images/ccc-junior-senior-prep.webp)  WCS / 03 CCC Junior and Senior preparation Timed algorithm problems in the format of the Canadian Computing Competition, written by our teachers. Open the syllabus →](/courses/ccc-junior-and-senior-preparation-course)

Ontario applicants

## The courses Waterloo requires for Computer Science

Waterloo describes its Ontario requirement in two places, the Computer Science program page and the requirements tool for Ontario high school students, and the wording differs slightly. Both are below, as Waterloo printed them when we read them on 22 October 2026.

| Item | Program page wording | Requirements tool wording |
| --- | --- | --- |
| Overall rule | “Six Grade 12 U and/or M courses including” the four below | “High school diploma or equivalent with a minimum of six Grade 12 U or M courses, including all required courses.” |
| Math, part one | Advanced Functions | Advanced Functions 4U |
| Math, part two | Calculus and Vectors | Calculus and Vectors 4U |
| English | “Any Grade 12 U English” | “Any Grade 12 U English” |
| Fourth course | “One other 4U course” | “One other Grade 12 U course” |
| Supplementary form | The Admission Information Form “is required for admission.” | “The Admission Information Form is required for admission to this program.” |
| Where the courses come from | Not stated | “Grade 12 U or M courses must be completed through schools that are accredited by the Ontario Ministry of Education.” |

### Reading the list like an admissions officer would

Four of the six courses are fixed: Advanced Functions (MHF4U), Calculus and Vectors (MCV4U), a Grade 12 university English, and one more university-level course of the student’s choosing. The last two slots may be U or M courses. An M course is a university/college preparation course, which is why a course such as Grade 12 computer engineering technology can count while an open course cannot.

Waterloo’s admissions FAQ settles the open courses directly: “only U and M courses are included in the overall admission average.” College-preparation and co-op courses are left out of that average as well, the same answer says.

### What the list leaves out

No Grade 12 science appears on Waterloo’s Ontario list for Computer Science, and no computer science course is required. A student can meet the four named requirements without ever taking ICS3U or ICS4U, although Waterloo recommends computer science, as the next section shows.

The list also says nothing about Grade 11 math. Advanced Functions and Calculus and Vectors both build on Grade 11 Functions in the Ontario sequence, so in practice the math plan starts a year before the requirement is visible on paper. That planning point is ours, not Waterloo’s.

Sources: [Waterloo, Computer Science program page](https://uwaterloo.ca/future-students/programs/computer-science) and [Computer Science requirements for Ontario high school students](https://uwaterloo.ca/future-students/admissions/admission-requirements/computer-science/high-school/domestic/ontario), with the admissions FAQ, all read 22 October 2026. We have no connection with the University of Waterloo.

Outside Ontario

## Waterloo Computer Science requirements in seven provinces

Waterloo’s requirements tool gives each province its own list, written in that province’s course names. We read seven of them on 22 October 2026. Every one printed the same average line and said the Admission Information Form is required.

| Province | Required courses | General rule | Course Waterloo calls helpful background |
| --- | --- | --- | --- |
| Ontario | Advanced Functions 4U; Calculus and Vectors 4U; Any Grade 12 U English; One other Grade 12 U course | Six Grade 12 U or M courses | Grade 11 U Introduction to Computer Science and/or Grade 12 U Computer Science |
| British Columbia | English Studies 12 or English First Peoples 12; Pre-Calculus 12; Calculus 12 or AP Calculus | Six Grade 12 academic courses | Computer Science 11 |
| Alberta | Mathematics 30-1; Mathematics 31; English Language Arts 30-1 | Five academic courses at the 30 or 31 level | Introductory Computer Science (CSE1010) |
| Saskatchewan | One English Language Arts course, level 30; Pre-Calculus 30; Calculus 30 or AP Calculus | Five academic courses at the 30 level | Computer Science 20 |
| Manitoba | Pre-Calculus Mathematics 40S; English 40S; Calculus 45A, Calculus 45S, or AP Calculus | Five academic courses at the 40 level or higher | Computer Science 30S |
| Nova Scotia | Pre-Calculus 12; Calculus 12; English 12 Academic or English 12 African Heritage | Five academic courses at the Grade 12 level | AP Computer Science 12, Computer Science Principles 12, or Computer Programming 12 |
| Quebec (high school) | Grade 12 Algebra and Geometry; Grade 12 Calculus; Grade 12 English | Six academic (university-preparation level) subjects | None listed on the page we read |

### The pattern across provinces

Every list we read has three parts: a senior English course, the province’s top pre-calculus or functions course, and a calculus course. Ontario adds a fourth named course. The number of required academic courses also varies, six in Ontario and British Columbia, five in Alberta, Saskatchewan, Manitoba and Nova Scotia.

Calculus is the common thread. In British Columbia and Saskatchewan, Waterloo accepts AP Calculus in place of the provincial calculus course; in Manitoba it names Calculus 45A, Calculus 45S or AP Calculus.

### Province rules worth knowing

British Columbia: “With the exception of Economics 12 and Financial Accounting 12, subjects from the Applied Design, Skills and Technology (ADST) curriculum do not count toward the six academic courses required for admission.” Computer Programming 12 sits in that curriculum, so check before counting it.

Alberta: for any provincial exam except English Language Arts 30-1, Waterloo uses “the higher grade of either your in-class school grade or your final grade”; for English Language Arts 30-1 it uses only the blended grade. Every province page also warns that “Required courses completed more than three years ago may need to be updated.”

Source: Waterloo’s admission requirements tool for Computer Science, domestic high school students, pages for [British Columbia](https://uwaterloo.ca/future-students/admissions/admission-requirements/computer-science/high-school/domestic/british-columbia), [Alberta](https://uwaterloo.ca/future-students/admissions/admission-requirements/computer-science/high-school/domestic/alberta), Saskatchewan, Manitoba, Nova Scotia, Quebec and Ontario, read 22 October 2026. Quebec CEGEP students have a separate page that we did not read. Students outside these seven provinces should open the tool for their own province.

The published average

## How Waterloo describes the average, and how it is built

The average is the line families ask about first, so it is worth reading slowly. Waterloo does not publish a cut-off for Computer Science. It publishes a range, a method and a warning.

| Question | Waterloo’s words | Page |
| --- | --- | --- |
| What is the range? | “Individual selection from the low to mid-90s” | Requirements tool, every province |
| Is that a cut-off? | Programs listed as individual selection use grades with supplementary forms or interviews, so “there are no absolute cut-off grades to be admitted to those programs.” | What does individual selection mean? |
| What else counts? | “The Faculty of Mathematics evaluates students based upon both grades and supplementary information forms.” | What does individual selection mean? |
| Will the range hold? | “Admission averages depend on the number of applications received and the number of spaces available. The range listed above is based on previous years.” | Requirements tool, Ontario |
| Which courses go in? | “we will always include the courses which are required for admission in your admission average. We will then use your remaining courses with the highest grades to calculate your overall admission average.” | Admissions FAQ |
| Are Grade 11 marks used? | Grade 11 marks and “mid-term or predicted grades” for Grade 12 courses can be used to make a conditional offer | Admissions FAQ |
| When are decisions made? | “most of our admission decisions are made in May once we receive mid-term marks from semestered high schools.” | Admissions FAQ |

**A worked example, ours.** The FAQ’s method is precise enough to write as a function, and doing that is a good exercise for a student who wants to study computer science: turn a written rule into code, then test the edges. The plan below is invented. The output is arithmetic on invented marks. It says nothing about any real applicant’s chances, because Waterloo reads the Admission Information Form alongside grades and sets no cut-off.

1. **Keep only courses that can count.** U and M courses stay; the open course is dropped, however high its mark.
2. **Take the required courses first.** Advanced Functions, Calculus and Vectors and the English course go in whatever their marks are.
3. **Fill the slot for one other U course.** Take the highest remaining U course. An M course cannot fill this slot.
4. **Fill the last two slots by mark.** The highest remaining U or M marks complete the six.
5. **Average the six.** Add them and divide by six. Round only at the end.
6. **Test what breaks it.** A missing required course, no other U course, and fewer than six courses should each return a reason, not a number.

***Python · six-course average (ours)**python*

```
# Six-course average, following the method Waterloo's FAQ describes (ours)
# Required for Computer Science (Ontario): MHF4U, MCV4U, a Grade 12 U English,
# and one other Grade 12 U course. Only U and M courses count.

REQUIRED = ["MHF4U", "MCV4U", "ENG4U"]

def six_course_average(courses):
    """courses: list of (code, level, mark). Returns (average, picked) or (None, reason)."""
    counted = [c for c in courses if c[1] in ("U", "M")]       # O, C and others never count
    by_code = {c[0]: c for c in counted}
    missing = [r for r in REQUIRED if r not in by_code]
    if missing:
        return None, "missing required course: " + ", ".join(missing)
    picked = [by_code[r] for r in REQUIRED]
    rest = sorted((c for c in counted if c[0] not in REQUIRED),
                  key=lambda c: c[2], reverse=True)
    other_u = [c for c in rest if c[1] == "U"]
    if not other_u:
        return None, "no other Grade 12 U course"
    picked.append(other_u[0])                                  # the best other U course
    rest.remove(other_u[0])
    picked += rest[:6 - len(picked)]                           # then the highest remaining marks
    if len(picked) < 6:
        return None, "fewer than six U or M courses"
    average = sum(c[2] for c in picked) / 6
    return round(average, 1), picked

plan = [
    ("MHF4U", "U", 91), ("MCV4U", "U", 88), ("ENG4U", "U", 84),
    ("ICS4U", "U", 95), ("SPH4U", "U", 86), ("SCH4U", "U", 79),
    ("MDM4U", "U", 90), ("TEJ4M", "M", 97), ("PAF4O", "O", 99),
]
average, picked = six_course_average(plan)
for code, level, mark in picked:
    print(f"{code} ({level}) {mark}")
print("Six-course average:", average)
```

Output: MHF4U (U) 91, MCV4U (U) 88, ENG4U (U) 84, ICS4U (U) 95, TEJ4M (M) 97, MDM4U (U) 90, then Six-course average: 90.8. The 99 in the open course and the 79 in chemistry never enter the calculation.

| Input | What it returns | Why the case matters |
| --- | --- | --- |
| MHF4U, MCV4U, ENG4U, TEJ4M (M) and a college course | no other Grade 12 U course | The fourth required course must be U level; M cannot stand in |
| MHF4U and ENG4U only | missing required course: MCV4U | A required course with no mark cannot be averaged around |
| The four required U courses and one M course | fewer than six U or M courses | Six is the minimum the requirements page states |

### What the example shows

The open course with the highest mark on the transcript does nothing for the average. The chemistry mark of 79 also drops out, because three higher U or M marks were available. A student who understands the method plans the Grade 12 timetable around it, and does not mistake a high mark in a course that cannot count for progress.

The required courses work the other way: they stay in even when they are a student’s weakest marks. Here English at 84 is included while a 97 in an M course competes for a free slot. That is the real reason to start strengthening the required courses early.

### What the example cannot show

Waterloo describes Computer Science admission as individual selection, using grades together with the Admission Information Form. A function can reproduce the arithmetic of an average. It cannot reproduce a reading of a form, and it would be dishonest to pretend otherwise.

So we never compare a student’s figure against the published range, and nobody on our team tells a family what a given average will do. Waterloo itself says the range is based on previous years and moves with applications and spaces.

Sources: [What does individual selection mean?](https://uwaterloo.ca/future-students/admissions/individual-selection), [Commonly asked admission questions](https://uwaterloo.ca/future-students/admissions/faqs-admissions) and the Ontario requirements page, read 22 October 2026. The function, the plan and its marks are ours.

The recommended course

## ICS3U and ICS4U: recommended, and not required

This is the line most often misquoted. Waterloo recommends high school computer science for Computer Science applicants, and in the same breath says leaving it out does not hurt.

| Waterloo page | Exact wording |
| --- | --- |
| Computer Science program page | Under the heading for a recommended course: “Grade 11 U Introduction to Computer Science” |
| Requirements for Ontario high school students | “Grade 11 U Introduction to Computer Science and/or Grade 12 U Computer Science are helpful background for your studies; however, it will not impact your likelihood of admission if you do not take these courses.” |
| The same tool, other provinces | The province’s computer science course is described as helpful background that “will not impact your likelihood of admission if you choose not to take the course.” |

### Why take it anyway

Waterloo’s own phrase is “helpful background for your studies”, and the first-year schedule explains why. A student in the fall term meets CS 135, Designing Functional Programs, while also taking two first-year math courses and a communication course. Arriving already able to break a problem into steps and test a program frees attention for the new ideas.

The program page is also frank that beginners are welcome: “You don’t need a background in computer science to get started here.” Both statements are true at once. The background helps with the work; its absence does not count against the application.

### If the school does not offer it

Not every school runs ICS3U and ICS4U every year. Waterloo’s wording means a student without those courses is not at a disadvantage for admission, and can still build the same habits outside school: writing programs from a blank file, tracing them by hand, testing edge cases.

That is the part we teach. A student who learns to reason about code, rather than copy it or paste it from an AI tool, arrives in first year with something no transcript line measures. Our [ICS3U help page](/ics3u-computer-science-help) walks through what the Ontario course itself covers.

The supplementary forms

## The Admission Information Form, in brief

Grades are only half of the file. For Computer Science, Waterloo requires an extra form and uses a second one for contest results.

### Admission Information Form

Required for admission. Waterloo’s AIF page gives February 15, 2027 for “Programs other than those listed in the next rows”; none of those rows names Computer Science, so that date applies unless the student also applied to Engineering.

### Supplementary Information Form

For Faculty of Mathematics applicants. Waterloo says it covers the Waterloo math contests a student has written, naming the Euclid and the CSMC.

### Applying to Engineering too

Anyone who also applies to Engineering has to meet the earlier Engineering date, February 1, 2027, the AIF page says.

Waterloo’s AIF page is blunt about authorship: students fill in and send the form themselves, and AI-made answers that are untrue or plagiarized can cost an applicant the offer. We hold to that completely, and no one on our team writes or polishes application text. What we can do is teach the work that later becomes something true to write about, such as a project the student built and can explain line by line.

Source: [Waterloo, Admission Information Form and other supplementary forms](https://uwaterloo.ca/future-students/admissions/admission-information-form), read 22 October 2026.

Contests

## What Waterloo says about the Euclid, the CSMC and the CCC

Waterloo’s pages describe contests in slightly different words depending on the page. We quote each one rather than summarise them into a single claim.

| Page | What it says |
| --- | --- |
| Computer Science program page | The CSMC and/or Euclid “is not required for admission, but writing one of these contests is required for some scholarships offered by the Faculty of Mathematics.” |
| Commonly asked admission questions | Results of the contests “will be used in scholarship decisions and possibly admission decisions for programs in the Faculty of Mathematics.” |
| Math, computing, and science contests | For Faculty of Mathematics applicants, the CSMC and/or Euclid is encouraged “to enhance your admissions status” |
| Math, computing, and science contests, on the CCC | “While it is not an admission requirement, we encourage you to participate if you’re interested in programming and problem-solving, and especially if you’ve applied to Computer Science” |
| Math, computing, and science contests, on taking part | A teacher from an accredited high school must register for and supervise the test, and “(tutoring schools are not eligible)” |

| Date | What Waterloo lists |
| --- | --- |
| October 22, 2026 | Canadian Senior Mathematics Contest registration deadline (passed by the time most families read this) |
| February 11, 2027 | Canadian Computing Competition registration deadline |
| March 5, 2027 | Olympiad, Global, and National Scholarships application deadline |
| March 11, 2027 | Euclid Contest registration deadline |

### Registration runs through the school

The contests page puts it plainly: a teacher from an accredited high school registers and supervises, and tutoring schools are not eligible. CEMC, which runs the contests, puts it this way on its How contests work page: “all students must participate through their school.” Modern Age Coders cannot register a student for the Euclid or the CCC, and we do not offer to. If your school has never entered, raise it with a math or computer science teacher early; Waterloo suggests asking “before the end of January”.

The registration deadlines above are the dates for the school’s order, not the contest days. CEMC publishes the contest dates on its own site.

### How we prepare students

We never reproduce past CEMC problems or their solutions. We describe what each contest tests, point students to CEMC’s free archive, and teach with original problems written by our teachers and labelled ours. For the Euclid that means algebra, functions and proof-style write-ups; for the CCC it means designing and testing algorithms under time pressure.

Contest practice is worth doing for the problem-solving alone. Our [CCC preparation page](/canadian-computing-competition-ccc-prep) and our [Waterloo math contests page](/cemc-waterloo-contests-preparation) describe both in detail. CEMC runs these contests independently of us; we have no tie to it.

Sources: [Computer Science program page](https://uwaterloo.ca/future-students/programs/computer-science), [admissions FAQ](https://uwaterloo.ca/future-students/admissions/faqs-admissions), [Math, computing, and science contests](https://uwaterloo.ca/future-students/applicants/waterloo-contests) and [Application and document deadlines](https://uwaterloo.ca/future-students/admissions/deadlines), read 22 October 2026.

September 2027 entry

## Waterloo deadlines for Computer Science applicants

Waterloo lists two key deadlines for most programs, one to apply and one for documents, and the Admission Information Form falls under the second.

| When | What happens |
| --- | --- |
| February 1, 2027 | Application deadline |
| February 15, 2027 | Documents deadline, which covers supplementary forms such as the Admission Information Form |
| From Grade 11 marks onward | Waterloo can make conditional offers using Grade 11 marks and mid-term or predicted Grade 12 grades |
| May 2027 | When Waterloo says most of its admission decisions are made |
| September 2027 | Start of first year: “We admit first-year students for the term starting in September only.” |

Ontario students apply through the Ontario Universities’ Application Centre, and Waterloo’s applicant portal then lists the forms each student owes. The deadline page adds that “An application deadline may be extended if a program is not yet full”, which is a reason to apply on time rather than a reason to wait.

Source: [Waterloo, Application and document deadlines](https://uwaterloo.ca/future-students/admissions/deadlines) and the admissions FAQ, read 22 October 2026. Dates for 2028 entry will be different; check the page in the autumn your teen applies.

After admission

## What first year in Waterloo Computer Science looks like

The first-year timetable explains the requirements better than any average does. Half of it is mathematics.

| Term | Courses Waterloo lists |
| --- | --- |
| September to December | CS 135 Designing Functional Programs; MATH 135 Algebra for Honours Mathematics; MATH 137 Calculus 1 for Honours Mathematics; one communication skills course; one elective |
| January to April | CS 136 Elementary Algorithm Design and Data Abstraction; CS 136L Tools and Techniques for Software Development; MATH 136 Linear Algebra 1 for Honours Mathematics; MATH 138 Calculus 2 for Honours Mathematics; two electives |

### Why the math requirement is real

Two of the five fall courses are honours mathematics, and both continue into winter. Calculus and Vectors is the doorway to MATH 137, and Advanced Functions sits under all of it. A student who scraped through Grade 12 math by memorising procedures will feel that gap in October of first year.

Computer Science at Waterloo is in the Faculty of Mathematics, and the degree is listed as a Bachelor of Computer Science or a Bachelor of Mathematics in Computer Science. The program is offered as co-op and as a regular program.

### What this means in Grade 11 and 12

We teach Advanced Functions and Calculus and Vectors for understanding: why a rule works, where it fails and how to check an answer without a calculator. That is slower in the first week and much faster by the exam, and it is the kind of math first year assumes.

On the programming side, CS 135 opens with functional programs, which surprises students who have only written loops. Students who can already reason about what a function returns, and test it, adapt quickly whatever the language.

A plan, ours

## A Grade 9 to 12 plan for a student aiming at university computer science

This plan is ours, written for Ontario students and adaptable to other provinces. It builds skills that matter whatever the admission decision, and it does not promise one.

1. **Grade 9 and 10: protect the math sequence.** Keep the path open to Grade 11 Functions, and treat every algebra unit as groundwork for Advanced Functions.
2. **Grade 10: write real programs.** Small projects from a blank file, in Python or Java. The aim is to explain every line, not to finish fast.
3. **Grade 11: take Functions seriously, and ICS3U if the school offers it.** Waterloo calls computer science helpful background; Functions is the course every later requirement stands on.
4. **Grade 11 spring: try a contest through the school.** Ask a teacher about the CCC or a CEMC math contest. Registration is the school’s job, so ask months ahead.
5. **Summer before Grade 12: preview Advanced Functions.** A second look at polynomials, logarithms and trigonometry makes the school course a review rather than a first encounter.
6. **Grade 12 fall: plan the six courses on paper.** List the four required courses, then the U and M courses that could fill the last two slots. Run the method from the section above on your own expected marks if it helps you see the structure.
7. **Grade 12 fall: apply, then write the AIF yourself.** Use Waterloo’s own questions and limits. Nobody else writes it.
8. **Grade 12 winter: keep the required marks steady.** Waterloo says most decisions are made in May, once mid-term marks arrive, so the second semester counts.

### Summer school, night school and repeats

Waterloo’s page on repeated courses says that for September 2027 entry, a student who repeats a course “will not be penalized in the application process”, and that “we’ll use your highest grade” in that course. It accepts day school, summer school, night school, online and private school courses, if the province accredits them.

The same page still recommends “taking all required Grade 12 courses during the regular school year and doing well on your first attempt.” Both statements stand side by side, and families should weigh them together.

### Where a second teacher helps

Most families come to us in one of three moments: Grade 11 Functions is wobbling, Grade 12 math is about to start, or a teen who loves coding wants depth the school course cannot give. Each time, the school outline and the student’s pace set the plan.

What we do not do is coach an application. The value we can add is in the skills themselves, and in projects real enough that a student can talk about them honestly.

Readiness, honestly measured

## Four stages from strong student to ready for first-year CS

Our stages, drawn from teaching Grade 11 and 12 students who later started university computer science. They describe skills, not admission odds.

| Stage | How it shows up in class |
| --- | --- |
| 1. Procedure follower | Gets calculus questions right when they look like the textbook, and stalls when the wording changes |
| 2. Reasoner | Explains why a rule works and checks answers another way, by sketch, estimate or substitution |
| 3. Builder | Writes a program from a blank file, tests the edge cases and fixes their own errors |
| 4. Ready for CS 135 | Moves between a math idea and code that tests it, and learns a new language without fear |

### For parents

Marks tell you a student’s stage only roughly. Ask your teen to explain one calculus answer without the textbook open; the explanation tells you more.

The jump from stage 1 to stage 2 is where most of our Grade 12 math teaching goes, and it is also what first-year honours math demands.

### For students

Check every answer a second way before you call it done. Slow at first, it soon becomes the fastest habit you have.

Write one small program a week that tests a math idea, such as a sequence, a limit or a vector sum. Both subjects improve together.

The catalogue

## Nine more courses for students heading toward university CS

Each one runs live with the same teacher every week, as a group class or privately, and each is built around reasoning rather than memorised steps.

I

### Mathematics

Grades 9 to 12

WCS / MTH / 01

#### Waterloo math contests: Gauss to Euclid

Original contest-style problems, from Grade 7 to the Euclid.

[Open the syllabus](/courses/waterloo-math-contests-gauss-to-euclid-course)

WCS / MTH / 02

#### Pre-calculus 12 and Math 30-1

For students in British Columbia, Alberta and the Prairies.

[Open the syllabus](/courses/western-canada-grade-12-math-pre-calculus-12-math-30-1-course)

WCS / MTH / 03

#### High school mathematics

Algebra through calculus for students rebuilding foundations.

[Open the syllabus](/courses/complete-high-school-mathematics-mastery)II

### Programming depth

Teens

WCS / PRG / 01

#### Problem solving for teens

Data structures and algorithms, reasoned out step by step.

[Open the syllabus](/courses/problem-solving-dsa-masterclass-teens)

WCS / PRG / 02

#### Python for teens

From first programs to projects worth explaining.

[Open the syllabus](/courses/python-complete-masterclass-teens)

WCS / PRG / 03

#### Competitive programming

Harder timed problems once the CCC Junior feels comfortable.

[Open the syllabus](/courses/competitive-programming-for-teens-course)III

### Projects and tools

Teens

WCS / PRJ / 01

#### Git and GitHub for teens

Version history that shows how a project grew.

[Open the syllabus](/courses/git-github-version-control-course-for-teens)

WCS / PRJ / 02

#### AI and machine learning for teens

Models built and evaluated, not just prompted.

[Open the syllabus](/courses/ai-ml-masterclass-teens)

WCS / PRJ / 03

#### Data science for teens

Asking a question of messy data, then charting the answer honestly.

[Open the syllabus](/courses/data-science-course-for-teens-python-data)

How classes run

## Grade 12 math and coding, live and in step with 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

Early evening in your zone, fixed once you pick a batch.

Weekends

Weekend mornings work well around Grade 12 timetables.

1-on-1

Planned around unit tests, exams and contest dates.

### Same teacher each week

Someone who knows the student’s math history.

### School outline first

Units taught in the order the school uses.

### Reasoning over recipes

Why each step works, checked a second way.

### Code alongside math

Short programs that test the idea just learned.

### No application writing

We teach skills; the student writes the forms.

### Group or private

A class of fifteen to twenty, or your teen alone.

Student work

## Projects by students we teach

Projects from learners we have taught, the kind of work a student can describe truthfully in their own words. More are on the [student labs](/student-labs) page.

![NutriLife AI nutrition coach project screenshot](/images/projects/nutrilife.webp)

AI and ML

#### NutriLife

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

by Bhavya · [Open it](https://nutrilife-bhavya.lovable.app)

![Misti AI chatbot for maths and coding screenshot](/images/projects/misti.webp)

AI and ML

#### Misti

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

by Harshit · [Open it](https://misti.modernagecoders.com)

![GuardianX AI internet safety assistant screenshot](/images/projects/guardianx.webp)

AI and ML

#### GuardianX

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

by Vivaan · [Open it](https://guardianx-cybersaver.lovable.app)

![SkyCast weather forecast application screenshot](/images/projects/skycast.webp)

Web app

#### SkyCast

A weather forecasting site with live conditions for any location.

by Krish

Fees

## Fees

Start with a free class. If it suits, the monthly fee covers eight live classes a month, shown with its currency code, with no term contract and no penalty for stopping after any month.

Free first class

Free

no card required

- No charge for the opening class
- Bring a current unit or problem set
- No card asked for

Book it

Group batch

$100 USD

a month, eight live classes

- Fifteen to twenty students
- The same teacher throughout
- Choose your batch
- Billed monthly

Start here

One to one

$150 USD

a month, eight live classes

- Your teen and one teacher
- Paced to their own course
- Times around tests and exams

Enquire

What families say

## Rated 4.9 across 547 Google reviews

What families and students have written about us on Google, unedited.

★★★★★

"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

Asked by parents and students

## Waterloo Computer Science admission: common questions

### What courses does Waterloo require for Computer Science?

For Ontario students, Waterloo's requirements page read on 22 October 2026 listed Advanced Functions 4U, Calculus and Vectors 4U, a Grade 12 university English and one more Grade 12 U course, inside a minimum of six Grade 12 U or M courses. The Admission Information Form is also required. Other provinces have their own lists in Waterloo's requirements tool.

### What average does Waterloo publish for Computer Science?

Waterloo lists the admission average as individual selection from the low to mid-90s. It also says there are no absolute cut-off grades for individual selection programs, that averages depend on applications and spaces, and that the range is based on previous years. We do not predict any applicant's chances.

### Is ICS3U required for Waterloo Computer Science?

No. Waterloo's program page names Grade 11 U Introduction to Computer Science under its recommended-course heading, and its Ontario requirements page says ICS3U and ICS4U are helpful background but will not impact the likelihood of admission if a student does not take them.

### When is the Waterloo AIF due for Computer Science?

Waterloo's AIF page, read on 22 October 2026, gave February 15, 2027 for programs other than those listed in the next rows of its deadline table, and none of those rows names Computer Science or the Faculty of Mathematics. A student applying to Engineering as well must submit by the Engineering deadline, February 1, 2027.

### Do I have to write the Euclid or the CSMC?

Waterloo says the CSMC and Euclid are not required for admission, but writing one is required for some Faculty of Mathematics scholarships. Its FAQ adds that contest results are used in scholarship decisions and possibly admission decisions. A teacher at the student's school must register them; tutoring schools are not eligible.

### Does Waterloo look at Grade 11 marks?

Waterloo's FAQ says it can use Grade 11 marks with mid-term or predicted Grade 12 grades to make a conditional offer, and that most admission decisions are made in May once mid-term marks arrive. The final offer conditions list the grades a student must still reach.

### Can a required course be taken in summer school or online?

Waterloo's repeated courses page says that for September 2027 entry it accepts accredited day, summer, night, online and private school courses without penalty, and uses the highest grade for a repeated course. It still recommends taking required Grade 12 courses in the regular school year.

### What does Waterloo require from students in British Columbia or Alberta?

For British Columbia, Waterloo listed English Studies 12 or English First Peoples 12, Pre-Calculus 12, and Calculus 12 or AP Calculus. For Alberta it listed Mathematics 30-1, Mathematics 31 and English Language Arts 30-1. Both pages also require the Admission Information Form.

### Will you help write my Waterloo application or AIF?

No. Waterloo requires students to complete the AIF themselves, and no one on our team writes or polishes application text. We teach math and programming, and help students build projects they understand well enough to describe honestly themselves.

### Can you guarantee admission to Waterloo?

No one honestly can, and we do not. Waterloo selects Computer Science students individually using grades and supplementary forms. Our classes build real skill in Grade 12 math and programming, which helps in first year whatever the decision.

### When are the live classes held?

Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays. We set each time in your own zone, Eastern time for most of Ontario, and check it again whenever the clocks change.

Elsewhere on this site

## Related pages

Further reading for Canadian students planning a computer science degree.

### [Coding classes in Canada](/coding-classes-in-canada)

All of our pages for Canadian families, in one place.

### [ICS3U help](/ics3u-computer-science-help)

The Ontario Grade 11 computer science course, unit by unit.

### [CCC preparation](/canadian-computing-competition-ccc-prep)

What the Canadian Computing Competition tests.

### [CCC Junior guide](/ccc-junior-guide)

The Junior level, with original practice problems.

### [Waterloo math contests](/cemc-waterloo-contests-preparation)

Gauss to Euclid, and how students enter.

### [Math tutoring in Canada](/online-math-tutor-canada)

Grade 12 math taught for understanding.

### [Coding classes in Ontario](/coding-classes-in-ontario)

Our main page for families across the province.

### [Think like a programmer](/how-to-think-like-a-programmer)

Breaking a problem down before writing code.

### [How we teach](/how-we-teach)

A live class with us, described in full.

Start here

## Start with one free class

Share your teen’s grade, the math course they are taking now and whether they already code. We open with the unit they are on this week, and the teacher will say honestly what needs work.

Want to see the material first? The [Grade 12 university math syllabus](/courses/ontario-grade-12-university-math-mhf4u-mcv4u-course) lists every unit, and [our teaching method](/how-we-teach) explains how a class runs.

[WhatsApp us](https://wa.me/919123366161?text=Hello%20Modern%20Age%20Coders%2C%20my%20teen%20is%20planning%20to%20apply%20to%20Waterloo%20Computer%20Science%20and%20wants%20help%20with%20Advanced%20Functions%2C%20Calculus%20and%20Vectors%20and%20programming.%20Could%20we%20book%20a%20free%20first%20class%3F) · [+91 91233 66161](tel:+919123366161) · [connect@modernagecoders.com](mailto:connect@modernagecoders.com)

Every class is live on video with a teacher working from India, so there is no commute and no stranger in your home. WhatsApp is the fastest way to reach us from anywhere in Canada.

### 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](/book-demo)

## Keep exploring Modern Age Coders

### Related courses and guides

- [We Teach You How to Think](/we-teach-you-how-to-think)
- [Waterloo AIF Guide: Questions, Deadline, AI Rule, Hours](/waterloo-aif-guide)
- [Web Application Development Company](/web-application-development-services)
- [VS Code Setup for Students: Python and Java Without Errors](/vs-code-setup-for-students)
- [What Happens in a Demo Class](/what-happens-in-a-demo-class)
- [Video Game Design for Kids in Australia](/video-game-design-for-kids-australia)
- [Computer Science Internships for High School Students](/computer-science-internships-for-high-school-students)
- [Big Bang Competition Project Help](/big-bang-competition-project-help)
- [Coding Competitions for Primary Kids in Australia: A Guide](/australian-coding-competitions-for-primary-kids)

### Free resources

- [AI & Machine Learning Tutorial: Basics to Deep Learning](/resources/ai-and-machine-learning)
- [Taking Input with Scanner](/resources/java/taking-input-in-java)
- [Arrays in Java](/resources/java/arrays-in-java)
- [Dimensionality Reduction](/resources/ai-and-machine-learning/dimensionality-reduction)

### From the blog

- [How to Get a 5 in AP Computer Science A (2026)](/blog/how-to-get-a-5-in-ap-computer-science-a)
- [AP Computer Science A Changes for 2026: A Parent's Guide](/blog/ap-computer-science-a-changes-2026)
- [AP CSP vs AP CSA: Which Is Harder, and Which to Take First](/blog/ap-csp-vs-ap-csa-which-to-take-first)

### Start here

- [Modern Age Coders pricing, one honest price per plan](/pricing)
- [How Modern Age Coders teaches, small batches and real projects](/how-we-teach)

Free class[Priority demo](/book-demo)[Call us](tel:+919123366161)

---

*Canonical: https://learn.modernagecoders.com/waterloo-computer-science-admission-requirements*
