In collaboration with an advisory group from across Canada, Canada in Programming is proposing a Pan-Canadian Framework for Computer Science Education. This framework aims to harmonize computer science education across the country by suggesting themes and learning progression.
In Canada, several organizations are working to promote and facilitate the integration of programming in the school context, usually in an after-school or invitational classroom setting. However, initiatives are scattered and diverse across the country and results remain "inequitable. In addition, "there is no consensus on what basic computer skills and competencies all students should acquire and when they should be taught.
It is in light of this fact, and in order to achieve greater uniqueness, that the Canada in Programming organization (which is one of the few to be present in all provinces and territories) led the work of an advisory groupwhich lasted more than a year, in order to design a Pan-Canadian Framework for Computer Science Education. First launched in 2018, this one has seen a few updates since then.
The document proposes a guideline for teaching computer science from kindergarten to grade 12e grade in Canada. It is based on a vision that all students should be able to :
- Create digital projects,
- Critically analyze technologies and their influence on society,
- Using technology to contribute to society.
5 key areas
The body of the framework is the Competency Guide for Computer Science, which is organized around five key areas.
1. Programming algorithms, data structures, modularity, modeling and abstraction, debugging.
2. Computers and networks : hardware and software, connected devices, troubleshooting, digital connectivity, cybersecurity.
3. Data data storage, data collection, classification and visualization, modeling and inference, artificial intelligence and machine learning, data governance.
4. Technologies and society The effects of digital technologies on society, digital communication, ethics, security and politics, technology and environment, history of technology, technology and well-being.
5. Design : program design, design for users, graphic design, universal design.
For each domain and its sub-themes, a progression of learning is proposed by naming a starting point up to the competencies and skills that should be acquired by the end of secondary school. Enrichment opportunities are also recommended to continue the learning journey. Finally, links between the domains and sub-themes are established, since "many ideas within a theme reinforce other components of the guide".
Skills and abilities to be achieved
The following skills and abilities have been identified as goals for Canadian youth.
Programming
- Algorithms : Design an algorithm using a combination of computer elements, including functions, objects, conditional expressions, and arrays.
- Data structures Create a data structure (e.g., an array) that can be used in a program.
- Modularity Create modules to divide a computer program into several parts, which can be applied in different programming contexts.
- Modeling and abstraction Evaluate the limitations of a model or algorithm and design new models to incorporate missing abstractions and behaviors.
- Debugging Explain the process of testing software for bugs and finding solutions to foreseeable problems.
Computers and networks
- Computer hardware and software : Program a physical device that collects and exchanges data between hardware components and software.
- Connected devices : Create a model to show how connected devices collect and exchange data with each other without human intervention (commonly referred to as the Internet of Things, (IoT)).
- Troubleshooting Describe the steps taken to solve a problem so that others can solve a similar technical problem by following this process.
- Digital connectivity Explain the relationship between routers, switches, servers, topology and addressing and create a model of it.
- Cybersecurity : Assess the role played by individuals in cyberattacks and the effects of these on the population and society.
Data
- Data storage Evaluate the advantages and disadvantages of different storage models, including cloud, considering factors such as cost, speed, reliability, accessibility, confidentiality and integrity.
- Data collection, classification and visualization : Develop a simple algorithm or program to classify and represent a set of data to analyze information, predict outcomes, or infer trends.
- Modeling and inference Create a computer model based on observed trends in data and use it to predict outcomes.
- Artificial intelligence and machine learning : Evaluating the integration of human bias in technical systems and artificial intelligence.
- Data governance Understand and defend your rights in relation to data and those of others.
Technology and society
- Effects of digital technologies on society To assess the effects of computer technology on different groups in society, including women, racial groups, visible minorities, people with disabilities and Aboriginal peoples.
- Digital communication Use a digital tool to collaborate and create a simple digital project or class project.
- Ethics, security and politics : Assess the effects of cybercrime, hacking, virus distribution, and other illegal or unethical digital activities on society.
- Technology and environment Assess how digital technologies can be used to manage and promote environmental sustainability.
- History of technology To trace the evolution of technologies in different regions of the world and assess the types of effects associated with them.
- Technology and well-being Develop strategies to harness the potential of technology to improve physical and mental health and well-being.
Design
- Program design Record and justify your own or your team's computer process by creating a program so that others can follow and understand the steps.
- Design for users Collaborate with others to get feedback on a digital project created by yourself or your team, identify areas for improvement and implement changes.
- Graphic design : Apply user interface design principles to create a digital project that is both practical and visually pleasing.
- Universal design Create a user-friendly project that meets provincial or other known accessibility standards and takes into consideration the diversity of human experience.
The organism Canada in programming is funded by the federal government. It has already established partnerships with teachers in all provinces, offering various programming programs and activities (Teens in Programming, Girls in Programming, Teachers in Programming, etc.).
Also see: The Spring 2022 issue of École branchée magazine: Computer programming: how to develop this skill?