Skip to content

Latest commit

 

History

History
162 lines (107 loc) · 10.5 KB

File metadata and controls

162 lines (107 loc) · 10.5 KB

Lesson 8.1 - Project Planning Summary + Brainstorming, User-Centred Research, and Evaluating

Learning Objectives

Students will be able to...

  • Recall project planning basics from last semester
  • Brainstorm and evaluate product opportunities
  • Identify factors to use when choosing between project ideas
  • Rank a group of proposed project ideas using the identified factors
  • Identify a problem and a proposed solution
  • Perform User-Centred Research to better understand potential user motivation, goals, and needs

Materials/Preparation

Pacing Guide

Duration Description
5 minutes Do Now
10 minutes Introduce Project and Review Design
5 minutes Brainstorming
10 minutes Pitch writing
20 minutes Peer review
5 minutes Debrief and wrap-up

Instructor's Notes

1. Do Now

  • Project the Do Now on the board, circulate around the class to check that students are working and understand the instructions.

2. Introduce Project and Review Design

  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 Python programming.
    • 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 trivial (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

3. Review process and identify first steps

  • Display the Spec and Plan documents from last semester

  • Ask students to identify the steps in the design and planning process as discussed in do_now

    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 sketch of the flow of control of the main "scenario" of the app
    4. Expand - Build a comprehensive spec document, 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 making sure 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.
    6. Start Coding - once you have your plan written begin to implement the project according to your plan.
    • Remind students that all steps are vital, and that thorough and thoughtful planning and design can make the coding phase much easier.
    • Inform students that today they will take the first steps in designing their final project.

4. Brainstorming

  • Identify an Opportunity - brainstorm opportunities where computer software can help solve a problem in the world, or daily life.
  • User-Centred Research - create a survey to understand user behaviors and needs
  • Give students 3-4 minutes to brainstorm and write down as many project ideas as they can. This should be done mostly in silence.
  • At this point, there should be minimal detail, no evaluation or rejection of ideas, and no discussion. In particular, students should not think about the difficulty or "coolness" of the project yet. Just write down ideas.
  • If desired, have each student share one idea. Do not allow discussion, criticism, or explanation-- each idea should be summarized in only a few words or a single sentence.

Emphasize with students...

BC ADST Computer Programming 11 Curriculum Competencies - Understanding Context, Defining, Ideating

Brainstorming can be hard.

Think about the world around us. Think about people in daily life. The computer is great at doing some things that humans struggle with, such as: repetitive tasks, computationally complex tasks, keeping track of data. What repetitive, or complex task, can you create a solution for?

To help trigger some ideas:

  • What are some calculations that a computer can help do for you?
  • When was the last time you used a calculator? What was it used for?
  • What are some solutions that may exist, but don't work very well?
  • Are there areas that could benefit from custom-tailored software in your school, club, family, community, etc?
  • What are some current events or hot topics that affects your lives right now? Examples: climate change, the spread of virus, high host of housing, school elections, sports team tryouts, etc.

Bottom line is: software should do something "useful".


5. Pitch writing

  • Have students look at their list of ideas and spend a few minutes thinking about them. Then, each student should pick their 3 favorite ideas and write a "pitch" for the project. A pitch should be no more than a short paragraph and should describe the basic, high-level features of the project. The pitch should not include any implementation details (scripts, sprites, etc.).

  • Pitches should include a moderate level of specificity-- enough for someone to imagine how the app will work, but not so much to get bogged down. Enforce the "one short paragraph" restriction.

  • If a student is having difficulty developing a pitch for an idea, that might be a sign that the idea is not fully-formed enough to be a final project.

  • If a student is having trouble keeping the pitch short, the project may be too complex to complete in the available time.

6. Peer review

  • Pair students up and have students take turns reading one of their pitches to their partner and asking for feedback. Partners should ask questions to help identify both the best and worst parts of each pitch.

  • Remind students to keep all feedback constructive, respectful, and professional. Students should not criticize each other's ideas, but can point out potential concerns.

  • Students should take notes during their conversations and refine their pitches based on their partner's feedback and their own realizations.

  • If time allows (or over the course of multiple days), repeat this process with new partners.

7. Debrief

  • At this point, students should have between one and three pitches that are well-defined and reasonably well fleshed-out. Overnight, students should consider their pitches and rank them in order or which they would most like to pursue as their final project.

  • Make sure students don't just pick the "coolest" sounding idea, but also consider the technical challenges, amount of time available, and their own interest in and willingness to see the project through to completion.

8. User-Centred Research (Optional Extra)

  • After students pick on idea, it's time to conduct some user-centred research to help validate the problem/solution, and get a better understand of user goals and behavior.

  • Create a short survey (5-6 questions) using Google Forms, or Monkey Survey that can be done with peers or target user group.

  • The survey questions are intended to help you define requirements for your software solution.


Emphasize with students...

BC ADST Computer Programming 11 Curriculum Competencies - Understanding Context, Defining, Ideating

One method of User-Centred Research is to conduct a survey amongst potential users.
What are some design decisions needed to help scope the requirements of the app you will build? Create some survey questions to help you make these decisions! A survey can also be done to help validate if a project idea or solution is worth pursuing. If this is the case, create some questions to see if your app idea is something that might be helpful.


Accommodation/Differentiation

  • If students are having difficulty coming up with project ideas, encourage them to think about existing software. While simply recreating an existing app should be a last resort, thinking about apps they already know can help students come up with functionality they might like to include.
  • If your class is fairly self-sufficient and mature, you can consider allowing students to "borrow" an idea from a classmate if they find one they like better than any of their own. Make sure the person who had the idea is OK with it being borrowed, and emphasize that the students must each build their own version.
  • This can be a bit dangerous, as it puts the student somewhat behind in the process right from the start, since they won't have as much context having not written the pitch themself. Consider carefully whether this is a good idea.
  • Encourage each student to pick a project that fits his or her level of technical skill. Make sure students are not overcommitting and choosing projects they do not have the skills to complete. Also try to discourage stronger students from choosing simpler projects in an effort to do less work.
  • If your class has students who are more timid, or students who would appreciate more social interaction, the project can be done with a partner. They would work together for all steps, and practice "pair programming" to code, and switching roles periodically.

Emphasize with students...

BC ADST Computer Programming 11 Curriculum Competencies - Applied Technologies, Sharing, Collaboration

Studies show that pair programming encourages female computer science students, and benefitial in educational settings https://www.researchgate.net/publication/220094545_Pair-Programming_Helps_Female_Computer_Science_Students

Students need to be excited about their project. Students need to enjoy the process of working on it. Doing it with a friend or partner can make the journey of learning computer science fun and rewarding.