Skip to content
This repository has been archived by the owner on Aug 13, 2024. It is now read-only.

Latest commit

 

History

History
59 lines (51 loc) · 5.1 KB

File metadata and controls

59 lines (51 loc) · 5.1 KB

Lesson 6.1 - Design Basics

Learning Objectives

Students will be able to...

  • Identify the key considerations when designing a piece of software
  • Describe methods for prioritizing features, use cases, and/or scenarios
  • Explain why design and planning are necessary steps in the software engineering process

Materials/Preparation

Pacing Guide

Duration Description
5 minutes Welcome, attendance, bell work, announcements
15 minutes Introduce final project, demo examples
25 minutes Sample Design activity
10 minutes Debrief and wrap-up

Instructor's Notes

  1. Introduce project
    1. Talk about how far students have come this semester
      • Ask students to think back to the start of the semester and remember how little they knew about programming.
      • Briefly list a bunch of the things they've learned (drawing, animation, variables, loops, conditionals, loops, etc.)
      • Maybe show a lab or assignment from early on and remind them that, not that long ago, this was challenging, whereas it now seems nearly trival (hopefully).
    2. Explain that, for their final project, the students will get to design and build a program of their own choosing.
      • Point out that this will involve more than just writing code-- there will be planning, design, scheduling, and other project management tasks
      • Emphasize that students will be graded on not only the program they produce, but the process they used to design, plan, and implement it
    3. Demonstrate a few example projects (with as much variety as possible).
      • Try to hit a bunch of different types of programs. Many students will gravitate towards games, but other options include simulations, productivity tools, musical projects, animations, and more.
      • TEALS can provide a few samples if needed.
    4. Distribute the project rubric and point out key aspects of the requirements
      • Point out the steps in the process and that each one is equally important
      • Specifically mention the large number of points for things not related to coding
      • Remind students that, as they are now SNAP experts, there are high expectations for the depth, complexity, and completeness of their projects
  2. Sample design activity
    1. Tell students that, as a class, they will now practice some of the design and planning tasks for the project on a well-known app
      • Pick an app that both you and most of your students have a deep familiarity with, but that is not too complex. Twitter, Instagram, Pinterest, or other relatively small-scope social media apps work well here.
      • If necessary, scope down the app by focusing on only the core features (e.g. only consider public, text-only Tweets to start)
    2. Walk through each of the design steps in the project rubric for the chosen app:
      1. Pitch - describe the basic functionality of the app in one paragraph of less
      2. Define - List the features/scenarios the app will support
      3. Sketch - Draw a very basic wireframe sketch of the main "screens" of the app
        • In this step, try to keep students from fixating on making their app look exactly like the existing app
      4. Expand - Build a spec using the [Final Project Plan Organizer](Final Project Plan Organizer.docx).
        • In this step, emphasize completeness and detail. Leaving out steps or requirements will make it difficult to plan effectively and will likely force major changes or cuts later.
      5. Plan - Based on the feature list and spec, create a full development plan using the [Final Project Development Plan](Final Project Development Plan.docx).
        • As tasks and costs are listed, remind students to keep an eye on the total amount of time required and to include buffer for things going wrong. Be sure to prioritize tasks so that cuts can be made if necessary.
  3. Debrief
    • Once all documents have been created, ask students what the next steps should be.
      • Get more detail than "start coding." Students should be focused on the highest-priority tasks and should understand the plan for evaluating progress throughout the project.
    • Preserve the documents created in the activity to give to students as examples when planning their own projects.
    • Emphasize that both the spec and the plan are "living documents" and should be updated as the project progresses (when new features are thought of, tasks are cut for time or complexity, priorities are reorganized, etc.)

Accommodation/Differentiation

  • This lesson could easily take two or even three days depending on the class. Take as long as is necessary to ensure students have a complete understanding of the steps necessary to create their final project, but try not to get too bogged down in the details of the sample app.
  • For classes with a large number of self-sufficient students, consider having students complete this activity in small groups rather than as a full class. Along the way, have groups share their progress and provide feedback to each other.