Introduction to Computer Science, Grade 11

NOTE

If desired, visit the canonical source for this curriculum.

Overall and Specific Expectations

Strand A. Programming Concepts and Skills

By the end of this course, students will:

A1. Data Types and Expressions

demonstrate the ability to use different data types, including one-dimensional arrays, in computer programs;

Link to original

A1.1

use constants and variables, including integers, floating points, strings, and Boolean values, correctly in computer programs;

Link to original

A1.2

demonstrate an understanding of how a computer uses various systems (e.g., binary, hexadecimal, ASCII, Unicode) to internally represent data and store information;

Link to original

A1.3

use assignment statements correctly with both arithmetic and string expressions in computer programs;

Link to original

A1.4

demonstrate the ability to use Boolean operators (e.g., AND, OR, NOT), comparison operators (i.e., equal to, not equal to, greater than, less than, greater than or equal to, less than or equal to), arithmetic operators (e.g., addition, subtraction, multiplication, division, exponentiation, parentheses), and order of operations correctly in computer programs;

Link to original

A1.5

describe the structure of one-dimensional arrays and related concepts, including elements, indexes, and bounds;

Link to original

A1.6

write programs that declare, initialize, modify, and access one-dimensional arrays.

Link to original

A2. Control Structures and Simple Algorithms

demonstrate the ability to use control structures and simple algorithms in computer programs;

Link to original

A2.1

write programs that incorporate user input, processing, and screen output;

Link to original

A2.2

use sequence, selection, and repetition control structures to create programming solutions;

Link to original

A2.3

write algorithms with nested structures (e.g., to count elements in an array, calculate a total, find highest or lowest value, or perform a linear search).

Link to original

A3. Subprograms

demonstrate the ability to use subprograms within computer programs;

Link to original

A3.1

demonstrate the ability to use existing sub-programs (e.g., random number generator, substring, absolute value) within computer programs;

Link to original

A3.2

write subprograms (e.g., functions, procedures) that use parameter passing and appropriate variable scope (e.g., local, global), to perform tasks within programs.

Link to original

A4. Code Maintenance

use proper code maintenance techniques and conventions when creating computer programs.

Link to original

A4.1

demonstrate the ability to identify and correct syntax, logic, and run-time errors in computer programs;

Link to original

A4.2

use workplace and professional conventions (e.g., naming, indenting, commenting) correctly to write programs and internal documentation;

Link to original

A4.3

demonstrate the ability to interpret error messages displayed by programming tools (e.g., compiler, debugging tool), at different times during the software development process (e.g., writing, compilation, testing);

Link to original

A4.4

use a tracing technique to understand program flow and to identify and correct logic and run-time errors in computer programs;

Link to original

A4.5

demonstrate the ability to validate a program using a full range of test cases.

Link to original

Strand B. Software Development

By the end of this course, students will:

B1. Problem-solving Strategies

use a variety of problem-solving strategies to solve different types of problems independently and as part of a team;

Link to original

B1.1

use various problem-solving strategies (e.g., stepwise refinement, divide and conquer, working backwards, examples, extreme cases, tables and charts, trial and error) when solving different types of problems;

Link to original

B1.2

demonstrate the ability to solve problems independently and as part of a team;

Link to original

B1.3

use the input-process-output model to solve problems.

Link to original

B2. Designing Software Solutions

design software solutions to meet a variety of challenges;

Link to original

B2.1

design programs from a program template or skeleton (e.g., teacher-supplied skeleton, Help facility code snippet);

Link to original

B2.2

use appropriate vocabulary and mode of expression (i.e., written, oral, diagrammatic) to describe alternative program designs, and to explain the structure of a program;

Link to original

B2.3

apply the principle of modularity to design reusable code (e.g., subprograms, classes) in computer programs;

Link to original

B2.4

represent the structure and components of a program using industry-standard programming tools (e.g., structure chart, flow chart, UML [Unified Modeling Language], data flow diagram, pseudocode);

Link to original

B2.5

design user-friendly software interfaces (e.g., prompts, messages, screens, forms).

Link to original

B3. Designing Algorithms

design algorithms according to specifications;

Link to original

B3.1

design simple algorithms (e.g., add data to a sorted array, delete a datum from the middle of an array) according to specifications;

Link to original

B3.2

solve common problems (e.g., calculation of hypotenuse, determination of primes, calculation of area and circumference) by applying mathematical equations or formulas in an algorithm;

Link to original

B3.3

design algorithms to detect, intercept, and handle exceptions (e.g., division by zero, roots of negatives).

Link to original

B4. The Software Development Life Cycle

apply a software development life-cycle model to a software development project.

Link to original

B4.1

describe the phases (i.e., problem definition, analysis, design, writing code, testing, implementation, maintenance), milestones (e.g., date of completion of program specification), and products (e.g., specification, flow chart, program, documentation, bug reports) of a software development life cycle;

Link to original

B4.2

use a variety of techniques (e.g., dialogue, questionnaires, surveys, research) to clarify program specifications;

Link to original

B4.3

use project management tools (e.g., Gantt chart, critical path diagram, PERT chart) to show tasks and milestones in a teacher-led project;

Link to original

B4.4

use a test plan to test programs (i.e., identify test scenarios, identify suitable input data, calculate expected outcomes, record actual outcomes, and conclude ‘pass’ or ‘fail’) by comparing expected to actual outcomes;

Link to original

B4.5

use a variety of methods to debug programs (e.g., manual code tracing, extra code to output the state of variables);

Link to original

B4.6

communicate information about the status of a project (e.g., milestones, work completed, work outstanding) effectively in writing throughout the project.

Link to original

Strand C. Computer Environments and Systems

By the end of this course, students will:

C1. Computer Components

relate the specifications of computer components to user requirements;

Link to original

C1.1

relate the specifications of the internal components of a computer (e.g., CPU, RAM, ROM, cache, hard drive, motherboard, power supply, video card, sound card) to user requirements;

Link to original

C1.2

relate computer specifications (e.g., processor type, bus speed, storage capacity, amount of memory) to user requirements, using correct terminology;

Link to original

C1.3

relate the specifications of common computer peripheral devices (e.g., printer, monitor, scanner, keyboard, mouse, speakers, USB flash drive) to user requirements;

Link to original

C1.4

identify the computer components involved in executing programming operations (e.g., assignment statements store a value in RAM, arithmetic operations are performed in the CPU).

Link to original

C2. File Maintenance

use appropriate file maintenance practices to organize and safeguard data;

Link to original

C2.1

use an operating system to organize computer programs and files logically on local and shared drives;

Link to original

C2.2

describe procedures to safeguard data and programs from malware (e.g., viruses, Trojan horses, worms, spyware, adware, malevolent macros), and devise a thorough system protection plan;

Link to original

C2.3

use standard procedures to back up and archive user files.

Link to original

C3. Software Development

demonstrate an understanding of the software development process.

Link to original

C3.1

demonstrate an understanding of an integrated software development environment and its main components (e.g., source code editor, compiler, debugger);

Link to original

C3.2

work independently, using support documentation (e.g., IDE Help, tutorials, websites, user manuals), to design and write functioning computer programs;

Link to original

C3.3

explain the difference between source code and machine code;

Link to original

C3.4

explain the difference between an interpreter and a compiler;

Link to original

C3.5

explain the difference between the functions of applications, programming languages, and operating systems.

Link to original

Strand D. Topics in Computer Science

By the end of this course, students will:

D1. Environmental Stewardship and Sustainability

describe policies on computer use that promote environmental stewardship and sustainability;

Link to original

D1.1

describe the negative effects of computer use on the environment (e.g., creation of e-waste, excessive use of paper resulting from unnecessary printing of files and emails, heavy power consumption) and on human health (e.g., exposure to radiation, musculoskeletal disorders, eye strain, mental health problems resulting from social isolation, various health consequences of reduced activity levels);

Link to original

D1.2

identify measures that help reduce the impact of computers on the environment (e.g., lab regulations, school policies, corporate and government policies promoting paperless workplaces and computer recycling and reuse) and on human health (e.g., ergonomic standards);

Link to original

D1.3

describe ways in which computers are or could be used to reduce resource use and to support environmental protection measures (e.g., computer modelling to reduce use of physical resources; management of natural resources);

Link to original

D1.4

identify government agencies and community partners that provide resources and guidance for environmental stewardship (e.g., local community recycling centres, private companies that refurbish computers, printer cartridge recycling programs).

Link to original

D2. Exploring Computer Science

demonstrate an understanding of emerging areas of computer science research;

Link to original

D2.1

demonstrate an understanding of emerging areas of research in computer science (e.g., cryptography, parallel processing, distributed computing, data mining, artificial intelligence, robotics, computer vision, image processing, human–computer interaction, security, geographic information systems [GIS]);

Link to original

D2.2

demonstrate an understanding of an area of collaborative research between computer science and another field (e.g., bioinformatics, geology, economics, linguistics, health informatics, climatology, sociology, art);

Link to original

D2.3

report on an area of research related to computer science, using an appropriate format (e.g., website, presentation software, video).

Link to original

D3. Postsecondary Opportunities

describe postsecondary education and career prospects related to computer studies.

Link to original

D3.1

research and describe career choices and trends in computer science, at the local, national, and international levels;

Link to original

D3.2

identify and report on opportunities for experiential learning (e.g., co-op programs, job shadowing, career fairs) in the field of computer science;

Link to original

D3.3

research and report on postsecondary educational programs leading to careers in information systems and computer science (e.g., institutions offering relevant programs, industry certifications, courses of study, entrance requirements, length of programs, costs);

Link to original

D3.4

identify groups and programs that are available to support students who are interested in pursuing non-traditional career choices related to information systems and computer science (e.g., mentoring programs, virtual networking/support groups, specialized postsecondary programs, relevant trade/industry associations);

Link to original

D3.5

describe the Essential Skills and work habits that are important for success in computer studies, as identified in the Ontario Skills Passport.

Link to original