Creative Project - Machine Learning & Python
{{Note|You'll want to
Contents
Reflection [30 min]
As a group, reflect on everything we've made so far. The purpose of this is to get everyone thinking about what they already know, which helps with the ideation process.
Have a mentor facilitate the reflection. Tell the students that over the next few weeks, they will be working on their creative project with the following requirement (you can write this on the whiteboard for everyone to see):
What we know
Review the concepts students have learned by asking questions. The concepts you'll focus on are:
- Identifying the decisions the model will need to make
- Creating labels
- Adding examples for each label, things to consider while adding examples
- Using python with the model to classify text or images
- What's different when classifying using numbers
The following is an example of questions you can ask to get students to recall these concepts. Do your best to allow the students to answer on their own, and only provide answers if everyone is stuck.
- Think about some of the projects you worked on until now. Which ones did you find the most interesting?
- In that example, what decisions did your model have to make?
Possible answers: on or off, happy or sad, granted or denied, answers to questions, rock/paper/scissors, which space to move to next- How did you set up the model so that it could make those decisions?
Possible answer: you "labels" or "buckets" on the machine learning project- In every project, we had to give the model some input in order for it to make a decision. What did we need to do to help the model make better decisions?
Possible answer: give it examples- What are some things you noticed about the examples? Can you give it just anything? What works well, and what doesn't work well?
Possible answers: the more examples you give, the better decisions it makes / your examples need to have a lot of variety in them so it will work in different situations- What did you do in Python to get the model to make a decision? What code did you use?
Possible answers: using model.classify(), using if statements to do different things based on the answer- What was different about the Tic Tac Toe project as opposed to the other ones?
Possible answer: we used numbers instead of images or text- What do you have to do differently when setting up training for numbers projects?
Possible answer: you have to define the possible input values, for example, the board state can be represented by 9 values- How did you use python to add examples without having to do it through the website?
Possible answer: using the add_training_data function (Note: you can use this with text and image projects, too)
What we can make with Python
Next help students reflect on what types of projects they've made. This will help them understand the scope of what they can do for their creative project.
Start a new list on the whiteboard for "What we can make", and have students call out examples of what they know how to do with Python.
What different things do you know how to do with Python?
Possible answers:
- Print text in the shell
- Show an image in the web browser
- Modify an existing Python game (such as Tic Tac Toe)
- Use the turtle to draw shapes (if you did the functions activity in the Python reference guide)
Group Brainstorming [5-10 min]
The next goal is to get the students to exercise their "divergent thinking" as a group. After this, they'll focus in on more cohesive ideas for a project, But for now, we just want to get the creative juices flowing.
The next step is to start generating as many new ideas for cool things we could make in Python based on what we know. We want to write down as many ideas as possible, no matter how small, how big, or how weird!
When brainstorming, we have a simple set of rules to follow.
Review the Rules for Brainstorming :
- Generate as many ideas as possible.
- Write down each idea.
- Don't stop to judge, question, or criticize. There are no bad ideas.
- Build on the ideas of others.
- Encourage wild ideas.
Have students and mentors begin calling ideas out. Write each idea on the whiteboard.
Ideate w/ your partner [30-45 min]
Project Intro (lead mentor)
Now that we've finished brainstorming as a group, work with your partner and your mentor on ideas for a project. Look at past projects and think of some variations. You can also look for existing python projects that you can add machine learning to. If you do, be sure to find something relatively simple, not too complex.
You can combine any number of ideas that were put on the board, or come up with something completely different.
Spend the next half hour or so to allow students to ideate with the help of their mentors.
Allow time for a 10-minute break during this portion.
Project Planning [20-30 min]
Use the remainder of the time to work on planning the project. If necessary, you can continue project planning during the first part of the next session.
Decomposition: Breaking down the problem
Next we're going to work on breaking down each of those major features into smaller problems.
- On separate sheets of notebook or sketch paper, one for each major feature, have students write the major feature at the top of the page.
- Help students think about how they might break that feature down into tasks and write them on that page.
- Sometimes it helps to know what tools you'll have available for accomplishing your tasks. Use the Python Reference and Machine Learning Reference to help students think about how they might do that task.
- Think about what modules you'll need to create, and what functions might want to put in those modules.
Make sure these papers are kept in a safe place so that the team can reference them throughout the project. Consider taking photos of them just to have a digital backup. |
Controlling the Scope
During ideation, you'll get a wide variety of ideas that may or may not be feasible to complete within the remaining weeks. Here are some tips on getting control over project scope during the planning phase:
- If the scope seems too large, try working on the project in 2-week "sprints". Make it a goal to have an MVP at the end of each sprint (a "demo-able" project). Spend a few minutes demoing your progress with the group.
- If the scope seems to small, try to spend some more time brainstorming to add features to the idea. You could also do two small projects that are somehow related in theme.
Remember that the goal at the end of the creative project is not necessarily to demonstrate a finished product. The main goal is to demonstrate what you set out to build, how you did it, what challenges you faced along the way, and how you overcame those challenges.
Plan the Next Sprint
- Help students prioritize tasks and decide which ones will go into a new sprint.
-
Feel free to experiment with different ways of doing this:
- Use sticky notes to organize and prioritize tasks on the wall or table, and then record them on a sheet of paper.
- Put your notes in Google Drive