Software Design Unit for AP Computer Science

advertisement
Software Design Unit for AP Computer Science
Ellen Kemp 1
Stage 1 – Desired Results
Established Goals
Transfer
Students will consistently document and analyze programs they write using the
What content
standard documentation and design processes for software design. Students will use
standards and
current industry standards to design and write programs. Students will work as a
program goals will class to examine the Software Design Cycle as it pertains to GridWorld Case
the unit address?
StudyProgram (APCS designed program). After analyzing the GW program, students
will be given a programming assignment and will be required to analyze the
CTE Software Design problem, design a programming solution, Implement the program, test their
Standards:
program and evaluate(and document) the result. (Software Design Cycle). Activities
will include individual reflection and group work. They will be evaluated by their
1.0 Apply Problempeers (pair- share) as well as teacher evaluation. All programing assignments (all
solving and critical
thinking skills to
year)will be graded using a Software Design Cycle rubric. (attached)
information
technology
7.0 Demonstrate
Program Analysis and
Design
7.1 Steps in a program
development cycle
7.2 Interpret a
problem statement
and identify program
requirements
7.4 Use essential
object analysis and
design concepts
Common Core
Standards:
Utilize critical thinking
to make sense of
problems and
persevere in solving
them.
Work productively in
teams while using
cultural/global
competence.
IT Cluster:
Demonstrate positive
cyber citizenry by
applying industry
accepted ethical
practices and
behaviors.
Project scenario : Joe's Electronics Company needs a new program to better
manage their inventory. They need a report each day that shows what
products were sold during the day and the quantity available at that time.
Your Company has been contracted to create this new program for Joe’s
Electronics Co. Your Group will plan for and create this program. Write the
program to Joe’s specifications and present a documentation of the entire
program. (use the report template to describe your finished product)
Meaning
Understandings
Program analysis and design is important in writing usable and
reusable programs that can be utilized by present and future
designers on the same program.
In industry there are advantages to using common software processes
including:
– Quick and efficient adding of program-specific models
– Extendable toolset
– Prevents “re-inventing the wheel”
– Portability other environments
Each step in the program development design cycle is important to
programming and why.
Essential
Questions
Why do software
designers use
common software
processes (software
version control,
software change
control, software
documentation)?
How do all of these
contribute to a welldesigned program?
What does it mean to
verify or validate a
program?
How can common
code architecture
provide long term
benefits?
2
SOFTWARE DESIGN UNIT FOR AP COMPUTER SCIENCE
Acquisition
Students will know …





The Steps in the program design cycle
 Analysis
 Design
 Implementation
 Testing
 Evaluation/Documentation
How to identify and interpret a program requirements
How to validate and verify program’s desired results
How to document a program in Java using correct
documentation procedures including naming, commenting.
What industry standards of documentation are and how to use
them.
They will do this by the activities outlined in the attached
Software Lifecycle lessons and activities
Team Project for Joe’s Electronics
Software Design Unit for AP Computer Science
Ellen Kemp 3
Stage 2 - Assessments
Performance Task
Goal : The goal is to produce a well-documented program using the standard industry Analysis
and design steps including the documentation report.
Role: You are a software design engineer working with a team of programmers.
Audience: Your team will present your program and the accompanying Program Documenatation
Report to the other teams as well as the CEO of the company (Mrs. Kemp)
Situation or Scenario : Joe's Electronics Company needs a new program to better manage their
inventory. They need a report each day that shows what products were sold during the day and
the quantity available at that time. Your Company has been contracted to create this new program
for Joe’s Electronics Co. Your Group will plan for and create this program. Write the program to
Joe’s specifications and present a documentation of the entire program. (use the report template
to describe your finished product)
Product or performance You will produce (with your team) a complete running program and the
accompanying report. (Programming Documentation Report)
Standards or success rubric -Your program must include standard industry and programming
documentation and design. You will turn in a working program and PDR (Program Documentation
Report – template attached) – Graded on a rubric (attached)
Other Evidence: (quizzes, tests, prompts, work samples, labs, etc.)
Programmer’s Journal entries. (each student has a programmers journal)
MC quiz on Software design cycle
Documented “practice” program – smaller scale program where students will be led through the entire
process.
Final group project and documentation Report for “Joe’s Electronics” Project
Second semester group project of student’s choice using a “real world” programming and the software
design cycle.
Student Self-Assessment and Reflection
Students will submit entries daily to their Programmers journal. Students will complete a peer review.
Peer review and rubric.
4
SOFTWARE DESIGN UNIT FOR AP COMPUTER SCIENCE
Stage 3 – Learning Plan
Where: The students will be able to use the steps in software design cycle
when writing a program or adding to an existing program.
Hook: Joe's Electronics Company needs a new program to better
manage their inventory. They need a report each day that shows
what products were sold during the day and the quantity available at
that time. Your Company has been contracted to create this new
program for Joe’s Electronics Co. Your Group will plan for and create
this program. Write the program to Joe’s specifications and present a
documentation of the entire program. (use the report template to
describe your finished product)
Explore: Explore www.extremeprogramming.org to answer part 4 of
the written activity. Use www.agile-process.org to describe the planning
and team work for this project.
Explore: Work with a team to write and improve a program where each
person has a different feature to add. Be able to follow the specifications
so all parts work together and the entire program incorporates all the new
features and works.
Rethink and Revise : make appropriate changes to an existing program
and provide reasons for your changes. Make sure to consult the customer
(Joe’s (Mrs. Kemp is the CEO of the company) Electronics)
Evaluate understanding : Each student will present changes to a group of
their peers – “Peer Review” before finalizing the changes and
incorporating them into the program. The final group report and program
will be turned in to the “CEO” of the company.
Pre-Assessments
What pre-assessments will you use to
check student’s prior knowledge,
Skill levels and potential
misconceptions?
Pre assessment: compare a well written
program (well documented) and a
poorly written one.
Programmers journal Questions:
Have you ever experienced trying to
debug a program you wrote a long time
ago or help debug someone else’s
program? What problems did you
encounter? If there were no problems
understanding the program, was it
because it was well documented?
Was it easier to write a program when
you used all the steps in the software
design cycle? (analysis, design,
implementation, Testing, Evaluation)
What problems occurred when you
didn’t use all the steps.
Have you ever had a program work for
most inputs but not for a specific value?
Did you allow for this in your program
specification and implementation?
How?
Carefully test your program using
good test data and inputs.
Progress Monitoring
• How will you monitor students’
progress toward acquisition, meaning,
and transfer, during lesson events?
Daily exit card summarizing ways to
document a program and reasons for
doing it.
Journal check
Tailor: Using a real world programming scenario students will create a
program. (Joe’s Electronics program)
Organize : the lessons start with teacher directed activities, individual
work then pairs, then larger groups. The assignments progress from
easy/simple to more complex with a final group programming project and
report.
• What are potential rough spots and
Student misunderstandings? Getting
students to continue using the
programming design cycle and good
documentation in all of their programs.
Students may balk due to extra time
needed to document a program.
Producing the final report.
• How will students get the feedback
they need. By using the Program
grading rubric consistently and
providing students with feedback in
their journals as well as in their
programs. I will quiz before the
Software Design Unit for AP Computer Science
Ellen Kemp 5
students actually start the programming
project to check for understanding of the
Software Design Cycle and their
understanding of what they need to do.
Each part of the Design report will be
checked before moving on to the next
step.
• Are all three types of goals (acquisition, meaning, and transfer) addressed in the learning plan? Yes
Acquisition: learning the steps,
Meaning: applying the steps to a small program
Transfer: utilizing the steps in a “real World” program working within a group(teacher assigned teams) of programmers (fellow students)
• Does the learning plan reflect principles of learning and best practices? yes
• Is there tight alignment with Stages 1 and 2?yes
• Is the plan likely to be engaging and effective for all students? This plan should engage both the more experienced as well as the weaker
students in a real world project.
6
SOFTWARE DESIGN UNIT FOR AP COMPUTER SCIENCE
Appendices
During my internship this summer at Raytheon I worked in with the Software Simulations Team.
The team built and revised the Software Simulation for the deployment of a missile. The team was made
up of 8 – 10 people who all worked on various phases of the simulation program(with several support
engineers outside of the SIM team adding assistance as needed). The program was written in C++ and
simulated all phases of the missile deployment including all factors that could affect the missile in
reaching its target. This included weather related and physical features of the missile.
Many engineering factors of the missile had to be included in the simulation. When there were
problems with the actual missile the software simulation had to be revised to include the new problems
or features. Each person on the team was often making changes to the program at the same time as
others were making their changes. In order for all the changes to take effect when needed the
programmers had to pay careful attention to all of the phases of the software design cycle. Team work
was essential and many “peer reviews” were needed to incorporate all of the changes in a timely manner.
It was also essential that each change was tested and incorporated correctly so they didn’t affect any
other parts of the program.
The SIM team was responsible for :
 Adhering to standards in software version control, software change control
 Testing and verification and validation of the software
This need for careful adherence to software design practices should be incorporated into learning for all
students in any software or programming class.
Software Design Unit for AP Computer Science
Resources and Technology Integeration
Web pages including:
www.extremeprogramming.org
www.agile-process.org
Java language
www.oracle.com
JCreator Integrated Development Environment
www.jcreator.com
Ellen Kemp 7
Download