Skip to content
Browse by Grade: Grade 11

Canada · Ontario Curriculum Expectations

Grade 11 Computer Science

This course explores the foundations of computer science through advanced programming structures, algorithmic efficiency, and systems architecture. Students build complex software solutions while examining the social and ethical implications of emerging technologies in a global context.

5 units·59 topics·Ages 16-17

01Algorithmic Foundations and Complexity

13 topics·Term 1

Students investigate the efficiency of different algorithms and learn to evaluate performance using Big O notation. This unit focuses on searching, sorting, and the mathematical logic behind code optimization.

Introduction to Algorithms and Problem Solving

Students will define what an algorithm is, explore its characteristics, and practice designing simple algorithms for everyday problems.

Think-Pair-ShareCollaborative Problem-Solving
Computational Thinking: Decomposition and Abstraction

Explore the core principles of computational thinking, focusing on breaking down complex problems and identifying essential information.

Concept MappingProblem-Based Learning
Data Structures: Arrays and Lists

Students will learn about fundamental data structures like arrays and lists, understanding their properties and basic operations.

Stations RotationPeer Teaching
Linear Search and Binary Search

Analyze and implement linear and binary search algorithms, comparing their efficiency based on data organization.

Collaborative Problem-SolvingSimulation Game
Sorting Algorithms: Selection and Bubble Sort

Implement and visualize basic sorting algorithms like selection sort and bubble sort to understand their step-by-step process.

Experiential LearningWalk and Talk
Sorting Algorithms: Insertion Sort and Merge Sort

Explore more efficient sorting algorithms, focusing on insertion sort's incremental approach and merge sort's divide-and-conquer strategy.

Problem-Based LearningJigsaw
Quicksort and Advanced Sorting Techniques

Analyze and implement quicksort, understanding its pivot selection and partitioning process, and briefly introduce other advanced sorts.

Collaborative Problem-SolvingFlipped Classroom
Algorithmic Efficiency and Big O Notation

Students will learn to evaluate algorithm performance using Big O notation, understanding how it describes growth rates.

Concept MappingGallery Walk
Analyzing Time and Space Complexity

Apply Big O notation to analyze the time and space complexity of various algorithms, including search and sort.

Problem-Based LearningDecision Matrix
Recursive Thinking: Fundamentals

Explore the power of recursion to solve complex problems by breaking them into smaller, self-similar sub-problems.

Concept MappingThink-Pair-Share
Implementing Recursive Algorithms

Practice implementing recursive solutions for problems like factorial, Fibonacci sequence, and tree traversals.

Collaborative Problem-SolvingPeer Teaching
Iterative vs. Recursive Solutions

Compare and contrast iterative and recursive approaches to problem-solving, focusing on efficiency, readability, and memory usage.

Formal DebateDecision Matrix
Introduction to Graph Theory

Explore basic graph concepts, including nodes, edges, and common graph representations (adjacency matrix, adjacency list).

Concept MappingCollaborative Problem-Solving

02Object-Oriented Programming and Design

13 topics·Term 2

Focus on the principles of encapsulation, inheritance, and polymorphism to create modular and reusable software. Students transition from procedural scripts to robust system designs.

Introduction to Object-Oriented Programming (OOP)

Students will understand the fundamental concepts of OOP: objects, classes, and instances, and their role in modeling real-world entities.

Concept MappingThink-Pair-Share
Encapsulation and Data Privacy

Implement access modifiers to protect internal object states and ensure data integrity.

Problem-Based LearningEscape Room
Class Hierarchies and Inheritance

Design systems using parent and child classes to model real-world relationships and reduce code redundancy.

Project-Based LearningDecision Matrix
Polymorphism and Interfaces

Utilize interfaces and abstract classes to define common behaviors across different object types.

Case Study AnalysisPeer Teaching
Abstract Classes and Methods

Students will learn to use abstract classes to define common interfaces for a group of related classes, enforcing specific behaviors.

Problem-Based LearningCollaborative Problem-Solving
Composition vs. Inheritance

Compare and contrast composition and inheritance as design principles for code reuse and relationship modeling.

Formal DebateDecision Matrix
Introduction to Design Patterns

Students will be introduced to common software design patterns (e.g., Singleton, Factory) as reusable solutions to recurring problems.

Case Study AnalysisGallery Walk
Unit Testing in OOP

Learn to write unit tests for classes and methods to ensure code correctness and facilitate refactoring.

Problem-Based LearningPeer Teaching
Debugging Object-Oriented Programs

Develop strategies for identifying and fixing errors in object-oriented code, utilizing debugging tools and techniques.

Collaborative Problem-SolvingEscape Room
Introduction to Version Control (Git)

Students will learn the basics of Git for tracking code changes, collaborating with others, and managing project versions.

Flipped ClassroomExperiential Learning
Refactoring and Code Quality

Explore techniques for improving existing code without changing its external behavior, focusing on readability, maintainability, and efficiency.

Case Study AnalysisPeer Teaching
Error Handling and Exception Management

Learn to anticipate and handle runtime errors gracefully using try-catch blocks and custom exceptions.

Problem-Based LearningCollaborative Problem-Solving
Introduction to Software Development Life Cycle (SDLC)

Overview of the stages involved in software development, from requirements gathering to deployment and maintenance.

Concept MappingGallery Walk

03Data Structures and Management

13 topics·Term 3

Students move beyond simple arrays to explore dynamic data structures like linked lists, stacks, and queues. The unit also introduces basic database concepts and data persistence.

Dynamic Lists and Memory

Compare the implementation and use cases of arrays versus linked lists in memory management.

Gallery WalkStations Rotation
Implementing Linked Lists

Students will implement singly and doubly linked lists, understanding node manipulation and traversal.

Collaborative Problem-SolvingProblem-Based Learning
Stacks, Queues, and Applications

Model real-world processes like undo mechanisms and print buffers using linear data structures.

Collaborative Problem-SolvingSimulation Game
Implementing Stacks and Queues

Students will implement stack and queue data structures using arrays or linked lists, and apply them to simple problems.

Experiential LearningPeer Teaching
Introduction to Trees and Binary Search Trees

Explore non-linear data structures, focusing on the properties and operations of binary search trees for efficient data retrieval.

Concept MappingFlipped Classroom
Tree Traversal Algorithms

Students will implement and compare different tree traversal methods: in-order, pre-order, and post-order.

Collaborative Problem-SolvingSimulation Game
Hashing and Hash Tables

Introduction to hash functions and hash tables for fast data storage and retrieval, including collision resolution strategies.

Problem-Based LearningDocument Mystery
Relational Databases: Introduction to SQL

Introduction to structured data storage, entity-relationship diagrams, and basic query logic using SQL.

Case Study AnalysisConcept Mapping
Advanced SQL Queries and Joins

Students will practice writing more complex SQL queries, including joins, subqueries, and aggregation functions, to retrieve and manipulate data.

Collaborative Problem-SolvingProblem-Based Learning
Data Persistence: File I/O

Learn to read from and write to files, understanding different file formats (text, CSV) and error handling.

Flipped ClassroomExperiential Learning
Introduction to NoSQL Databases

Explore the concepts behind NoSQL databases (e.g., document, key-value stores) and their use cases compared to relational databases.

Case Study AnalysisGallery Walk
Data Visualization Fundamentals

Introduction to basic principles of data visualization to effectively communicate insights from data.

Project-Based LearningCarousel Brainstorm
Graphs: Traversal Algorithms (BFS/DFS)

Implement and compare Breadth-First Search (BFS) and Depth-First Search (DFS) algorithms for traversing graphs.

Collaborative Problem-SolvingSimulation Game

04Networks and Digital Security

11 topics·Term 4

An exploration of how computers communicate across the internet and the protocols that keep data safe. Students learn about encryption, network layers, and cybersecurity threats.

Introduction to Computer Networks

Students will learn about the basic components of a computer network, network topologies, and different types of networks (LAN, WAN).

Concept MappingGallery Walk
The OSI Model and Protocols

Break down the layers of network communication from physical hardware to software applications.

JigsawGallery Walk
IP Addressing and DNS

Understand how IP addresses uniquely identify devices on a network and the function of the Domain Name System (DNS).

Simulation GameDocument Mystery
Introduction to Cybersecurity

Students will learn about the fundamental principles of cybersecurity, including confidentiality, integrity, and availability (CIA triad).

Case Study AnalysisThink-Pair-Share
Cybersecurity Threats: Malware and Social Engineering

Identify common attack vectors like phishing, SQL injection, and man-in-the-middle attacks.

Case Study AnalysisRole Play
Encryption and Cryptography

Study the history and application of symmetric and asymmetric encryption in securing digital communications.

Escape RoomProblem-Based Learning
Digital Forensics and Incident Response

Introduction to the process of investigating cyber incidents, collecting digital evidence, and responding to breaches.

Case Study AnalysisDocument Mystery
Privacy and Data Protection Laws

Examine key privacy regulations (e.g., GDPR, CCPA) and their impact on data handling and user rights.

Socratic SeminarPhilosophical Chairs
Ethical Hacking and Penetration Testing

Explore the principles of ethical hacking as a method to identify vulnerabilities and improve system security.

Role PlayFormal Debate
Web Technologies: HTML, CSS, JavaScript Basics

Introduction to fundamental web development languages for creating static web pages and interactive elements.

Flipped ClassroomProject-Based Learning
Introduction to Cloud Computing

Explore the concepts of cloud computing, different service models (IaaS, PaaS, SaaS), and their advantages and disadvantages.

Case Study AnalysisWorld Café

05The Impact of Computing on Society

9 topics·Term 4

Critically examine the role of technology in shaping culture, economy, and individual rights. This unit covers AI ethics, the digital divide, and environmental sustainability.

Artificial Intelligence and Bias

Investigate how machine learning models can inherit and amplify human biases from training data.

Socratic SeminarFishbowl Discussion
The Digital Divide and Accessibility

Analyze the gap between those with and without access to modern technology and the impact on global equity.

Gallery WalkDecision Matrix
Environmental Impact of Tech

Explore the carbon footprint of data centers, e-waste, and the energy demands of blockchain technology.

Formal DebateProject-Based Learning
Intellectual Property and Copyright in Software

Examine the concepts of intellectual property, copyright, patents, and open-source licensing in the context of software development.

Socratic SeminarCase Study Analysis
The Future of Work and Automation

Discuss the societal and economic impacts of automation and artificial intelligence on various industries and job markets.

World CaféExpert Panel
Digital Citizenship and Online Ethics

Explore the responsibilities and rights of individuals in the digital world, focusing on ethical online behavior, privacy, and digital footprint.

Philosophical ChairsRole Play
Capstone Software Development: Agile Development and Scoping

Learn to manage a project using sprints, user stories, and iterative feedback loops.

Collaborative Problem-SolvingThink-Pair-Share
Capstone Software Development: Testing and Quality Assurance

Implement unit testing and user acceptance testing to ensure software reliability and usability.

Peer TeachingProblem-Based Learning
Capstone Software Development: Final Project Presentation

Communicate technical concepts and project outcomes to both technical and non-technical audiences.

Expert PanelProject-Based Learning