|
Problem Solving SW Development IPO Chart IPO & Problem Anaysis Flowcharts
| |
Problem Solving &
Software Development
| Unit 2 |
Activity 1 |
Time:
160
minutes
|
Description
Students study problem solving and the software development process. They use
IPO charts and flowcharts to organize their program planning.
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
|
| B1. |
use a variety of problem-solving strategies to solve different types
of problems independently and as part of a team; |
| B3. |
design algorithms according to specifications; |
|
Specific Expectations
|
| 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. |
| 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.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; |
| |
|
Prior Knowledge &
Skills
Planning Notes
-
Select
from the following possible preparations for this activity:
-
Gather examples (possibly
from videos, articles, or web sites) of development processes in other
industries (e.g., auto industry and food industry).
-
Consult with broad-base
technology teachers about development processes used in their courses and
relevant industries.
-
Inventory the programs or
applications used by students and staff in the school.
-
Gather examples of the
software development process in the creation/production of large programs.
-
Contact a computer
professional (programmer, analyst, or project manager) at a local company
and inquire about the use of the software development process within the
company.
-
Prepare
a handout, overhead presentation, multimedia presentation, or web page on
the software development process.
-
Prepare
in-class task to help students understand different steps in the software
development process.
-
Prepare
a homework assignment to help students understand the software development
process.
Teaching/Learning
Strategies
- ask students how they solve
problems
- look at
Problem Solving methods (Appendix 2.1.1)
with
- discuss with the
students the need to organize the work to create a program;
- introduce the use of an
IPO Chart (Appendix 2.1.2) and a
Flowchart (Appendix 2.1.3) by using an example program;
- use a simple math
concept that makes use of a constant;
- such as finding
the area of a circle (uses pi);
- demonstrate the
use if the IPO and flowcharts using the example;
- design and administer
a quiz on the use of the IPO chart and flowchart;
- design and administer
a test based on this activity.
-
Introduce
the concept of a development process and present examples of how products
are created.
-
Introduce
the concept of the Software Development Process
(Appendix 2.1.4) and stages of this process.
See
Waterfall model (Appendix 2.1.5) and
Iterative Model (Appendix 2.1.6) and
Guideline model
(Appendix 2.1.7).
-
Present
a development process from another industry and compare it to the software
development process.
-
Discuss
how needs of various industries shape their design processes.
-
Students
participate in a class discussion about the development process .
-
Facilitate
discussion on students’ programming experience and how they have carried
out programming tasks.
-
Query
students about the programs they have used at school, at home, or at work.
-
Facilitate
discussion regarding the creation of large programs or applications (e.g.,
word processor, spreadsheet, photo-editing tools, web browser, and operating
system).
-
Present
examples of the use of the software development process in the software
industry.
-
Discuss
the ethical implications of the design process.
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
Resources
- Hume, J.N. Patterson and Stephenson, Christine. Introduction to Programming in
Java. Toronto, Ontario, Canada. Holt Software Associates Inc. 2000.
ISBN 0-921598-39-4
- Lambert, Kenneth A. and Osborne, Martin. Java Complete Course in Programming & Problem
Solving. Cincinnati, Ohio, USA. South-Western Educational Publishing.
2000.
ISBN 0-538-68707-X
- Arnow, David M. and Weiss, Gerald. |Introduction to Programming Using Java: An Object Oriented
Approach. Don Mills, Ontario. Addison-Wesley. 2000.
ISBN 0-201-61272-0
- Deitel, H.M. and Deitel P.J. Java: How to Program. 3rd ed. Upper Saddle River, New
Jersey. Prentice Hall.1999.
ISBN 0-13-012507-5
- Eckel Bruce. Thinking in Java. 2nd ed. Upper Saddle River, New Jersey,
USA. Prentice-Hall. 2000.
ISBN 0-13-027363-5 available for download from http://www.mindview.net/Books/TIJ/ in various formats
- Eck, David J. Introduction to Programming Using Java 3.1
ed. 2001. Open Publication License. 2000. <http://math.hws.edu/javanotes>
- Stein, Lynn Andrea. Interactive Programming in Java. Morgan Kaufmann
Publishers. 1999.
ISBN 1-55860-557-6 Available for download from http://www.mkp.com/ipij/
- Roedy Green. How to write unmaintainable code. http://mindprod.com/unmain.html
- John Malouff. Over Fifty Problem Solving Strategies Explained.
http://www.une.edu.au/about-une/academic-schools/bcss/study-areas/psychology/research/psychology-community-activities/over-fifty-problem-solving-strategies-explained
|