Ontario · Grade 10 · Computer studies, open course

ICD2O explained: the Grade 10 digital technology course, and what happened to ICS2O

Search for the Grade 10 computer course in Ontario and two codes come back: ICD2O and ICS2O. The current Ontario curriculum website lists one of them, ICD2O, Digital Technology and Innovations in the Changing World, issued in 2023. The other, ICS2O, Introduction to Computer Studies, is the Grade 10 course in the 2008 curriculum document. This page reads ICD2O from the ministry’s own data, sets it beside ICS2O expectation by expectation, and builds one small project at its level. We teach coding beside the school course and do not grant Ontario credits, so the ICD2O credit itself comes from the school.

Live online since 2020 · 10,000+ students · Grade 10 coding in Python

In one paragraph

ICD2O, Digital Technology and Innovations in the Changing World, is the Grade 10 open computer studies course on Ontario’s current curriculum website, issued 2023, no prerequisite. Students learn programming, hardware, cybersecurity and artificial intelligence. Modern Age Coders runs live online Grade 10 coding classes, one to one or in a group batch, with our course Python for teens.

Learn beside ICD2O

Three courses for a Grade 10 student

Python for teens matches the programming strand most closely. The companion course is the next step toward Grade 11, and cybersecurity takes one ICD2O theme further.

The course record

What ICD2O is, from the Ontario curriculum website

The Ontario curriculum website is built on a public content service, and its course record for ICD2O gives the basic facts directly. We read it on 22 October 2026. The table below shows each field, and the description that follows is quoted from the same record.

The ICD2O course record on the current Ontario curriculum website (read 22 October 2026)
FieldICD2O
Course codeICD2O
NameDigital Technology and Innovations in the Changing World
Year issued2023
Grade10
DestinationOpen
PrerequisiteNone listed
Part ofComputer studies, beside ICS3U, ICS3C, ICS4U and ICS4C
StrandsA. Computational Thinking and Making Connections; B. Hardware, Software, and Innovations; C. Programming

The description, in the ministry’s words

The record opens with an ambitious sentence: “This course helps students develop cutting-edge digital technology and computer programming skills that will support them in contributing to and leading the global economic, scientific and societal innovations of tomorrow.”

It names artificial intelligence and cybersecurity as topics, then ends on judgement rather than skill: “Using critical thinking skills with a focus on digital citizenship, students will investigate the appropriate use and development of the digital technologies that they encounter every day, as well as the benefits and limitations of these technologies.”

What open means

Open is one of the three course types in Ontario computer studies. The 2008 document defines open courses as courses that broaden students’ knowledge and interests, and adds: “They are not designed with the specific requirements of universities, colleges, or the workplace in mind.”

In practice, an open Grade 10 course is for every student, whatever their plans. A student heading for university computer science and a student who simply wants to understand the technology around them can sit in the same ICD2O class.

Source: the ICD2O course record and the computer studies course list on the Ontario curriculum website (dcp.edu.gov.on.ca), read through its public content service on 22 October 2026; course types from The Ontario Curriculum, Grades 10 to 12: Computer Studies (2008). The ministry has no part in our classes and has not reviewed this page.

Three strands, ten overall expectations

The three ICD2O strands and what each one asks for

ICD2O has three strands and ten overall expectations. Each expectation has a short title of its own on the curriculum website, which makes the course easy to map. Strand A works differently from the other two, and that is worth understanding first.

ICD2O overall expectations by strand, titles and wording from the Ontario curriculum website (read 22 October 2026)
CodeTitle on the websiteThe expectation, quoted
A1Computational Thinking, Planning, and Purpose“apply computational thinking concepts and practices, and use various tools and processes to plan and develop computational artifacts for a wide variety of contexts, users, and purposes”
A2Digital Technology and SocietyUnderstanding the social, cultural, economic, environmental and ethical issues around digital technology (our summary of a long expectation)
A3Applications, Careers, and ConnectionsReal-world uses of digital technology and programming, including in industries and careers (our summary)
B1Understanding Hardware and SoftwareThe functions and features of the hardware and software students meet every day (our summary)
B2Using Hardware and SoftwareWays to use hardware, software and file management, and research practices for learning new tools (our summary)
B3Cybersecurity and DataSafe and effective practices for data and cybersecurity in various contexts (our summary)
B4Innovations in Digital Technology“investigate current and emerging innovations in digital technology, including automation and artificial intelligence, and assess their benefits and limitations”
C1Programming Concepts and Algorithms“explain fundamental programming concepts and algorithms”
C2Writing Programs“use fundamental programming concepts to write simple programs”
C3Modularity and Modification“demonstrate an understanding of program components and modules”

Strand A runs through the others

Strand A, Computational Thinking and Making Connections, is not taught as a separate unit. The website says its learning happens in the context of Strands B and C, and “it should be assessed and evaluated within these contexts”. So the planning, the ethics and the career links come up inside the hardware lessons and the programming projects.

Two of its specific expectations stand out for a Grade 10 course. Students “investigate how to identify and address bias involving digital technology”, and they “analyze accessibility issues involving digital technology, and identify measures that can improve accessibility”. The project further down is built on the second.

Strand B is everyday technology

Strand B is about the devices and software students already use. It asks them to “use file management techniques, including those related to local and cloud storage, to organize, edit, and share files”, and to “apply safe and effective security practices, including practices to protect their privacy”.

Its last overall expectation, B4, is where artificial intelligence and automation sit. Students look at what the systems can do and at their limits, which is a thinking skill as much as a technical one.

Source: the ICD2O strands, overall and specific expectations on the Ontario curriculum website (dcp.edu.gov.on.ca), read through its public content service on 22 October 2026. Our summaries are marked; quoted wording is exact.

Two Grade 10 courses, side by side

ICD2O and ICS2O compared, expectation by expectation

ICS2O, Introduction to Computer Studies, is the Grade 10 open course in the 2008 Computer Studies document. It does not appear in the computer studies course list on the current Ontario curriculum website, which shows ICD2O instead. We found no line in either source announcing a replacement, so this section reports each source and goes no further.

ICD2O (Ontario curriculum website, 2023) and ICS2O (2008 curriculum document), compared from each source (read 22 October 2026)
ICD2O, 2023ICS2O, 2008
Where it is listedThe current Ontario curriculum website’s computer studies listThe 2008 Computer Studies document; not on the current list
Grade, type, prerequisiteGrade 10, Open, noneGrade 10, Open, none
Opening of the descriptionDevelop “cutting-edge digital technology and computer programming skills”“This course introduces students to computer programming.”
StrandsComputational Thinking and Making Connections; Hardware, Software, and Innovations; Programming“A. Understanding Computers; B. Introduction to Programming; and C. Computers and Society”
Artificial intelligenceNamed in B4: “including automation and artificial intelligence”Not named in the ICS2O expectations (our reading)
Files and storage“local and cloud storage”File management such as “copy, move, delete, rename files; create shortcut”
SecurityB3, Cybersecurity and Data, an overall expectation of its ownMalware such as “viruses, Trojan horses, worms, spyware, adware, malevolent macros”
NetworkingNetworks and connectivity, with their benefits and limitations (B4.2)“demonstrate an understanding of home computer networking concepts”
Sample programsPrograms that “use and generate data involving various sources and formats”“guessing game, rock-paper-scissors game, multiple-choice quiz, trivia game”
Using other code“write programs that make use of external or add-on modules or libraries”Comparing “a solution developed in a programming language versus one developed using a spreadsheet”
SocietyBias and accessibility, as specific expectationsAdaptive technologies such as “text-to-speech, speech-to-text”

What the comparison shows

Both are Grade 10 open courses with no prerequisite, and both teach beginning programming. The programming core is similar: variables, decisions, loops, errors and documentation appear in each.

The differences are in the world around the code. ICD2O adds artificial intelligence and automation, cloud storage, cybersecurity as a strand of its own, bias, and programs that work with outside data and libraries. ICS2O spent more of its time on the computer itself: hardware components, operating systems and home networking.

What the sources do not say

We did not find a sentence in either source saying that ICD2O replaces ICS2O, or giving a date when one stopped and the other began. The website lists ICD2O and not ICS2O; the 2008 document describes ICS2O. That is all either says.

If a school course calendar still lists ICS2O, the school is the right place to ask which curriculum the course is taught from. For a student, the practical point is the same either way: either course is a gentle first step before Grade 11 computer studies.

Sources: the computer studies course list and ICD2O records on the Ontario curriculum website (dcp.edu.gov.on.ca), read through its public content service on 22 October 2026; The Ontario Curriculum, Grades 10 to 12: Computer Studies (2008), ICS2O course pages, read the same day.

Strand C, close up

The programming strand: what a Grade 10 student actually writes

Strand C is where ICD2O students write code. Its three overall expectations break into specific ones that read like a checklist for a first programming course. Here is the checklist, with our note on what each looks like in a lesson.

Selected ICD2O strand C specific expectations, quoted from the Ontario curriculum website, with our classroom reading
CodeThe expectationIn a lesson (ours)
C1.2“describe simple algorithms that are encountered in everyday situations”Writing the steps of a familiar task, such as checking out a library book, before any code
C2.3“write programs that include single and nested conditional statements”An if inside an if, as in practice question 3
C2.2“write programs that use and generate data involving various sources and formats”Reading a small table of data and printing a result, as the project does
C2.6“interpret program errors and implement strategies to resolve them”Reading an error message line by line, as in practice question 6
C3.2“modify an existing program, or components of a program, to enable it to complete a different task”Changing a working program to do something new, as the project’s second step does
C3.4“write programs that make use of external or add-on modules or libraries”Using import to bring in a library instead of writing everything by hand
C3.5“explain the components of a computational artifact they have created, including considerations for reuse by others”Explaining your own program to a classmate who will reuse it

Which language?

The website’s expectations do not name a programming language, and classes use different ones. Python suits a course like this because a beginner can read it almost like English, though a teacher may choose a block-based tool or another text language.

We teach ICD2O students in Python unless their class uses something else. The ideas in strand C carry straight into Grade 11, where ICS3U and ICS3C students work in a text language.

Where Grade 10 students get stuck

Not on syntax, usually. They get stuck on the step before: turning a vague task into exact steps. That is why we start every project with C1.2 thinking, the everyday algorithm written in plain words, and only then open the editor.

The second sticking point is errors. A message such as TypeError looks like a wall to a beginner. Read slowly, it says exactly which line went wrong and why, and learning to read it is a skill the curriculum names directly.

A Grade 10 project, ours

One ICD2O-level project: a colour contrast checker in Python

This project is ours, written for this page at the level of ICD2O. It joins three parts of the course: accessibility from strand A, data and a library from strand C, and a modification task at the end. It answers a real question: can people with low vision read this text on this background?

  1. Describe the everyday algorithm first. To judge whether text is readable, compare how bright the text colour is with how bright the background is. The bigger the difference, the easier it is to read.
  2. Find a trustworthy rule. The Web Content Accessibility Guidelines, WCAG 2.1, published by the W3C, define brightness as relative luminance and give the contrast ratio formula, “(L1 + 0.05) / (L2 + 0.05)”, where L1 is the lighter colour.
  3. Break it into small functions. One turns a single colour channel into linear light, one works out the luminance of a colour, and one compares two colours. Each does one job and can be tested alone.
  4. Read the data with a library. The colour pairs are a small CSV table, read with Python’s csv module. Using an existing module instead of splitting text by hand is what expectation C3.4 asks for.
  5. Decide with nested conditions. WCAG 2.1 asks for a contrast ratio of at least 4.5:1 for body text and at least 3:1 for large text. An if inside an else turns the ratio into a verdict.
  6. Test with cases you can check. Black on white must give 21, the highest ratio possible. A colour against itself would give 1. If those two come out wrong, nothing else can be trusted.
Python · colour contrast checker (ours)python
# Can people read this text? A colour contrast checker (ours)
# Formula: WCAG 2.1 relative luminance and contrast ratio (w3.org/TR/WCAG21)
import csv
import io

PAIRS = """text,background
#000000,#FFFFFF
#777777,#FFFFFF
#30520C,#FBF8F2
#FFFF00,#FFFFFF
"""

def channel(value):
    """One 0 to 255 colour channel, turned into linear light."""
    c = value / 255
    if c <= 0.04045:
        return c / 12.92
    return ((c + 0.055) / 1.055) ** 2.4

def luminance(hex_colour):
    r = int(hex_colour[1:3], 16)
    g = int(hex_colour[3:5], 16)
    b = int(hex_colour[5:7], 16)
    return 0.2126 * channel(r) + 0.7152 * channel(g) + 0.0722 * channel(b)

def contrast(a, b):
    lighter = max(luminance(a), luminance(b))
    darker = min(luminance(a), luminance(b))
    return (lighter + 0.05) / (darker + 0.05)

for row in csv.DictReader(io.StringIO(PAIRS)):
    ratio = contrast(row["text"], row["background"])
    if ratio >= 4.5:
        verdict = "passes for body text"
    else:
        if ratio >= 3:
            verdict = "large text only"
        else:
            verdict = "fails"
    print(row["text"], "on", row["background"], round(ratio, 2), verdict)

Output: #000000 on #FFFFFF 21.0 passes for body text; #777777 on #FFFFFF 4.48 large text only; #30520C on #FBF8F2 8.47 passes for body text; #FFFF00 on #FFFFFF 1.07 fails. The third pair is this page’s own accent colour on its paper background.

The checker’s results (ours, Python 3.13; thresholds from WCAG 2.1)
Text colourBackgroundContrast ratioVerdict
#000000 (black)#FFFFFF (white)21.0Passes for body text
#777777 (mid grey)#FFFFFF (white)4.48Large text only
#30520C (moss green)#FBF8F2 (paper)8.47Passes for body text
#FFFF00 (yellow)#FFFFFF (white)1.07Fails

The modification. WCAG 2.1 also has an enhanced level, which asks for “a contrast ratio of at least 7:1”. Changing the program to report four levels instead of three is a C3.2 task: modify an existing program so it completes a different task. The cleanest change replaces the nested if with one chain of elif tests, checked from the strictest level down.

Python · the four-level verdict (ours)python
# The modification: four levels instead of three (ours)

def verdict(ratio):
    if ratio >= 7:
        return "passes the enhanced level"
    elif ratio >= 4.5:
        return "passes for body text"
    elif ratio >= 3:
        return "large text only"
    return "fails"

for r in (21.0, 8.47, 4.48, 1.07, 7.0, 4.5, 3.0):
    print(r, verdict(r))

Output, in order: passes the enhanced level for 21.0, 8.47 and 7.0; large text only for 4.48 and 3.0; fails for 1.07; passes for body text for 4.5. The boundary values 7.0, 4.5 and 3.0 are there on purpose: at least means greater than or equal to.

What the project teaches

Mid grey on white, 4.48, misses the body text line by a hair. A student who rounds to one decimal place too early would print 4.5 and wrongly pass it, which is a real lesson about when to round: at the end, never in the middle.

The order of the elif tests also matters. Checking 3 before 7 would label black on white as large text only, because 21 is also at least 3. Strictest first is a rule worth remembering.

Why accessibility is a good first project

It has a right answer that can be checked, it uses real arithmetic, and it matters to real people. ICD2O asks students to analyze accessibility issues and identify measures that can improve accessibility, and this program is one such measure.

It also reuses well. Expectation C3.5 asks students to explain their program with “considerations for reuse by others”, and a classmate building a website can call the contrast function without reading how it works.

AI, automation and security

Artificial intelligence and cybersecurity in ICD2O

The ICD2O record names artificial intelligence and cybersecurity in its description, and strand B gives each its own expectation. Here is what the course asks, and how we handle the same topics in class.

What AI can and cannot do

Expectation B4.1 asks students to “investigate current innovations, including automation and artificial intelligence systems, and assess the impacts of these technologies on everyday life”. The assessing is the point.

Bias

Strand A asks students to identify and address bias involving digital technology. A Grade 10 student can already ask what data a system learned from, and who might be missing from it.

Safe practices

B3 covers safe data and security habits: strong passwords, care with links, privacy settings. These are habits, so they are practised, not memorised.

Using AI without letting it think for you

Our teachers explain how AI systems work, in plain terms, and we let students see where they go wrong. What we do not do is let a chatbot write a student’s program. A Grade 10 student who copies working code learns nothing that strand C can assess.

AI chat tools set their own age rules in their terms of use, so families should read those terms before a teen signs up for one. We do not ask students to sign up for any.

A cybersecurity habit to teach at home

If a message asks for a password through a link, do not use the link. Open the real site yourself, by typing its address or using a saved bookmark, and check there. That one habit protects against a very common trick, and it is practice question 8 below.

It also links to strand C: once a student can write a program that checks input, they understand why a website that does not check its input is a security risk.

Practice, ours

Ten ICD2O practice questions, with answers

We wrote these ten for this page; none is from a school, a board or a ministry document. Questions 1 to 6 are short Python programs to read before running, and 7 to 10 ask you to explain or plan. Answers follow the questions.

Question 1 · order of operationspython
print(7 + 3 * 2 ** 2)
print((7 + 3) * 2 ** 2)

What two numbers are printed?

Question 2 · types of datapython
x = "4" + "2"
print(x, type(x).__name__)
print(int("4") + int("2"))

What is printed on each line, and why are they different?

Question 3 · nested conditionspython
temp = -12
if temp < 0:
    if temp < -10:
        print("Extreme cold warning")
    else:
        print("Below freezing")
else:
    print("Above freezing")

What is printed? What would print if temp were -5? And if it were exactly 0, is the message right?

Question 4 · text operatorspython
word = "Winnipeg"
print(len(word), word[0], word[-1], word.upper())

What four things are printed?

Question 5 · a loop that countspython
score = 0
for answer in ["b", "a", "c", "b"]:
    if answer == "b":
        score = score + 1
print(score)

What is printed? Describe in words what the program counts.

Question 6 · read the errorpython
score = 7
print("Score: " + score)

This stops with an error. What kind of error, what does the message mean, and how do you fix it?

Question 7 · an everyday algorithm. Write numbered steps for borrowing a book at a self-serve library kiosk. Include at least one decision (an if) and one repeat (a loop).

Question 8 · safe practice. A message that looks like it comes from your school asks you to confirm your password through a link. List three things to do, in order.

Question 9 · benefits and limitations. A school library starts using an automated system that recommends books from what a student borrowed before. Give one benefit and one limitation.

Question 10 · modify a program. Change the contrast checker above so it reports four levels, including the WCAG enhanced level of 7:1. Which test must come first?

Answers, ours

Answers to the ten questions

Each answer explains the reasoning, which is what a teacher marks. All six programs were run in Python 3.13.

  1. 19, then 40. Powers come first, so 2 ** 2 is 4; then multiplication, 3 * 4 is 12; then 7 + 12 is 19. Brackets change the order: (7 + 3) is 10, times 4 is 40. This is the order of operations expectation C1.4 describes.
  2. 42 str, then 6. With text, + joins the two pieces, so "4" + "2" is the text 42, and its type is str. After int() turns each into a number, + adds them. Same symbol, different job depending on the type of data.
  3. Extreme cold warning. -12 is below 0, and also below -10, so the inner if runs. For -5 it prints Below freezing. For exactly 0 it prints Above freezing, which is not quite right: water freezes at 0. Changing the first test to temp <= 0 fixes it, and finding that edge is the real skill.
  4. 8 W g WINNIPEG. len counts the letters, index 0 is the first letter, index -1 counts from the end, and upper() returns a capitalised copy. The original word is unchanged.
  5. 2. The loop looks at each answer once and adds 1 when it is b. There are two b answers. The program counts how many answers match one choice, like marking a quiz against one correct option.
  6. TypeError: can only concatenate str (not "int") to str. Python will not join text and a number with +. Turn the number into text first, with str(score), or use an f-string: f"Score: {score}". Both print Score: 7.
  7. One good answer: 1. Scan your library card. 2. If the card is not accepted, ask staff and stop. 3. Scan a book. 4. Repeat step 3 until every book is scanned. 5. Choose a receipt option. 6. Take your card and books. The if is step 2 and the loop is step 4.
  8. Do not use the link; check another way; report it. Open the school site yourself by typing the address or using a bookmark, and see if any message is waiting there. Never type a password into a page reached from a message. Then tell a teacher or the school’s technology staff, so others are warned.
  9. Benefit: students find books close to what they already enjoy, quickly. Limitation: it can keep suggesting the same kind of book, so a student sees less variety, and it knows nothing about what a student has read outside the library.
  10. The 7:1 test must come first. See the four-level verdict code in the project. Checking from the strictest level down means each ratio stops at the highest level it meets; checking 3 first would stop every passing ratio at large text only.

After Grade 10

After ICD2O: Grade 11 courses and the diploma

ICD2O is an open course, and it is not a prerequisite for anything in the course table: ICS3U and ICS3C list no prerequisite at all. So what does it lead to? Mostly, to readiness.

Computer studies courses after Grade 10, with prerequisites as listed on the current Ontario curriculum website (read 22 October 2026)
CourseGrade and typePrerequisite listed
ICS3U, Introduction to Computer ScienceGrade 11, university preparationNone
ICS3C, Introduction to Computer ProgrammingGrade 11, college preparationNone
ICS4U, Computer ScienceGrade 12, university preparationIntroduction to Computer Science, Grade 11, University Preparation
ICS4C, Computer ProgrammingGrade 12, college preparationIntroduction to Computer Programming, Grade 11, College Preparation

Why take ICD2O if nothing requires it

Because Grade 11 computer studies moves fast. The first unit of ICS3U or ICS3C assumes nothing, but by the middle of the course students are writing loops over arrays and functions with parameters. A student who met variables, conditions and loops in Grade 10 has room to think about the new ideas instead of the syntax.

And because ICD2O covers things the Grade 11 courses do not dwell on, such as artificial intelligence, cloud storage and bias. Those are useful to every student, whatever they study next.

ICD2O and the diploma

Ontario’s graduation requirements page lists computer studies as one of the subjects in the STEM-related course group for students who started Grade 9 in 2024 or later, and in Group 3 for students who started in 2023 or earlier. ICD2O is a computer studies course on the curriculum website’s list.

That page also requires a credit in technological education for the 2024 cohort. Technological education is a separate subject with its own courses, and we found no source saying that ICD2O counts toward it, so ask the school before planning around that.

Where a Grade 10 student is

Four stages of a first-year programmer

Our own stages, from teaching students in their first programming course.

From first lines to Grade 11 ready (ours)
StageWhat it looks like
1. TypistCopies example code and runs it, and is pleased when it works
2. TinkererChanges one thing in a working program and predicts what will happen
3. PlannerWrites the steps in words first, then turns them into code
4. Grade 11 readyWrites a short program from a blank file, reads its own errors and explains every line

For parents

Stage 2 is where real learning starts, and the modification task in the project is a stage 2 exercise. Ask your teen what they changed and what they expected.

A Grade 10 student does not need to reach stage 4 by June. Getting there over the summer before Grade 11 is a fine plan.

For students

When something breaks, read the last line of the error message first. It names the kind of problem.

Change one thing at a time. If you change three things and it works, you do not know which one fixed it.

All courses

Nine more courses for Grade 9 and 10 students

Live classes with one regular teacher, as a group or one to one.

I

First programming

Grades 9 and 10

IDTC / FST / 01

JavaScript for teens

Interactive web pages, one feature at a time.

Open the syllabus

IDTC / FST / 02

HTML and CSS

Real websites, readable and accessible.

Open the syllabus

IDTC / FST / 03

Game development for teens

The guessing games of old, grown up.

Open the syllabus
II

Technology and society

Teens

IDTC / SOC / 01

AI and machine learning for teens

How AI systems learn, and where they fail.

Open the syllabus

IDTC / SOC / 02

Data science for teens

Data from real sources, cleaned and charted.

Open the syllabus

IDTC / SOC / 03

Cybersecurity competitions

Security puzzles for students who like a challenge.

Open the syllabus
III

Toward Grade 11

Grades 10 and 11

IDTC / G11 / 01

Java for teens

For Grade 11 classes that teach in Java.

Open the syllabus

IDTC / G11 / 02

Problem solving for teens

Logic and step-by-step thinking.

Open the syllabus

IDTC / G11 / 03

CCC Junior and Senior preparation

A first programming contest, through school.

Open the syllabus

Class format

Live classes for Grade 10 students

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

Weekdays

After school, at a time agreed in Ontario time.

Weekends

Morning classes that fit around a Grade 10 week.

1-on-1

For catching up after a missed unit or before a project.

Python first

Unless the class uses another language.

Words before code

Every program starts as plain steps.

Real projects

Small programs that answer real questions.

Errors explained

Messages read slowly, together.

One teacher

The same teacher all term.

Group or private

Fifteen to twenty, or one student.

Student work

Work by our students

Projects from students who started where a Grade 10 student starts. See the student labs for more.

NutriLife AI nutrition coach project screenshot

AI and ML

NutriLife

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

by Bhavya · Open it

Misti AI chatbot for maths and coding screenshot

AI and ML

Misti

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

by Harshit · Open it

GuardianX AI internet safety assistant screenshot

AI and ML

GuardianX

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

by Vivaan · Open it

SkyCast weather forecast application screenshot

Web app

SkyCast

A weather forecasting site with live conditions for any location.

by Krish

Fees

Fees

Begin with a free class. Afterwards, a monthly fee pays for eight live classes each month, shown below in your own currency; nothing locks you in, and you can stop when a month ends.

Free first class

Free

no card required

  • A free first class
  • Bring a current ICD2O task
  • No card asked for
Book it

Group batch

$100 USD

a month, eight live classes

  • Fifteen to twenty per batch
  • One regular teacher
  • Your choice of batch
  • Paid by the month
Start here

One to one

$150 USD

a month, eight live classes

  • Private classes
  • Timed around the school week
  • Built from their own work
Enquire

What families say

Rated 4.9 across 547 Google reviews

Reviews families left on Google, exactly 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

Questions about Grade 10

ICD2O and ICS2O: questions families ask

What is ICD2O?

ICD2O is Digital Technology and Innovations in the Changing World, a Grade 10 open computer studies course listed on the current Ontario curriculum website with the issue year 2023. It has three strands: Computational Thinking and Making Connections; Hardware, Software, and Innovations; and Programming.

What happened to ICS2O?

ICS2O, Introduction to Computer Studies, is the Grade 10 open course in the 2008 Computer Studies curriculum document. The current Ontario curriculum website lists ICD2O as its Grade 10 computer studies course and does not list ICS2O. Neither source we read says that one replaced the other.

What is the Grade 10 computer course in Ontario?

On the current Ontario curriculum website, the Grade 10 computer studies course is ICD2O, Digital Technology and Innovations in the Changing World. It is an open course with no prerequisite. Ask your school which Grade 10 courses it offers in a given year.

Does ICD2O have a prerequisite?

No. The course record on the Ontario curriculum website lists no prerequisite for ICD2O.

Do I need ICD2O to take ICS3U?

No. ICS3U and ICS3C list no prerequisite. ICD2O is still a useful first step, because Grade 11 computer studies moves quickly once arrays and functions arrive.

Does ICD2O include coding?

Yes. Strand C, Programming, asks students to explain programming concepts and algorithms, write simple programs with conditions and loops, interpret errors, write subprograms, use libraries and modify existing programs.

Does ICD2O teach artificial intelligence?

It asks students to investigate current and emerging innovations, including automation and artificial intelligence, and to assess their benefits and limitations. It also includes cybersecurity and data practices as an overall expectation of their own.

Which programming language does ICD2O use?

The expectations do not name a language, so it depends on the class. We teach in Python unless the student's class uses something else.

Does ICD2O count for the diploma?

Ontario's graduation requirements page lists computer studies in the STEM-related course group for students who started Grade 9 in 2024 or later. We found no source saying ICD2O counts as the technological education credit, so check with the school.

Do you grant the ICD2O credit?

No. We teach coding beside the school course and do not grant Ontario credits. The credit comes from the school or credit provider that teaches and evaluates ICD2O.

When are your classes?

Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays. Times are set in your own Ontario time zone.

How much do classes cost?

The first class is free. After that, families pay a monthly fee and can stop when any month ends. The fees section on this page shows the current figure.

More to read

Related pages

For Ontario families planning Grade 10 and beyond.

ICS3U computer science help

The Grade 11 university course many ICD2O students take next.

Coding classes in Ontario

Live coding classes across the province.

Python IndentationError

The first error most Python beginners meet.

How to debug code

A calm method for any error message.

AI and machine learning in Canada

Classes for teens who want to go further with AI.

CCC Junior guide

A first programming contest for Grade 9 and 10 coders.

Canada

Every page we have written for Canadian families.

Start here

Book a free first class

Tell us what your Grade 10 student is working on in ICD2O, or what they would like to build. The first class starts from that and ends with a small working program.

Looking around first? The Python for teens syllabus shows the whole course, and how we teach walks through a live lesson.

WhatsApp us · +91 91233 66161 · connect@modernagecoders.com

Classes run live on video, taught by our teachers in India, so there is no commute. From Ontario, WhatsApp is the quickest way to reach us.

You will not be asked for card details to book.

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

Keep exploring Modern Age Coders

Related courses and guides

Learn more

Free resources

From the blog

Start here

Free classPriority demoCall us