Computer Science: Provincial Level


Goal Statement

The goals for the provincial level Computer Science course are:

  • to develop problem solving skills whereby the student is able to analyze a problem, devise an algorithm or process to solve the problem, use this process to write a computer implementation of the solution and to test the solution
  • to adequately prepare students for a career or program of studies where logical thought and structured design processes are required.
Core Topics
Software Engineering (Problem Analysis and Design of Solution)

Given a problem suitable for a computer programming solution, the student shall:

  • analyze the problem so that it is clearly understood
  • identify the inputs, outputs and appropriate data structures
  • break down the solution of the problem into component modules
    • User defined functions
    • Classes
    • Scope
    • Inheritance
    • Polymorphism
  • design the structure of each module, documenting it in structured English (using a method such as pseudo-code or top-down charts) and describing in detail all inputs, processes or algorithms used and format of outputs
  • design an appropriate user interface
  • produce computer source code as a software design implementation
  • test, debug and modify program code until error free
  • document the solution, both internally and externally; and
  •  identify the differences between source code and machine code

Given the solution to a computer programming problem, the student shall:

  • identify the time complexity of an algorithm using big O notation;
  • add features and fix bugs as requested by mock users
  • use version control software; and
  • discuss code with partners using pair-programming techniques
Elements of a programming language

Using a high-level programming language to create programs (such as command-line games and apps, simple graphics, and GUI elements), the student shall demonstrate knowledge of the following program elements:

  • data types (including Integer, Real, Boolean, Character and String) and their representation as bits and bytes, conversion between data types, addressing of arrays
  • meaningful identifier names for constants, variables, procedures (or subroutines) and programs input and output statements
  • arithmetic expressions and operators, including parentheses
  • string and character manipulation and processing, including use of substrings, concatenation, and other language-specific program features, and built-in functions and constants
  • conditional expressions including use of relational operators, logical operators, Boolean variables, and nested conditional statements
  • iteration structures, definite (e.g. For…Do) vs. indefinite loops, and nested loops.
  • one-dimensional and two-dimensional arrays

License

Icon for the Creative Commons Attribution 4.0 International License

A Guide to Upgrading in British Columbia’s Public Post-Secondary Institutions Copyright © 2023 by Shantel Ivits and Stephanie Boychuk is licensed under a Creative Commons Attribution 4.0 International License, except where otherwise noted.