🐍
[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
  • Prompt
  • Suggested Duration
  • Sample Output
  • Culturally Responsive Best Practices
  • Extensions
  1. Unit 3: Loops, Arrays, Media

Unit 3 Final Project: Random Meme Generator

How can memes be created by code?

PreviousU3LA3 Mini Project: Vision BoardNextUnit 4 Overview

Last updated 1 year ago

Teacher Notes and Overview

As the course progresses and students gain the skills to explore and create independently, the work becomes less and less lesson-focused and more and more project-focused. There have been a lot of mini-projects over the course of this Unit; the goal of this project is to combine many of the skills students have been practicing somewhat discretely together into one program. However, if you feel that it is difficult to go from mini-project into final project, you are of course welcome to skip or alter this project to fit the needs of your classroom.

To begin this project, you may want to have students think about the following:

  1. What is a meme?

  2. What purpose do they serve?

  3. How can memes support free expression?

As a class, you may want to review this or this video on

NB: As students try to get many images that can be different sizes to show up nicely on their canvas,

Prompt

In this project, you will create a random meme generator using the ! This is your opportunity to make your peers and teacher laugh so get creative and silly (while staying classroom appropriate) with this project.

Requirements

Create a random meme generator: pick a collection of images and a collection of phrases from an array. Each time you run your sketch, it should select one random image and one random text from the appropriate arrays, creating a (potential) meme displayed on the canvas. You have the option to either use objects to keep certain captions/fonts/images together, or simply organize in arrays and let chaos reign.

Think about what phrases and images you may want to pair togteher, as well as what font sizes and colors work best.

Your Sketch Should Have:

  • A random() function

  • At least 5:

    • images stored in an array

    • phrases or strings stored in an array

    • font sizes stored in an array

    • font colors stored in an array

  • A data structure to organize your program. (This could be arrays, objects, an array of objects, etc.)

  • A button that will 'reroll' your meme (choose new random values for all the changing parts)

  • The text has to show up on top of the image.

  • Where possible/necessary, utilize functions to simplify your code

  • Include any other relevant or necessary skills you have learned so far this year

Suggested Steps:

  1. Gather resources. Find all of your images/phrases/colors/sizes and write out the captions you plan to use.

  2. Load into program. Get your images in your program. Then, make data structures (most likely arrays) that will hold all the image variables, all the font sizes/colors, all the captions, etc.

  3. Use the information from your data structure to get the image and styled caption on the screen. Adjust as needed!

  4. Incorporate random choice and run the program - make any tweaks/changes. Lather/rinse/repeat this step until you have it working as intended!

Suggested Duration

3- 6 45-minute periods, depending on the pace of your class and the level of challenge your students attempt.

Sample Output

Culturally Responsive Best Practices

Within this design-based challenge, there are many prompts you can give students to make the project seem more relevant to them and the cultures of communities that they are a part of. (Please recall that communities can refer to a lot of things, including just the culture of being a teen, a Minecraft player, or a KPop fan - be mindful that you are allowing students to explore choice in their creations in a way that is authentic to them!)

Possible CR-SE Prompts:

  1. Program a meme generator that outputs memes that are funny and relevant to your culture and lived experience. Use meme formats currently relevant on the internet

  2. Focus your memes around a single theme or format that are funny and informative, teaching the user about something specific to your culture or lived experience.

  3. Output memes that draw attention to/inform about a specific cultural or social justice issue.

Extensions

As we get further and further into the course, the extensions become more about how students choose to challenge themselves by using the reference sheet and generalizing learned skills to do something new.

META MEMES: Learn about the role memes play in popular culture. Create memes that will engage the viewer and teach them about the role memes play in our world, including stages like recent elections.. (Resources: | | or do a quick google search of your own!)

🎨
1
2
3
history of memes
how memes shape politics.
consider sharing this resource on making images display proportionally.
macro image meme format
Four differently commonly used meme images.
Sample Meme