Learning Contexts

Learning contexts provide entry points into the curriculum that engage students in inquiry-based learning to achieve scientific literacy. Each learning context reflects a different, but overlapping, philosophical rationale for including science as a required area of study:

  • The scientific inquiry learning context reflects an emphasis on understanding the natural and constructed world using systematic empirical processes that lead to the formation of theories that explain observed events and that facilitate prediction.
  • The technological problem solving learning context reflects an emphasis on designing and building to solve practical human problems similar to the way an engineer would.
  • The STSE decision making learning context reflects the need to engage citizens in thinking about human and world issues through a scientific lens in order to inform and empower decision making by individuals, communities and society.
  • The cultural perspectives learning context reflects a humanistic perspective that views teaching and learning as cultural transmission and acquisition (Aikenhead, 2006).

These learning contexts are not mutually exclusive; thus, well-designed instruction may incorporate more than one learning context. Students should experience learning through each learning context at each grade; it is not necessary, nor advisable, for each student to attempt to engage in learning through each learning context in each unit of study. Learning within a classroom may be structured to enable individuals or groups of students to achieve the same curricular outcomes through different learning contexts.

A choice of learning approaches can also be informed by recent well-established ideas on how and why students learn:

  • Learning occurs when students are treated as a community of practitioners of scientific literacy.
  • Learning is both a social and an individual event for constructing and refining ideas and competences.
  • Learning involves the development of new self-identities for many students.
  • Learning is inhibited when students feel a culture clash between their home culture and the culture of school science.

Scientific inquiry refers to the diverse ways in which scientists study the natural world and propose explanations based on the evidence derived from their work.

(NRC,1996, p. 23)

Scientific Inquiry [SI]

Inquiry is a defining feature of the scientific way of knowing nature. Scientific inquiry requires identification of assumptions, use of critical and logical thinking, and consideration of alternative explanations. Scientific inquiry is a multifaceted activity that involves:

  • making observations, including watching or listening to knowledgeable sources;
  • posing questions or becoming curious about the questions of others;
  • examining books and other sources of information to see what is already known;
  • reviewing what is already known in light of experimental evidence and rational arguments;
  • planning investigations, including field studies and experiments;
  • acquiring the resources (financial or material) to carry out investigations;
  • using tools to gather, analyze, and interpret data;
  • proposing critical answers, explanations, and predictions; and,
  • communicating the results to various audiences.

By participating in a variety of inquiry experiences that vary in the amount of student self-direction, students develop competencies necessary to conduct inquiries of their own - a key element to scientific literacy

Technological Problem Solving [TPS]

The essence of the technological problem solving learning context is that students seek answers to practical problems. This process is based on addressing human and social needs and is typically addressed through an iterative design-action process that involves steps such as:

  • identifying a problem;
  • identifying constraints and sources of support;
  • identifying alternative possible solutions and selecting one on which to work;
  • planning and building a prototype or a plan of action to resolve the problem; and,
  • testing, evaluating and refining the prototype or plan.

By participating in a variety of technological and environmental problem-solving activities, students develop capacities to analyze and resolve authentic problems in the natural and constructed world.

To engage with science and technology toward practical ends, people must be able to critically assess the information they come across and critically evaluate the trustworthiness of the information source.

(Aikenhead, 2006 p. 2)

STSE Decision Making [DM]

Scientific knowledge can be related to understanding the relationships among science, technology, society and the environment. Students must also consider values or ethics, however, when addressing a question or issue. STSE decision making involves steps such as:

  • clarifying an issue;
  • evaluating available research and different viewpoints on the issue;
  • generating possible courses of action or solutions;
  • evaluating the pros and cons for each action or solution;
  • identifying a fundamental value associated with each action or solution;
  • making a thoughtful decision;
  • examining the impact of the decision; and,
  • reflecting back on the process of decision making.

Students may engage with STSE issues through research projects, student-designed laboratory investigations, case studies, role playing, debates, deliberative dialogues and action projects.

For First Nations people, the purpose of learning is to develop the skills, knowledge, values and wisdom needed to honour and protect the natural world and ensure the long-term sustainability of life.

(Canadian Council on Learning, 2007, p. 18)

Cultural Perspectives [CP]

Students should recognize and respect that all cultures develop knowledge systems to describe and explain nature. Two knowledge systems which are emphasized in this curriculum are First Nations and Métis cultures (Indigenous knowledge) and Euro-Canadian cultures (science). In their own way, both of these knowledge systems convey an understanding of the natural and constructed worlds, and they create or borrow from other cultures' technologies to resolve practical problems. Both knowledge systems are systematic, rational, empirical, dynamically changeable and culturally specific.

Cultural features of science are, in part, conveyed through the other three learning contexts and when addressing the nature of science. Cultural perspectives on science can also be taught in activities that explicitly explore Indigenous knowledge or knowledge from other cultures.

For the Métis people, learning is understood as a process of discovering the skills, knowledge and wisdom needed to live in harmony with the Creator and creation, a way of being that is expressed as the Sacred Act of Living a Good Life.

(Canadian Council on Learning, 2007, p. 22)

Addressing cultural perspectives in science involves:

  • recognizing and respecting knowledge systems that various cultures have developed to understand the natural world and technologies they have created to solve human problems;
  • recognizing that science, as one of those knowledge systems, evolved within Euro-Canadian cultures;
  • valuing place-based knowledge to solve practical problems; and,
  • honouring protocols for obtaining knowledge from a knowledge keeper, and taking responsibility for knowing it.

By engaging in explorations of cultural perspectives, scientifically literate students begin to appreciate the worldviews and belief systems fundamental to science and to Indigenous knowledge.

The Language of Science

Science is a way of understanding the natural world using internally consistent methods and principles that are well-described and understood by the scientific community. The principles and theories of science have been established through repeated experimentation and observation and have been refereed through peer review before general acceptance by the scientific community. Acceptance of a theory does not imply unchanging belief in a theory, or denote dogma. Instead, as new data become available, previous scientific explanations are revised and improved, or rejected and replaced. There is a progression from a hypothesis to a theory using testable, scientific laws. Many hypotheses are tested to generate a theory. Only a few scientific facts are considered laws (e.g., the law of conservation of mass and Newton's laws of motion).

Scientific models are constructed to represent and explain certain aspects of physical phenomenon. Models are never exact replicas of real phenomena; rather, models are simplified versions of reality, constructed in order to facilitate study of complex systems such as the atom, climate change and biogeochemical cycles. Models may be physical, mental, mathematical or contain a combination of these elements. Models are complex constructions that consist of conceptual objects and processes in which the objects participate or interact. Scientists spend considerable time and effort building and testing models to further understanding of the natural world

When engaging in the processes of science, students are constantly building and testing their own models of understanding of the natural world. Students may need help in learning how to identify and articulate their own models of natural phenomena. Activities that involve reflection and natural phenomena. Activities that involve reflection and metacognition are particularly useful in this regard. Students should be able to identify the features of the natural phenomena their models represent or explain. Just as importantly, students should identify which features are not represented or explained by their models. Students should determine the usefulness of their model by judging whether the model helps in understanding the underlying concepts or processes. Ultimately, students realize that different models of the same phenomena may be needed in order to investigate or understand different aspects of the phenomena.

Programming Languages

The choice of programming language for Computer Science 20 and Computer Science 30 is left to individual teachers who are best situated to make the decision based on their experience, language suitability to support curricular outcomes and available technology and technical support. Languages that are platform independent allow flexibility for students to work at home.

In order to facilitate student learning with a focus on problem solving and computational thinking as opposed to a focus on language syntax, the choice of programming language should take into consideration the learning curve associated with a specific language. Some environments may breed student frustration due to language design choices that solve problems that the student will never encounter.

Teachers may choose to change the programming language from Computer Science 20 to Computer Science 30, although the change is not required. When choosing a language that will serve for both courses, it is important that the language not be a constraint for the content in Computer Science 30, specifically the need to explore the concepts and principles of object oriented programming (OOP).


Suggested Languages for Computer Science 20 Suggested Languages for Computer Science 30
Python Python
Java Processing
PHP Java
JavaScript PHP
Visual Basic JavaScript

One of the key objectives of Computer Science 20 is to promote interest in this field. To that end, students should start coding as soon as possible in the course. For that purpose, a visual programming environment can be very useful to simplify the syntax of programming in order to focus on algorithm design and problem solving. While a visual programming environment is useful as an introduction, it should not be used as the core language in Computer Science 20.

Suggested Visual Programming Environment for Computer Science 20

  • Blockly
  • Scratch

A useful transition between a visual programming environment and a traditional language can be a constrained language, such as a modern adaptation of Karel the Robot built using the language you will be using for the rest of the course.

Computational Thinking

Computational thinking is a broad set of problem-solving processes which represent an entry point for new ways of thinking that are applicable in computer science and non-computer science contexts. The following are the essential dimensions of computational thinking:

  • Decomposition, where a problem is broken into a set of simpler independent sub-problems.
  • Pattern recognition, where similarities in related problems are identified.
  • Abstraction, where specific differences in problems are viewed more generally, to allow for a single common solution.
  • Algorithm design, where a sequence of steps are developed which can be followed to solve a problem.

Teachers should highlight connections to these aspects of computational thinking while addressing the outcomes in this document. As they describe thought processes that allow for description of problems in terms that lead to effective solutions, this should be an underlying theme throughout the entire course.

Technology in the Classroom

While it might seem self-evident that studying computer science requires computer technology, many aspects of programming and computational thinking can and should be addressed before students begin to code potential solutions to problems. No particular hardware is required or expected for Computer Science 20. Students may gain experience coding using a wide range of computing devices, such as computers, smartphones, robotics and microcontrollers.

Health, Safety and Ethics

Teachers should be cognizant of the major health and safety concerns associated with computer use, particularly musculoskeletal injuries such as repetitive strain injuries and eye strain. Student workstations should be arranged to support ergonomics and students should be encouraged to take regular breaks to stand and stretch.

Issues of personal safety and privacy are paramount in a computer science class. Students may not have a realistic understanding of the potential concerns that can arise when they share personal information electronically. These concerns might include identity theft, permanence of information on the Internet, cyberbullying and the promotion of hatred

Teachers should model ethical behaviours in the acquisition and use of software. It is also important to develop a classroom climate that respects the intellectual property rights of classmates and others. Students should carefully consider their responsibility when accessing and using confidential information and when accessing computer networks and the Internet. Teachers should ensure students are aware of all relevant school and school divisions' policies.

Gender Equity

Historically, male students have participated in computer science courses at a higher rate than female students. One explanation for this discrepancy is that girls feel that they do not belong in computer science courses (Master, Cheryan & Metzloff, 2016). Suggestions for increasing the female participation rate include connecting girls with female role models, illustrating how computer careers can make a difference in the world, making it fun and exploring problems that have socially meaningful applications.

Collaborative Programming

The nature of work in the programming industry is such that a programmer will seldom work alone on a project. Computer Science 20 and Computer Science 30 attempt to address this through the introduction of pair programming in Computer Science 20 and team projects in Computer Science 30. The skills developed and the opportunity for learning that collaborative programming provides outweigh the challenges of organizing group work in a classroom setting. For example, in a split Computer Science 20 and Computer Science 30 classroom, there is an opportunity to leverage the skills of the Computer Science 30 students in a coaching scenario to accelerate learning for the Computer Science 20 students.

Code Elegance

Elegant code needs to be simple and easy to understand. Saint-Exupery said, "Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away." Developing an algorithm which simplifies code often makes the code more efficient. Writing elegant code involves carefully analyzing the problem and creating an algorithm with a balance between a minimal amount of code and the code being readable and reusable.

Core Principles and Techniques

Core Principles and Techniques are meant to be discussed and implemented throughout the course. Problem solving is at the very core of computer science. The ability to thoroughly understand the nature of a problem and develop a series of instructions that solves the problem is a fundamental programming skill. In addition, as students code programs throughout the course, they must be expected to abide to coding conventions in order to write code that is well organized and easy to understand.

Object-Oriented Programming (OOP)

Object-oriented programming is a design paradigm built on four major principles: encapsulation, abstraction, inheritance and polymorphism. Gaining experience in organizing information into objects that can interact with one another is one of the major new concepts to be introduced in Computer Science 30.

Capstone Coding Project

The capstone coding project is a multifaceted assignment that serves as a culminating experience for students in Computer Science 30. The preference is for the project to be student-directed. The project should encapsulate the entire development process from conceptualization to delivery of a working product. The scale of the project should reflect the amount of time allocated to it. While students may incorporate project management techniques to manage the project, learning project management is not an outcome of Computer Science 30.

Conventions Regarding Code Used in this Document

Although an attempt was made to use the most common/generic operators and syntax throughout this document, operators and syntax vary amongst programming languages. For example, the ` is not equal to ' relational operator in some languages is symbolized as != while other languages use the <> symbol.