ICS3C Expectations

ICS3C -- Introduction to Computer Programming, Grade 11, College Preparation

Note: a printable copy of this page is available here.

A. Programming Concepts and Skills

Overall Expectations

A1. demonstrate the ability to use different data types in expressions in simple computer programs;

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

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

Specific Expectations

A1. Data Types and Expressions

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

A1.2 demonstrate the ability to manipulate string data in a computer program (e.g., swap two characters, capitalize first letter, extract a portion of an address, count the occurrences of a word or letter);

A1.3 use assignment statements correctly with both arithmetic and string expressions in computer programs (e.g., numStudents = 4 + 2, name = “Devi”);

A1.4 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.

A2. Control Structures and Simple Algorithms

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

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

A2.3 demonstrate the ability to write algorithms with nested structures.

A3. Code Maintenance

A3.1 explain the difference between syntax, logic, and run-time errors in computer programs;

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

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

A3.4 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);

A3.5 demonstrate the ability to validate a program using test cases.

B.Software Development

Overall Expectations

B1. use a variety of problem-solving strategies to solve different types of problems;

B2. design software solutions to meet a variety of challenges, using a set of standards;

B3. design simple algorithms according to specifications;

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

Specific Expectations

B1. Problem-solving Strategies

B1.1 use various problem-solving strategies (e.g., divide and conquer, working backwards, process analysis, examples, extreme cases, tables and charts, trial and error) to solve programming problems;

B1.2 use the input-process-output model to solve programming problems.

B2. Designing Software Solutions

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

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;

B2.3 write subprograms (e.g., functions, procedures) that perform one well-defined task and use parameter passing and appropriate variable scope (e.g., local, global);

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

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

B3. Designing Simple Algorithms

B3.1 use simple algorithms (e.g., validate entered data, count, accumulate, use random numbers) to design a program according to specifications;

B3.2 solve problems (e.g., calculation of gross pay; fuel consumption on a car trip; average of students’ marks; temperature at a given altitude, using the environmental lapse rate) by applying mathematical equations or formulas in an algorithm;

B3.3 design algorithms to detect, intercept, and handle run-time errors (e.g., division by zero, roots of negatives).

B4. The Software Development Life Cycle

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;

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

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;

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;

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

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

C. Computer Environments and Systems

Overall Expectations

C1. demonstrate an understanding of the functions of different types of computer components;

C2. use appropriate file maintenance practices to organize and safeguard data;

C3. use a software development environment to write and run computer programs.

Specific Expectations

C1. Computer Components

C1.1 describe the functions and features of the internal components of a computer (e.g., CPU, RAM, ROM, cache, hard drive, motherboard, power supply, video card, sound card);

C1.2 use correct terminology to describe computer features and specifications (e.g., processor type, bus speed, storage capacity, amount of memory);

C1.3 describe the functions and features of common computer peripheral devices (e.g., printer, monitor, scanner, keyboard, mouse, speakers, USB flash drive);

C1.4 compare and contrast common ISP services (e.g., DSL, cable, dial-up, regional Wi-Fi) and home networking hardware (e.g., NICs, routers, hardware used for wired and wireless connections).

C2. File Maintenance

C2.1 use an operating system to logically organize computer files for easy retrieval, backup, and recovery;

C2.2 use standard backup procedures to back up user files.

C3. The Software Development Environment

C3.1 describe the functions and features of a software development environment and use it to write and run a computer program;

C3.2 describe the differences between applications, programming languages, and operating systems;

C3.3 use Help documentation as a guide to designing and writing programs.

D. Computers and Society

Overall Expectations

D1. describe computer use policies that promote environmental stewardship and sustainability;

D2. describe and apply procedures for safe computing to safeguard computer users and their data;

D3. explain key aspects of the impact that emerging technologies have on society;

D4. describe postsecondary education and career prospects related to computer studies.

Specific Expectations

D1. Environmental Stewardship and Sustainability

D1.1 describe negative effects of computer use on the environment (e.g., creation of waste, unnecessary printing of emails, heavy power consumption) and on human health (e.g., exposure to radiation, musculoskeletal disorders, eye strain, various health consequences of reduced activity levels);

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

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; interpretation of large amounts of environmental data; management of natural resources; programmable temperature control to reduce energy consumption);

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

D2. Safe Computing

D2.1 explain the need for an acceptable-use policy for using computers at school and at work;

D2.2 describe and use appropriate strategies to avoid potential health and safety problems associated with computer use (e.g., musculoskeletal disorders, eye strain);

D2.3 describe procedures to safeguard data and programs from malware (e.g., viruses, spyware, adware).

D3. Emerging Technologies

D3.1 explain how emerging technologies can affect personal rights and privacy (e.g. video surveillance, cyberbullying, identity theft);

D3.2 describe some emerging technologies and their implications for, and potential uses by, various members of society;

D3.3 describe some of the solutions to complex problems affecting society that have been or are being developed through the use of advanced computer programming and emerging technologies (e.g., monitoring and regulating electrical supply and demand; using facial recognition programs to verify the identity of persons entering a country; analysing criminal activity by overlaying crime data on satellite imagery; analysing large-scale meteorological data to predict catastrophic storms).

D4. Postsecondary Opportunities

D4.1 research and describe trends in careers that require computer skills, using local and national sources (e.g., local newspaper, national newspaper, career websites);

D4.2 identify opportunities for experiential learning (e.g., co-op programs, job shadowing, career fairs) related to computer science;

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

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

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