|
Life Cycle Definition IPO Chart Pseudocode Assignment Checklist Rubric
| |
The Programmer's Plan Of Action: The Software Design Process
| Unit 2, Activity 3 |
Time:
480
minutes |
Description
Students are introduced to the stages of the software
design process and use this process to create a simple program design. Students
use problem-definition tables to devise a simple method of obtaining complete
and unambiguous information from the user to arrive at a clear problem
definition. Students build their own algorithms to solve specific problems using
input, processing, and output (IPO) charts and represent their algorithms either
with pseudo-code or flowcharts. Students verify their algorithm with appropriate
test data to ensure it produces the required results and use a variety of tools
to check results. Students write documentation that sets the required
specifications of the computer program for the implementation (coding) stage.
Students are challenged to reflect on how their listening, presentation, and
decision-making skills are related to problem solving.
Strand(s) and Expectations
Planning Notes
-
Emphasize the importance of the design stage in
the software development process. This stage requires students to think
logically and creatively to determine the most efficient algorithm, best
possible data types, and format for user interface. Students generally tend
to ignore this phase and jump right to coding on computer. This bad habit is
detrimental as students confront more complex programs that demand good
design.
-
Place the stages of the software
design process (Appendix 2.3.1), the problem-definition table
(Appendix 2.3.2),
the input-processing-output chart (Appendix
2.3.3), and examples
of pseudo-codes and flowcharts (Appendix 2.3.4) in a shared directory on the school
network for students to access. Alternatively, publish them on a web site
where students have access from the school’s Internet connection. Where
the above-mentioned methods are not feasible, photocopy the appendices for
student reference and use.
-
Ensure students have access to software such as a
word processor, a web-page editor (can be any text editor like Windows Notepad
or Wordpad), and/or a presentation package.
-
Ensure there is the possibility of showing
students’ work to the whole class (e.g., use a projection unit or place
students’ work in a shared directory for other students to access).
Teaching/Learning Strategies
The teacher:
-
facilitates and assists students in mapping out
common points between the problem-solving model and the software design
stages and discovering how closely they are related;
-
reviews the problem-solving
model (Appendix 2.1.2);
-
introduces the software
design stages (Appendix 2.3.1) and assist students to create a mind map on the
commonalties between the problem-solving model and the software design
stages and discover how closely they are related;
-
models use of problem-definition
tables (Appendix 2.3.2) and IPO charts
(Appendix 2.3.3);
-
places students in groups of three, gives a problem
definition with ambiguities (Appendix 2.1.4) and missing information (e.g., problems 3,
4, 8, 11, and 12), then asks each group to formulate a problem
definition (Appendix 2.3.2) by applying the IPO charts
(Appendix 2.3.3);
-
provides an opportunity for each group to share
its problem definition;
-
uses class discussion to encourage students to
take note of the importance of clear and unambiguous problem statements;
-
asks students to reflect on how their listening,
presentation, and decision-making skills are related to problem-solving;
-
explains and models the concept of algorithms as
steps/instructions to solving a problem;
-
explains the use of flowchart symbols and
pseudo-code in the building of an algorithm
in the software design stage;
-
checks for students' understanding of software
design stages by providing another question for students to solve using
problem-definition tables, IPO charts, and pseudo-code or flowcharts;
-
models the importance of verifying the algorithm
with test data;
-
models the writing of documentation for program
specification;
-
reminds students that the end-of-unit project
requires them to use the IPO chart and either pseudo-code or flowchart to
represent their algorithms as the third stage (this is done individually as
homework and then each student is paired with a partner to compare designs;
from the two designs, a common design is created and presented);
-
assigns the end-of-unit program
design project (Appendix 2.3.5) and
allows students to create their own problem to solve. Clearly outline the
requirements for the project by reviewing the presentation
expectations (Appendix 2.3.6).
The students:
-
use Co-operative Learning 3-Step Interview
structure in groups of three to investigate ways of obtaining missing
information and clarifying information in the definition of an ambiguous
problem;
-
individually apply their understanding of the software
design stages (Appendix 2.3.1) with the use of problem-definition
tables (Appendix 2.3.2), flowcharts, or pseudo-code
(Appendix 2.3.4)
to prepare a program design;
-
(in pairs) compare designs and create a common
design (taking the best of the two ), then prepare an oral and visual
presentation of their program design;
-
present their program design to the whole class.
Assessment/Evaluation Techniques
The teacher and students gather assessment information
based on specific expectations outlined for this activity including:
-
a formative assessment in roving conferences to
ensure students can explain and apply the software design process;
-
a summative assessment (checklist,
Appendix 2.3.6)
of students’ completed design and presentation;
-
a summative assessment of the final programming
design project (Appendix 2.3.7).
Accommodations
The following are ways in which the activity can be
modified to accommodate students’ individual needs:
-
pair and group students according to abilities
such that stronger students can be presented with more challenging problems
while weaker students can have more intervention from teacher;
-
provide support as needed for those students who
benefit from direct one-to-one teacher intervention;
-
provide students with special needs help in
mapping out commonalities between the problem-solving model and the software
design stages;
-
use prepared program designs for identified
students to update and/or fill in gaps instead of creating program designs
from the problem statements;
-
provide initial testing data for students to test
their algorithms;
-
assist students with special needs in using a word
processor, web-page editor, or presentation software;
-
help students with special needs choose a suitable
problem set;
Resources
Print
Bailey, Edward R., et al. Computer Science: A
Structured Approach. Canada: D.C. Heath Canada Limited, 1985. ISBN 0-669-95104-8
Lambert, K. A., D. W. Nance, and T.L. Naps. Introduction
to Computer Science with C++, Revised Edition. Boston: PWS Publishing
Company, 1997. (Chpt. 2,3) ISBN 0-534-95204-6
Lewis, J. and W. Loftus. Java Software Solutions: Foundations of Program Design. MA:
Addison-Wesley, 1998. (Chpt. 11) ISBN 0-201-57164-1
Rood, H.J. Logic
and Structured Design for Computer Programmers, Second Edition. Boston: PWS-KENT
Publishing Company, 1992. (Chpt. 1.2, 2) ISBN 0-534-92966-4
Sprankle, M. Problem-Solving
& Programming Concepts, Third Edition. New Jersey: Prentice Hall, 1995.
(Chpt. 1,3) ISBN 0-02-415350-8
Uckan, Y. Problem-Solving
Using C Structured Programming Techniques. Chicago: Times Mirror Higher
Education Group, Inc., 1995. (Chpt. 2) ISBN 0-697-22465-1
Flowchart template
Software
Current Ministry of Education licensed software (e.g., Corel
Suite, Claris Works)
|