← Back to ICS4U Course
Ontario Ministry of Education — 2008 Revised Curriculum (Computer Studies)

ICS4U Curriculum Document

Computer Science, Grade 12, University Preparation · 110 hours · Recommended Prerequisite: ICS3U

Contents

1. Course Overview & Vision 2. Big Ideas 3. Fundamental Concepts 4. Strand A — Programming Concepts & Skills 5. Strand B — Software Development 6. Strand C — Designing Modular Programs 7. Strand D — Topics in Computer Science 8. Programming Languages & Environments 9. STSE Connections & Career Pathways 10. Achievement Chart 11. Evaluation Policy (Growing Success 2010)

1. Course Overview & Vision

ICS4U enables students to further develop their knowledge and skills in computer science. Students will use modular design principles to create complex and fully documented programs, according to industry standards. Student teams will manage a large software-development project, from planning through to project review. Students will also analyse algorithms for effectiveness, will study emerging issues related to computer science (such as the impact of artificial intelligence and the environmental footprint of computing), and will investigate ethics, privacy, and post-secondary opportunities in computer-related fields.

Recommended Prerequisite: ICS3U Introduction to Computer Science, Grade 11, University Preparation. Students entering directly with strong math (MCR3U) but no prior programming will need a brief Python primer in Unit 1.

2. Big Ideas

3. Fundamental Concepts

ConceptDescription
AbstractionHiding implementation details behind a clear interface (functions, classes, modules).
DecompositionBreaking a problem into smaller, independently-solvable subproblems.
Pattern recognitionRecognizing recurring structures (search, sort, accumulator, recursion) and reusing standard solutions.
Algorithm designDescribing a step-by-step process that always terminates with a correct answer.
Data & representationHow information is encoded (binary, types, structures) and the consequences of those choices.
Systems & interactionsComponents (hardware, OS, network, user) interact via defined contracts; failures arise at the seams.

4. Strand A — Programming Concepts and Skills

A1. Demonstrate the ability to use different data types and data structures (e.g., one-dimensional arrays/lists, multi-dimensional arrays, records, classes, dictionaries) in computer programs.
A2. Demonstrate the ability to use modular programming concepts and techniques in computer programs (procedures, functions, parameter passing, return values, recursion).
A3. Use proper code-maintenance techniques and conventions (commenting, indentation, naming) when creating computer programs, and design and analyse simple algorithms in terms of correctness and efficiency.

Specific Expectations (selected)

5. Strand B — Software Development

B1. Use a variety of problem-solving strategies (top-down design, bottom-up implementation, modular design) to solve problems at the design stage of software development.
B2. Apply standard programming techniques and conventions to create computer programs that are readable, maintainable, and efficient.
B3. Apply standard algorithms (linear search, binary search, bubble sort, insertion sort, selection sort, merge sort, quicksort) to solve problems.
B4. Use systematic testing & debugging strategies to verify program correctness and identify the location and cause of errors.

Specific Expectations (selected)

6. Strand C — Designing Modular Programs

C1. Demonstrate the ability to use modular structure (functions, classes, modules) to plan and code complex programs.
C2. Maintain and extend existing code, including code written by others, using accepted conventions and tools.
C3. Use abstraction (procedural and data) to manage complexity in problem-solving and program design.

Specific Expectations (selected)

7. Strand D — Topics in Computer Science

D1. Describe key emerging areas of computer science (artificial intelligence, machine learning, quantum computing, cloud computing, cybersecurity).
D2. Analyse environmental and ethical issues related to the use of computers (energy footprint of data centres & AI training, e-waste, privacy, algorithmic bias, intellectual property, accessibility).
D3. Describe postsecondary education and career opportunities related to computer studies, including in Ontario and Canada.
D4. Describe key contributions to the history and development of computer science, including contributions by Canadian innovators.

Specific Expectations (selected)

8. Programming Languages & Environments

The Ontario curriculum is language-agnostic. The most common choices in Ontario boards are Python and Java. This MindView build defaults to Python for accessibility and reading clarity, with Java parallel examples added where appropriate.

LanguageStrengthsTrade-offs
Python 3.x (default)Readable syntax close to pseudocode; rich standard library; excellent for data structures, algorithms, AI demos.Dynamic typing makes some bugs harder to catch at compile time; slower than compiled languages.
JavaStatic typing makes types & interfaces explicit; aligns with university CS1; widely used in industry.More verbose; setup of main, classes, types adds friction for early learners.

Recommended Tooling

# A complete Python program: read a CSV, sort by mark, write top-3 to file import csv with open("roster.csv") as f: rows = sorted(csv.reader(f), key=lambda r: -int(r[1])) with open("top3.csv", "w", newline="") as f: csv.writer(f).writerows(rows[:3])

9. STSE Connections & Career Pathways

Sample STSE Topics (Strand D)

Career Pathways

Software engineering, data science, machine-learning engineering, cybersecurity analyst, cloud architect, mobile/web developer, embedded systems / robotics, game design, UX/UI design, devops, technical writing, computing teacher, CS researcher (M.Sc./Ph.D.). Adjacent quantitative careers include actuarial science, financial engineering, bioinformatics, and computational science.

Sample Ontario Postsecondary Pathways

10. Ontario Achievement Chart for ICS4U

K/U
25%
Thinking
25%
Communication
25%
Application
25%
CategoryDescriptionExamples in ICS4U
Knowledge & UnderstandingRecall of facts, terms, definitions; understanding of programming constructs, data structures, and standard algorithms.Define recursion; identify the precondition for binary search; state the average-case complexity of merge sort.
Thinking & InvestigationUse of critical and creative thinking processes — algorithm design, debugging, problem-solving with constraints.Design an algorithm given a novel problem; trace and fix a buggy recursive function; choose between two data structures and justify.
CommunicationConveying meaning through code (style, comments, naming) and through written/spoken language about programs.Well-commented code; clear docstrings; an STSE position paper; technical explanation to a peer.
ApplicationUse of programming knowledge in familiar and unfamiliar contexts; transfer of skills.Build a roster manager from scratch; extend legacy code; apply Big-O analysis to estimate the running time of an unknown function.

11. Evaluation Policy (Growing Success, 2010)

ComponentWeightDescription
Term Work70%Unit tests, programming assignments, code reviews, lab worksheets, quizzes — balanced across the four achievement categories.
Final Evaluation30%Cumulative final exam (worth ~20%) and a final culminating capstone software project (~10%). Together capped at 30%.

Assessment Types

Levels of Achievement: Level 4 (80–100%, thorough and insightful), Level 3 (70–79%, considerable effectiveness — provincial standard), Level 2 (60–69%), Level 1 (50–59%), R (below 50%, insufficient).

Learning Skills & Work Habits (reported separately)

Responsibility, Organization, Independent Work, Collaboration, Initiative, Self-Regulation — each rated E (Excellent) / G (Good) / S (Satisfactory) / N (Needs Improvement). Collaboration and Self-Regulation are particularly visible in the term-long capstone project.