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