Ontario Grade 12 ICS4C Computer Programming (Grade 12, College Preparation)
Chapters: 4
1. A. Programming Concepts and Skills
A1 Data Structures · A2 Using Standard Algorithms · A3 Object-oriented Programming · A4 Code Maintenance
- Lists in Python – A list is an ordered, mutable sequence of values of any type, written in square brackets: [4, 'a', 2.5]. Items are reached by index (0 from the left, −1 from the right) and can be changed in place. Operations: + (join), * (repeat), in / not in (membership) and slicing. Traversal uses for or while loops. Built-in functions and methods: len(), list(), append(), extend(), insert(), count(), index(), remove(), pop(), reverse(), sort(), sorted(), min(), max(), sum(). A nested list holds lists inside it, like a table (M[row][col]). Standard programs find the maximum, minimum and mean, do a linear search and count the frequency of elements.
- Lists in Python: Create, Traverse, Change and List Methods – A list is an ordered, changeable collection written in square brackets, like [10, 20, 30]. Items are reached by index (from 0, or negative from the end) and slices. We traverse a list with a for loop, change items in place because lists are mutable, and use functions (len, max, min, sum, sorted, list) and methods (append, insert, extend, remove, pop, sort, reverse, count, index, clear) to work with it.
- 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.
- Object-Oriented Programming (OOP) – Object-oriented programming builds a program out of objects. A class is a blueprint that lists the data (attributes) and actions (methods) its objects will have. Each object is made from a class and keeps its own data. The four big ideas are encapsulation (hide data behind methods), inheritance (a new class reuses an old one), polymorphism (the same method call behaves in the right way for each object) and abstraction (show only what is needed).
- 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 Designing Standard Algorithms · B2 Object-oriented Software Solutions · B3 Graphical User Interfaces · B4 Student-managed Project
- 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.
- Object-Oriented Programming (OOP) – Object-oriented programming builds a program out of objects. A class is a blueprint that lists the data (attributes) and actions (methods) its objects will have. Each object is made from a class and keeps its own data. The four big ideas are encapsulation (hide data behind methods), inheritance (a new class reuses an old one), polymorphism (the same method call behaves in the right way for each object) and abstraction (show only what is needed).
- GUI Programming with Tkinter: Windows, Widgets and Events – A GUI (graphical user interface) lets people use a program with windows, buttons and boxes instead of typing commands. In Python the built-in Tkinter library makes this easy: create a window with Tk(), add widgets such as Label, Entry and Button, arrange them with pack, grid or place, and connect each button to a function. The program then waits in mainloop() and runs your functions when events like clicks and key presses happen.
- 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. Programming Environment
C1 Project Management Tools · C2 Software Development Tools
- 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.
- Software Development: From Idea to Working App – Good software is built in stages: analyse the problem and write requirements, design the solution, code it in small parts, test it with normal, boundary and erroneous data, deploy it to users and maintain it. Waterfall does each stage once in order; agile repeats short cycles. Robust programs validate input, and teams use version control, clear roles and feedback from users.
4. D. Computers and Society
D1 Environmental Stewardship and Sustainability · D2 Ethical Practices · D3 Emerging Technologies · D4 Computer-related Careers
- 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.
- Programming Languages and Emerging Technologies – A computer only understands machine code (0s and 1s). Programming languages let people write instructions in easier words, which a compiler or interpreter turns into machine code. Languages evolved from machine code and assembly (low-level) to high-level languages like Fortran, C, Java and Python, and newer ones like Swift, Kotlin and Rust. They follow styles called paradigms: procedural, object-oriented and functional. Each emerging technology (AI, mobile, web, IoT, cloud, quantum) has its own needs, such as libraries, speed, safety or running on small devices, so it favours certain languages. Programmers also report on IT innovations and weigh their benefits and risks for society.
- 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.