---
title: "ICS3U vs ICS3C: Choosing Grade 11 Computer Studies in Ontario"
description: "ICS3U or ICS3C? The two Grade 11 Ontario computer courses compared on twelve points from the curriculum, with a sample task from each and a way to decide."
canonical: https://learn.modernagecoders.com/ics3u-vs-ics3c
source: src/pages/ics3u-vs-ics3c.html
---
> ICS3U or ICS3C? The two Grade 11 Ontario computer courses compared on twelve points from the curriculum, with a sample task from each and a way to decide.

Which one?

ICS3U, Introduction to Computer Science, prepares Ontario Grade 11 students for university and leads to ICS4U. ICS3C, Introduction to Computer Programming, prepares them for college and apprenticeship and leads to ICS4C. Neither needs a prerequisite. Modern Age Coders teaches either course live online, one to one or in a group, through Ontario Computer Science Companion: ICS3U and ICS4U.

Help in either course

## Three courses for Grade 11 programmers

The companion course is built around the university track and also suits ICS3C students who want a firmer base. The other two match what each track leans on.

[![Ontario Computer Science Companion course thumbnail](/images/ontario-computer-science-ics3u-ics4u.webp)  II / 01 Ontario Computer Science Companion Paced to the school outline for ICS3U, and useful for an ICS3C student thinking about the university route later. Open the syllabus →](/courses/ics3u-ics4u-computer-science-companion-course)[![Python for Teens course thumbnail](/images/python-teens.webp)  II / 02 Python for teens Input, checking, loops and functions with real programs, the practical core both Grade 11 courses share. Open the syllabus →](/courses/python-complete-masterclass-teens)[![MySQL for Teens course thumbnail](/images/mysql-teens.webp)  II / 03 MySQL for teens Databases, which the curriculum names among the practical skills college preparation courses aim at. Open the syllabus →](/courses/mysql-mastery-for-teens)

From the curriculum

## Twelve differences between ICS3U and ICS3C

Both courses live in the same 2008 Computer Studies document and share a structure of four strands, so the differences sit in the detail of the expectations. The middle columns below are quoted from the document; the last column is our reading of what each difference means in class.

| Criterion | ICS3U says | ICS3C says | What it means (ours) |
| --- | --- | --- | --- |
| 1. What the course is for | University preparation courses help students “explore the theoretical underpinnings of computer science” | College preparation courses introduce “programs that focus on the practical skills businesses currently demand” | Why it works, against how to make it work |
| 2. The description | “Students will develop creative solutions for various types of problems as their understanding of the computing environment grows.” | “Students will write and test computer programs, using various problem-solving strategies.” | Both write real programs; U speaks of creative solutions, C of writing and testing |
| 3. Data | Students “declare, initialize, modify, and access one-dimensional arrays” | Students “use different data types in expressions in simple computer programs” | Arrays are central in U; C stays with single values and strings |
| 4. Subprograms | A strand A overall expectation of its own: “demonstrate the ability to use subprograms within computer programs” | In strand B: “write subprograms (e.g., functions, procedures) that perform one well-defined task” | Both write functions; U treats them as a core programming skill |
| 5. Problem-solving strategies | Listed with “stepwise refinement” first | Listed as “divide and conquer, working backwards, process analysis” and others | C adds process analysis, the habit of a business analyst |
| 6. Working with others | Strand B opens with solving problems “independently and as part of a team” | Strand B opens with “use a variety of problem-solving strategies to solve different types of problems”, and names no team | Teamwork is written into the U course’s problem solving |
| 7. Sample algorithms | Examples include how to “delete a datum from the middle of an array” | “validate entered data, count, accumulate, use random numbers” | U manipulates stored data; C makes input reliable |
| 8. Math in programs | “calculation of hypotenuse, determination of primes, calculation of area and circumference” | “calculation of gross pay; fuel consumption on a car trip; average of students' marks” | U leans on school geometry and number; C on everyday arithmetic |
| 9. When things go wrong | “detect, intercept, and handle exceptions” | “detect, intercept, and handle run-time errors” | The same skill, with U using the formal word exception |
| 10. Hardware | “relate the specifications of computer components to user requirements” | “demonstrate an understanding of the functions of different types of computer components” | U matches a machine to a need; C explains what each part does |
| 11. The fourth strand | Topics in Computer Science, with research areas such as “parallel processing, distributed computing” | Computers and Society: “describe and apply procedures for safe computing to safeguard computer users and their data” | U looks at research; C at safe, practical computer use |
| 12. The Grade 12 course it opens | ICS4U, Computer Science | ICS4C, Computer Programming | Each Grade 11 course is the prerequisite for its own Grade 12 course |

### What the two have in common

Much of the course is shared. Both ask for user input, processing and screen output; both use sequence, selection and repetition; both ask students to correct syntax, logic and run-time errors and to test their programs against a test plan. Both apply the same seven-phase software development life cycle to a project.

So an ICS3C class is not a lighter copy of ICS3U. It is a programming course with its own focus, and a student who does well in it has learned to write, test and fix real programs.

### Where the real gap is

The gap is clearest in rows 3 and 7. ICS3U students spend weeks on arrays: storing a list of values, searching it, inserting into it and deleting from it. ICS3C students spend that time on making a program robust: checking what a user typed, counting and totalling, and handling a run-time error without crashing.

Row 1 explains why. The curriculum says college preparation courses aim at challenges “such as creating custom programs, tailoring existing program packages, and using database management systems and scripting languages”. That is a practical brief, and a good one for the right student.

Source: [The Ontario Curriculum, Grades 10 to 12: Computer Studies (2008)](https://www.edu.gov.on.ca/eng/curriculum/secondary/computer10to12_2008.pdf), the program overview, the course table and the ICS3U, ICS3C, ICS4U and ICS4C course pages, read 22 October 2026. The current Ontario curriculum website lists both Grade 11 courses with the issue year 2008. We have no connection with the Ontario Ministry of Education.

Two sample tasks, ours

## One ICS3C-style task and one ICS3U-style task, in Python and Java

Expectations are easier to compare as programs. We wrote one task in the spirit of each course, using examples the curriculum itself lists: fuel consumption on a car trip for ICS3C, and adding data to a sorted array for ICS3U. Neither is from any school’s course; all four programs were run.

**Task C, the ICS3C kind.** Ask for the distance of a trip in kilometres and the fuel used in litres, refuse anything that is not a sensible number, then print the fuel use in litres per 100 km and a one-word rating. The hard part is not the formula. It is the program’s behaviour when the user types `four hundred`, or a negative number.

***Python · Task C, fuel use with checked input (ours)**python*

```
# Fuel use for a car trip, with checked input (ours, an ICS3C-style task)

def read_number(prompt, low, high):
    """Keep asking until the user types a number from low to high."""
    while True:
        text = input(prompt)
        try:
            value = float(text)
        except ValueError:
            print("That is not a number. Try again.")
            continue
        if low < value <= high:
            return value
        print("Please type a number above", low, "and up to", high)

def litres_per_100_km(litres, km):
    return litres / km * 100

km = read_number("Distance driven in km: ", 0, 5000)
litres = read_number("Fuel used in litres: ", 0, 500)
rate = litres_per_100_km(litres, km)
print("Fuel use:", round(rate, 1), "L/100 km")
if rate < 6:
    print("Rating: efficient")
elif rate <= 10:
    print("Rating: typical")
else:
    print("Rating: thirsty")
```

Run with the inputs four hundred, -20, 412 and 31.5, it rejects the first two, then prints Fuel use: 7.6 L/100 km and Rating: typical. The try and except block is the run-time error handling the ICS3C expectations ask for.

***Java · Task C, fuel use with checked input (ours)**java*

```
// Fuel use for a car trip, with checked input (ours, an ICS3C-style task)
import java.util.Scanner;

public class Fuel {
    static Scanner in = new Scanner(System.in);

    // Keep asking until the user types a number above low and up to high.
    static double readNumber(String prompt, double low, double high) {
        while (true) {
            System.out.print(prompt);
            String text = in.nextLine().trim();
            try {
                double value = Double.parseDouble(text);
                if (value > low && value <= high) {
                    return value;
                }
                System.out.println("Please type a number above " + low + " and up to " + high);
            } catch (NumberFormatException e) {
                System.out.println("That is not a number. Try again.");
            }
        }
    }

    public static void main(String[] args) {
        double km = readNumber("Distance driven in km: ", 0, 5000);
        double litres = readNumber("Fuel used in litres: ", 0, 500);
        double rate = litres / km * 100;
        System.out.printf("Fuel use: %.1f L/100 km%n", rate);
    }
}
```

Same inputs, same result line. One small difference worth noticing: Java prints the limits as 0.0 and 5000.0 because they are doubles, where the Python version prints 0 and 5000.

**Task U, the ICS3U kind.** A list of marks is already sorted from low to high. Add a new mark so the list stays sorted, without calling a built-in sort or insert. The hard part is the shifting: every value larger than the new one moves one place to the right, starting from the end, and the new value drops into the gap.

***Python · Task U, insert into a sorted list (ours)**python*

```
# Add a value to a sorted list without sort() or insert() (ours, an ICS3U-style task)

def insert_sorted(values, new):
    """values is sorted from low to high. Return a new list with
    new placed so the order is kept."""
    result = values + [None]          # one extra slot at the end
    i = len(values) - 1
    while i >= 0 and result[i] > new:
        result[i + 1] = result[i]     # shift bigger values one place right
        i -= 1
    result[i + 1] = new               # the gap is where new belongs
    return result

marks = [52, 61, 70, 84, 93]
print(insert_sorted(marks, 77))
print(insert_sorted(marks, 40))
print(insert_sorted(marks, 99))
print(insert_sorted([], 5))
```

Prints [52, 61, 70, 77, 84, 93], then [40, 52, 61, 70, 84, 93], then [52, 61, 70, 84, 93, 99], then [5]. The last three lines test the edges: a new smallest value, a new largest value and an empty list.

***Java · Task U, insert into a sorted array (ours)**java*

```
// Add a value to a sorted array, keeping the order (ours, an ICS3U-style task)
import java.util.Arrays;

public class InsertSorted {

    // count says how many slots of values are in use; the array has room for one more.
    public static int insertSorted(int[] values, int count, int newValue) {
        int i = count - 1;
        while (i >= 0 && values[i] > newValue) {
            values[i + 1] = values[i];      // shift bigger values one place right
            i--;
        }
        values[i + 1] = newValue;           // the gap is where newValue belongs
        return count + 1;                   // one more slot is now in use
    }

    public static void main(String[] args) {
        int[] marks = new int[6];
        int[] start = {52, 61, 70, 84, 93};
        for (int k = 0; k < start.length; k++) {
            marks[k] = start[k];
        }
        int count = insertSorted(marks, 5, 77);
        System.out.println(Arrays.toString(Arrays.copyOf(marks, count)));
    }
}
```

Prints [52, 61, 70, 77, 84, 93]. A Java array cannot grow, so the program keeps a count of the slots in use: a pattern ICS3U Java classes meet often.

|   | Task C (ICS3C kind) | Task U (ICS3U kind) |
| --- | --- | --- |
| Main skill | Checking input and handling errors | Moving data inside an array |
| Where students slip | Forgetting the user can type anything | Shifting from the front and overwriting values |
| Edge cases to test | Text, zero, a negative, a huge value | Smallest, largest, empty list |
| Typical bug | A crash on bad input | An index one past the end |
| Closest real job | A form or a till that must not crash | Keeping a leaderboard in order |

### What a student learns from trying both

Students who enjoy Task U, where the challenge is in the logic of the data, tend to enjoy the direction ICS3U and then ICS4U take: searching, sorting, recursion and analysing algorithms.

Students who enjoy Task C, where the challenge is making a program behave well for a real person, often enjoy the direction ICS3C and ICS4C take: object-oriented programs with graphical interfaces, data validation and projects that look like workplace software.

### Both tasks start the same way

Before any code, we ask students to write three lines: what goes in, what the program does with it, and what comes out. Both curriculum courses name this input-process-output model, and it is the step that turns a vague task into a plan.

Then they list the test cases before running anything. For Task C the list starts with text where a number should be. For Task U it starts with an empty list. Writing those down first is the habit we care about most in either course.

A way to decide

## How to choose between ICS3U and ICS3C, in five steps

The curriculum’s own advice is short: “Students choose between course types on the basis of their interests, achievement, and postsecondary goals.” These steps, which are ours, turn that sentence into questions a family can answer at the kitchen table. The school’s guidance counsellor has the final word on any one student’s timetable.

1. **Name the destination, even roughly.** If the plan is a degree in computer science, engineering or math, that points to ICS3U, because the university preparation course is the one designed to meet university entrance requirements and it is the only Grade 11 course that leads to ICS4U. A college program in programming, IT or a related trade points to ICS3C.
2. **Check the Grade 12 course you will need.** ICS4U lists ICS3U as its prerequisite, and ICS4C lists ICS3C. Choosing the Grade 11 course is also choosing which Grade 12 computer course is open next year.
3. **Look at the math plan beside it.** University computer science programs care most about Grade 12 math. A student on the Functions, Advanced Functions and Calculus and Vectors route is usually also on the U route in computer studies.
4. **Be honest about interest, not only marks.** A student who wants to know why an algorithm works will be happier in ICS3U. A student who wants to build something useful quickly may be happier in ICS3C, and will still write real code.
5. **Ask about the school’s offer.** Each school decides which courses it runs and which language it teaches them in. The school course calendar and the counsellor say what is actually available.

| If the student... | Lean toward |
| --- | --- |
| plans a university degree in computer science, engineering or math | ICS3U |
| wants ICS4U in Grade 12 | ICS3U |
| plans a college diploma in programming or IT, or an apprenticeship | ICS3C |
| enjoys puzzles about data and order, like Task U | ICS3U |
| enjoys making a program behave well for its user, like Task C | ICS3C |
| has not decided between college and university | A talk with the counsellor first: ICS3U opens only ICS4U and ICS3C opens only ICS4C, so this choice sets the Grade 12 option |

### A common worry: is ICS3U too hard to try?

The course table lists no prerequisite for ICS3U, which means a student with no coding background can enrol in it. The first unit is the same kind of programming in both courses, and the step up in ICS3U comes later, with arrays and subprograms.

What helps most is starting early. A student who has written a few small programs over the summer meets the array unit with confidence instead of panic. That is often where an outside teacher is most useful.

### A common mistake: choosing by the friend group

Students often take whichever course their friends picked. Computer studies is optional, and the Grade 11 choice shapes the Grade 12 choice through its prerequisite, so it is worth a ten-minute conversation about the destination first.

It is also worth remembering that a college preparation course is a real course with a real purpose. Students who take ICS3C because it fits their plans are not settling; they are choosing the course designed for where they are going.

Grade 12 and after

## Where ICS3U and ICS3C lead

Each Grade 11 course opens its own Grade 12 course, and the two Grade 12 courses differ even more than the Grade 11 pair. Here they are, from the same 2008 document.

|   | After ICS3U: ICS4U | After ICS3C: ICS4C |
| --- | --- | --- |
| Full title | Computer Science, Grade 12, University Preparation | Computer Programming, Grade 12, College Preparation |
| Headline skill | Students “design a simple and efficient recursive algorithm” and “analyse algorithms for their effectiveness in solving a problem” | Students “design graphical user interfaces” and build object-oriented software |
| Sample work named | Searching, sorting, recursion, two-dimensional arrays | Rounding for “currency calculations, amortization, recipe volume changes”; validating “postal codes, telephone numbers, SINs” |
| Uses built-in tools | Students write their own searches and sorts | Students also use library routines, with the example “Arrays.sort(intArray)” |
| Half credit allowed | No: the document excludes “the Grade 12 university preparation course” | Yes, like the other courses in the document |

### University, in the universities’ words

On 22 October 2026, the University of Waterloo’s Computer Science page named ICS3U by its title as the recommended course for Ontario applicants: “Grade 11 U Introduction to Computer Science”. It is the U course, not the C course, that the page names.

The University of Toronto’s Computer Science listings ask Ontario applicants for an OSSD with “six subjects at the 4U/M level”. ICS4C is a college preparation course, so on our reading it is not one of the 4U/M courses that line counts, while ICS4U is. Check each university’s page in the year your teen applies.

### College and apprenticeship

For college, the 2008 document is clear about the purpose: the C courses are designed for entrance “to most college programs” and for apprenticeship and other training. Individual college programs set their own admission requirements, so a family should read the requirements of the programs they are considering.

If plans change after Grade 11, the prerequisite rule matters: a student who took ICS3C and later wants ICS4U needs ICS3U first, because that is the prerequisite the course table lists.

How we help in each course

## What our classes look like for an ICS3U student and an ICS3C student

In both cases the plan comes from the outline the school handed out, in whichever language the school uses. The focus is different because the courses are different.

### For an ICS3U student

We spend the most time on arrays and subprograms: tracing a loop over an array by hand, rebuilding the standard array algorithms without notes, and passing values in and out of functions correctly. We also prepare the project plan before the project starts.

For students heading toward ICS4U, we often add a first look at searching and sorting near the end of Grade 11, so that Grade 12 begins as a second visit.

### For an ICS3C student

We spend the most time on making programs reliable: reading input safely, building test plans that include silly input, and finding the cause of a run-time error from its message. We also build small, practical programs the student cares about.

For students who may switch to the university route, we cover the array work that ICS3U adds, so the option stays realistic.

### The same teacher

One regular teacher who learns the course outline, the language and the student’s habits, rather than a new face each week.

### Thinking first

Students explain their plan in words before they type. We do not hand over answers, and we do not let an AI tool write the assignment.

### The school sets the pace

Classes follow the school’s unit order, and the student’s teacher remains the person who marks and grants the credit.

Ready for Grade 11?

## Four signs of readiness for either Grade 11 course

Our own checklist, used in a first class with students about to choose.

| Sign | What it looks like |
| --- | --- |
| 1. Follows a recipe | Can follow numbered steps exactly and spot when one is missing |
| 2. Thinks in cases | Asks what should happen if the input is empty, zero or nonsense |
| 3. Reads before running | Predicts what a five-line program prints before pressing Run |
| 4. Explains in words | Can say what a program does without reading it line by line |

### For parents

None of these signs needs any coding experience. They are habits of careful thinking, and both courses build on them.

A student strong on signs 3 and 4 is usually ready for the pace of ICS3U, whatever their background.

### For students

Try Task C and Task U above on paper before reading the code. Notice which one you enjoyed more.

Then talk to your counsellor with that answer and your rough plan after high school.

Our catalogue

## Nine more courses for Grade 11 students

Each is a live course with one regular teacher, for a group or for a single student.

I

### Programming foundations

Grades 10 to 12

II / FND / 01

#### Java for teens

For Grade 11 classes taught in Java.

[Open the syllabus](/courses/java-programming-masterclass-for-teens)

II / FND / 02

#### Problem solving for teens

Arrays, searching and sorting, step by step.

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

II / FND / 03

#### Git and GitHub for teens

Saving every version of a project safely.

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

### Practical building

Teens

II / BLD / 01

#### Front-end development

Interfaces people can click and use.

[Open the syllabus](/courses/frontend-development-masterclass-for-teens)

II / BLD / 02

#### App development for teens

From an idea to an app on a phone.

[Open the syllabus](/courses/complete-app-development-masterclass-for-teens)

II / BLD / 03

#### Cybersecurity for teens

Safe computing, taken further.

[Open the syllabus](/courses/cybersecurity-course-for-teens-ethical-defensive)III

### Stretch and challenge

Grades 9 to 12

II / STR / 01

#### CCC Junior and Senior preparation

The Waterloo programming contest, prepared properly.

[Open the syllabus](/courses/ccc-junior-and-senior-preparation-course)

II / STR / 02

#### Data science for teens

Real data, cleaned and charted in Python.

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

II / STR / 03

#### AI and machine learning for teens

How models learn, built from the ground up.

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

When and how

## Live classes for Grade 11, in either course

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, at a time agreed in your Ontario time zone.

Weekends

Morning sessions for steady weekly practice.

1-on-1

Booked around the next test or project date.

### U or C

Either Grade 11 course, from its own outline.

### Python or Java

Whichever the class is taught in.

### Plans before code

Input, process, output, then tests.

### Your assignments

Explained clearly, never done for you.

### One teacher

The same person every week.

### Batch or private

Fifteen to twenty students, or one.

Student work

## Built by our students

A few projects from students who learned to program with us. The [student labs](/student-labs) page shows more.

![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

The first class is free. After that a monthly fee covers eight live classes a month; the figure below appears in your local currency, and there is no long contract, so you can stop at the end of a month.

Free first class

Free

no card required

- A free first class
- Talk through the U or C choice
- No card details

Book it

Group batch

$100 USD

a month, eight live classes

- Fifteen to twenty in a batch
- A regular teacher
- A batch time you choose
- Billed monthly

Start here

One to one

$150 USD

a month, eight live classes

- Your teen and one teacher
- Times that suit your week
- Planned from their own course

Enquire

What families say

## Rated 4.9 across 547 Google reviews

Google reviews from families, printed as they wrote them.

★★★★★

"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

Questions families ask

## ICS3U vs ICS3C: common questions

### What is the difference between ICS3U and ICS3C?

ICS3U, Introduction to Computer Science, is the Grade 11 university preparation course and leads to ICS4U. ICS3C, Introduction to Computer Programming, is the Grade 11 college preparation course and leads to ICS4C. ICS3U puts more weight on arrays and the theory behind programs; ICS3C puts more weight on practical, reliable programs.

### What is ICS3C?

ICS3C is Introduction to Computer Programming, Grade 11, College Preparation, described in Ontario's 2008 Computer Studies curriculum. Students write and test programs, learn program design, run a project with a software development life cycle, and study computer components, safe computing and careers.

### Does ICS3C have a prerequisite?

No. The 2008 curriculum lists no prerequisite for ICS3C or for ICS3U, and the current Ontario curriculum website shows none either.

### Can I take ICS4U after ICS3C?

Not directly. The prerequisite for ICS4U is ICS3U. ICS3C is the prerequisite for ICS4C, the Grade 12 college preparation course. A student who wants ICS4U after ICS3C should talk to the school counsellor about taking ICS3U first.

### Is ICS3C easier than ICS3U?

It is different rather than simply easier. ICS3C spends less time on arrays and more on input checking, counting, totalling and handling run-time errors. Both courses ask students to write, test and debug real programs.

### Which one do universities want for computer science?

On 22 October 2026, the University of Waterloo named Grade 11 U Introduction to Computer Science, which is ICS3U, as its recommended course for Computer Science. University computer science programs mostly require Grade 12 math and English; check each program's own page in the year you apply.

### Is ICS3C good for college programs?

The 2008 curriculum says college preparation courses are designed to help students meet the requirements for entrance to most college programs or for admission to apprenticeship or other training programs. Each college program sets its own admission requirements, so check the programs you are considering.

### Do you teach ICS3C as well as ICS3U?

Yes. We help students in either course, in the language their school uses, working from their own course outline and assignments.

### Do you grant the ICS3U or ICS3C credit?

No. Our classes are teaching and practice beside the school course, and we do not grant Ontario credits. The credit comes from the school or credit provider that teaches and evaluates the course.

### When are 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 the time in your own Ontario time zone.

### What does it cost?

The first class is free. After that families pay a monthly fee and can stop at the end of any month. The fees section shows the current figure for a batch and for one to one.

Related reading

## More for Ontario students

Pages that pick up where this one stops.

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

The university track course in depth, with practice questions.

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

Live classes for learners of every age in the province.

### [Online math tutor for Canada](/online-math-tutor-canada)

The Grade 11 and 12 math that sits beside computer studies.

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

A contest open to students in either course through their school.

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

The planning habit both courses reward.

### [Python or Java first](/blog/python-vs-java-which-to-learn-first)

For families whose school offers a choice of language.

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

All our pages for Canadian families.

Start here

## Book a free first class

Tell us which course your teen is taking or considering, the language the school uses and what they hope to do after high school. The first class works on a real task at their level.

Reading first is fine. The [companion course syllabus](/courses/ics3u-ics4u-computer-science-companion-course) lists the Grade 11 weeks, and [our teaching method](/how-we-teach) is set out in full.

[WhatsApp us](https://wa.me/919123366161?text=Hello%20Modern%20Age%20Coders%2C%20my%20teen%20in%20Ontario%20is%20choosing%20between%20ICS3U%20and%20ICS3C%20for%20Grade%2011.%20Could%20we%20book%20a%20free%20first%20class%20to%20talk%20it%20through%3F) · [+91 91233 66161](tel:+919123366161) · [connect@modernagecoders.com](mailto:connect@modernagecoders.com)

All classes are live video lessons with teachers working from India, so there is nowhere to travel to. From Ontario, a WhatsApp message gets the quickest reply.

### 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

### More comparisons

- [iD Tech Alternative: Camps, Private Lessons, Weekly Classes](/id-tech-alternative)
- [Group vs One-to-One Maths Tuition: Cost, Evidence, Fit](/group-vs-one-to-one-maths-tuition)
- [Khan Academy Computer Science vs Live Classes: How to Choose](/khan-academy-computer-science-vs-live-classes)
- [GCSE Maths Tutor Cost UK 2026: Hourly Rates by Format](/gcse-maths-tutor-cost-uk)
- [KS2 and 11 Plus Maths Tutor Cost UK 2026: What to Budget](/ks2-and-11-plus-maths-tutor-cost-uk)
- [GCSE Maths Foundation vs Higher Tier: Which Should You Sit?](/gcse-maths-foundation-vs-higher)
- [Vibe Coding vs Building AI in the Netherlands](/vibe-coding-vs-building-ai-netherlands)
- [BrightChamps Alternative 2026: Focused Depth, Not Breadth](/brightchamps-alternative)
- [Online vs In-Person Coding Classes in Australia Compared](/online-vs-in-person-coding-classes-australia)

### Learn more

- [MHF4U Advanced Functions Tutor: Grade 12 Help and Exam Prep](/mhf4u-advanced-functions-tutor)
- [Coding Curriculum by Province: Canada's Schools Compared](/canada-coding-curriculum-by-province)
- [Ontario Math Curriculum Coding, Grades 1 to 8, by Grade](/ontario-coding-curriculum-grades-1-to-8)
- [MCR3U Functions Tutor: Grade 11 Help and Final Exam Prep](/mcr3u-functions-tutor)

### Free resources

- [HTML & CSS Tutorial: Build Websites from Scratch](/resources/html-and-css)
- [Semantic HTML - header, nav, main, section, article, footer](/resources/html-and-css/semantic-html)
- [Variables, Data Types, and Type Casting](/resources/cpp/variables-and-data-types)
- [Conditional Statements (if, else, switch)](/resources/cpp/conditional-statements)

### From the blog

- [IGCSE Computer Science (0478) Explained for Parents](/blog/igcse-computer-science-explained-for-parents)
- [Best Coding Courses Online for Students 2026-27](/blog/best-free-paid-coding-courses-students)
- [Best WhiteHat Jr Alternative in 2026](/blog/whitehat-jr-alternative)

### Start here

- [Try a free trial class with a Modern Age Coders mentor](/free-trial)
- [About Modern Age Coders, teaching since 2020](/about)

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

---

*Canonical: https://learn.modernagecoders.com/ics3u-vs-ics3c*
