|
Written Presentation Rubric Oral Presentation Rubric
| |
Creating
a Solution
| Unit 5 |
Activity 3 |
Time:
320
minutes
|
Description
Students move from a 'skeleton' program to a more fleshed out version.
Strand(s) & Learning
Expectations
Strand(s):
A. Programming Concepts
and Skills
B. Software Development
C. Computer Environments and Systems
D. Topics
in Computer Science
|
Overall Expectations
|
| A1. |
demonstrate the ability to use different data types, including
one-dimensional arrays, in computer programs; |
| A2. |
demonstrate the ability to use control structures and simple
algorithms in computer programs; |
| A3. |
demonstrate the ability to use subprograms within computer programs; |
| A4. |
use proper code maintenance techniques and conventions when creating
computer programs. |
| 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; |
| B4. |
apply a software development life-cycle model to a software
development project. |
|
Specific Expectations
|
| A1.1 |
use constants and variables, including integers, floating
points, strings, and Boolean values, correctly in computer
programs; |
| A1.3 |
use assignment statements correctly with both arithmetic and
string expressions in computer programs; |
| 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; |
| 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; |
| A3.1 |
demonstrate the ability to use existing subprograms (e.g.,
random number generator, substring, absolute value) within
computer programs; |
| 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. |
| A4.1 |
demonstrate the ability to identify and correct syntax,
logic, and run-time errors in computer programs; |
| A4.2 |
use workplace and professional conventions (e.g., naming,
indenting, commenting) correctly to write programs and internal
documentation; |
| 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); |
| A4.4 |
use a tracing technique to understand program flow and to
identify and correct logic and run-time errors in computer
programs; |
| A4.5 |
demonstrate the ability to validate a program using a full
range of test cases. |
| 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.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); |
| B4.2 |
use a variety of techniques (e.g., dialogue, questionnaires,
surveys, research) to clarify program specifications; |
| 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. |
Prior Knowledge &
Skills
Students:
-
understand
and can write programs with selection and repetition structures, data
structures, and subprograms;
-
have
seen and used at least one planning technique in the context of small
problems.
Planning Notes
-
The
major goal of the final project should be to have students apply what they
have learned, throughout the course in the context of a larger problem.
Teachers should act as a project manager or advisor.
-
Teachers
must decide the format for the final project. They may have all students
working on the same basic problem, or students may choose their own problems
within some clearly stated specifications. Students may work individually or
in groups. Group projects are closer to the real-life software development
process, and they can be larger in scope. However, individual assessment
becomes more difficult and the students and teachers must accept the
overhead cost of applying group management skills.
-
Planning
a solution is the single most difficult step in the problem solving process.
With a good plan, creating a solution should be relatively trivial.
Understandably, most students will struggle with this process.
-
Evaluation
of this activity should be tied to the project as a whole.
Teaching/Learning
Strategies
- Students move from a skeleton program to a more fleshed out version of
the code. See Memo #4 (Appendix 5.3.1). This
code will be the launching point for a more complete version that will be
completed in the next activity.
- Help students to understand the sample programmes that are available
Sample implemented Dog Class (Appendix 5.3.2).
Assessment & Evaluation of Student Learning
As Learning
Students will be given time to:
- reflect on their progress/
understanding/areas of concern
based on teacher/student/peer
suggestions (e.g. after test take up)
- journalize their reflections
- reflect on the work of others
For Learning
The teacher will
- observe student progress/performance
- ask questions based on student work
- check homework correctness/completion when appropriate
- review formative quiz results
Of Learning
Accommodations
The
following are ways in which the activity can be modified to accommodate
students' individual needs:
-
provide
a planning framework to which students will add modules;
-
select
group members based upon previous classroom performance and recognized
strengths and weaknesses;
-
investigate
software development tools;
-
provide
a graduated set of specifications, such as basic requirements, minor
enhancements, major enhancements.
Resources
|