Skip to docs navigation

05.04 Machine Learning Creative Program Ideation Assignment

Assignment Deliverables

  1. Scanned handwritten (legible) notes with drawings and / or typed notes with images that describe a creative implementation of using a custom machine learning model for control (docx, jpg, png, pdf, jpeg)
    • Label file(s) YYYYMMDD Lastname Firstname Creative Machine Learning Ideation.ext
  2. Upload URL to program skeleton

Assignment Overview

Before any code is written for a program there must be a sense of purpose for the program. Why make the program? Because my teacher said to. No, really, why should the program exist? What is the goal of th program. What will it do? How will the program work? Who is it for? What problems or challenges are expected to get the program to function?

Initial Questions

Start with a simple statement about the goals of the program. In this case our goal is to use a custom machine learning model to control the function of a program.

  1. What machine learning model?
    • images
    • sounds
    • hands
    • poses
    • gestures
    • … ??
  2. What customizations to the model?
    • specific poses
    • only pictures of yawning cats
    • secret voice commands
    • … ??
  3. What does the output of the model control?
    • Use the tilting of outstretched arms to fly over a generated 3d landscape?
    • Turn a head left or right to play a break outexternal link style game?
    • Have a camera and speaker announce you and your friends presence when you arrive home?
    • Count how many times your cat climbs to the top of a bookcase while you are in class?
    • Decide if a wild mushroom is poisonous or not? (Don’t eat wild mushrooms.)
    • Have a speaker tell your dog “No.” when it barks while you are not home?
    • …?


  1. Spend some time looking at examples from class and the internet. Get inspired from these ideas and start to write down concepts that you like.
  2. Think of different things a program could do. Remember that everything does not have to be screen based.
  3. Try to write out the steps and process of the program in plain language. Break up complex concepts into smaller chunks.
  4. Draw a flow chart or other diagram of how you think the program could work. Don’t worry about accuracy, be creative and do your best.
  5. Use the information above to make a program skeleton.
    • add the ml5.js library
    • decalae a list of expected variables
    • make empty class declarations.
    • fill in the basic placeholder functions
    • put the functions in the draw() function or other appropriate place
  6. The program does not have to work. Do your best to add as much of the structure as you can.
  7. Cite any code structure or code that you used.
  8. Upload the URL to your program skeleton.
// 4.5 hours of homework outline

if (previousAssignments != done) {
  // Spend 1.5 hours on previous assignments
} else {
  // 1 hour or so of idea generation
  // 1 hour or so of program skeletoning
  // About half hour of flow chart drawing
  // 1 hour or so of trying to make parts of program maybe work
  // 1 hour or so of checking out coding train or other cool programming thing online

Going Further

To be clear, you are not required to turn in a working program. But that does not mean that you should not experiment with bits and pieces of your project. Try to solve small parts of your desired program. Break up the ideas into smaller and separate working examples in different files. Experiment and have fun.

We will use your ideation as the basis of a multi week code and programming investigation that hopefully ends with a working program.

Even Farther

Spend a couple hours watching the amazing Dan Shiffman on the Coding Trainexternal link and try out some of his numerous demos. Dan is a great resource. Follow rabbit trails to other coding and programming adventures.

Grading Rubric

Written Ideation Notes30 points
Sketches / Drawings30 points
Depth of Ideation Concept30 points
File Management10 points