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.