Skip to content

Moving Rainbow: 200 Key Concepts in Teaching Sequence

This document lists the 200 most important concepts in the Moving Rainbow course, ordered by the sequence they should be taught. Concepts build progressively from foundational prerequisites through advanced capstone project skills.

Prerequisites & Foundations (Concepts 1-20)

Basic Computer Skills

  1. Using a keyboard and mouse
  2. Opening and closing programs
  3. Creating and saving files
  4. Understanding file organization (folders and directories)
  5. Copying and pasting text

Basic Math Concepts

  1. Whole numbers and counting (0-255)
  2. Addition and subtraction
  3. Multiplication and division
  4. Percentages and fractions
  5. Coordinate systems (x, y positions)

Color Basics

  1. Primary colors (red, blue, yellow)
  2. Additive color mixing
  3. RGB color model concept
  4. Light vs. pigment color mixing
  5. Color intensity and brightness

Electricity Safety

  1. Positive and negative terminals
  2. Voltage as electrical pressure
  3. Current as electrical flow
  4. Safe handling of electronic components
  5. USB power safety

Week 1-2: Hardware Setup & First Programs (Concepts 21-50)

Hardware Components

  1. Microcontroller definition and purpose
  2. Raspberry Pi Pico identification
  3. GPIO pins and their function
  4. LED (Light Emitting Diode) basics
  5. Addressable LED concept
  6. NeoPixel/WS2812B chip
  7. Breadboard purpose and layout
  8. Breadboard tie points and connections
  9. USB cable types (micro-USB, USB-A)
  10. Power vs. data connections

Circuit Basics

  1. Complete circuit path
  2. Ground (GND) reference point
  3. Power supply (5V, 3.3V)
  4. Data signal line
  5. Three-wire LED connection (power, ground, data)
  6. Wire color conventions (red=power, black=ground)
  7. Polarity (positive/negative orientation)
  8. Short circuit prevention
  9. Current limiting concepts
  10. Power consumption basics

Software Setup

  1. IDE (Integrated Development Environment)
  2. Thonny Python editor
  3. Installing software on your computer
  4. USB device recognition
  5. Firmware definition
  6. MicroPython language
  7. BOOTSEL button function
  8. Drag-and-drop programming
  9. Serial console for output
  10. File system on microcontroller

First Python Concepts

  1. Program definition
  2. Code execution (running a program)
  3. Comments (# symbol)
  4. Print statement for output
  5. Import statement
  6. Library/module concept
  7. Python indentation rules
  8. Syntax (code grammar rules)
  9. Syntax errors and how to read them
  10. Case sensitivity in code

Week 2-3: Basic Programming (Concepts 61-90)

Variables & Data Types

  1. Variable as named storage
  2. Assignment operator (=)
  3. Integer data type
  4. Floating point (decimal) numbers
  5. String (text) data type
  6. Boolean (True/False) values
  7. Variable naming rules
  8. Constant values
  9. Type conversion
  10. Mathematical operators (+, -, *, /)

Working with LEDs

  1. Pixel as individual LED unit
  2. Pixel indexing (starting at 0)
  3. RGB tuple format (red, green, blue)
  4. Color values (0-255 range)
  5. 8-bit color depth
  6. Setting a single pixel color
  7. strip.write() command
  8. Turning LEDs on and off
  9. Creating custom colors
  10. Black as all LEDs off (0,0,0)

Time & Delays

  1. Sleep function
  2. Delay concept
  3. Seconds as time unit
  4. Milliseconds (thousandths of a second)
  5. Animation frame rate
  6. Timing control in animations
  7. Program execution speed
  8. Pause vs. stop
  9. Real-time vs. programmed time
  10. Time as a loop control

Week 3-4: Loops & Motion (Concepts 91-120)

Iteration & Loops

  1. Loop definition (repetition)
  2. While loop structure
  3. While True (infinite loop)
  4. For loop structure
  5. Range function
  6. Loop counter variable
  7. Iteration (single loop execution)
  8. Loop body (indented code)
  9. Break statement (exit loop)
  10. Continue statement (skip iteration)

Motion Concepts

  1. Animation as changing images over time
  2. Frame-by-frame animation
  3. Position variable for tracking location
  4. Increment (adding one)
  5. Decrement (subtracting one)
  6. Moving a pixel to the next position
  7. Direction of motion
  8. Speed control through delays
  9. Smooth motion techniques
  10. Visual persistence

Range & Boundaries

  1. Strip length (NUMBER_PIXELS)
  2. First pixel index (0)
  3. Last pixel index (NUMBER_PIXELS - 1)
  4. Index out of bounds error
  5. Boundary checking
  6. Wrapping around (going from end to start)
  7. Modulo operator (%)
  8. Remainder after division
  9. Circular motion
  10. Bounce effects (reversing direction)

Arrays & Lists

  1. Array/list concept (ordered collection)
  2. Creating a list in Python
  3. Accessing list elements by index
  4. List length (len function)
  5. Adding items to lists
  6. Removing items from lists
  7. Iterating through lists
  8. Tuple (immutable list)
  9. List of colors
  10. Storing animation frames

Week 4-5: Patterns & Functions (Concepts 131-160)

Pattern Recognition

  1. Repeating patterns in code
  2. Pattern in animation sequences
  3. Identifying common code blocks
  4. DRY principle (Don't Repeat Yourself)
  5. Code reuse benefits
  6. Abstracting common operations
  7. Generalizing specific solutions
  8. Finding similarities in problems
  9. Template-based solutions
  10. Algorithm patterns

Functions

  1. Function definition (def keyword)
  2. Function name
  3. Function parameters (inputs)
  4. Function body
  5. Return value (output)
  6. Calling a function
  7. Function reusability
  8. Local variables
  9. Global variables
  10. Variable scope

Color Theory

  1. Color wheel concept
  2. Hue (pure color)
  3. Saturation (color intensity)
  4. Value/brightness
  5. Complementary colors
  6. Analogous colors
  7. Color harmony
  8. Warm vs. cool colors
  9. Color transitions
  10. Gradient effects

Common Animation Functions

  1. Color wipe pattern
  2. Rainbow effect
  3. Color wheel function
  4. Fade in/fade out
  5. Pulse effect
  6. Chase pattern
  7. Fill and empty
  8. Random colors
  9. Sparkle effect
  10. Wave patterns

Week 5-6: Conditionals & Interactivity (Concepts 171-190)

Conditional Logic

  1. If statement
  2. Condition (test that returns True/False)
  3. Comparison operators (==, !=, <, >, <=, >=)
  4. Logical operators (and, or, not)
  5. Else clause
  6. Elif (else if) clause
  7. Nested conditionals
  8. Boolean expressions
  9. Truthiness in Python
  10. Conditional execution flow

Button Input

  1. Push button (momentary switch)
  2. Button press detection
  3. Digital input
  4. Pull-down resistor concept
  5. Button state (pressed/not pressed)
  6. Polling vs. interrupts
  7. Interrupt handler function
  8. IRQ (Interrupt Request)
  9. Event-driven programming
  10. Callback functions

Debouncing & Timing

  1. Bounce in mechanical switches
  2. Debouncing technique
  3. Time-based debouncing
  4. ticks_ms() function
  5. Time difference calculation
  6. Minimum time between events
  7. False trigger prevention
  8. State change detection
  9. Rising edge vs. falling edge
  10. Software vs. hardware debouncing

Week 6-7: Advanced Topics (Concepts 201-230)

(Continuing the numbering - note: this extends beyond 200 to complete the sequence)

Mode-Based Programs

  1. Mode concept (different operating states)
  2. Mode variable
  3. Mode counter
  4. Mode selection with buttons
  5. Mode wrapping (cycling through modes)
  6. Mode switching logic
  7. Mode names list
  8. Current mode display
  9. Mode change detection
  10. State machine concept

Advanced Animations

  1. Comet tail effect
  2. Brightness levels array
  3. Scaling colors for dimming
  4. Larson scanner effect
  5. Theater chase pattern
  6. Twinkle/sparkle with random
  7. Ripple effect
  8. Heartbeat pattern
  9. Candle flicker simulation
  10. Fire effect algorithm

Random Numbers

  1. Random number generation
  2. urandom module
  3. randint() function
  4. Random range specification
  5. Seed concept
  6. Pseudo-random vs. true random
  7. Random color generation
  8. Random position selection
  9. Random timing variations
  10. Controlled randomness

Optimization & Efficiency

  1. Code efficiency
  2. Minimizing delays
  3. Reducing redundant calculations
  4. Memory usage
  5. Battery life considerations
  6. Power consumption optimization
  7. Brightness vs. power tradeoff
  8. Efficient looping
  9. Avoiding unnecessary writes
  10. Performance tuning

Week 7: Sensors & Advanced Input (Concepts 241-260)

Analog Input

  1. Analog vs. digital signals
  2. ADC (Analog-to-Digital Converter)
  3. Voltage reading
  4. Potentiometer (variable resistor)
  5. Reading potentiometer values
  6. Value scaling and mapping
  7. Smoothing noisy readings
  8. Threshold detection
  9. Continuous value ranges
  10. Converting analog to control parameters

Light Sensing

  1. Photoresistor operation
  2. Light-dependent resistance
  3. Voltage divider circuit
  4. Ambient light detection
  5. Day/night detection
  6. Automatic brightness adjustment
  7. Nightlight logic
  8. Light threshold setting
  9. Hysteresis (preventing flicker)
  10. Environmental sensing

Project Planning Concepts

  1. Requirements gathering
  2. Feature list creation
  3. Prioritizing features
  4. Must-have vs. nice-to-have
  5. Breaking project into phases
  6. Milestone planning
  7. Timeline estimation
  8. Resource requirements
  9. Parts list creation
  10. Budget planning

Week 8: Capstone Planning (Concepts 271-290)

Design Process

  1. Brainstorming techniques
  2. Sketching ideas
  3. Wireframing
  4. Prototype concept
  5. Proof of concept
  6. Iterative design
  7. User requirements
  8. Design constraints
  9. Technical feasibility
  10. Creative problem solving

Documentation

  1. Code comments best practices
  2. Function documentation
  3. Inline comments
  4. Project description
  5. README file
  6. Setup instructions
  7. Usage guide
  8. Troubleshooting guide
  9. Known issues list
  10. Future improvements section

Circuit Design

  1. Circuit diagram reading
  2. Wiring diagram creation
  3. Component placement
  4. Wire routing
  5. Connection testing
  6. Continuity checking
  7. Power distribution
  8. Ground connections
  9. Signal integrity
  10. Cable management

Algorithm Design

  1. Pseudocode writing
  2. Flowchart creation
  3. Step-by-step planning
  4. Input-process-output model
  5. Edge case identification
  6. Error handling strategy
  7. Testing scenarios
  8. Expected behaviors
  9. Failure modes
  10. Recovery procedures

Week 9: Implementation (Concepts 311-340)

Debugging

  1. Bug definition
  2. Debugging process
  3. Print debugging
  4. Variable inspection
  5. Logic errors vs. syntax errors
  6. Systematic troubleshooting
  7. Isolating problems
  8. Testing hypotheses
  9. Error messages interpretation
  10. Stack traces

Testing

  1. Unit testing concept
  2. Integration testing
  3. System testing
  4. Test plan creation
  5. Test cases
  6. Expected vs. actual results
  7. Regression testing
  8. User acceptance testing
  9. Stress testing
  10. Edge case testing

Code Organization

  1. Code structure
  2. Logical grouping
  3. Helper functions
  4. Main program flow
  5. Initialization section
  6. Configuration section
  7. Constants at top
  8. Function definitions before use
  9. Main loop at bottom
  10. Clean code principles

Version Control

  1. Git basics
  2. Repository concept
  3. Commit (saving changes)
  4. Commit message
  5. Version history
  6. Branching concept
  7. Reverting changes
  8. Tracking changes over time
  9. Collaboration workflow
  10. Backup through version control

Week 10: Presentation & Reflection (Concepts 351-370)

Technical Communication

  1. Explaining technical concepts simply
  2. Audience awareness
  3. Demonstration techniques
  4. Live demo preparation
  5. Backup plans for demos
  6. Visual aids
  7. Slide presentation design
  8. Speaking clearly and confidently
  9. Answering questions
  10. Accepting feedback gracefully

Project Presentation

  1. Problem statement
  2. Solution overview
  3. Design decisions explanation
  4. Challenges encountered
  5. How challenges were overcome
  6. Demonstration of features
  7. Code highlights
  8. Future enhancements
  9. Lessons learned
  10. Acknowledgments

Advanced & Extension Concepts (371-400)

Professional Skills

  1. Time management
  2. Meeting deadlines
  3. Asking for help
  4. Giving help to others
  5. Peer review
  6. Constructive criticism
  7. Iterative improvement
  8. Learning from failure
  9. Growth mindset
  10. Persistence

Hardware Extensions

  1. Battery selection
  2. Battery capacity (mAh)
  3. Battery life calculation
  4. Rechargeable batteries
  5. LiPo battery safety
  6. Charging circuits
  7. Voltage regulators
  8. Power switches
  9. Portable power solutions
  10. Wearable electronics considerations

Software Extensions

  1. Libraries and modules
  2. Code reusability
  3. Open source software
  4. Software licensing
  5. Code sharing etiquette
  6. Reading others' code
  7. Adapting example code
  8. Contributing to projects
  9. Community resources
  10. Continuous learning

Computational Thinking Throughout

These meta-concepts are reinforced across all weeks:

Decomposition - Breaking complex animations into simple steps - Dividing projects into manageable tasks - Separating concerns (display, logic, input)

Pattern Recognition - Identifying repeating code sequences - Recognizing common animation structures - Finding similarities across different effects

Abstraction - Using functions to hide complexity - Creating reusable components - Focusing on essential features - Generalizing specific solutions

Algorithm Design - Planning step-by-step procedures - Optimizing for efficiency - Handling edge cases - Creating robust solutions

Debugging & Testing - Systematic problem solving - Hypothesis testing - Iterative refinement - Learning from errors


Teaching Notes

Concept Dependencies

Many concepts build on earlier ones. For example: - Functions require understanding variables and parameters - Loops need comprehension of conditionals for exit conditions - Advanced animations combine colors, timing, and mathematical operations

Spiral Learning

Some concepts (like debugging, documentation, and testing) should be revisited multiple times throughout the course with increasing depth.

Differentiation

  • Struggling students: Focus on concepts 1-200, ensuring solid fundamentals
  • Advanced students: Explore concepts 201-400 and beyond, adding complexity
  • Project variations: Adjust complexity based on student readiness

Assessment Checkpoints

Key concepts to assess for mastery: - Week 2: Concepts 1-60 (setup and basic programming) - Week 4: Concepts 61-130 (variables, loops, motion) - Week 6: Concepts 131-200 (functions, conditionals, interactivity) - Week 8: Concepts 201-310 (planning and design) - Week 10: Concepts 311-400 (implementation and communication)

This sequence ensures students build a strong foundation before tackling more complex concepts, with computational thinking principles woven throughout the entire curriculum.