Day 23 - Final Project - Planning and Design
Day 23: Final Project - Planning and Design
Learning Objectives
- All unit objectives
Essential Questions
- How do we apply programming concepts to solve real-world problems?
- How do we plan and design a program before implementation?
Materials Needed
- Final project requirements handout
- Project planning templates
- Algorithm design worksheets
- Pseudocode templates
- Flowchart tools
- Exit ticket templates
Vocabulary
- Project requirements
- Algorithm design
- Pseudocode
- Flowchart
- User interface
- Test plan
- Documentation
- Project management
Procedure (50 minutes)
Opening (10 minutes)
-
Introduction to Final Project (7 minutes)
- Explain the purpose and goals of the final project:
- Apply programming concepts learned throughout the unit
- Demonstrate understanding of algorithms and programming
- Create a program that solves a real-world problem
- Practice the software development process
- Present the project requirements:
- Program must solve a meaningful problem
- Must use appropriate algorithms and data structures
- Must include functions/procedures
- Must use selection and iteration
- Must include appropriate documentation
- Must demonstrate good design principles
- Explain the project timeline and deliverables:
- Day 23: Planning and design
- Day 24: Implementation
- Day 25: Presentations and unit review
- Discuss evaluation criteria and rubric
- Explain the purpose and goals of the final project:
-
Brainstorming Project Ideas (3 minutes)
- Students individually brainstorm potential project ideas
- Consider problems that can be solved with programming
- Think about interests and real-world applications
Main Activities (30 minutes)
-
Project Selection and Requirements Analysis (10 minutes)
- Students form project teams (2-3 students per team)
- Teams discuss and select a project idea
- Teams analyze the requirements for their chosen project:
- What problem does it solve?
- Who are the users?
- What inputs and outputs are needed?
- What functionality is required?
- What data needs to be stored and processed?
- Teams document their project requirements
- Teacher circulates to provide feedback on project scope
-
Algorithm Design and Planning (10 minutes)
- Teams design the algorithms for their project:
- Break down the problem into smaller components
- Identify the main functions/procedures needed
- Create pseudocode or flowcharts for key algorithms
- Determine appropriate data structures
- Plan the program structure and organization
- Teams document their algorithm designs
- Consider efficiency and usability in the design
- Plan for error handling and edge cases
- Teams design the algorithms for their project:
-
Creating Project Specifications (10 minutes)
- Teams create detailed project specifications:
- Program structure and components
- Function/procedure interfaces
- Data structures and their purposes
- User interface design (if applicable)
- Test cases and expected results
- Implementation plan and task division
- Teams document their specifications
- Prepare for implementation in the next class
- Create a task list and assign responsibilities
- Teams create detailed project specifications:
Closing (10 minutes)
-
Project Plan Presentations (7 minutes)
- Each team briefly presents their project plan:
- Project idea and purpose
- Key algorithms and data structures
- Implementation approach
- Expected challenges
- Class provides constructive feedback
- Teacher offers suggestions and guidance
- Each team briefly presents their project plan:
-
Exit Ticket and Preview (3 minutes)
- Teams submit their project plans and algorithm designs
- Preview that next class will focus on project implementation
- Remind students to think about their implementation strategy
Assessment
- Formative: Quality of project planning and algorithm design
- Project Plan: Completeness and feasibility of project specifications
Differentiation
For Advanced Teams
- Encourage more complex projects with sophisticated algorithms
- Suggest incorporating multiple data structures
- Challenge them to optimize their algorithms for efficiency
For Struggling Teams
- Offer more structured project templates
- Suggest simpler projects with clear requirements
- Provide more guidance on algorithm design
Homework/Extension
- Refine project plans based on feedback
- Research any additional concepts needed for implementation
- Create detailed pseudocode for complex algorithms
Teacher Notes
- Ensure project scope is appropriate for the available time
- Watch for overly ambitious projects that may not be completable
- Make connections to real-world software development processes
- Consider having a list of project ideas for teams that struggle to choose
- Remind students that planning is crucial for successful implementation