Curious what we teach in our Electronics + Coding Standard Course? This course is designed to start at the very beginning to systematically teach you to work with electronic components, use a Raspberry Pi, and write Python code. The course then covers more complex electronic components such as a variety of sensors as well as intermediate-level Python code commands.
Click here to view sample lesson videos, activity instructions, and more.
Interested in using this course in a group teaching setting? This same content is taught in our One Semester Electronics and Coding Course.
SCOPE AND SEQUENCE FOR THE ELECTRONICS + CODING STANDARD COURSE
Lesson A-1: Introduction to Components: Batteries and Breadboards
- What is Electricity?
- Static Electricity vs. Current Electricity
- Voltage, Current, and Resistance
- What is a Circuit?
- Short Circuits
- Open Circuits vs. Complete Circuits
- Circuit Components
- Batteries
- Anode vs. Cathode
- Breadboards
- Soldered Circuits vs. Breadboard Circuits
- Breadboard Connections and Power
- Activity: Powering Breadboard Connections
Lesson A-2: Introduction to Components: Resistors and LED
- Resistors
- How Resistors Work
- Using Resistors to Build Circuits
- Calculating Resistance Value
- Light Emitting Diode
- How LEDs Work
- LED Polarity
- Pairing Resistors and LEDs
- Calculating Forward Voltage
- Activities
- Activity #1: Build a Circuit to Illuminate an LED
- Activity #2: Build a Series Circuit
Lesson A-3: Series vs. Parallel Circuits and Ohm’s Law
- Series vs. Parallel Circuits
- Limitations to Series Circuits
- Resistor Use in Parallel Circuits
- Understanding Voltage, Resistance, and Current in Serial vs. Parallel Circuits
- Ohm’s Law
- Introduction to Ohm’s Law
- Mathematical Formula
- Ohm’s Law Calculation Example
- Activities: Build a Parallel Circuit
Lesson A-4: Introduction to Components: Jumper Wires
- Jumper Wire
- Uses for Jumper Wire
- Size and Type of Jumper Wire
- Spacing Components to Avoid Short Circuits
- Activity: Build a Circuit Using Jumper Wires
Lesson A-5: Introduction to Components: Switches
- Switches
- Common Uses for Switches
- Types of Switches
- Maintained vs. Momentary
- Normally Open vs. Normally Closed
- Poles and Throws
- Labeling Components
- Activities
- Activity #1: Controlling Two LEDs with One Switch
- Activity #2: Using Two Switches to Independently Control LEDs
Lesson A-6: Introduction to Components: Red-Blue-Green LED (RGB LED)
- RGB LEDs
- Common Anode vs. Common Cathode
- Proper Placement in Breadboard
- Activities
- Activity #1: Illuminate the Red Element of the RGB LED
- Activity #2: Add the Blue Element on a Switch
- Activity #3: Controlling Colors on a Switch
Lesson A-7: Troubleshooting Circuits
- Introduction to Troubleshooting
- Troubleshooting Steps:
- Verify There is a Failure
- Check the Simplest or Most Likely Solution First and Retest
- Half-Splitting
- Repair the Problem and Retest
- Practical Applications
- Intermittent Problems
- Equipment Failure
- Activities
- Activity #1: Building and Troubleshooting a Circuit
- Activity #2: Additional Troubleshooting Practice
Lesson A-8: Introduction to Reading Schematics
- Schematics
- Reading Schematics
- Common Schematic Symbols
- Wires
- Power
- Switches
- Resistors
- Diodes
- Capacitors
- Transistors
- Integrated Circuits
- Header
- Activities
- Activity #1: Building a Series Circuit Using a Schematic
- Activity #2: Building a Parallel Circuit Using a Schematic
- Activity #3: Working with a Schematic
Lesson A-9: Setting Up the Raspberry Pi
- Raspberry Pi Hardware
- Raspberry Pi Software
- Types of Software
- Raspian OS
- Python
- Nano
- Thonny
- Types of Interface
- GUI
- Terminal
- Understanding Sudo and Update Commands
- APT-GET Update
- APT-GET DIST-UPGRADE
- Activities
- Activity #1: Installing the Raspberry Pi in a Protective Case
- Activity #2: Connecting Peripherals to the Raspberry Pi
- Activity #3: Safely Powering the Raspberry Pi On and Off
- Activity #4: Connecting the Raspberry Pi to the Internet
- Activity #5: Updating the Raspberry Pi’s Software
Lesson A-10: Introduction to Software: Terminal and Thonny
- Nano Overview
- Thonny Overview
- Error Checking Options
- Activities
- Activity #1: Creating a Python Program in Nano
- Activity #2: Creating a Python Program in Thonny
- Activity #3: Exploring Thonny’s Error Checking Features
Lesson A-11: Creating Python Programs
- Program Flow
- Strings
- Variables
- Spaces and Capitalization
- Integers
- Equations
- Print Command
- Printing a String
- Printing a Variable
- Order
- Activities
- Activity #1: Reading and Writing Basic Python Code
- Activity #2: Writing Basic Python Code
Lesson A-12: Code Organization, User Input, and Merging Strings
- Keeping Code Organized
- Carriage Returns
- Comments
- Formatting Comments
- Commenting Out Code
- User Input
- Merging Strings (Concatenation)
- Activities
- Activity #1: Reading and Writing Python Code
- Activity #2: Writing a Simple Program in Python
Lesson A-13: Math Functions, Lists, and Importing Modules
- Math Functions
- Lists
- Formatting Lists
- Index Values
- Importing and Using Modules
- Time Module
- Random Module
- Activities
- Activity #1: Exponential Math Calculations
- Activity #2: Importing the Random Module
- Activity #3: Random Dice Program
- Activity #4: Importing the Time Module
- Activity #5: Times Up! Game
Lesson A-14: Introducing If/Else Statements
- Boolean Logic
- Coding Comparison Operators
- Connecting Multiple Logic Expressions
- Programming for Decisions
- If Statements
- Else Statements
- Using Multiple Statements Inside an If Statement
- Elif Statements
- Formatting Concerns
- Activities
- Activity #1: Using Boolean Logic
- Activity #2: Deciphering Code
- Activity #3: Writing Logical Code
Lesson A-15: Nested If Statements and String/Integer Conversion
- Nested If Statements
- Indentation
- Strings vs. Integers
- Converting a Value to an Integer
- Converting a Value to a String
- Activities
- Activity #1: Add Five Years to Your Age
- Activity #2: Age Calculator
- Activity #3: Guess A Number
Lesson A-16: Controlling a Breadboard Circuit with the Raspberry Pi
- General Purpose Input Output (GPIO)
- Pin States: Low vs. High
- Outputs
- GPIO Header
- GPIO Pin Numbering
- GPIO Header Pin Assignments
- Python Commands and Process for Working with GPIO Pins
- Importing Module
- Specifying Pins
- Cleanup Operations
- Activities
- Activity #1: Preparing the Equipment for Connection
- Activity #2: Powering an LED Using the Raspberry Pi
Lesson A-17: Loops
- Introduction to Loops
- Coding Loops
- Activities
- Activity #1: Build a 4 LED Circuit
- Activity #2: Create a Program to Test Circuit Functionality
- Activity #3: Using Loops to Control LEDs
Lesson A-18: Final Project: Two Player Reaction Game
- Inputs
- Electrical Differences in Configurations
- Another Random Module Command
- Other Uses for the Time Module
- Trimming a Long Number
- While Loops
- Activities
- Activity #1: Add Switches to the Circuit
- Activity #2: Coding the Two Player Game
Lesson B-1: Administrative and File Management
- Understanding the Raspbian File System
- Completing File Tasks in the Graphical User Interface (GUI)
- Creating a Folder
- Creating a File
- Renaming a File or Folder
- Changing Permissions on a File or Folder
- Root User
- Deleting Files or Folders
- Navigating Folders Using File Manager
- Completing File Tasks Using the Command Line
- Working Directory
- Listing Directory Contents
- Creating a File
- Creating a Directory
- Moving to Another Directory
- Copying a File or Folder
- Moving or Renaming a File or Folder
- Deleting a File or Folder
- Other Useful Command Line Tools
- Confirming Raspbian Version
- Taking a Screen Capture
- Activities:
- Activity #1: GUI File and Folder Operations
- Activity #2: Command Line File and Folder Operations
Lesson B-2: Functions
- Understanding Functions
- Keeping Code Organized
- Grouping Related Program Blocks
- Global and Local Variables
- Functions with Arguments
- Using Functions in Programs
- Activities
- Activity #1: Simple Function Program
- Activity #2: Calling a Function with a Loop
- Activity #3: Functions with Passed Arguments
Lesson 3: Program Layout Options and Advanced String Concepts
- Program Layout Options
- While True Loops
- Try, Except, Finally Program Layout
- Advanced String Concepts
- Determining the Length of a String
- Accessing the Value of a Specific String Position
- Accessing Values from Multiple String Positions
- Uppercase and Lowercase
- Replacing Characters in a String
- Activities
- Activity #1: While True Loop
- Activity #2: Error Handling Program
- Activity #3: Practice with Strings
Lesson B-4: Pulse Width Modulation
- Import Methods
- Standard Module Import
- Importing a Module Using an Alias
- Importing Multiple Modules
- Importing Specific Functions from a Module
- Analog Signals vs Digital Signals
- Pulse Width Modulation (PWM)
- PWM Duty Cycle and Frequency
- Hardware PWM vs Software PWM
- GPIO Commands to Control PWM
- Activities:
- Activity #1: Building an LED and Piezo Circuit
- Activity #2: Controlling an LED with PWM
- Activity #3: Adjusting LED Brightness
Lesson B-5: Switches and Correcting for Switch Bounce
- Pull-up and Pull-down Options
- Slide or Toggle Switch
- Switch Bounce
- Using a Delay to Save System Resources
- Activities:
- Activity #1: Adding Switches to the Circuit
- Activity #2: Counting Button Presses
- Activity #3: Tuning a Loop Using a Delay
- Activity #4: Adding LED Confirmation Using the Slide Switch
Lesson B-6: Logical Operators
- Logical Operators in Python
- Using a Pushbutton Switch as a Toggle
- Using a Pushbutton Switch to End a Program
- Activities:
- Activity #1: Using a Pushbutton Switch as a Toggle
- Activity #2: Use And/Or to Control Different Events
- Activity #3: Add Stop Button Functionality
Lesson B-7: Working with a 3x4 Matrix Keypad
- Matrix Style Input Panel
- Program Flow for Checking a Matrix
- Storing Values as Strings Versus Integers
- Membrane Type Switches
- Matrix Keypad Warning
- Variables and Scope
- Activities:
- Activity #1: Adding the Switch Matrix
- Activity #2: Creating a Program to Display Keypad Presses
- Activity #3: Adding Exit Functionality to the Keypad Program
Lesson B-8: Github and Python 2 vs Python 3
- Library Files
- What is Github?
- Cloning a Library from Github
- When to Clone a Remote Library
- Completing the Library Installation
- Viewing Code Inside Files on Github
- Python 2 vs Python 3
- Thonny and Python
- Activities:
- Activity #1: Cloning and Installing a Github Repository
- Activity #2: Exploring the Adafruit MCP3008 Repository
- Activity #3: Viewing Code on Github
Lesson B-9: Analog Signal Processing with the Raspberry Pi
- Voltage Dividers
- Analog Input on the Raspberry Pi
- Integrated Circuits (IC)
- IC Datasheets
- IC Pin Numbering
- IC Pinouts
- ESD and IC Handling Precautions
- Digital Communication
- The MCP3008 A/D Converter
- Activities:
- Activity #1: Connecting the MCP3008
- Activity #2: Reading a Value from the MCP3008
- Activity #3: Adding a Voltage Divider
- Activity #4: Updating the Raspberry Pi’s Software
Lesson B-10: Potentiometers, Phototransitors, and Advanced List Commands
- Variable Resistors
- Light Sensors
- Advanced List Commands
- Creating a List Using the Split Command
- Adding Items to a List
- Finding Items in a List
- Determining if an Item is Part of a List
- Finding the Length of a List
- Sorting a List
- Printing all Items in a List Along with Their Index Values
- Removing Items from a List
- Clearing All Items from a List
- Activities
- Activity #1: Adding the Potentiometer and Phototransistor
- Activity #2: Incorporating the LED as an Indicator
- Activity #3: Working with Lists
Lesson B-11: RFID Systems
- RFID Technology
- How RFID Works
- RFID for Access Control
- Security Concerns for RFID
- MFRC522 Tag Reader
- RFID Tags
- Reading Text from the RFID Tag
- Removing Trailing Spaces in Python
- Determining Program Type: Python Code SHEBANG or #!
- Reading and Writing Tags
- Activities:
- Activity #1: Adding the RFID Reader and Software
- Activity #2: Reading and Writing Tags
- Activity #3: Creating an Access Control Program
Lesson B-12: RFID II
- Using a File for Input
- Input File Types and Formatting
- Opening a File in Your Program
- Reading Values from a File
- Multithreaded Operation
- Important Notes About Multithreaded Operation
- Formatting and Displaying Time and Date
- Breaking Out of a Loop
- Activities:
- Activity #1: Read an External File in Python
- Activity #2: Tag Reader Indicator
- Activity #3: Adding Date and Time Messages
Lesson B-13: Level Shifting and Infrared Sensors
- Signal Level Shifting
- Hardware Level Shifting
- Infrared (IR) Obstacle Sensor
- Alignment of Obstacle Sensors
- Infrared Line Sensor
- Alignment of Line Sensors
- Activities
- Activity #1: Level Shifter and the RGB LED
- Activity #2: Adding the IR Obstacle Sensor
- Activity #3: Adding the IR Line Sensor
Lesson B-14: Ultrasonic Range Sensing and NUMPY
- Ultrasonic Rangefinders
- Ultrasonic Signals
- Finding Range with an Ultrasonic Sensor
- Using Distance Information in Programs
- Error Handling
- NumPy
- Integers and Floats
- Printing with Notation
- Activities:
- Activity #1: Adding the Ultrasonic Range Sensor
- Activity #2: Creating a Program to Read Ranges
- Activity #3: Averaging the Range Values Using NumPy
- Activity #4: Adding the RGB LED as a Distance Indicator
Lesson B-15: I2C and Temperature Sensing
- I2C Communication
- I2C Addressing
- Enabling I2C on the Raspberry Pi
- List of I2C Devices
- Detecting Attached I2C Devices
- The BMP280 Temperature Sensor
- BMP280 Wiring
- BMP280 Commands
- Temperature Conversion
- The WGET Command
- Running Modules as Imports vs Directly
- The SYSTEMEXIT() Command
- Activities:
- Activity #1: Enabling the I2C Interface
- Activity #2: Adding the BMP280 Temperature Sensor
- Activity #3: Creating a Program to Display Temperature
- Activity #4: Adding the RGB LED to Indicate Temperature
Lesson B-16: OLED I2C Display
- OLED Display Hardware
- Resolution and Pixels
- OLED Technology
- I2C Communication
- SSD1306 Display Driver
- Required Modules
- Size Configuration
- Starting the Display
- Variables that Simplify Communication with the Display
- Drawing on the Display
- Unicode Characters
- Activities
- Activity #1: Modify the Circuit
- Activity #2: Create a Program to Display Text
- Activity #3: Modify the Program to Display Sensor Information
Lesson B-17: Capacitive Touch Sensor
- Capacitors
- Construction
- Current Limiting
- Charge Time
- Calculating Charge Time
- Parallel vs. Series
- Capacitive Touch Sensor
- Male-to-Female Jumper Wires
- GPIO Pin Level Sensing
- Activities:
- Activity #1: Powering a Circuit Using a Capacitor
- Activity #2: Measuring Capacitor Discharge Time
- Activity #3: Using the Capacitive Touch Sensor
Lesson B-18: Range Sensing Game (Final Project)
- Level Shifting with Resistors
- Absolute Value in Python
- Modifying a File for Import Use
- Activities:
- Activity #1: Modifying Ultrasonic.py
- Activity #2: Adding the Ultrasonic Range Sensor
- Activity #3: Building the Range Game
Ready to get started? Click here to purchase the Electronics + Coding Standard Course.