🐍
[PY] Intro to Computational Media 2.0
CS4All Resources
  • Curriculum Overview
  • How to Use this Curriculum
  • 📬Leave Us Feedback
  • Curriculum Extras
    • 🔮Curriculum Extras Overview
    • Imposter Syndrome (pt. 1)
      • Imposter Syndrome (pt. 2)
    • Timers in Processing.py
    • Time Functions: Crazy Clock Mini Project
    • Pathfinding Algorithms and Facial Scanning
    • Playing with Pixels
  • Unit 1: Draw & Draw With Functions
    • 🔮Unit 1 Overview
    • U1LA1.1: Processing.py Introduction & Deconstruction
    • U1LA1.2 Line Functions and Parameters
    • U1LA1.3: Rectangles, Ellipses, and Layering
    • U1LA1.4: Other Shapes & Styling
    • 🗃️U1LA1 Mini Project: Taijitu Symbol
    • U1LA2.1: Intro to Color with RGB and HSB
    • 🤓EXTRA: Color & Data Storage
    • 🤓EXTRA: Color Palette Practice
    • ✨U1LA3.1: Introducing Variables
    • ✨U1LA3.2: Creating Custom Variables
    • ✨U1LA4.1: What is Abstraction?
    • ✨U1LA4.2: Intro to Functions and Function Calls
    • U1LA4.3: Draw with Functions
    • U1LA4.4: Using the Random Function
    • 🗃️U1LA4 Mini Project: Custom Emoji
    • U1LA5.1: Your Custom Function Library
    • 🎨Unit 1 Final Project: Abstract Album Art
  • Unit 2: Respond and Draw On Canvas
    • 🔮Unit 2 Overview
    • ✨U2LA1.1: Conditionals and If Statements
    • ✨U2LA1.2: Conditionals and if, elif, and else statements
    • ✨U2LA1.3: Logical Operators And/Or
    • 🗃️U2LA1 Mini Project: Make a Traffic Light
    • U2LA2.1: Draw with Mouse
    • U2LA2.2: The Map Function
    • ✨U2LA3.1: Data Type Scavenger Hunt
    • ✨U2LA3.2: Functions that Return Values
    • 🤓U2LA3.3: Functions with Purpose
    • U2LA4.1: Collision Functions and Libraries
    • U2LA4.2: Mouse Clicks and Shapes as Buttons
    • 🗃️U2LA2 Mini Project: Light Switch Game
    • U2LA5.1: Key Presses and Nested Conditionals
    • 🎨Unit 2 Final Project: Interactive Drawing App
  • Unit 3: Loops, Arrays, Media
    • 🔮Unit 3 Overview
    • U3LA1.1: While Loops
    • U3LA1.2: For Loops Pt. 1
    • U3LA1.3: Nested For Loops (For Loops Pt 2)
    • 🗃️U3LA1 Mini Project: Wallpaper Design
    • U3LA2.1: Introduction to Lists
    • U3LA2.2: Random Values from Lists
    • 🗃️U3LA2 Mini Project 1: Fortune Teller
    • U3LA2.3: Loops and Lists
    • U3LA2.4: Updating and Deleting from Lists
    • 🗃️🤓 U3LA2 Mini Project 2: CodeWars List Challenges
    • U3LA3.1: Loading Images
    • 🗃️U3LA3 Mini Project: Vision Board
    • 🎨Unit 3 Final Project: Random Meme Generator
  • Unit 4: Motion, Objects, Transformation
    • 🔮Unit 4 Overview
    • U4LA1.1: Intro to Motion with Flipbooks
    • U4LA1.2: Move in All Directions and Make it Bounce
    • U4LA2.1: Introduction to Classes and Objects
    • U4LA2.2: Reading and Updating Object Properties
    • U4LA2.3: Methods Off Canvas
    • U4LA2.4: Objects on Canvas
    • 🗃️U4LA2 Mini Project: Build a Tamagotchi
    • U4LA3.1: Creating Many Objects
    • 🤓🗃 Optional U4LA3 Mini Project: Rebuild with Objects
    • U4LA4.1: Translation Battleship
    • U4LA4.2: Rotations
    • 🤓U4LA5.1: Sine and Oscillating Motion
    • 🤓U4LA5.2: Cosine and Circular Motion
    • 🎨Unit 4 Final Project: Animated Greeting Card or PSA
  • Unit 5: Final Project
    • 🔮Unit 5 Overview
    • 🎨Course Final Project Guide
Powered by GitBook
On this page
  • Teacher Notes and Overview
  • Objectives
  • Suggested Duration
  • NYS Standards
  • Vocabulary
  • Planning Notes and Materials
  • Resources
  • Project Launch (~5 - 8 minutes)
  • Project Prompt
  • Wrap Up
  • Culturally Responsive Best Practices
  • Extensions
  1. Unit 1: Draw & Draw With Functions

U1LA4 Mini Project: Custom Emoji

How can I create a function for a custom emoji?

Teacher Notes and Overview

In this project, students will use all of the concepts they have been practicing from the start of the year to create a custom emoji function. They are also asked to write a prompt explaining why their emoji should be added to the Unicode Consortium.

This project focuses on a student's ability to create a function with parameters to make it vary and their creative use of code. Mini projects are best implemented through class lab time, but they can also roll over into home projects, depending on student access to technology and the culture of your school. Having small mini-presentations is also a great opportunity to build a positive and collaborative classroom culture.

Objectives

Students will be able to:

  • Create a custom function that will draw a design when called

  • Utilize parameters to make their function changeable

  • Use system variables

  • Use custom variables

  • Utilize random() function

  • Create a digital image for an audience and defend and validate their creation

Suggested Duration

~1-2 period(s) (~45-90 minutes)

If students are focused and working, you can allow for as much time as you'd like for them to make something they're happy with!

NYS Standards

9-12.CT.4 Implement a program using a combination of student-defined and third-party functions to organize the computation.

9-12.CT.5 Modify a function or procedure in a program to perform its computation in a different way over the same inputs, while preserving the result of the overall program.

9-12.DL.1 Type proficiently on a keyboard.

9-12.DL.2 Communicate and work collaboratively with others using digital tools to support individual learning and contribute to the learning of others.

Vocabulary

No new vocabulary is introduced in this mini-project.

Planning Notes and Materials

Planning Notes
Materials

Students can work in pairs Allow time for planning. Students will need 3 tabs open for every lesson of this course: Trinket Editor, Slide Decks (optional), Processing.py Reference Guide

No extra materials required outside of a computer.

Resources

Project Launch (~5 - 8 minutes)

Ask students:

  • What is your favorite emoji and why?

  • What would a world without emojis be like?

  • How do emojis influence our society?

  • Are emojis harmful or beneficial to society?

Project Prompt

For this project, each student will be tasked with creating a custom emoji using all the skills that they have learned so far. The emoji can be anything they'd like, and if they are struggling for inspiration, they are welcome to recreate an existing emoji in Processing.py

Project Requirements:

  1. Design a custom emoji or recreate an existing emoji using shapes you learned this year.

  2. Make sure you use color and any other styling elements you'd like. Your choice of color mode!

  3. Turn your emoji into a function with several parameters that will allow you to control the output.

  4. Create a design by calling your function multiple times.

    1. When calling your function, be sure to utilize both system and custom variables as arguments. This is part of your grade!

  5. Include code comments to explain your work.

  6. Submit your work along with a paragraph explaining why you chose your emoji.

Sample Emoji and Paragraph:

Please note that your program, while it should house the function that draws your emoji, should have several displaying on the canvas because you have called your function several times. Your emoji should also utilize color!

Suggestions for Getting Started:

Allow time for students to brainstorm their ideas in a group, as pairs or whole class discussion.

Ask students to:

Write down 3 ideas without sharing them with anyone for 3 mins. Share their ideas with their peers in a quick, round-robin approach. Pick and finalize one idea.

Wrap Up

Mix students into groups of 4 and allow them to present their work to each other. If you'd prefer all students see everyone's work, consider a gallery walk where students can use post-its to add feedback and comments.

Culturally Responsive Best Practices

All projects in the ICM curriculum are meant to be adaptable to your student population, and this one is no different. The purpose of this project is to allow for student creativity and to assess their ability to create an algorithm composed of a sequence of functions that creates a final design they are proud of - what that design is can be anything! If your students would respond better to something that is not emoji-based, consider adjusting the prompt accordingly.

Other things to consider:

  • You could make this a more activist-focused lesson by asking students to specifically design emojis that they feel their community needs and are currently lacking in the current library. Reviewing the history of emojis - they were created in Japan and the designer never thought they would catch on outside of Japan - can help the framing of this project.

Extensions

Some students may finish early; ask them to use the p5 reference to try to teach themselves something new, or to push their design even further.

PreviousU1LA4.4: Using the Random FunctionNextU1LA5.1: Your Custom Function Library

Last updated 11 months ago

Share students this video. Explain that they will be tasked with making their own emoji using code!

created by CS4All Pathfinder Intern: "This emoji is an alien. His name is Allen the Alien, but his friends usually call him Al. He was created using a human programming language called Python, and using elipses, rectangles, and a variety of colors. Al says, "bleep blorp goodbye class!""

Another activist-focused lesson could be to ask students to reimagine an emoji that could be problematic, as (Emojis look different across platforms for the same reason different fonts have different appearances if students are curious.)

As a CS and design-focused course, students are asked to explain not only the code of the programs but their design decisions throughout the year. To better reach all students, consider the different ways that you can collect responses. In lieu of a written response, could students create an explanatory video, or submit to a platform like ? Are there ways you can offer support for students who may struggle with written expression or written expression in English?

🗃️
Unicode
Website
Emoji Day
Video
Emoji Day
Exemplar Project
Apple did for the gun emoji.
FlipGrid
Sample emoji and paragraph