Ontario Grade 12 ICS4U Computer Science (Grade 12, University Preparation)
Chapters: 4
1. A. Programming Concepts and Skills
A1 Data Types and Expressions · A2 Modular Programming · A3 Designing Algorithms · A4 Code Maintenance
- Data Types, Operators and Errors in Python – Every value in Python has a data type: numbers (int, float, complex), bool (True/False), None, sequences (str, list, tuple) and mapping (dict). Mutable types (list, dict) can be changed in place; immutable types (int, float, bool, str, tuple) cannot. Operators are arithmetic (+ − * / // % **), relational (< > <= >= == !=), logical (and, or, not), assignment (= += −= …), identity (is, is not) and membership (in, not in). Precedence decides the order of evaluation, with ** highest and or lowest. Type conversion can be implicit (automatic, int → float) or explicit (int(), float(), str()). input() reads text as a string; print() shows output with sep and end. Errors are syntax errors (grammar), runtime errors or exceptions (crash while running) and logical errors (wrong answer).
- Python Modules: math, random and statistics – A module is a Python file (.py) containing ready-made functions, constants and classes. You load it with import module_name (then call module.function()), import module as alias, or from module import name1, name2 (then call the name directly); from module import * loads everything (not recommended). The math module gives sqrt(), pow(), ceil(), floor(), fabs(), factorial(), gcd(), log(), log10(), sin(), cos(), tan() and constants pi and e. The random module gives random() (0 ≤ x < 1), randint(a, b) (a to b, both included) and randrange(start, stop, step) (stop excluded). The statistics module gives mean(), median() and mode().
- Searching and Sorting Algorithms – A searching algorithm finds an item in a list; a sorting algorithm puts a list in order. Linear search checks items one by one and works on any list. Binary search halves a sorted list each time and is much faster. Bubble sort swaps neighbours pass by pass; merge sort splits the list and merges sorted halves, which is faster for big lists.
- Programming Basics: Sequence, Selection, Loops and Functions – A program is a set of exact instructions a computer follows. Every program is built from three structures: sequence (steps in order), selection (if/else choices) and iteration (loops). Variables store values. Functions group code into reusable, named blocks, which makes programs modular and easier to test, debug and maintain.
2. B. Software Development
B1 Project Management · B2 Software Project Contribution
- Leadership and Management: Leading People, Teams and Change – Management gets work done through planning, organising, staffing, directing and controlling. Leadership inspires people to work towards a shared goal. Leaders choose a style that fits the people and the task, build qualities like communication and integrity, guide teams through their stages, plan projects with schedules, delegate well, and help people accept change.
3. C. Designing Modular Programs
C1 Modular Design · C2 Algorithm Analysis
- Modular Design: Building Programs from Parts – Modular design means splitting a big program into small, separate parts called modules. Each module does one job and can be written, tested and fixed on its own. Functional decomposition keeps breaking a task into smaller subprograms (functions) until each is easy to code. Classes group data with the methods that use it. Encapsulation hides a module's data so other parts can use it only through a public interface. Good modules have high cohesion (one clear job) and low coupling (few links to others), which makes them reusable in other programs.
- Algorithm Complexity: How Fast Does an Algorithm Grow? – Many algorithms can solve the same problem, but some need far more steps. We measure an algorithm by counting its basic steps as the input size n grows, not by stopwatch seconds. Big O notation names the growth: O(1) constant, O(log n) logarithmic, O(n) linear, O(n log n), and O(n²) quadratic. Linear search is O(n), binary search is O(log n); bubble sort is O(n²), merge sort is O(n log n). Memory used is space complexity.
4. D. Topics in Computer Science
D1 Environmental Stewardship and Sustainability · D2 Ethical Practices · D3 Emerging Technologies and Society · D4 Exploring Computer Science
- Environmental Stewardship: Caring for the Planet as We Use Technology – Environmental stewardship means using the Earth's resources carefully so they last, and fixing harm where we can. Every product, from a phone to a hospital machine, has a life cycle: raw materials, making, transport, use and end of life. Each stage uses energy and makes waste. Good stewards keep products longer, choose efficient machines, follow the waste hierarchy (refuse, reduce, reuse, recycle, then dispose), send e-waste to proper recyclers and support laws and company practices that protect nature. Technology can harm the environment, but it can also help: solar panels, LEDs and smart sensors cut waste.
- Computer Science: How Computers Solve Problems – Computer science (also called informatics) is the study of solving problems with computers. Every program takes input, processes it and gives output. Computers store all data as bits (0 and 1); 8 bits make a byte, and binary place values double: 1, 2, 4, 8 … 128. An algorithm is a finite list of clear steps; a program is an algorithm written in a programming language using sequence, selection and repetition. Data structures (list, stack, queue, tree, graph) organise data so programs work fast. Networks and telecommunication join computers: messages travel as packets through routers over wires, fibre and radio, following protocols. Emerging technologies like AI, IoT, cloud and robotics bring big benefits and new questions about privacy, fairness, jobs and safety.
- Career Planning: From Knowing Yourself to Your First Job – Career planning has five steps. 1) Know yourself: interests, skills and values. 2) Explore career families and find out the work, study needed, pay and demand. 3) Plan a pathway with SMART goals and a plan B. 4) Search for jobs with a CV, cover letter, digital portfolio and interview practice. 5) Make the move from school to work and keep learning, because careers change over a lifetime.