ICS3M: Computer and Information Science
This is a Grade 11, University/College Preparation course, worth 1 credit. It is based on the the Ministry of Education document entitled Technological Education, The Ontario Curriculum, Grades 11 and 12 (Ministry of Education, 2000, ISBN 0-7778-9198-0).
Course Description
This course helps students examine computer science concepts. Students will outline stages in software development, define standard control and data structures, identify on- and off-line resources, explain the functions of basic computer components, and develop programming and problem-solving skills by using operating systems and implementing defined practices. As well as identifying careers in computer science, students will develop an understanding of the ethical use of computers and the impact of emergent technologies on society.
Overall Expectations
Theory and Foundation
By the end of this course, students will:
- describe at least two problem-solving models;
- identify the stages in the software development process (problem definition, analysis, design, implementation, testing, and maintenance);
- explain standard control and data structures used in computer programs;
- identify on-line and off-line resources;
- explain the functions of basic computer components.
Skills and Processes
By the end of this course, students will:
- develop effective programs by following the steps in the software design process;
- use defined programming practices (e.g., headers, indentation, internal documentation, informative variable names);
- produce appropriate internal and external documentation;
- properly use an operating system, including a network.
Impact and Consequences
By the end of this course, students will:
- explain issues related to the ethical use of computers;
- describe emergent technologies and their impact on society;
- identify information systems and computer science career paths, and their educational requirements.
Specific Expectations
Theory and Foundation
Problem Solving, Logic, and Design
By the end of this course, students will:
- define problems by identifying the expected output and necessary user input;
- evaluate the usefulness of available software tools in a problem-solving situation, using criteria such as ease of use and time required for processing;
- describe the steps in the software development process and their importance in the development of large programs or applications;
- explain different problem-solving models (e.g., top-down, bottom-up) that can be used to create a computer program;
- determine the level of error checking required for given problems;
- identify the possibilities and limitations of proposed designs;
- document for the user the potential and limitations of programs.
Programming Concepts
By the end of this course, students will:
- describe the characteristics of integer, real, character, and Boolean data types;
- define constants, variables, expressions, and assignment statements;
- describe the order in which arithmetic and logical operations are performed;
- explain the use of Boolean operators in compound expressions;
- define the structure of one- and two-dimensional arrays and associated concepts (e.g., subscripts, elements, bounds);
- explain the purpose of selection and repetition structures, and how they are expressed in a programming language;
- describe the purpose of functions and procedures, and how they are expressed in a programming language;
- describe parameter passing and scope;
- identify differences between local and global variables;
- identify differences among logic, runtime, and syntax errors;
- describe the evolution of programming languages (e.g., machine, assembly, high-level, 4GL);
- evaluate available on-line resources such as readme files, help files, and frequently asked questions files;
- evaluate available off-line resources such as user manuals and reference manuals;
- explain the importance of external and internal documentation and programming style;
- identify common acronyms used in the computing industry.
Hardware, Interfaces, and Networking Systems
By the end of this course, students will:
- describe the function and location of the basic components of a computer (e.g., motherboard, CPU, I/O devices, memory);
- identify common computer peripheral devices (e.g., mouse, keyboard, screen, printer, multimedia devices) and their primary functions;
- explain differences among software for systems, applications, and programming.
Skills and Processes
Problem Solving, Logic, and Design
By the end of this course, students will:
- resolve ambiguities and missing information in problem statements;
- use the input, process, and output model to solve problems;
- select suitable data structures to represent information;
- develop and maintain a project plan that covers all aspects of the development process for a computer program;
- develop appropriate algorithms in text or diagram form to solve problems and verify solutions;
- produce user-friendly input and output forms;
- solve the same problem using various tools (e.g., a calculator and a computer program, a sort program and a spreadsheet/database/word processor sort function);
- verify solutions to problems;
- incorporate modularity into the design process.
Programming Practices
By the end of this course, students will:
- use constants, variables, expressions, and assignment statements to store and manipulate numeric, character, and logical data in programs;
- incorporate one-dimensional and two-dimensional arrays into computer programs;
- write programs that use related arrays to store and extract data;
- use selection structures, counted and conditional loops, and nested selection and loop structures;
- manipulate numbers and text using built-in subroutines;
- write subroutines that pass parameters and use local and global variables;
- implement a program design using sequence, selection, and repetition structures;
- use on-line and off-line reference materials effectively;
- adhere to defined programming style, including naming conventions for variables and subroutines, indentation, and spacing;
- incorporate and maintain internal documentation to a specific set of standards, including author, date, file name, purpose, and explanatory comments of major statement groups;
- develop external documentation (including pseudocode, diagrams, and charts) to summarize the design;
- test completed programs with a full range of valid data to ensure that all components work as expected;
- interpret errors during testing and program execution;
- trace program execution using manual methods and software debugging tools;
- identify and correct logic, runtime, and syntax errors in programs;
- use linear searches and simple sort routines in programs;
- write programs that access sequential files;
- perform peer evaluations of internal documentation and programming style.
Hardware, Interfaces, and Networking Systems
By the end of this course, students will:
- use an operating system to perform tasks such as managing files and configuring hardware;
- use built-in networking functions such as shared files and input/output devices;
- use common Internetworking services to access and navigate global information resources;
- develop computer resources to share information globally or locally;
- implement a comprehensive backup strategy for files.
Impact and Consequences
Effects of Information Technology
By the end of this course, students will:
- explain how the pervasiveness of computer technology affects daily life;
- describe how information is gathered using computers and how this can affect peoples privacy and right to information;
- identify a number of available sources of career and educational information using networks and evaluate their reliability and accuracy;
- describe, using presentation software, emergent technologies and their potential influence on society;
- use appropriate strategies to avoid potential health and safety problems associated with computer use, such as musculo-skeletal disorders and eye strain;
- explain the importance to identifying career paths of keeping up to date on current articles and thought on computer technology.
Postsecondary Education and Career Opportunities
By the end of this course, students will:
- identify postsecondary educational opportunities leading to careers in information systems and computer science, and report on their entry requirements;
- identify which careers require computer expertise, using local or national media;
- identify opportunities for apprenticeship training and co-op programs.