Moving Rainbow: Computational Thinking with LED Programming
Course Overview
Course Code: CS-110 Grade Level: 10th Grade (Sophomores) Duration: 10 weeks (1 semester) Credit: 0.5 Credit (Elective - Computer Science/STEM) Prerequisites: None - No prior programming experience required Materials Fee: $10 (students keep their kit)
Course Description
Moving Rainbow is a hands-on introduction to computer science and computational thinking through the creation of colorful LED animations and wearable electronics. Students will learn Python programming by controlling addressable LED strips with Raspberry Pi Pico microcontrollers, progressing from simple blinking patterns to complex, interactive light displays.
This project-based course emphasizes the four pillars of computational thinking: decomposition (breaking problems into manageable parts), pattern recognition (identifying similarities), abstraction (focusing on important details), and algorithm design (creating step-by-step solutions). Students will develop these critical thinking skills while building engaging projects they can take home and share with family and friends.
The course culminates in a three-week capstone project where students design, program, and present an original LED creation of their choice, such as a wearable costume, room decoration, interactive art installation, or practical device like a smart nightlight.
What Students Will Learn
Programming & Computer Science
- Python programming fundamentals (variables, loops, conditionals, functions)
- Working with libraries and modules
- Debugging techniques and problem-solving strategies
- Version control basics with Git and GitHub
- Hardware-software integration concepts
Electronics & Physical Computing
- Understanding microcontrollers and how they work
- Reading circuit diagrams and making connections
- Working with sensors, buttons, and input devices
- Power management and battery selection
- Safety considerations for wearable electronics
Computational Thinking Skills
- Breaking complex problems into smaller, manageable tasks
- Recognizing patterns in code and design
- Creating efficient algorithms for animations
- Testing and iterating on solutions
- Documentation and code organization
Design & Creativity
- Color theory and RGB color mixing
- Animation principles (timing, transitions, effects)
- User interface design with button controls
- Project planning and time management
- Presenting technical work to an audience
Course Structure
Weeks 1-2: Foundations
- Introduction to computational thinking and Python
- Setting up hardware and software (Raspberry Pi Pico, Thonny IDE)
- First programs: blink patterns and color control
- Understanding RGB color values and basic animations
- Project: Create a custom color fade animation
Weeks 3-4: Motion and Patterns
- Working with loops and iteration
- Moving pixels and creating motion effects
- Pattern recognition and algorithm design
- The color wheel and rainbow effects
- Project: Design a moving rainbow animation
Weeks 5-6: Interactivity and Control
- Button input and event handling
- Conditional logic and decision-making
- Creating multi-mode programs
- Debouncing and interrupt handling
- Project: Build a mode-switching LED controller with 3+ patterns
Week 7: Advanced Animations
- Complex animation techniques (comet tails, theater chase, twinkle effects)
- Working with functions and code organization
- Brightness control and gamma correction
- Random number generation for effects
- Project: Implement three advanced animation patterns
Weeks 8-10: Capstone Project
Students design and build an original LED project that demonstrates mastery of course concepts. The capstone includes:
Week 8: Planning and Design
- Project proposal and planning document
- Circuit design and parts list
- Algorithm design and pseudocode
- Milestone planning and timeline creation
Week 9: Implementation
- Writing and debugging code
- Building and testing hardware
- Iterating on design based on testing
- Peer code reviews and collaboration
Week 10: Presentation and Reflection
- Final project demonstration
- Technical presentation explaining design choices
- Reflection on computational thinking processes
- Peer feedback and evaluation
Capstone Project Options
Students choose from (or propose) projects such as:
Wearables & Costumes - Light-up jacket with music-reactive animations - LED baseball cap with team colors and patterns - Animated sneakers with walking detection - Holiday costume with interactive effects
Home & Decor - Smart room lighting with customizable themes - Interactive clock display - Photo frame with ambient lighting - Motion-activated stair lights
Interactive Art - Sound-reactive visualizer - Touch-sensitive color mixer - Animated sculpture or installation - LED message board or sign
Practical Devices - Solar-powered garden lights - Bike safety lights with turn signals - Study timer with visual indicators - Automatic nightlight with light sensor
Assessment & Grading
Weekly Projects (40%) - Completion of assigned animations and programs - Code quality and documentation - Demonstration of computational thinking
Class Participation (20%) - Active engagement in lessons - Helping peers troubleshoot issues - Contributing to discussions - Following lab safety procedures
Capstone Project (40%) - Project proposal and planning (10%) - Technical implementation (15%) - Presentation and documentation (10%) - Reflection on learning (5%)
Learning Outcomes
By the end of this course, students will be able to:
- Apply computational thinking to break down complex problems and design algorithmic solutions
- Write Python programs to control hardware and create interactive animations
- Design and build electronic circuits with microcontrollers, LEDs, and input devices
- Debug and troubleshoot both hardware and software issues systematically
- Plan and execute a multi-week technical project from concept to completion
- Communicate technical concepts clearly through documentation and presentations
- Collaborate effectively with peers on programming challenges
- Make informed decisions about technology choices, power management, and design tradeoffs
Materials Provided
Each student receives a take-home kit including: - Raspberry Pi Pico microcontroller - Breadboard with jumper wires - 30-LED addressable RGB strip (WS2812B) - Two push buttons - USB cable - Battery pack for portable projects - Project enclosure or mounting materials
All software is free and open-source. Students may purchase additional components for their capstone project if desired.
Why Take This Course?
This course is perfect for students who: - Want to learn programming through creative, visual projects - Enjoy hands-on building and making things - Are interested in wearable technology or smart home devices - Want to develop problem-solving skills applicable to any field - Like to create projects they can show off to friends and family
No prior experience required! This course welcomes complete beginners and provides support for students at all skill levels.
Career Connections
Skills learned in this course apply to careers in: - Software Engineering - Embedded Systems Development - Robotics and Automation - Internet of Things (IoT) - Game Development - User Interface/User Experience Design - Entertainment Technology - Electrical Engineering - Product Design
Student Testimonials
"I never thought I could program, but making my own light-up jacket made coding fun and easy to understand!" - Maya S., Class of 2024
"The best part was taking my projects home and showing my family. I made a nightlight for my little brother and he loves it!" - Jordan T., Class of 2024
"This class taught me how to think through problems step by step. I use computational thinking in all my other classes now." - Alex P., Class of 2024
Contact Information
Course Instructor: [Instructor Name] Email: [instructor@school.edu] Classroom: [Room Number] Office Hours: [Schedule]
Questions? Stop by the STEM department or email the instructor to learn more about this exciting hands-on course!
This course satisfies elective requirements for Computer Science, STEM, or Career & Technical Education pathways. Students interested in advanced computer science courses should consider this as an excellent introduction to programming concepts.