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.

Algorithmic Foundations and Complexity
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.
Analyze and implement classic algorithms like binary search, quicksort, and mergesort to understand performance trade-offs.
Explore the power of recursion to solve complex problems by breaking them into smaller, self-similar sub-problems.

Object-Oriented Programming and Design
Focus on the principles of encapsulation, inheritance, and polymorphism to create modular and reusable software. Students transition from procedural scripts to robust system designs.
Design systems using parent and child classes to model real-world relationships and reduce code redundancy.
Utilize interfaces and abstract classes to define common behaviors across different object types.
Implement access modifiers to protect internal object states and ensure data integrity.

Data Structures and Management
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.
Compare the implementation and use cases of arrays versus linked lists in memory management.
Model real-world processes like undo mechanisms and print buffers using linear data structures.
Introduction to structured data storage, entity-relationship diagrams, and basic query logic.

Networks and Digital Security
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.
Break down the layers of network communication from physical hardware to software applications.
Study the history and application of symmetric and asymmetric encryption in securing digital communications.
Identify common attack vectors like phishing, SQL injection, and man-in-the-middle attacks.

The Impact of Computing on Society
Critically examine the role of technology in shaping culture, economy, and individual rights. This unit covers AI ethics, the digital divide, and environmental sustainability.
Investigate how machine learning models can inherit and amplify human biases from training data.
Analyze the gap between those with and without access to modern technology and the impact on global equity.
Explore the carbon footprint of data centers, e-waste, and the energy demands of blockchain technology.

Capstone Software Development
Students apply their cumulative knowledge to design, develop, and document a significant software project using agile methodologies.
Learn to manage a project using sprints, user stories, and iterative feedback loops.
Implement unit testing and user acceptance testing to ensure software reliability and usability.
Communicate technical concepts and project outcomes to both technical and non-technical audiences.