|
| |
Software Development
Overall Expectations
By the end of this course, students will:
| B1. |
use a variety of problem-solving strategies to solve different types
of problems independently and as part of a team; |
| B2. |
design software solutions to meet a variety of challenges; |
| B3. |
design algorithms according to specifications; |
| B4. |
apply a software development life-cycle model to a software
development project. |
| |
|
Specific Expectations
B1.
|
Problem-solving Strategies
|
| |
By the end of this course, students will: |
| |
| 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; |
| B1.2 |
demonstrate the ability to solve problems independently and
as part of a team; |
| B1.3 |
use the input-process-output model to solve problems. |
| |
|
|
B2.
|
Designing Software Solutions
|
| |
By the end of this course, students will: |
| |
| B2.1 |
design programs 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 |
apply the principle of modularity to design reusable code
(e.g., subprograms, classes) in computer programs; |
| 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); |
| B2.5 |
design user-friendly software interfaces (e.g., prompts,
messages, screens, forms). |
| |
|
|
B3.
|
Designing Algorithms
|
| |
By the end of this course, students will: |
| |
| 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; |
| 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; |
| B3.3 |
design algorithms to detect, intercept, and handle
exceptions (e.g., division by zero, roots of negatives). |
| |
|
|
B4.
|
The Software Development Life Cycle
|
| |
By the end of this course, students will: |
| |
| 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. |
| |
|
|
| |
|
Source: The Ontario Curriculum, Grades 10 to 12: Computer
Studies, 2008 (revised), page 42-3
PDF Format |