Course Title: Future Genius Python Programmers: Python 1 – Coding Fundamentals
Age Group: 10+ years
Course Synopsis: This 10-week introductory course provides a comprehensive and engaging start to text-based programming using Python, the world’s most popular programming language. Students will learn fundamental programming concepts, including variables, data types, operators, control flow (conditionals and loops), and functions, through hands-on coding activities and real-world problem-solving mini-projects. The course emphasizes building computational thinking skills, fostering creativity, promoting communication and teamwork, and establishing a solid foundation for more advanced Python programming in Python 2 and beyond.
Tools: Python (Online IDE recommended – e.g., Repl.it, Trinket, or local Python installation if feasible)
Session Duration: 1 hour 30 minutes
Week 1: Welcome to Python! – Setting Up & First Programs
- Learning Objective: Understand what Python is, why it’s popular, set up a Python coding environment (online IDE), write and run basic Python code (print statements).
- (20 min) Concept Deep-Dive + Examples: What is Python and Why?
- Introduce Python: What is programming? What is a programming language? What is Python?
- Why Python is popular: Easy to read, versatile (web, games, AI, data science), used by big companies.
- Setting up Python environment: Introduce online IDEs (Repl.it, Trinket) – pros and cons of online vs. local installation (for this age group, online is recommended for simplicity). Guide students to create accounts and a new Python project.
- Example: Show a simple Python program: print(“Hello, World!”). Explain the print() function.
- (35 min) Independent/Collaborative Coding Challenges: “Hello, Python!”
- Challenge 1 (Independent): Modify the “Hello, World!” program to print their name: print(“Hello, [Your Name]!”).
- Challenge 2 (Pair Programming): Pairs write a program to print a short greeting message to each other, including both names.
- Challenge 3 (Creative): Write a program that prints a short poem or a few lines of a song they like.
- (25 min) Real-world Problem-Solving (Mini-Project): “Personal Introduction Program”
- Mini-project: Students create a Python program that prints a short introduction about themselves (name, age, hobby, favorite subject). Use multiple print() statements to organize the information nicely.
- Encourage creativity in how they present their introduction.
- (10 min) Peer Feedback + Q&A: “Show and Tell & Python Questions”
- Students briefly share their “Personal Introduction Programs.”
- Peer feedback: Positive comments and suggestions for improvement.
- Q&A: Open floor for questions about Python, setup, or challenges faced.
Week 2: Variables and Data Types – Storing Information
- Learning Objective: Understand variables, how to name them, different data types (integers, floats, strings), and perform basic operations.
- (20 min) Concept Deep-Dive + Examples: Variables and Data Types
- Introduce variables: What are variables? (Containers to store information). Why are they important? (To remember and manipulate data).
- Variable naming rules: Explain valid variable names (letters, numbers, underscores, cannot start with number). Best practices: descriptive names.
- Data types: Introduce integers (whole numbers), floats (decimal numbers), strings (text).
- Examples: Show variable assignment: name = “Alice”, age = 10, price = 9.99. Explain data types using type() function.
- (35 min) Independent/Collaborative Coding Challenges: “Variable Explorers”
- Challenge 1 (Independent): Create variables to store their name, age, and favorite color. Print these variables in a sentence.
- Challenge 2 (Pair Programming): Pairs create variables to store information about a pet (name, animal type, age). Print information about both pets (if both have pets, or create imaginary pets).
- Challenge 3 (Creative): Create variables to represent items in a story (character name, location, object). Print a short sentence using these variables to start a story.
- (25 min) Real-world Problem-Solving (Mini-Project): “Student Profile Program”
- Mini-project: Students create a program that stores information about a student (name, grade, subjects, grades in each subject) in variables. Print a formatted “student profile” showing this information.
- Focus on using different data types appropriately (string for name, integer for grade, etc.).
- (10 min) Peer Feedback + Q&A: “Variable Showcase & Data Type Discussion”
- Students share their “Student Profile Programs.”
- Peer feedback: Focus on variable naming and data type usage.
- Q&A: Discuss challenges with variables, data types, and best practices.
Week 3: Input and Output – Talking to the Computer
- Learning Objective: Learn to use the print() function for outputting information to the user and the input() function for getting input from the user.
- (20 min) Concept Deep-Dive + Examples: Input and Output Functions
- Review print() function: Recap its use for displaying text. Explore different ways to use print() (multiple items, string formatting – basic f-strings).
- Introduce input() function: What is user input? Why is it important? (Interactive programs). Explain input() function syntax: name = input(“What is your name? “). Explain that input() always returns a string.
- Examples: Show programs using print() for output and input() to get user’s name and greet them.
- (35 min) Independent/Collaborative Coding Challenges: “Interactive Greetings”
- Challenge 1 (Independent): Write a program that asks for the user’s name and greets them by name using the input() and print() functions.
- Challenge 2 (Pair Programming): Pairs write a program that asks for two users’ names and greets both of them.
- Challenge 3 (Creative): Write a program that asks for the user’s favorite food and responds with a fun message about that food.
- (25 min) Real-world Problem-Solving (Mini-Project): “Simple Calculator Input”
- Mini-project: Students create a program that asks the user to enter two numbers using input(). Print the sum of these two numbers. Important Note: Initially, students will likely try to add strings directly. This will lead to a TypeError. Guide them to convert the input strings to integers or floats using int() or float() before adding. This introduces the concept of type conversion.
- This mini-project naturally leads to debugging and understanding type errors, which is a valuable learning experience.
- (10 min) Peer Feedback + Q&A: “Interactive Program Showcase & Input/Output Tips”
- Students share their interactive greeting and calculator input programs.
- Peer feedback: Focus on clear prompts in input() and user-friendly output using print().
- Q&A: Discuss challenges with input(), type conversion, and making programs interactive.
Week 4: Operators and Expressions – Doing Math and Comparisons
- Learning Objective: Learn to use arithmetic operators (+, -, *, /, %, **), comparison operators (==, !=, >, <, >=, <=), and logical operators (and, or, not) to perform calculations and comparisons in Python.
- (20 min) Concept Deep-Dive + Examples: Operators in Python
- Arithmetic operators: Review basic math operators (+, -, *, /). Introduce modulo (%) for remainder, exponentiation (**) for powers.
- Comparison operators: Introduce operators for comparing values (== – equals, != – not equals, >, <, >=, <=). Explain that comparison operators return Boolean values (True/False).
- Logical operators: Introduce ‘and’, ‘or’, ‘not’ operators for combining conditions.
- Expressions: Explain how operators are used to form expressions that Python evaluates. Order of operations (PEMDAS/BODMAS).
- Examples: Show examples of using each type of operator in Python and printing the results.
- (35 min) Independent/Collaborative Coding Challenges: “Operator Olympics”
- Challenge 1 (Independent): Write a program that calculates the area of a rectangle using variables for length and width and arithmetic operators.
- Challenge 2 (Pair Programming): Pairs write a program that compares two numbers entered by the user and prints whether the first number is greater than, less than, or equal to the second number using comparison operators.
- Challenge 3 (Creative): Write a program that uses logical operators (‘and’, ‘or’, ‘not’) to check if a user-entered age meets certain combined conditions (e.g., “Is age greater than 10 AND less than 18?”).
- (25 min) Real-world Problem-Solving (Mini-Project): “Simple Quiz with Operator Checks”
- Mini-project: Students create a simple math quiz program. Ask a math question (e.g., “What is 5 + 3?”). Get user input. Use comparison operators (==) to check if the user’s answer is correct. Print “Correct!” or “Incorrect!” based on the comparison.
- Expand to multiple choice questions (if time allows) and use logical operators to check for multiple correct options.
- (10 min) Peer Feedback + Q&A: “Operator Experts & Quiz Review”
- Students share their operator programs and quizzes.
- Peer feedback: Focus on correct operator usage and clear logic in quizzes.
- Q&A: Discuss operator precedence, common errors, and practical uses of operators.
Week 5: Conditional Statements – Making Decisions with ‘if’, ‘elif’, ‘else’
- Learning Objective: Learn to use if, elif (else if), and else statements to control program flow based on conditions, enabling decision-making in programs.
- (20 min) Concept Deep-Dive + Examples: Conditional Statements
- Introduce conditional statements: Why are they needed? (To make programs respond differently in different situations, make decisions).
- Explain if statement syntax: if condition: # code to execute if condition is True.
- Introduce elif and else for handling multiple conditions and default cases. Explain the flow: if condition1: … elif condition2: … else: ….
- Examples: Show examples of using if, elif, else to check conditions and execute different code blocks (e.g., checking if a number is positive, negative, or zero; checking grades and assigning letter grades).
- (35 min) Independent/Collaborative Coding Challenges: “Decision Makers”
- Challenge 1 (Independent): Write a program that asks for a number and prints whether it’s even or odd using the modulo operator (%) and an if-else statement.
- Challenge 2 (Pair Programming): Pairs write a program that asks for a user’s age and tells them if they are a child, teenager, or adult using if, elif, else statements and age ranges.
- Challenge 3 (Creative): Write a program that simulates a simple traffic light. Based on user input (“red”, “yellow”, “green”), print the corresponding traffic light message (“Stop!”, “Caution!”, “Go!”). Use if, elif, else.
- (25 min) Real-world Problem-Solving (Mini-Project): “Temperature-Based Clothing Recommendation”
- Mini-project: Students create a program that asks for the temperature in Celsius. Use if, elif, else statements to recommend appropriate clothing based on temperature ranges (e.g., “If temperature > 25, recommend ‘Wear shorts and t-shirt’. Elif temperature > 15, recommend ‘Wear jeans and a light jacket’. Else, recommend ‘Wear a coat and sweater’.”).
- Encourage them to make the recommendations more creative and specific.
- (10 min) Peer Feedback + Q&A: “Conditional Logic Showcase & Decision Tree Discussion”
- Students share their conditional statement programs and clothing recommendations.
- Peer feedback: Focus on correct if, elif, else syntax and logical flow.
- Q&A: Discuss nested if statements (briefly, if time allows), complex conditions, and real-world decision-making in programs.
Week 6: Loops – Repeating Actions with ‘for’ Loops
- Learning Objective: Learn to use for loops to repeat a block of code a specific number of times or iterate through sequences (strings, lists – introduce lists briefly in context).
- (20 min) Concept Deep-Dive + Examples: ‘for’ Loops
- Introduce loops: Why are loops needed? (To repeat code without writing it multiple times, automate tasks).
- Explain for loop syntax for iterating a specific number of times using range() function: for i in range(5): # code to repeat 5 times. Explain range(start, stop, step) (briefly focus on range(stop) for now).
- Explain for loop syntax for iterating through strings: for char in “Python”: # code to process each character.
- Introduce lists briefly as sequences of items (more detail in later weeks). Show basic list iteration: for item in [1, 2, 3]: # code to process each item.
- Examples: Show examples of using for loops to print numbers in a range, print characters of a string, and process items in a list (simple printing).
- (35 min) Independent/Collaborative Coding Challenges: “Looping Patterns”
- Challenge 1 (Independent): Write a program that uses a for loop to print numbers from 1 to 10.
- Challenge 2 (Pair Programming): Pairs write a program that uses a for loop to print each character of a user-entered word on a new line.
- Challenge 3 (Creative): Write a program that uses a for loop to print a pattern of stars or other symbols (e.g., a triangle pattern, a square pattern) to the console.
- (25 min) Real-world Problem-Solving (Mini-Project): “Multiplication Table Printer”
- Mini-project: Students create a program that prints the multiplication table for a number entered by the user. Use a for loop to iterate from 1 to 10 (or 12) and print each multiplication result in a formatted way (e.g., “5 x 1 = 5”, “5 x 2 = 10”, …).
- Focus on using for loop and string formatting to create a well-structured output.
- (10 min) Peer Feedback + Q&A: “Looping Showcase & Pattern Discussion”
- Students share their for loop programs and multiplication tables.
- Peer feedback: Focus on correct for loop syntax and efficient use of loops for repetition.
- Q&A: Discuss nested loops (briefly), different uses of range(), and advantages of loops over repetitive code.
Week 7: Loops – Repeating Actions with ‘while’ Loops
- Learning Objective: Learn to use while loops to repeat a block of code as long as a condition is true, enabling loops that run for an indefinite number of times until a condition is met.
- (20 min) Concept Deep-Dive + Examples: ‘while’ Loops
- Contrast for loops (repeat a known number of times) with while loops (repeat until a condition is false).
- Explain while loop syntax: while condition: # code to repeat as long as condition is True. Crucial: Emphasize the importance of making the condition eventually become False to avoid infinite loops.
- Examples: Show examples of using while loops for counting down from a number, repeating actions until user enters a specific input, and simple game loops (very basic idea of game loop concept).
- (35 min) Independent/Collaborative Coding Challenges: “While Loop Wonders”
- Challenge 1 (Independent): Write a program that uses a while loop to count down from 10 to 1 and print each number.
- Challenge 2 (Pair Programming): Pairs write a program that repeatedly asks the user “Do you want to continue? (yes/no)” using input(). Use a while loop to continue the program as long as the user enters “yes”. Print “Continuing…” each time they say “yes” and “Ending…” when they say “no”.
- Challenge 3 (Creative): Write a program that simulates a guessing game. Generate a random number. Use a while loop to repeatedly ask the user to guess the number until they guess correctly. Give hints (“Too high!”, “Too low!”) in each iteration.
- (25 min) Real-world Problem-Solving (Mini-Project): “Input Validation Loop”
- Mini-project: Students create a program that asks the user to enter a positive number. Use a while loop to validate the input. If the user enters a negative number or zero, display an error message and ask them to enter again. Continue looping until a positive number is entered. Once a valid input is received, print “Thank you!”.
- Focus on using while loop for input validation and error handling.
- (10 min) Peer Feedback + Q&A: “While Loop Masters & Infinite Loop Discussion”
- Students share their while loop programs and input validation examples.
- Peer feedback: Focus on correct while loop syntax, condition logic, and loop termination.
- Q&A: Discuss infinite loops (what they are, how to avoid them), when to use for vs. while loops, and real-world scenarios where while loops are essential.
Week 8: Functions – Reusable Blocks of Code (Introduction)
- Learning Objective: Introduce functions as reusable blocks of code, learn to define functions, call functions, and understand the benefits of using functions (code organization, reusability).
- (20 min) Concept Deep-Dive + Examples: Functions in Python
- Introduce functions: What are functions? (Reusable blocks of code that perform specific tasks). Why are they important? (Code organization, reusability, making programs easier to read and manage).
- Explain function definition syntax: def function_name(parameters): # function body (code) return value (optional). Focus on basic functions without parameters and return values initially.
- Explain function calling syntax: function_name().
- Examples: Show simple functions for printing greetings, calculating squares, etc. Demonstrate defining and calling functions.
- (35 min) Independent/Collaborative Coding Challenges: “Function Fun”
- Challenge 1 (Independent): Write a function called greet() that prints “Hello!”. Call this function multiple times in your program.
- Challenge 2 (Pair Programming): Pairs write a function called calculate_sum(a, b) that calculates and returns the sum of two numbers (introduce return values briefly – focus on printing in main program for now if return is too complex initially). Call this function with different numbers and print the results.
- Challenge 3 (Creative): Write functions to perform different actions in a simple text-based game (e.g., move_player(), check_inventory(), describe_location()). Call these functions in sequence to create a simple game flow (very basic text adventure game structure).
- (25 min) Real-world Problem-Solving (Mini-Project): “Function-Based Calculator”
- Mini-project: Students refactor their simple calculator program from Week 3 (or Week 4) to use functions. Create separate functions for addition, subtraction, multiplication, and division. Call these functions based on user choice (input).
- Focus on organizing calculator logic into functions for better code structure.
- (10 min) Peer Feedback + Q&A: “Functionality Showcase & Code Organization Discussion”
- Students share their function programs and function-based calculators.
- Peer feedback: Focus on correct function definition and calling, and how functions improve code readability.
- Q&A: Discuss parameters and return values (briefly introduce, more in Python 2), scope of variables (briefly touch upon), and advantages of modular code using functions.
Week 9: Lists – Working with Collections of Data (Introduction)
- Learning Objective: Introduce lists as a data structure to store ordered collections of items, learn to create lists, access list elements, and perform basic list operations (append, len).
- (20 min) Concept Deep-Dive + Examples: Lists in Python
- Introduce lists: What are lists? (Ordered collections of items, like shopping lists, to-do lists). Why are they useful? (Storing multiple values in one variable, organizing data, iterating through collections).
- Explain list creation syntax: my_list = [item1, item2, item3]. Lists can contain items of different data types.
- Explain accessing list elements using index (starting from 0): first_item = my_list[0].
- Introduce basic list operations: append() to add items to the end, len() to get the length of the list.
- Examples: Show examples of creating lists of numbers, strings, mixed data types, accessing elements, appending items, and finding list length.
- (35 min) Independent/Collaborative Coding Challenges: “List Adventures”
- Challenge 1 (Independent): Create a list of their favorite hobbies. Print each hobby from the list using a for loop.
- Challenge 2 (Pair Programming): Pairs create two lists – one for names, one for ages of friends. Combine them to print ” [Name] is [Age] years old.” for each friend using a for loop and list indexing.
- Challenge 3 (Creative): Create a program that simulates a simple to-do list. Allow users to add tasks to the list using input() and append(). Print the current to-do list.
- (25 min) Real-world Problem-Solving (Mini-Project): “Storing and Displaying Quiz Questions”
- Mini-project: Students refactor their math quiz program (or create a new quiz program) to store quiz questions and answers in lists. Create a list of questions and a corresponding list of answers. Use a for loop to iterate through the questions, ask each question, get user input, check against the answer in the answer list.
- Focus on using lists to organize quiz data and improve program structure.
- (10 min) Peer Feedback + Q&A: “List Explorers & Data Organization Discussion”
- Students share their list programs and quiz examples.
- Peer feedback: Focus on correct list creation, indexing, and list operations.
- Q&A: Discuss more advanced list operations (briefly introduce, more in Python 2), nested lists (mention if appropriate), and real-world applications of lists for data storage.
Week 10: Project Week & Python 1 Review – Putting It All Together
- Learning Objective: Apply all learned Python 1 concepts in a creative project, review key concepts from the course, and prepare for Python 2.
- (20 min) Concept Review & Project Brainstorming: Python 1 Recap & Project Ideas
- Quickly review all key concepts covered in Python 1: variables, data types, input/output, operators, conditional statements, for loops, while loops, functions (basic), lists (basic).
- Brainstorm project ideas that combine multiple concepts learned in Python 1. Examples: Enhanced calculator, text-based adventure game (simple), quiz game with lists and functions, interactive story, number guessing game with more features.
- Students choose a project idea (individually or in pairs).
- (35 min) Project Work Time: Creative Python Project Development
- Students work on their chosen Python projects.
- Teacher provides guidance and support as needed.
- Encourage students to use multiple concepts learned throughout Python 1 in their projects.
- (25 min) Project Showcase & Demos: Python 1 Project Presentations
- Students showcase their Python projects to the class.
- Brief demos and explanations of their projects and code.
- Positive peer feedback and appreciation.
- (10 min) Course Recap & Python 2 Preview: “Python 1 Graduates!”
- Course recap: Summarize key skills and concepts learned in Python 1. Congratulate students on completing Python 1.
- Python 2 preview: Briefly introduce what will be covered in Python 2 (more advanced data structures, functions with parameters and return values, modules/libraries, object-oriented programming – very light introduction, if mentioned at all). Build excitement for continuing their Python journey.
- Award certificates of completion for Python 1. Encourage continued practice and exploration of Python.
This Python 1 curriculum is designed to be engaging, progressive, and build a strong foundation in Python programming for 10+ year olds. Remember to adjust the pace and complexity of challenges based on the students’ progress and interests. Encourage experimentation, collaboration, and celebrate their journey as they become Future Genius Python Programmers!
Course Title: Future Genius Python Programmers: Python 2 – Expanding Your Coding Toolkit
Age Group: 10+ years (Prerequisite: Completion of Python 1 or equivalent foundational Python knowledge)
Course Synopsis: Building directly upon Python 1, this 10-week course expands students’ Python programming skills by introducing more advanced concepts and techniques. Students will delve deeper into functions (parameters, return values, scope), master data structures like lists (list comprehensions, slicing, advanced methods) and dictionaries, explore string manipulation, and learn to use Python modules and libraries to extend program functionality. The course continues to emphasize hands-on coding challenges, collaborative projects, real-world problem-solving, computational thinking, communication, and teamwork, preparing students for more advanced programming endeavors and real-world applications of Python.
Tools: Python (Online IDE recommended – e.g., Repl.it, Trinket, or local Python installation if feasible)
Session Duration: 1 hour 30 minutes
Week 1: Functions – Parameters and Return Values: Making Functions More Powerful
- Learning Objective: Deepen understanding of functions by learning about parameters (inputs to functions) and return values (outputs from functions), creating more versatile and reusable functions.
- (20 min) Concept Deep-Dive + Examples: Functions with Parameters and Return Values
- Review basic functions from Python 1. Explain limitations of functions without inputs or outputs.
- Introduce function parameters: Why are parameters needed? (To pass data into functions, make them more flexible). Explain parameter syntax: def function_name(param1, param2): ….
- Introduce return values: Why are return values needed? (To get results back from functions, use function output in other parts of the program). Explain return statement.
- Examples: Show functions with parameters (e.g., greet_person(name), add_numbers(num1, num2)) and functions with return values (e.g., square(number), get_full_name(first_name, last_name)).
- (35 min) Independent/Collaborative Coding Challenges: “Function Power-Up”
- Challenge 1 (Independent): Write a function called calculate_area_rectangle(length, width) that takes length and width as parameters and returns the area of the rectangle. Call the function with different values and print the results.
- Challenge 2 (Pair Programming): Pairs write a function called is_even(number) that takes a number as a parameter and returns True if the number is even, and False if it’s odd. Call the function with different numbers and print the returned Boolean values.
- Challenge 3 (Creative): Write functions to perform different actions in a simple text-based game, now using parameters and return values. Example: get_player_move(location) (takes current location as parameter, returns player’s next move), process_move(move, location) (takes move and location, returns updated location or game outcome).
- (25 min) Real-world Problem-Solving (Mini-Project): “Function-Based Unit Converter”
- Mini-project: Students create a unit converter program using functions. Create separate functions for different conversions (e.g., celsius_to_fahrenheit(celsius), feet_to_inches(feet), kilograms_to_pounds(kilograms)). Get input from the user (value and conversion type). Call the appropriate function and print the converted value.
- Focus on using functions to modularize the unit conversion logic.
- (10 min) Peer Feedback + Q&A: “Function Masters & Reusability Discussion”
- Students share their function programs and unit converters.
- Peer feedback: Focus on correct function definition with parameters and return values, and effective use of functions for code modularity.
- Q&A: Discuss function scope (briefly revisit), benefits of functions for code reusability and organization, and more complex function design.
Week 2: Lists – Advanced Techniques: List Comprehensions and Slicing
- Learning Objective: Expand list skills by learning list comprehensions (creating lists in a concise way) and list slicing (accessing portions of lists), enabling more efficient and powerful list manipulation.
- (20 min) Concept Deep-Dive + Examples: List Comprehensions and Slicing
- Review basic lists from Python 1. Discuss limitations of creating lists item by item using loops for certain tasks.
- Introduce list comprehensions: What are they? (Concise way to create lists based on existing lists or ranges). Explain syntax: new_list = [expression for item in iterable (optional condition)].
- Introduce list slicing: What is list slicing? (Accessing a sub-section of a list). Explain slicing syntax: my_list[start:stop:step].
- Examples: Show examples of list comprehensions for creating lists of squares, even numbers, filtered lists. Show examples of list slicing for getting first 3 items, last 2 items, every other item.
- (35 min) Independent/Collaborative Coding Challenges: “List Power Tools”
- Challenge 1 (Independent): Use a list comprehension to create a list of squares of numbers from 1 to 10. Print the new list.
- Challenge 2 (Pair Programming): Pairs have a list of names. Use list slicing to create a new list containing only the first half of the names and another list containing the second half. Print both new lists.
- Challenge 3 (Creative): Use list comprehensions and slicing to process a list of words. Example: Create a list of words, then use list comprehension to create a new list containing only words longer than 5 letters, and another list containing the first letter of each word in the original list.
- (25 min) Real-world Problem-Solving (Mini-Project): “Data Filtering and Transformation with Lists”
- Mini-project: Students are given a list of student scores (mix of passing and failing scores). Use list comprehensions to: 1) Create a new list containing only passing scores (e.g., scores >= 60). 2) Create another new list where each passing score is increased by 5 points (bonus points). Print both new lists.
- Focus on using list comprehensions for data filtering and transformation tasks.
- (10 min) Peer Feedback + Q&A: “List Comprehension & Slicing Showcase”
- Students share their list comprehension and slicing programs.
- Peer feedback: Focus on correct syntax for list comprehensions and slicing, and efficient use for list manipulation.
- Q&A: Discuss nested list comprehensions (briefly, if appropriate), more advanced slicing techniques, and when to use list comprehensions vs. traditional loops for list creation.
Week 3: Lists – Advanced Methods: Manipulating Lists Efficiently
- Learning Objective: Learn and practice using advanced list methods (e.g., insert(), remove(), pop(), index(), count(), sort(), reverse()) to manipulate lists in various ways, enhancing their coding toolkit for list management.
- (20 min) Concept Deep-Dive + Examples: Advanced List Methods
- Review basic list operations (append, len, indexing). Introduce advanced list methods:
- insert(index, item): Insert item at a specific index.
- remove(item): Remove the first occurrence of an item.
- pop(index): Remove and return item at index (or last item if no index).
- index(item): Find the index of the first occurrence of an item.
- count(item): Count occurrences of an item.
- sort(): Sort the list in place (ascending order by default).
- reverse(): Reverse the list in place.
- Examples: Show examples of using each list method and demonstrate their effects on lists.
- Review basic list operations (append, len, indexing). Introduce advanced list methods:
- (35 min) Independent/Collaborative Coding Challenges: “List Method Mania”
- Challenge 1 (Independent): Create a list of numbers. Use insert() to add a number at a specific position, remove() to remove a specific number, and pop() to remove and print the last number.
- Challenge 2 (Pair Programming): Pairs have a list of words. Use index() to find the position of a specific word, count() to count how many times a word appears (add duplicates to the list to test count), and sort() to sort the list alphabetically.
- Challenge 3 (Creative): Create a program that simulates managing a playlist of songs. Use list methods to add songs (append(), insert()), remove songs (remove(), pop()), find song position (index()), and display the playlist (using a loop).
- (25 min) Real-world Problem-Solving (Mini-Project): “Inventory Management System (Simple)”
- Mini-project: Students create a simplified inventory management program using lists. Create a list to store inventory items. Allow users to: 1) Add items to inventory (append()), 2) Remove items from inventory (remove()), 3) Check quantity of an item (count()), 4) Display current inventory (loop through list).
- Focus on using list methods to manage and manipulate inventory data.
- (10 min) Peer Feedback + Q&A: “List Method Showcase & Efficiency Discussion”
- Students share their list method programs and inventory systems.
- Peer feedback: Focus on correct usage of different list methods and choosing appropriate methods for tasks.
- Q&A: Discuss time complexity of list operations (briefly, if appropriate), efficiency of using list methods, and real-world applications of list manipulation in data management.
Week 4: Dictionaries – Key-Value Pairs: Organizing Data with Labels
- Learning Objective: Introduce dictionaries as a data structure to store data in key-value pairs, learn to create dictionaries, access values using keys, add/modify/delete entries, and understand the benefits of using dictionaries for organized data storage.
- (20 min) Concept Deep-Dive + Examples: Dictionaries in Python
- Contrast lists (ordered, indexed by numbers) with dictionaries (unordered, indexed by keys – labels).
- Explain dictionaries as key-value pairs: What are keys? (Labels, unique identifiers). What are values? (Data associated with keys). Why are dictionaries useful? (Organizing data with meaningful labels, efficient data lookup by key).
- Explain dictionary creation syntax: my_dict = {key1: value1, key2: value2, …}. Keys must be immutable (strings, numbers, tuples). Values can be any data type.
- Explain accessing values using keys: value = my_dict[key]. Adding/modifying entries: my_dict[key] = new_value. Deleting entries: del my_dict[key].
- Examples: Show examples of creating dictionaries to store student information (name, age, grade), book information (title, author, ISBN), and using key-value pairs to access and manipulate data.
- (35 min) Independent/Collaborative Coding Challenges: “Dictionary Delights”
- Challenge 1 (Independent): Create a dictionary to store information about themselves (name, age, favorite hobby, favorite food). Print each piece of information using keys.
- Challenge 2 (Pair Programming): Pairs create a dictionary to store information about different countries (country name as key, capital city as value). Ask the user to enter a country name and print its capital city from the dictionary.
- Challenge 3 (Creative): Create a program that simulates a simple phonebook. Use a dictionary to store names as keys and phone numbers as values. Allow users to add new contacts, look up phone numbers by name, and list all contacts.
- (25 min) Real-world Problem-Solving (Mini-Project): “Student Gradebook with Dictionaries”
- Mini-project: Students create a simplified student gradebook program using dictionaries. Create a dictionary where keys are student names and values are dictionaries of their grades in different subjects (e.g., gradebook = {“Alice”: {“Math”: 90, “Science”: 85}, “Bob”: {“Math”: 78, “Science”: 92}}). Allow users to: 1) Add new students and their grades, 2) Look up a student’s grades by name, 3) Calculate and display a student’s average grade (optional, if time allows).
- Focus on using nested dictionaries to organize structured data (student and subject grades).
- (10 min) Peer Feedback + Q&A: “Dictionary Showcase & Key-Value Organization Discussion”
- Students share their dictionary programs and gradebook examples.
- Peer feedback: Focus on correct dictionary creation, key-value pair usage, and appropriate use of dictionaries for data organization.
- Q&A: Discuss dictionary methods (briefly introduce, more in later courses), advantages of dictionaries over lists for certain data organization tasks, and real-world applications of dictionaries in data management and lookups.
Week 5: Modules and Libraries – Expanding Python’s Capabilities
- Learning Objective: Introduce the concept of modules and libraries in Python, learn to import and use modules (e.g., math, random, datetime), and understand how modules extend Python’s functionality and code reusability.
- (20 min) Concept Deep-Dive + Examples: Python Modules and Libraries
- Introduce modules and libraries: What are they? (Collections of pre-written code – functions, variables, classes – that extend Python’s capabilities). Why are they useful? (Code reusability, saving time and effort, accessing specialized functionalities).
- Explain the import statement: import module_name. Selective import: from module_name import function_name, variable_name.
- Explore common built-in modules: math (math functions – sqrt(), sin(), cos(), pi), random (random number generation – randint(), random(), choice()), datetime (date and time manipulation – datetime.datetime.now()).
- Examples: Show examples of importing and using functions from math, random, and datetime modules in Python programs.
- (35 min) Independent/Collaborative Coding Challenges: “Module Mania”
- Challenge 1 (Independent): Write a program that uses the math module to calculate the square root of a number entered by the user and prints the result.
- Challenge 2 (Pair Programming): Pairs write a program that uses the random module to generate a random number between 1 and 10 and asks the user to guess it (number guessing game, using randint()).
- Challenge 3 (Creative): Write a program that uses the datetime module to get the current date and time and prints a formatted message including the date and time. Optionally, use datetime to calculate the time difference between two dates (if complexity is appropriate).
- (25 min) Real-world Problem-Solving (Mini-Project): “Random Password Generator”
- Mini-project: Students create a random password generator program. Use the random module to: 1) Generate random characters (letters, numbers, symbols – if appropriate complexity), 2) Combine them into a password of a specified length (get length from user input). 3) Print the generated password.
- Focus on using the random module to generate random data for a practical application.
- (10 min) Peer Feedback + Q&A: “Module Showcase & Code Extension Discussion”
- Students share their module programs and password generators.
- Peer feedback: Focus on correct module import and function calls from modules.
- Q&A: Discuss the vastness of Python libraries (mention libraries for web, games, data science – briefly), benefits of using libraries vs. writing everything from scratch, and how to find and learn about new Python libraries (documentation, online resources).
Week 6: String Manipulation – Working with Text Data
- Learning Objective: Learn advanced string manipulation techniques using string methods (e.g., upper(), lower(), strip(), split(), join(), find(), replace()) to process and transform text data effectively.
- (20 min) Concept Deep-Dive + Examples: Advanced String Manipulation
- Review basic string operations (concatenation, indexing). Introduce advanced string methods:
- upper(), lower(): Case conversion.
- strip(): Remove leading/trailing whitespace.
- split(delimiter): Split a string into a list of substrings based on a delimiter.
- join(iterable): Join a list of strings into a single string with a delimiter.
- find(substring): Find the index of the first occurrence of a substring.
- replace(old, new): Replace occurrences of a substring.
- Examples: Show examples of using each string method and demonstrate their effects on strings.
- Review basic string operations (concatenation, indexing). Introduce advanced string methods:
- (35 min) Independent/Collaborative Coding Challenges: “String Surgery”
- Challenge 1 (Independent): Write a program that takes a string as input, converts it to uppercase using upper(), and prints the uppercase string.
- Challenge 2 (Pair Programming): Pairs have a sentence string. Use split() to split it into a list of words, then join() to join it back into a string but with words separated by commas instead of spaces.
- Challenge 3 (Creative): Write a program that takes a paragraph of text as input. Use string methods to: 1) Count the number of words in the paragraph (split by spaces, get list length). 2) Find and replace a specific word in the paragraph with another word (using find() and replace()). Print the modified paragraph and word count.
- (25 min) Real-world Problem-Solving (Mini-Project): “Text Analyzer”
- Mini-project: Students create a simple text analyzer program. Get a sentence or short paragraph as input from the user. Use string methods to: 1) Count the number of characters (using len()), 2) Count the number of words (split by spaces, get list length), 3) Convert the text to lowercase and uppercase and print both versions, 4) Find and count occurrences of a specific word (using find() in a loop or count() if appropriate).
- Focus on using string methods to analyze and extract information from text data.
- (10 min) Peer Feedback + Q&A: “String Method Showcase & Text Processing Discussion”
- Students share their string manipulation programs and text analyzers.
- Peer feedback: Focus on correct usage of string methods and effective text processing.
- Q&A: Discuss regular expressions (briefly mention as more advanced text processing tools), more string methods (explore Python documentation), and real-world applications of string manipulation in text processing, data cleaning, and natural language processing (NLP – very basic idea).
Week 7: File Input/Output – Reading and Writing Data to Files (Introduction)
- Learning Objective: Introduce basic file input/output (I/O) operations, learn to read data from text files and write data to text files, enabling programs to interact with external data sources and store program output persistently.
- (20 min) Concept Deep-Dive + Examples: File Input/Output
- Introduce file I/O: Why is file I/O needed? (To read data from files, save program output to files – making data persistent, working with larger datasets).
- Explain file handling process: 1) Open file (in read ‘r’ or write ‘w’ mode), 2) Read from or write to file, 3) Close file. Importance of closing files.
- Introduce open() function: file = open(“filename.txt”, “r”) (for reading), file = open(“output.txt”, “w”) (for writing).
- Reading from files: file.read(), file.readline(), file.readlines(). Focus on file.readlines() for reading line by line into a list.
- Writing to files: file.write(“text to write\n”).
- Using with open(…) as file: for automatic file closing (best practice).
- Examples: Show examples of reading data from a sample text file, processing it, and writing output to a new text file.
- (35 min) Independent/Collaborative Coding Challenges: “File Fun with Text”
- Challenge 1 (Independent): Create a text file named “numbers.txt” with numbers on each line. Write a program to read numbers from this file, calculate their sum, and print the sum.
- Challenge 2 (Pair Programming): Pairs have a text file named “names.txt” with names on each line. Write a program to read names from this file, sort them alphabetically, and write the sorted names to a new file named “sorted_names.txt”.
- Challenge 3 (Creative): Create a program that reads a story from a text file, counts the number of words in the story, and writes the word count to a new file named “word_count.txt”. (Use string splitting and file I/O).
- (25 min) Real-world Problem-Solving (Mini-Project): “Simple Data Logger”
- Mini-project: Students create a simple data logger program. Ask the user to enter some data (e.g., temperature readings, names of items). Use a while loop to allow them to enter multiple data points until they type “done”. Write each data point entered by the user to a text file named “data_log.txt”, each on a new line.
- Focus on using file writing to store user input data persistently.
- (10 min) Peer Feedback + Q&A: “File I/O Showcase & Data Persistence Discussion”
- Students share their file I/O programs and data loggers.
- Peer feedback: Focus on correct file opening, reading, writing, and closing, and handling file operations.
- Q&A: Discuss different file modes (‘r’, ‘w’, ‘a’ – briefly), different file formats (mention CSV, JSON briefly), error handling with file operations (briefly mention try-except for file errors – more in later courses), and real-world applications of file I/O in data storage, data processing, and configuration files.
Week 8: Project Planning and Design – Preparing for the Final Project
- Learning Objective: Guide students through the process of planning and designing a larger Python project that integrates multiple concepts learned in Python 1 and Python 2, focusing on project scope, features, and design considerations.
- (20 min) Concept Review & Project Brainstorming: Python 1 & 2 Recap and Project Ideas
- Quickly review key concepts from Python 1 and Python 2.
- Brainstorm project ideas that can utilize multiple concepts learned in both courses. Examples:
- Enhanced text-based game (adventure, quiz, puzzle).
- Data analysis tool (analyze data from a file, calculate statistics, display results).
- Utility program (unit converter with more options, password generator with customization, to-do list manager).
- Creative text-based application (story generator, poem generator, interactive fiction).
- Show examples of project ideas and discuss potential features and complexity levels.
- (35 min) Project Planning & Design: Defining Project Scope and Features
- Students choose a project idea (individually or in pairs).
- Guide them through project planning:
- Define project goal/purpose.
- List key features and functionalities.
- Outline the program flow/logic.
- Identify Python concepts and techniques they will use (functions, lists, dictionaries, file I/O, etc.).
- Break down the project into smaller, manageable tasks.
- Create a basic flowchart or pseudocode (optional, depending on student level).
- Encourage students to choose projects that are challenging but achievable within the remaining time.
- (25 min) Collaborative Project: Team Project Design Review & Feedback
- Students work in teams (larger groups, if desired) to discuss their project plans and designs.
- Each team briefly presents their project idea and plan to another team or the class.
- Peer feedback: Teams provide constructive feedback on each other’s project plans – clarity of goals, feasibility, potential challenges, and suggestions for improvement.
- Teacher provides guidance and feedback on project scope and design feasibility.
- (10 min) Peer Feedback + Q&A: “Project Design Refinement & Next Steps”
- Teams refine their project designs based on peer and teacher feedback.
- Q&A: Address any questions about project scope, design, or implementation.
- Outline next steps for project development in Weeks 9 and 10.
Week 9: Project Work Time – Developing Your Python Project (Part 1)
- Learning Objective: Begin developing their chosen Python projects, implementing core features, and applying concepts learned throughout Python 1 and Python 2.
- (20 min) Project Work Time & Individual Guidance: Starting Project Implementation
- Students start working on their Python projects based on their project plans.
- Teacher circulates, provides individual guidance, answers questions, and helps students overcome initial coding challenges.
- Focus on getting the basic structure of the project in place and implementing core functionalities.
- (35 min) Collaborative Coding Challenges (Optional, if needed): Focused Skill Practice during Project Work
- If students are facing specific challenges or need practice with certain concepts related to their projects (e.g., list manipulation, function design, file I/O), provide short, focused coding challenges or mini-exercises to help them practice those skills within the context of their projects.
- These challenges can be done individually or in pairs, as needed.
- (25 min) Project Work Time – Continued Development: Adding Features and Functionality
- Students continue working on their Python projects, adding more features, implementing planned functionalities, and refining their code.
- Teacher continues to provide support and guidance.
- (10 min) Peer Feedback + Q&A: “Project Progress Check-in & Addressing Challenges”
- Students briefly share their project progress and any challenges they are encountering.
- Peer feedback: Teams offer suggestions or help each other with coding challenges.
- Q&A: Address common project development questions and challenges as a class.
Week 10: Project Completion, Showcase, and Python 2 Graduation
- Learning Objective: Complete Python projects, showcase projects to the class, celebrate learning in Python 2, and encourage continued Python exploration.
- (15 min) Project Work Time – Final Touches: Completing and Polishing Projects
- Students spend the beginning of the session adding final touches to their Python projects, polishing code, fixing bugs, and preparing for presentations.
- (35 min) Project Showcase & Demos: Python 2 Project Presentations
- Students showcase their completed Python projects to the class.
- Each student/team presents their project, demonstrates its functionality, and explains the code and concepts they used.
- Encourage students to highlight challenges they overcame and what they learned during project development.
- Positive peer feedback and appreciation for each project.
- (25 min) Python 2 Course Review & Advanced Python Preview: “Python 2 Masters!”
- Course review: Summarize key skills and advanced concepts learned in Python 2: functions (parameters, return values), lists (advanced techniques), dictionaries, modules, string manipulation, file I/O (basic). Congratulate students on completing Python 2 and becoming “Python 2 Masters!”.
- Advanced Python preview: Briefly introduce what’s next in Python beyond Python 2 (object-oriented programming in more depth, GUI programming, web development frameworks like Flask/Django, data science libraries like Pandas/NumPy/Scikit-learn, game development libraries like Pygame – choose areas relevant to student interests and future learning paths). Build excitement for continued Python learning and potential career paths with Python skills.
- Award certificates of completion for Python 2 (or combined Python 1 & 2 certificates if applicable). Encourage continued practice, advanced Python learning, and exploring Python’s vast ecosystem.
- (10 min) Recap + Rewards: “Future Genius Python 2 Graduates!”
- Final words of encouragement and appreciation for their hard work and progress in Python programming.
- Provide celebratory rewards (e.g., Python-themed stickers, coding books, resources for advanced Python learning, small tech-related gifts).
This Python 2 curriculum is designed to build upon Python 1, providing a significant expansion of students’ coding toolkit and preparing them for more advanced programming challenges. Remember to adapt the complexity of projects and challenges based on the students’ progress and interests, and emphasize creativity, collaboration, and a growth mindset throughout the course!
Course Title: Future Genius Robot Explorers: Robot Explorers 1 – Building and Programming Smart Machines
Age Group: 10+ years
Course Synopsis: This 10-week introductory course provides a hands-on exploration of robotics and programming using LEGO® Education SPIKE™ Prime. Students will learn fundamental robotics concepts, engineering design principles, and computational thinking skills by building and programming robots to perform various tasks. The course utilizes a block-based programming environment (Scratch with SPIKE Prime extension) to make coding accessible and engaging, while progressively introducing concepts like robot mechanics, sensors, basic programming logic (sequences, loops, conditionals), and design thinking. Students will develop communication, teamwork, and problem-solving skills through collaborative projects and challenges, setting a strong foundation for more advanced robotics and programming in Robot Explorers 2.
Tools:
- LEGO® Education SPIKE™ Prime Sets (Core Set recommended)
- Scratch Programming Environment (SPIKE Prime extension required, either LEGO Education Scratch or compatible platform like Pictoblox)
- Optional: Python programming environment (for potential extension activities, but primarily Scratch for Course 1)
Session Duration: 1 hour 30 minutes
Week 1: Welcome to Robotics! – Introduction to SPIKE Prime and Basic Robot Building
- Learning Objective: Introduce the field of robotics, the LEGO SPIKE Prime system, identify key components (Hub, motors, sensors, Technic elements), and build a basic driving base robot.
- (20 min) Concept Deep-Dive + Examples: What is Robotics? & SPIKE Prime Intro
- Introduce Robotics: What is a robot? (Definition, examples of real-world robots). Why are robots important? (Automation, problem-solving, exploration).
- Introduce LEGO SPIKE Prime: Overview of the SPIKE Prime system as an educational robotics platform. Show the SPIKE Prime kit, highlight key components: Hub (brain), motors (movement), sensors (input), LEGO Technic elements (structure).
- Discuss the building aspect of robotics and the engineering design process.
- Example: Show a simple driving base robot example (pre-built or image). Explain its basic structure and purpose.
- (35 min) Independent/Collaborative Coding Challenges: “Build Your Driving Base!”
- Challenge 1 (Building – Independent/Pairs): Students follow building instructions (provided, or use LEGO Education resources) to build a basic driving base robot using SPIKE Prime elements. Focus on correct assembly of motors, wheels, and Hub mounting.
- Challenge 2 (Exploration – Individual): Once built, students explore the physical robot, identify motors, Hub ports, and basic structural elements.
- Challenge 3 (Teamwork): Teams ensure all members have built a working driving base and help each other troubleshoot building issues.
- (25 min) Real-world Problem-Solving (Mini-Project): “Robot Obstacle Course Challenge (No Programming Yet)”
- Mini-project: Create a simple obstacle course on the floor using household items (books, boxes, etc.).
- Challenge: Teams manually maneuver their driving base robots (pushing/pulling, no motors yet) through the obstacle course. Discuss challenges of manual control and the need for programming.
- Focus on understanding the robot’s physical capabilities and limitations before programming.
- (10 min) Peer Feedback + Q&A: “Robot Showcase & Building Tips”
- Teams showcase their driving base robots.
- Peer feedback: Positive comments on building quality and design. Share building tips and troubleshooting advice.
- Q&A: Open floor for questions about robotics, SPIKE Prime components, and building challenges.
Week 2: Programming Your Robot – Introduction to Scratch and Basic Movement Control
- Learning Objective: Introduce the Scratch programming environment (SPIKE Prime extension), learn to connect the robot to the software, and use basic motion blocks to program the driving base to move forward, backward, and turn.
- (20 min) Concept Deep-Dive + Examples: Scratch Programming for SPIKE Prime
- Introduce Scratch as a visual block-based programming language. Explain its user-friendly interface and suitability for beginners.
- Introduce the SPIKE Prime extension in Scratch environment. Show how to access SPIKE Prime specific blocks (motors, sensors).
- Demonstrate connecting the SPIKE Prime Hub to the Scratch environment (via USB or Bluetooth).
- Introduce basic Motion blocks: move [direction] for [seconds/rotations/degrees], turn [direction] [degrees]. Explain units (seconds, rotations, degrees).
- Example: Show a simple Scratch program to make the driving base move forward, backward, and turn using motion blocks.
- (35 min) Independent/Collaborative Coding Challenges: “First Moves with Scratch!”
- Challenge 1 (Programming – Independent): Write a Scratch program to make their driving base move forward for 2 seconds, then backward for 1 second.
- Challenge 2 (Programming – Pair Programming): Pairs write a program to make their driving base turn right 90 degrees, then turn left 90 degrees. Experiment with different turn values.
- Challenge 3 (Combined Building & Programming – Teamwork): Teams modify their driving base (if desired, add decorations, etc.) and program it to perform a short “dance” using basic motion blocks (forward, backward, turns).
- (25 min) Real-world Problem-Solving (Mini-Project): “Robot Navigation Challenge (Simple)”
- Mini-project: Set up a simple straight-line path on the floor using tape.
- Challenge: Teams program their driving base robots to navigate along the straight-line path from a start to an end point. Focus on using move forward block and adjusting time/rotations for accurate distance.
- Encourage experimentation and adjusting code for accuracy.
- (10 min) Peer Feedback + Q&A: “Code Showcase & Movement Tips”
- Teams showcase their robot navigation and “dance” programs.
- Peer feedback: Focus on code clarity, efficient use of motion blocks, and smooth robot movement. Share coding tips and troubleshooting advice.
- Q&A: Open floor for questions about Scratch programming, motion blocks, connecting robots, and challenges faced during programming.
Week 3: Loops for Repetition – Making Robot Programs More Efficient
- Learning Objective: Introduce ‘repeat’ loops in Scratch to make robot programs more efficient by repeating code blocks, and use loops to program repetitive robot actions.
- (20 min) Concept Deep-Dive + Examples: ‘Repeat’ Loops in Scratch
- Introduce loops: What is a loop? (Repeating a block of code multiple times). Why are loops useful? (Code efficiency, automating repetitive tasks).
- Introduce the ‘repeat [number]’ loop block in Scratch. Explain how it repeats the blocks inside it a specified number of times.
- Demonstrate using ‘repeat’ loop to make the driving base move in a square path (repeating forward and turn actions).
- Example: Show a Scratch program using a ‘repeat’ loop to make the robot move in a square.
- (35 min) Independent/Collaborative Coding Challenges: “Looping Robot Actions”
- Challenge 1 (Programming – Independent): Write a Scratch program that uses a repeat loop to make the driving base move forward and backward 3 times each, creating a back-and-forth motion.
- Challenge 2 (Programming – Pair Programming): Pairs write a program that uses nested repeat loops to make the driving base move in a grid pattern (move forward, turn right, repeat, then move forward again and repeat outer loop).
- Challenge 3 (Combined Building & Programming – Teamwork): Teams design and build a simple “robot dance routine” that uses repeat loops to create repeating dance moves and patterns.
- (25 min) Real-world Problem-Solving (Mini-Project): “Robot Obstacle Course – Loop Challenge”
- Mini-project: Revisit the obstacle course from Week 1.
- Challenge: Teams program their driving base robots to navigate a section of the obstacle course that involves repeating a sequence of moves (e.g., repeatedly move forward and slightly turn to navigate a curved path, or repeatedly move forward and turn to go around a series of small obstacles in a line). Emphasize using repeat loops to simplify the code.
- Compare code with and without loops – highlight efficiency of loops.
- (10 min) Peer Feedback + Q&A: “Looping Code Showcase & Efficiency Discussion”
- Teams showcase their looping robot programs and obstacle course solutions.
- Peer feedback: Focus on efficient use of repeat loops, code conciseness, and smooth repeating robot actions. Share looping tips and troubleshooting advice.
- Q&A: Discuss different types of loops (mention ‘forever’ loop briefly for later use), nested loops, and real-world applications of loops in automation and repetitive tasks.
Week 4: Introducing Sensors – The Color Sensor and Basic Data Reading
- Learning Objective: Introduce sensors in robotics, specifically the SPIKE Prime Color Sensor, learn to attach and configure the color sensor, and program the robot to read and display color sensor data.
- (20 min) Concept Deep-Dive + Examples: Sensors in Robotics & Color Sensor Intro
- Introduce sensors: What are sensors? (Devices that allow robots to “sense” their environment – like robot “eyes” and “ears”). Why are sensors important? (Making robots interactive, autonomous, responsive to the world).
- Introduce the SPIKE Prime Color Sensor: What does it sense? (Color, light intensity, reflected light). How does it work? (Brief, simplified explanation – emits light, detects reflected light).
- Explain how to attach the color sensor to the SPIKE Prime Hub and driving base (physically connect to a port).
- Introduce basic Sensor blocks in Scratch (Color Sensor category): color sensor [port] color?, color sensor [port] reflected light intensity, color sensor [port] ambient light intensity.
- Example: Show a Scratch program to read the color detected by the color sensor and display the color name on the screen (using say block or Hub display – if feasible).
- (35 min) Independent/Collaborative Coding Challenges: “Color Sensor Explorers”
- Challenge 1 (Sensor Reading – Independent): Write a Scratch program to continuously read and display the reflected light intensity value from the color sensor on the screen (using say or Hub display). Experiment with different surfaces and light conditions.
- Challenge 2 (Sensor Reading – Pair Programming): Pairs write a program to read and display the detected color name from the color sensor. Test with different colored objects and cards.
- Challenge 3 (Combined Building & Programming – Teamwork): Teams modify their driving base to securely mount the color sensor facing downwards, close to the ground. Ensure sensor is properly connected to the Hub.
- (25 min) Real-world Problem-Solving (Mini-Project): “Color Detector Display”
- Mini-project: Create a “Color Detector Display” program. Program the robot to: 1) Continuously read the color detected by the color sensor. 2) Display the detected color name on the screen (using say block or Hub display). 3) Change the Hub’s light matrix color to match the detected color (if feasible and age-appropriate – optional extension).
- Focus on reading sensor data and displaying it in a user-friendly way.
- (10 min) Peer Feedback + Q&A: “Sensor Data Showcase & Sensor Placement Discussion”
- Teams showcase their color sensor data display programs and robot builds with color sensors.
- Peer feedback: Focus on accurate sensor readings, clear data display, and proper sensor mounting. Share sensor placement tips and troubleshooting advice.
- Q&A: Discuss different types of sensors (briefly mention other SPIKE Prime sensors), sensor accuracy, factors affecting sensor readings (lighting, surface properties), and real-world applications of color sensors (color sorting robots, line following, etc.).
Week 5: Conditional Logic with Sensors – Making Robots React to Color
- Learning Objective: Introduce ‘if-else’ conditional statements in Scratch and use them in combination with the color sensor to program the robot to make decisions and react differently based on detected colors.
- (20 min) Concept Deep-Dive + Examples: ‘If-Else’ with Color Sensors
- Review ‘if-else’ conditional statements from previous Scratch experience (or briefly introduce if new to conditionals). Explain how ‘if-else’ allows programs to make choices.
- Demonstrate using ‘if-else’ with the color sensor. Example: “If color sensor detects ‘Red’, then stop moving, else (if not ‘Red’), then continue moving forward.”
- Explain how to use the color sensor [port] color? block as the condition in an ‘if-else’ statement.
- Example: Show a Scratch program using ‘if-else’ and color sensor to make the robot stop when it detects red.
- (35 min) Independent/Collaborative Coding Challenges: “Color-Reactive Robots”
- Challenge 1 (Programming – Independent): Write a Scratch program to make the robot move forward. If the color sensor detects ‘Blue’, make it turn left; otherwise (else), continue moving forward.
- Challenge 2 (Programming – Pair Programming): Pairs write a program to create a “color-stop-and-go” robot. If the color sensor detects ‘Red’, make the robot stop for 2 seconds; if it detects ‘Green’, make it move forward for 2 seconds; otherwise (else, for other colors), make it continue moving forward. Use if-elif-else structure.
- Challenge 3 (Combined Building & Programming – Teamwork): Teams design and build a simple “color-sorting” mechanism for their robot (optional – e.g., a small arm or pusher). Program the robot to identify and react to two different colors (e.g., push red objects to one side, and ignore other colors) using color sensor and ‘if-else’ logic. Focus on simple color reaction, not complex sorting mechanism for this week.
- (25 min) Real-world Problem-Solving (Mini-Project): “Color Line Follower (Basic)”
- Mini-project: Create a simple line following challenge. Draw a thick black line on white paper or a mat.
- Challenge: Teams program their robots to follow the black line using the color sensor and ‘if-else’ logic. Simplified approach: “If color sensor detects ‘Black’, then move forward (or slightly adjust direction to stay on line), else (if not ‘Black’ – meaning off line), then turn slightly to get back on the line.” This will be a very basic line follower, more sophisticated line following algorithms will come later.
- Focus on using ‘if-else’ and color sensing to create a basic reactive behavior (line following).
- (10 min) Peer Feedback + Q&A: “Color-Based Decision Showcase & Conditional Logic Tips”
- Teams showcase their color-reactive robots and basic line followers.
- Peer feedback: Focus on effective use of ‘if-else’ and color sensor, smooth robot reactions to colors. Share tips for conditional logic and sensor integration.
- Q&A: Discuss more complex conditional logic (nested ‘if’s, combined conditions), different sensor-based decisions robots can make, and real-world applications of color sensors in automation and robotics (sorting, line following in factories, etc.).
Week 6: Distance Sensing – Using the Distance Sensor for Obstacle Avoidance
- Learning Objective: Introduce the SPIKE Prime Distance Sensor, learn to attach and configure it, and use it with conditional logic to program robots to detect and avoid obstacles autonomously.
- (20 min) Concept Deep-Dive + Examples: Distance Sensor and Obstacle Detection
- Introduce the SPIKE Prime Distance Sensor: What does it sense? (Distance to objects). How does it work? (Emits ultrasonic sound waves, measures time for echo to return).
- Explain how to attach the distance sensor to the SPIKE Prime Hub and robot (typically front-facing for obstacle detection).
- Introduce basic Distance Sensor blocks in Scratch (Distance Sensor category): distance sensor [port] distance in cm, distance sensor [port] presence?. Focus on distance sensor [port] distance in cm for measuring distance values.
- Example: Show a Scratch program to read and display the distance value from the distance sensor on the screen.
- (35 min) Independent/Collaborative Coding Challenges: “Distance Sensor Explorers & Obstacle Detection”
- Challenge 1 (Sensor Reading – Independent): Write a Scratch program to continuously read and display the distance value from the distance sensor on the screen. Experiment with moving objects closer and further away and observing distance readings.
- Challenge 2 (Programming – Pair Programming): Pairs write a program that uses the distance sensor to detect if an object is closer than 30 cm. If closer, make the robot say “Too close!”; otherwise (else), say “All clear!”. Use ‘if-else’ and comparison operators.
- Challenge 3 (Combined Building & Programming – Teamwork): Teams modify their driving base to securely mount the distance sensor facing forward, at a suitable height for obstacle detection. Ensure sensor is properly connected to the Hub.
- (25 min) Real-world Problem-Solving (Mini-Project): “Autonomous Obstacle Avoiding Robot (Basic)”
- Mini-project: Create a simple obstacle avoidance challenge. Place obstacles (cups, blocks) in front of the robot.
- Challenge: Teams program their robots to move forward autonomously and avoid obstacles using the distance sensor and ‘if-else’ logic. Simplified approach: “Forever loop: If distance sensor detects obstacle closer than 20cm, then turn right (or left) for a short time, else, continue moving forward.” Basic obstacle avoidance behavior.
- Focus on using ‘if-else’ and distance sensing to create autonomous behavior (obstacle avoidance).
- (10 min) Peer Feedback + Q&A: “Obstacle Avoider Showcase & Sensor Range Discussion”
- Teams showcase their obstacle avoiding robots.
- Peer feedback: Focus on robot’s ability to avoid obstacles, smooth obstacle avoidance behavior, and effective use of distance sensor and ‘if-else’. Share tips for sensor placement and obstacle avoidance strategies.
- Q&A: Discuss sensor range, factors affecting distance sensor accuracy (surface properties, angles), more sophisticated obstacle avoidance algorithms (mention path planning concepts briefly for later courses), and real-world applications of distance sensors in robots (self-driving cars, warehouse robots, etc.).
Week 7: Force Sensing – Using the Force Sensor for Touch Interaction
- Learning Objective: Introduce the SPIKE Prime Force Sensor, learn to attach and configure it, and use it with events and conditional logic to program robots to react to touch and force.
- (20 min) Concept Deep-Dive + Examples: Force Sensor and Touch Detection
- Introduce the SPIKE Prime Force Sensor: What does it sense? (Force, pressure, touch). How does it work? (Measures pressure applied to its button). Can it be used as a “button” or “touch sensor”?
- Explain how to attach the force sensor to the SPIKE Prime Hub and robot (position it for easy pressing/touching).
- Introduce basic Force Sensor blocks in Scratch (Force Sensor category): force sensor [port] force %, force sensor [port] pressed?, force sensor [port] force N. Focus on force sensor [port] pressed? for detecting button presses.
- Introduce ‘when [force sensor] [port] pressed’ event block for event-driven touch interaction.
- Example: Show a Scratch program to make the robot say “Ouch!” when the force sensor is pressed, using the ‘when force sensor pressed’ event.
- (35 min) Independent/Collaborative Coding Challenges: “Touch-Interactive Robots”
- Challenge 1 (Sensor Reading & Event – Independent): Write a Scratch program to display “Pressed!” on the screen when the force sensor is pressed and “Released!” when it’s released, using ‘when force sensor pressed’ event and ‘say’ blocks.
- Challenge 2 (Programming – Pair Programming): Pairs write a program to create a “robot button controller”. Pressing the force sensor button makes the robot move forward; releasing it stops the robot. Use ‘when force sensor pressed’ event to start moving and ‘when force sensor [port] released’ event to stop moving.
- Challenge 3 (Combined Building & Programming – Teamwork): Teams design and build a simple “interactive robot arm” (or similar mechanism) that is activated by pressing the force sensor. Program the robot arm to perform a simple action (lift, grab, push) when the force sensor is pressed, and stop when released. Focus on simple touch-activated mechanism, not complex arm design for this week.
- (25 min) Real-world Problem-Solving (Mini-Project): “Interactive Robot Game Controller”
- Mini-project: Create a simple interactive game controller using the force sensor as a button. Program the robot to: 1) Start moving forward continuously. 2) When the force sensor is pressed, make it turn right for a short time (simulating a game control input for turning). 3) Release force sensor to continue moving forward. Simulate controlling robot direction with the force sensor button.
- Focus on using the force sensor as a user input device to control robot behavior in a game-like scenario.
- (10 min) Peer Feedback + Q&A: “Touch Interaction Showcase & Force Sensor Applications”
- Teams showcase their touch-interactive robots and game controllers.
- Peer feedback: Focus on responsive touch interaction, smooth robot reactions to force sensor input. Share tips for force sensor placement and touch-based control.
- Q&A: Discuss different applications of force sensors in robots (bump sensors, pressure sensors for grip control, interactive interfaces), sensor sensitivity, and combining force sensors with other sensors for more complex interactions (e.g., using force sensor to confirm object is gripped after distance sensor detects object).
Week 8: Introduction to Design Thinking – Understanding the Problem and Brainstorming Solutions
- Learning Objective: Introduce the Engineering Design Process, specifically the “Define” and “Ideate” stages (understanding the problem and brainstorming solutions), as a structured approach to problem-solving in robotics projects.
- (20 min) Concept Deep-Dive + Examples: The Engineering Design Process (Define & Ideate)
- Introduce the Engineering Design Process (EDP) as a systematic approach to solving problems and creating solutions. Explain the typical stages: Define, Ideate, Build, Test, Evaluate, Iterate, Communicate.
- Focus on “Define” stage: Understanding the problem clearly. What are the needs? What are the constraints (limitations, rules)? Define the problem in clear, specific terms.
- Focus on “Ideate” stage: Brainstorming possible solutions. Generating many ideas, no judgment at this stage, thinking creatively and “outside the box.” Encourage diverse ideas.
- Examples: Show real-world engineering design examples and how the EDP is used. Example: Designing a bridge – Define: need to cross a river, constraints: limited materials, budget, Ideate: different bridge types (beam, suspension, arch), materials, construction methods.
- Relate EDP to robotics projects – emphasize problem definition and solution brainstorming before building and coding.
- (35 min) Independent/Collaborative Coding Challenges: “Design Thinking Practice – Define & Ideate”
- Challenge 1 (Define – Independent): Present a simple robotics problem scenario (e.g., “Design a robot to move objects from one location to another”). Students individually write down a clear definition of the problem, including needs and constraints they can think of.
- Challenge 2 (Ideate – Pair Programming): Pairs brainstorm as many different robot designs and approaches as possible to solve the problem defined in Challenge 1. Encourage “crazy” and unconventional ideas, no limitations yet. Focus on quantity of ideas, not quality at this stage.
- Challenge 3 (Teamwork): Teams share their brainstormed ideas with another team and provide feedback and suggestions to expand each other’s idea lists.
- (25 min) Real-world Problem-Solving (Mini-Project): “Design Thinking Challenge – Define a Robot Task”
- Mini-project: Present a real-world problem scenario suitable for a simple robot solution (e.g., “Design a robot to help clean up a classroom,” “Design a robot to assist in a garden,” “Design a robot to deliver messages”).
- Challenge: Teams work together to go through the “Define” and “Ideate” stages of the EDP for this problem scenario.
- Define: Clearly define the robot’s task, target users, needs it addresses, and constraints (size, materials available, etc.).
- Ideate: Brainstorm at least 5 different robot concepts or approaches to address the defined task. Sketch out basic robot designs and functionalities.
- (10 min) Peer Feedback + Q&A: “Design Ideas Showcase & EDP Discussion”
- Teams briefly present their defined problem and brainstormed robot concepts.
- Peer feedback: Focus on clarity of problem definition, creativity and variety of brainstormed solutions, and application of “Define” and “Ideate” stages.
- Q&A: Discuss the importance of design thinking in engineering and robotics, benefits of structured problem-solving, and the iterative nature of the EDP (preview of later stages).
Week 9: Design Challenge – Robot Prototype Building and Programming (Build & Test – Part 1)
- Learning Objective: Transition to the “Build” and “Test” stages of the Engineering Design Process. Teams select a robot design idea from their brainstorm, build a prototype robot, and begin programming basic functionalities to address the chosen problem.
- (20 min) Concept Review & Project Setup: EDP – Build & Test Stages & Project Brief
- Briefly review the Engineering Design Process, focusing on “Build” and “Test” stages.
- “Build” stage: Selecting a design idea, creating a prototype, assembling the robot, and writing initial code.
- “Test” stage: Observing how the prototype performs, identifying problems, and gathering data for improvement.
- Introduce the “Robot Design Challenge” project: Teams will choose one of their brainstormed robot concepts from Week 8 (or refine/combine ideas), and build a working prototype robot to address the chosen problem scenario.
- Project Brief: Briefly outline project goals, basic requirements, and available resources (LEGO SPIKE Prime sets, programming environment, session time).
- (35 min) Project Work Time – Build Phase: Robot Prototype Construction
- Teams start building their robot prototypes based on their chosen design ideas and sketches.
- Focus on constructing the basic robot structure, incorporating necessary motors and sensors for their intended functionalities.
- Teacher circulates, provides building assistance, and ensures teams are on track with their designs.
- (25 min) Project Work Time – Initial Programming: Basic Movement and Control
- Once basic robot structures are built, teams start programming basic movement and control functionalities.
- Focus on getting the robot to move, turn, and perform basic actions relevant to their project goals (e.g., move towards a target area, activate a simple mechanism).
- Encourage iterative programming – start with simple code, test, and refine.
- (10 min) Peer Feedback + Q&A: “Prototype Showcase & Build/Program Progress”
- Teams briefly showcase their robot prototypes and initial programming progress.
- Peer feedback: Focus on robot build quality, structural design, and initial programming functionalities. Share building and coding tips for the prototype phase.
- Q&A: Address any questions about building challenges, programming roadblocks, and next steps for project development.
Week 10: Design Challenge – Robot Testing, Iteration, and Showcase (Test, Evaluate, Iterate, Communicate)
- Learning Objective: Complete the “Test,” “Evaluate,” “Iterate,” and “Communicate” stages of the Engineering Design Process. Teams test their robot prototypes, evaluate their performance, iterate on their designs and code based on testing, and prepare to showcase their robot solutions.
- (20 min) Concept Review & Project Focus: EDP – Test, Evaluate, Iterate, Communicate
- Briefly review the remaining stages of the Engineering Design Process: “Test,” “Evaluate,” “Iterate,” “Communicate.”
- “Test” stage: Systematically testing the robot prototype, observing its performance, collecting data (e.g., distance, time, success/failure).
- “Evaluate” stage: Analyzing test results, identifying what works well and what needs improvement, understanding limitations of the current design.
- “Iterate” stage: Making changes and improvements to the design and code based on evaluation and testing. This is a cycle of Build -> Test -> Evaluate -> Iterate.
- “Communicate” stage: Sharing the final robot solution, explaining the design process, and communicating results and learnings.
- (35 min) Project Work Time – Test & Iterate Phase: Robot Testing, Evaluation, and Code Refinement
- Teams systematically test their robot prototypes based on their project goals and defined tasks.
- Encourage data collection during testing (e.g., measure distances, time taken for tasks, record success/failure rates).
- Teams evaluate their robot’s performance based on test results, identify areas for improvement in both hardware (build) and software (code).
- Iterate on their designs and code: Make changes to robot structure, sensor placement, programming logic, and algorithms based on their evaluation and testing. Repeat Build -> Test -> Evaluate -> Iterate cycle as time allows.
- Teacher provides guidance and support during testing and iteration process. Encourage systematic testing and data-driven design improvements.
- (25 min) Project Showcase & Demonstrations: “Robot Explorer Challenge Showcase!”
- Teams prepare to showcase their final robot solutions and present their design process.
- Each team demonstrates their robot performing its designed task for the class.
- Teams explain their robot’s design, the coding concepts used, the challenges they faced during development, the testing and iteration process, and what they learned from the project.
- Encourage clear communication and highlighting their application of the Engineering Design Process.
- Positive peer feedback and appreciation for each team’s robot solution and presentation.
- (10 min) Course Recap & Rewards: “Future Genius Robot Explorers!”
- Course recap: Summarize key skills and concepts learned in Robot Explorers 1: Robotics fundamentals, building, Scratch programming, sensors (color, distance, force), basic programming logic, Engineering Design Process (Define, Ideate, Build, Test, Evaluate, Iterate, Communicate). Congratulate students on completing Robot Explorers 1 and becoming “Future Genius Robot Explorers!”.
- Briefly preview Robot Explorers 2 (more advanced programming, Python introduction, more complex robotics challenges, advanced sensor integration, autonomous robots – build excitement for the next course).
- Award certificates of completion for Robot Explorers 1. Encourage continued robotics exploration and learning.
- Provide celebratory rewards (e.g., LEGO-themed stickers, small robotics toys, STEM resources, books about robotics for kids).
This “Robot Explorers 1” curriculum is designed to provide a solid and engaging introduction to robotics and programming with LEGO SPIKE Prime for 10+ year olds. Remember to adjust the complexity of challenges and projects based on the students’ progress and interests, and emphasize hands-on learning, collaboration, and the Engineering Design Process throughout the course!
Course Title: Future Genius Robot Explorers: Robot Explorers 2 – Advanced Robotics and Python Programming
Age Group: 10+ years (Prerequisite: Completion of Robot Explorers 1 or equivalent foundational robotics and Scratch programming knowledge)
Course Synopsis: Building upon Robot Explorers 1, this 10-week course takes students into more advanced robotics and introduces text-based Python programming for LEGO® Education SPIKE™ Prime. Students will transition from block-based Scratch to Python, learning fundamental Python syntax and applying it to control SPIKE Prime robots. The course delves deeper into sensor integration, exploring more complex sensor behaviors and data handling in Python. Students will tackle more challenging robotics tasks requiring autonomous navigation, advanced programming logic (functions, more complex conditionals and loops), and refined application of the Engineering Design Process. The course continues to foster computational thinking, problem-solving, creativity, communication, and teamwork, preparing students for advanced robotics projects and future STEM pursuits.
Tools:
- LEGO® Education SPIKE™ Prime Sets (Core Set recommended)
- Python Programming Environment (SPIKE Prime compatible – LEGO Education Python environment or compatible IDE like VS Code with SPIKE Prime extensions)
- Scratch Programming Environment (SPIKE Prime extension – for initial transition and comparison, but focus shifts to Python)
- Optional: LEGO Education SPIKE Prime Expansion Set (for more advanced building and mechanism possibilities)
Session Duration: 1 hour 30 minutes
Week 1: Transition to Python – Introduction to Python Syntax for Robotics
- Learning Objective: Introduce Python programming language as an alternative to block-based Scratch for SPIKE Prime, learn basic Python syntax (print, variables, basic operators), and run simple Python programs to control robot movement.
- (20 min) Concept Deep-Dive + Examples: Why Python for Robotics? & Python Syntax Basics
- Review block-based programming in Scratch. Discuss its advantages and limitations for more complex tasks.
- Introduce Python as a text-based programming language, highlighting its power and versatility in robotics and real-world applications. Explain that SPIKE Prime supports Python programming.
- Compare Scratch blocks to equivalent Python code (e.g., movement blocks in Scratch vs. motor control commands in Python).
- Introduce basic Python syntax: print() function, variables and assignment (=), basic arithmetic operators (+, -, *, /), comments (#).
- Setting up Python environment: Guide students to set up a Python environment compatible with SPIKE Prime (LEGO Education Python environment or VS Code with extension). Show how to create a new Python project and connect to the SPIKE Prime Hub.
- Example: Show a simple Python program to print “Hello from Python!” and control a motor to move forward (basic motor control command example).
- (35 min) Independent/Collaborative Coding Challenges: “Python Movement Basics”
- Challenge 1 (Programming – Independent): Write a Python program to print their name using print(). Create variables for name, age, and print a greeting message including these variables.
- Challenge 2 (Programming – Pair Programming): Pairs write a Python program to control a SPIKE Prime motor to move forward for 2 seconds, then backward for 1 second. Use basic motor control commands in Python (provide basic code snippet or guide). Experiment with different durations.
- Challenge 3 (Code Translation – Teamwork): Teams take a simple Scratch program from Robot Explorers 1 (e.g., square movement loop) and try to translate it into equivalent Python code using basic motion commands and loops in Python (provide basic loop structure example).
- (25 min) Real-world Problem-Solving (Mini-Project): “Python Robot Control – Straight Line Challenge”
- Mini-project: Recreate the straight-line path navigation challenge from Robot Explorers 1, but now program the driving base in Python.
- Challenge: Teams program their driving base robots in Python to navigate along a straight-line path from a start to an end point. Focus on using Python motor control commands to achieve accurate straight-line movement.
- Compare programming in Scratch vs. Python for the same task – discuss differences and initial impressions of Python.
- (10 min) Peer Feedback + Q&A: “Python Code Showcase & Syntax Discussion”
- Teams showcase their Python movement programs and straight-line navigation.
- Peer feedback: Focus on correct Python syntax, basic motor control commands, and comparing Python code to Scratch blocks. Share Python coding tips and initial impressions of text-based coding.
- Q&A: Open floor for questions about Python syntax, setting up Python environment, running Python programs on SPIKE Prime, and challenges faced during the transition.
Week 2: Python Control Flow – Loops and Conditionals in Python
- Learning Objective: Learn to use Python control flow structures: for loops, while loops, and if-elif-else conditional statements in Python to create more complex robot programs.
- (20 min) Concept Deep-Dive + Examples: Python Loops and Conditionals
- Introduce for loops in Python: Syntax for item in sequence: …. Using range() function for numerical loops.
- Introduce while loops in Python: Syntax while condition: …. Importance of loop termination condition.
- Introduce if-elif-else conditional statements in Python: Syntax if condition1: … elif condition2: … else: ….
- Compare Python loop and conditional syntax to their Scratch block equivalents.
- Examples: Show Python code examples using for loops to repeat actions, while loops for conditional repetition, and if-elif-else for decision-making in robot control.
- (35 min) Independent/Collaborative Coding Challenges: “Python Control Flow Challenges”
- Challenge 1 (Programming – Independent): Write a Python program using a for loop to make the robot move in a square path (translate Scratch loop program to Python).
- Challenge 2 (Programming – Pair Programming): Pairs write a Python program using a while loop to make the robot move forward continuously until a button (virtual or physical – if force sensor is introduced early) is pressed to stop it.
- Challenge 3 (Combined Building & Programming – Teamwork): Teams enhance their robot dance routine from Robot Explorers 1, now programming it in Python using loops and conditional statements (e.g., change dance moves based on a variable or simulated sensor input).
- (25 min) Real-world Problem-Solving (Mini-Project): “Python Maze Navigation with Loops and Conditionals”
- Mini-project: Revisit the maze navigation challenge.
- Challenge: Teams program their robots in Python to navigate a simple maze (L-shape, rectangular) using for loops for repeated movements and potentially simple if conditions for turn decisions (if introducing sensor-based turns this week – or focus on timed turns).
- Focus on using Python control flow structures to create more structured and efficient maze navigation code.
- (10 min) Peer Feedback + Q&A: “Python Control Flow Showcase & Syntax Practice”
- Teams showcase their Python programs using loops and conditionals.
- Peer feedback: Focus on correct Python syntax for control flow structures, logical flow of code, and efficient use of loops and conditionals. Share Python coding tips and syntax practice advice.
- Q&A: Address questions about Python control flow syntax, differences between for and while loops in Python, nested loops and conditionals in Python, and best practices for using control flow structures in robotics code.
Week 3: Python Functions – Creating Reusable Code Blocks in Python
- Learning Objective: Learn to define and use functions in Python to create reusable blocks of code, with parameters and return values, to structure robot programs and improve code organization and readability in Python.
- (20 min) Concept Deep-Dive + Examples: Python Functions for Robotics
- Review functions concept from Robot Explorers 1 (if introduced conceptually). Explain the importance of functions for code organization, reusability, and modularity in text-based programming.
- Introduce function definition syntax in Python: def function_name(parameter1, parameter2): … return value (optional). Explain parameters and return values in Python function context.
- Demonstrate creating functions in Python to encapsulate common robot actions (e.g., move_forward(distance), turn_degrees(angle)).
- Example: Show Python code examples defining and calling functions for robot movement and other robot tasks.
- (35 min) Independent/Collaborative Coding Challenges: “Function-al Robotics”
- Challenge 1 (Programming – Independent): Write Python functions for move_forward_seconds(seconds) and turn_right_degrees(degrees). Use these functions to make the robot move in a triangle shape.
- Challenge 2 (Programming – Pair Programming): Pairs write Python functions for more complex robot actions, like move_around_obstacle() (simulated obstacle, timed turns and movements for now, sensor-based obstacle avoidance later) or dance_step_1(), dance_step_2(). Combine these functions to create a robot routine.
- Challenge 3 (Code Refactoring – Teamwork): Teams take their Python maze navigation program from Week 2 and refactor it to use functions to encapsulate movement sequences (e.g., move_straight_section(), turn_corner()). Improve code structure and readability using functions.
- (25 min) Real-world Problem-Solving (Mini-Project): “Function-Based Robot Choreography”
- Mini-project: Students create a more elaborate robot choreography program in Python using functions.
- Challenge: Design a short robot dance routine with at least 3-4 different dance steps. Define Python functions for each dance step (e.g., step_forward_turn(), spin_around(), wiggle_motors()). Combine these functions in a sequence to create the dance routine.
- Focus on using functions to organize and structure complex robot movement sequences and improve code readability and maintainability.
- (10 min) Peer Feedback + Q&A: “Python Function Showcase & Code Modularity Discussion”
- Teams showcase their Python programs using functions and robot choreography routines.
- Peer feedback: Focus on effective use of functions, clear function definitions with parameters and return values (if used), and improved code organization using functions. Share function design tips and code modularity advice.
- Q&A: Discuss scope of variables in functions (briefly introduce), benefits of functions for breaking down complex problems into smaller, manageable units, and using functions to create reusable code libraries.
Week 4: Python Sensor Input – Reading Color Sensor Data in Python
- Learning Objective: Learn to read data from the SPIKE Prime Color Sensor in Python, using Python code to get color readings and reflected light intensity values, and display sensor data in Python programs.
- (20 min) Concept Deep-Dive + Examples: Python and Color Sensor Interaction
- Review the SPIKE Prime Color Sensor and its functionalities. Explain how to access sensor data in Python code using SPIKE Prime Python library functions.
- Introduce Python code for initializing and configuring the color sensor.
- Demonstrate Python functions to read: color_sensor.get_color(), color_sensor.get_reflected_light(), color_sensor.get_ambient_light(). Explain data types returned by these functions (strings for color names, numbers for light intensity).
- Example: Show a Python program to continuously read and print the color name detected by the color sensor to the console.
- (35 min) Independent/Collaborative Coding Challenges: “Python Color Sensor Readings”
- Challenge 1 (Sensor Reading – Independent): Write a Python program to continuously read and print the reflected light intensity value from the color sensor to the console. Experiment with different surfaces and light conditions in Python (similar to Scratch exploration in Robot Explorers 1, but now in Python).
- Challenge 2 (Sensor Data Display – Pair Programming): Pairs write a Python program to read the detected color name from the color sensor and display it on the SPIKE Prime Hub’s light matrix screen (if feasible and appropriate complexity, or use print to console if Hub display programming is too advanced).
- Challenge 3 (Function Creation – Teamwork): Teams write Python functions to encapsulate color sensor reading: get_detected_color() (returns color name), get_reflected_light_value() (returns reflected light intensity). Use these functions in a main program to read and display sensor data.
- (25 min) Real-world Problem-Solving (Mini-Project): “Python Color Detector Display with Functions”
- Mini-project: Recreate the “Color Detector Display” project from Robot Explorers 1, but now program it entirely in Python, using functions for sensor reading and data display.
- Challenge: Program VinciBot in Python to: 1) Continuously read the color detected by the color sensor using a function. 2) Display the detected color name on the screen (console or Hub display) using another function. 3) Optionally (extension): Change the Hub’s light matrix color to match the detected color using Python code.
- Focus on using Python functions to structure sensor data reading and display code and transitioning from block-based to text-based sensor programming.
- (10 min) Peer Feedback + Q&A: “Python Sensor Code Showcase & Data Handling Discussion”
- Teams showcase their Python color sensor programs and data displays.
- Peer feedback: Focus on correct Python syntax for sensor initialization and reading, proper function usage, and clear data output in Python. Share Python sensor programming tips and data handling advice.
- Q&A: Discuss data types returned by sensor functions in Python, data processing in Python, and comparing sensor programming in Scratch vs. Python.
Week 5: Python Conditional Logic with Sensors – Python Robot Reacts to Color
- Learning Objective: Use Python conditional statements (if-elif-else) in combination with the color sensor data read in Python to program robots to make decisions and react differently to colors, now entirely in Python code.
- (20 min) Concept Deep-Dive + Examples: Python Conditionals and Color Sensor Integration
- Review Python if-elif-else conditional statements. Explain how to use sensor data as conditions in Python.
- Demonstrate Python code for using if-elif-else with color sensor data. Example: “If color sensor detects ‘red’, then stop motor in Python code, else, continue moving forward.”
- Show how to compare sensor readings (strings for color names, numbers for light intensity) in Python conditional statements.
- Example: Show a Python program using if-else and color sensor data to make the robot stop when it detects red, programmed in Python.
- (35 min) Independent/Collaborative Coding Challenges: “Python Color-Reactive Robots”
- Challenge 1 (Programming – Independent): Write a Python program to make the robot move forward. If the color sensor detects ‘blue’ (in Python code), make it turn left; otherwise (else), continue moving forward. Translate Scratch ‘color-reactive robot’ to Python.
- Challenge 2 (Programming – Pair Programming): Pairs write a Python program to create a “Python color-stop-and-go” robot, now entirely in Python. If the color sensor detects ‘red’, make the robot stop for 2 seconds (in Python code); if it detects ‘green’, make it move forward for 2 seconds (in Python code); otherwise (else), continue moving forward. Use if-elif-else structure in Python.
- Challenge 3 (Combined Building & Programming – Teamwork): Teams enhance their color-sorting mechanism (from Robot Explorers 1 – if built previously, or simplify to just color reaction for this course). Program the robot in Python to identify and react to two different colors using color sensor and Python ‘if-else’ logic. (Python version of color sorting/reaction task).
- (25 min) Real-world Problem-Solving (Mini-Project): “Python Color Line Follower (Improved)”
- Mini-project: Revisit the line following challenge.
- Challenge: Teams program their robots in Python to follow a black line using the color sensor and Python ‘if-else’ logic. Improve upon the basic line follower from Robot Explorers 1 by using more precise turns or adjustments based on color sensor readings in Python. (Start moving towards more robust line following algorithms in Python).
- Focus on using Python ‘if-else’ and color sensing to create more sophisticated reactive behaviors and improve line following performance using Python code.
- (10 min) Peer Feedback + Q&A: “Python Conditional Sensor Code Showcase & Logic Refinement”
- Teams showcase their Python color-reactive robots and Python line followers.
- Peer feedback: Focus on effective use of Python ‘if-else’ and color sensor in Python, smooth robot reactions to colors programmed in Python. Share tips for conditional logic in Python and sensor-based decision making in Python.
- Q&A: Discuss more complex conditional logic in Python (nested conditionals, combined conditions in Python), debugging Python conditional sensor code, and comparing conditional logic in Scratch vs. Python.
Week 6: Python Sensor Input – Reading Distance Sensor Data in Python and Obstacle Avoidance in Python
- Learning Objective: Learn to read data from the SPIKE Prime Distance Sensor in Python, use Python code to get distance readings, and combine distance sensor data with Python conditional logic to program robots for autonomous obstacle avoidance in Python.
- (20 min) Concept Deep-Dive + Examples: Python and Distance Sensor Integration for Obstacle Avoidance
- Review the SPIKE Prime Distance Sensor and its functionalities. Explain how to access distance sensor data in Python using SPIKE Prime Python library functions.
- Introduce Python code for initializing and configuring the distance sensor.
- Demonstrate Python functions to read distance: distance_sensor.get_distance_cm(), distance_sensor.get_presence(). Focus on distance_sensor.get_distance_cm() for numerical distance values in Python.
- Example: Show a Python program to continuously read and print the distance value from the distance sensor to the console in Python.
- (35 min) Independent/Collaborative Coding Challenges: “Python Distance Sensor Readings and Obstacle Detection”
- Challenge 1 (Sensor Reading – Independent): Write a Python program to continuously read and print the distance value from the distance sensor to the console in Python (similar to Week 4, but now in Python). Experiment with moving objects and observe distance readings in Python.
- Challenge 2 (Python Conditionals & Sensing – Pair Programming): Pairs write a Python program that uses the distance sensor and Python ‘if-else’ to detect if an object is closer than 30 cm (in Python code). If closer, make the robot say “Obstacle!” (using Hub display or print in Python); otherwise (else), say “Clear path!” (in Python).
- Challenge 3 (Python Functions & Sensing – Teamwork): Teams write Python functions to encapsulate distance sensor reading and obstacle detection logic: get_obstacle_distance() (returns distance value in cm), is_obstacle_detected(distance_threshold) (returns True/False based on distance threshold). Use these functions in a main Python program to read distance and detect obstacles.
- (25 min) Real-world Problem-Solving (Mini-Project): “Python Autonomous Obstacle Avoiding Robot (Improved Python Version)”
- Mini-project: Revisit the obstacle avoidance challenge.
- Challenge: Teams program their robots in Python to move forward autonomously and avoid obstacles using the distance sensor and Python ‘if-else’ logic. Improve upon the basic obstacle avoider from Robot Explorers 1 by using more precise turns or more sophisticated obstacle avoidance strategies programmed in Python. (Start moving towards better obstacle avoidance algorithms in Python).
- Focus on using Python code for autonomous robot behavior, obstacle detection, and implementing more refined obstacle avoidance algorithms using Python.
- (10 min) Peer Feedback + Q&A: “Python Obstacle Avoider Showcase & Sensor Data Interpretation in Python”
- Teams showcase their Python obstacle avoiding robots.
- Peer feedback: Focus on robot’s ability to avoid obstacles using Python code, smooth obstacle avoidance behavior programmed in Python, and effective use of Python ‘if-else’ and distance sensor in Python. Share tips for Python sensor programming and obstacle avoidance algorithm design in Python.
- Q&A: Discuss sensor data interpretation in Python, using sensor data to make decisions in Python code, debugging Python sensor-based robot programs, and comparing obstacle avoidance programming in Scratch vs. Python.
Week 7: Python Variables and Data Handling – Using Variables for Robot Control and Data Storage in Python
- Learning Objective: Learn to use variables effectively in Python robot programs for storing sensor data, controlling robot parameters (speed, distances, thresholds), and managing program state, enhancing code flexibility and data handling capabilities in Python.
- (20 min) Concept Deep-Dive + Examples: Python Variables for Robotics Control
- Review variables in Python (from Python 1). Emphasize their importance for storing and manipulating data in Python programs.
- Explain how to use variables to store sensor readings in Python (e.g., distance = distance_sensor.get_distance_cm()).
- Demonstrate using variables to control robot parameters: speed = 50, turn_angle = 90, threshold_distance = 20. Use these variables in motor control commands and conditional statements in Python.
- Example: Show a Python program using variables to set robot speed, obstacle detection distance threshold, and turn angle, making the robot behavior easily adjustable by changing variable values in Python.
- (35 min) Independent/Collaborative Coding Challenges: “Python Variable-Driven Robots”
- Challenge 1 (Variable Control – Independent): Write a Python program that uses variables to control: 1) The distance the robot moves forward in each step. 2) The angle the robot turns in each turn. Make it easy to change these values by modifying variables at the beginning of the code.
- Challenge 2 (Sensor Data Storage – Pair Programming): Pairs write a Python program that reads distance sensor values multiple times (e.g., 5 readings) and stores these readings in a Python list. Print the list of distance readings and the average distance (calculate average in Python).
- Challenge 3 (Combined Variables & Functions – Teamwork): Teams refactor their Python obstacle avoiding robot program to use variables for: 1) Obstacle detection distance threshold. 2) Turn angle for obstacle avoidance. 3) Forward speed. Define Python functions that use these variables to control robot behavior.
- (25 min) Real-world Problem-Solving (Mini-Project): “Python Adjustable Obstacle Avoider with Variables”
- Mini-project: Enhance the obstacle avoiding robot program in Python to make it adjustable.
- Challenge: Use variables to control: 1) Obstacle detection distance threshold (e.g., obstacle_threshold). 2) Turn angle for obstacle avoidance (e.g., avoidance_turn_angle). 3) Forward speed (e.g., forward_speed). Allow users to easily change these variables at the top of the Python code to adjust the robot’s obstacle avoidance behavior (sensitivity, turning behavior, speed). Document the variables and their effects.
- Focus on using variables to create more flexible and configurable robot programs and understanding the impact of parameter tuning on robot behavior.
- (10 min) Peer Feedback + Q&A: “Python Variable Showcase & Parameter Tuning Discussion”
- Teams showcase their Python programs using variables for robot control and adjustable obstacle avoiders.
- Peer feedback: Focus on effective use of variables for parameter control, code readability improved by variables, and clear variable naming conventions in Python. Share tips for variable usage and parameter tuning in robotics code.
- Q&A: Discuss variable scope in Python functions (revisit and expand slightly), global vs. local variables (briefly introduce if appropriate), benefits of using variables for parameterization and code maintainability, and real-world applications of variables in controlling robot behavior and adapting to different environments.
Week 8: Engineering Design Process – Iteration and Refinement: Improving Robot Performance
- Learning Objective: Deepen understanding of the Engineering Design Process by focusing on the “Test,” “Evaluate,” and “Iterate” stages in detail. Students will learn to systematically test their robot programs, evaluate performance based on data, and iteratively refine their designs and code to improve robot capabilities.
- (20 min) Concept Deep-Dive + Examples: EDP – Test, Evaluate, Iterate in Detail
- Review the Engineering Design Process (EDP). Focus specifically on “Test,” “Evaluate,” and “Iterate” stages as a cycle of continuous improvement.
- “Test” stage: Emphasize systematic testing, defining test procedures, collecting data (quantitative and qualitative), and documenting test results.
- “Evaluate” stage: Analyzing test data, identifying what works well and what needs improvement, pinpointing specific areas for refinement (hardware or software).
- “Iterate” stage: Making targeted changes based on evaluation, going back to “Build” (modify robot design) or “Program” (refine code), and repeating the Test->Evaluate->Iterate cycle. Emphasize iteration as key to successful engineering and robotics design.
- Examples: Show examples of iterative design in engineering (e.g., bridge design, airplane design). Example: Robot obstacle avoider – Initial test: robot bumps into obstacles. Evaluation: Turning angle too small, distance sensor threshold too large. Iterate: Increase turn angle, decrease threshold, re-test.
- Relate iterative design to improving robot performance and achieving design goals.
- (35 min) Independent/Collaborative Coding Challenges: “EDP Iteration Practice”
- Challenge 1 (Testing & Evaluation – Independent): Students take their Python obstacle avoiding robot program from Week 7. Design a systematic test procedure to evaluate its obstacle avoidance performance (e.g., test with different obstacle types, distances, speeds). Conduct the tests, collect data (e.g., number of successful avoidances, number of collisions), and document test results and observations.
- Challenge 2 (Iteration – Pair Programming): Pairs analyze the test data from Challenge 1. Evaluate their robot’s performance – what worked well, what didn’t? Identify specific areas for improvement in code or robot design. Brainstorm possible iterations (code changes, sensor adjustments, robot build modifications).
- Challenge 3 (Test & Iterate Cycle – Teamwork): Teams implement one iteration based on their evaluation and brainstorming. Refine their Python obstacle avoidance code (e.g., adjust turn angle, threshold) or make a small modification to the robot build (e.g., sensor placement). Re-test their robot using the same test procedure from Challenge 1 and compare the new test results to the previous results. Document the changes and the impact on performance.
- (25 min) Real-world Problem-Solving (Mini-Project): “Iterative Robot Performance Tuning Challenge”
- Mini-project: “Robot Performance Tuning Challenge”. Present a specific performance goal for the obstacle avoiding robot (e.g., “Navigate a complex obstacle course in the shortest time possible while avoiding all collisions”).
- Challenge: Teams work iteratively (Test -> Evaluate -> Iterate cycle) to tune their robot’s obstacle avoidance program (primarily by adjusting variables like speed, turn angles, distance thresholds in their Python code) to optimize its performance in the given obstacle course challenge. Encourage systematic testing, data collection, and data-driven decision making for code refinement. Track performance metrics (time, collisions) and document iterations.
- Emphasize the iterative nature of engineering and the importance of testing and refinement to achieve desired performance.
- (10 min) Peer Feedback + Q&A: “Iteration Showcase & Performance Improvement Discussion”
- Teams briefly share their iteration process and performance improvements.
- Peer feedback: Focus on the systematic testing approach, data-driven evaluation, and the effectiveness of their iterations in improving robot performance. Share tips for iterative design and code refinement.
- Q&A: Discuss different testing methodologies, quantitative vs. qualitative data, benefits of iterative design for complex engineering problems, and real-world examples of iterative design and optimization in robotics and engineering.
Week 9: Advanced Robotics Challenge – Combining Sensors and Python Programming (Capstone Project – Part 1)
- Learning Objective: Begin a larger capstone robotics challenge that integrates multiple sensors (color and distance sensors), Python programming, and the Engineering Design Process. Students will apply all learned skills to design, build, and program a robot to solve a more complex, multi-faceted robotics problem.
- (20 min) Project Introduction & Challenge Brief: Advanced Robotics Capstone Challenge
- Introduce the “Advanced Robotics Challenge” capstone project. Present a more complex robotics problem that requires integrating multiple sensors and sophisticated Python programming. Examples:
- Autonomous Navigation and Object Delivery: Robot needs to navigate a course, detect and pick up a specific colored object (using color sensor), and deliver it to a target zone (using distance sensor for navigation and zone detection).
- Robot Maze Solver with Color Recognition: Robot needs to navigate a maze autonomously, follow a line (using color sensor), avoid obstacles (using distance sensor), and potentially identify and react to colored markers within the maze.
- Robot “Smart Warehouse” Task: Robot needs to navigate a simulated warehouse environment, identify and retrieve specific items (based on color or distance), and deliver them to designated locations.
- Provide a detailed project brief outlining the challenge, goals, constraints, scoring criteria (if competitive element), and available resources (LEGO SPIKE Prime sets, Python environment, session time).
- Introduce the “Advanced Robotics Challenge” capstone project. Present a more complex robotics problem that requires integrating multiple sensors and sophisticated Python programming. Examples:
- (35 min) Project Work Time – Design & Build Phase: Capstone Project Design and Initial Robot Building
- Teams start working on their capstone projects. Focus on the “Define” and “Ideate” stages of the EDP for this specific challenge.
- Define: Clarify the project goals, requirements, and constraints for the capstone challenge.
- Ideate: Brainstorm robot design concepts, sensor integration strategies, and programming approaches to address the challenge. Sketch out robot designs and program flow ideas.
- Teams begin building their advanced robot prototypes based on their chosen designs, incorporating both color and distance sensors and any necessary mechanisms for object manipulation (if required by the challenge).
- Teacher circulates, provides guidance, and ensures teams are on track with their design and build phase.
- (25 min) Project Work Time – Initial Python Programming: Sensor Integration and Basic Control
- Once basic robot structures are built, teams start programming initial Python code for their capstone projects.
- Focus on integrating both color and distance sensors in their Python code. Start programming basic sensor readings, motor control, and initial movement functionalities relevant to their chosen challenge.
- Encourage teams to start with simple code modules and incrementally build complexity.
- (10 min) Peer Feedback + Q&A: “Capstone Project Progress – Design & Build Check-in”
- Teams briefly share their capstone project progress – robot designs, initial build progress, and planned programming approach.
- Peer feedback: Focus on design feasibility, sensor integration plans, and initial programming strategies for the capstone challenge. Share design and build tips for the advanced project.
- Q&A: Address any questions about project scope, design challenges, sensor integration in Python, and next steps for project development in the final week.
Week 10: Capstone Project Completion, Showcase, and Python 2 Graduation – Robot Explorer Grand Finale!
- Learning Objective: Complete the capstone robotics challenge projects, showcase projects to the class, celebrate learning in Python 2 and robotics, and encourage continued advanced robotics and Python exploration.
- (15 min) Project Work Time – Final Refinement: Completing and Polishing Capstone Projects
- Teams spend the beginning of the session adding final touches to their capstone projects, completing robot builds, refining Python code, debugging, and preparing for final demonstrations.
- (35 min) Project Showcase & Demonstrations: “Robot Explorer 2 – Grand Finale Showcase!”
- Each team presents their completed capstone robotics project to the class.
- Teams demonstrate their robot performing the capstone challenge task.
- Teams explain their robot’s design, Python code, sensor integration strategies, the Engineering Design Process they followed, the challenges they overcame during the capstone project, and what they learned throughout Robot Explorers 2.
- Encourage clear communication, highlighting their advanced Python programming skills and robotics engineering achievements.
- Positive peer feedback and enthusiastic applause for each team’s impressive robot solution and presentation.
- (25 min) Python 2 and Robotics Course Review & Advanced STEM Preview: “Python 2 & Robotics Masters!”
- Course review: Summarize key skills and advanced concepts learned in Robot Explorers 2: Transition to Python, Python syntax, Python control flow, Python functions, Python sensor programming (color, distance), Engineering Design Process (full cycle), advanced robotics problem-solving. Congratulate students on completing Robot Explorers 2 and becoming “Python 2 & Robotics Masters!”.
- Advanced STEM preview: Briefly introduce potential next steps in robotics and STEM learning (more advanced Python libraries for robotics and data science, more complex robotics platforms like Raspberry Pi robots, competitive robotics opportunities, advanced engineering concepts, AI and Machine Learning in robotics – tailor preview to student interests and future learning pathways). Build excitement for continued STEM exploration and potential career paths in robotics and related fields.
- Award certificates of completion for Robot Explorers 2 (or combined Robot Explorers 1 & 2 certificates if applicable). Recognize outstanding projects and achievements (optional awards, e.g., “Most Innovative Design,” “Best Code,” “Most Improved Performance”). Encourage continued practice, advanced robotics and Python learning, and participation in robotics clubs or competitions.
- (10 min) Recap + Rewards: “Future Genius Robot Explorers – Python 2 Graduates!”
- Final words of encouragement and immense appreciation for their hard work, creativity, and progress in Python programming and robotics engineering throughout Robot Explorers 1 and 2.
- Provide celebratory rewards (e.g., LEGO-themed goodies, advanced robotics toys, STEM resources, books about advanced robotics, Python programming, or AI for teens, robot-themed treats).
This “Robot Explorers 2” curriculum is designed to be a challenging and rewarding culmination of the Robot Explorers series, solidifying Python programming skills in a robotics context and fostering advanced engineering design thinking. Remember to adjust the complexity of the capstone project and challenges based on the students’ progress and interests, and continue to emphasize hands-on learning, collaboration, and the iterative Engineering Design Process throughout the course!
Course Title: Future Genius AI/ML Explorers 2: Unlocking the Power of Intelligent Machines
Age Group: 10+ years
Course Synopsis: This 10-week course provides a practical and engaging exploration of Artificial Intelligence (AI), Machine Learning (ML), and Data Science. Students will learn fundamental concepts through hands-on projects using no-code and low-code tools like Google Teachable Machine, Jupyter Notebooks (Python basics), and AI Chat tools. The course progresses from understanding what AI is and how it learns to training their own AI models, analyzing real-world datasets, creating interactive AI tools, and critically examining the ethical implications of AI. Students will develop computational thinking, data literacy, problem-solving, communication, and teamwork skills, preparing them to be informed and responsible citizens in an AI-driven world.
Tools:
- Google Teachable Machine (web-based visual ML training platform)
- Jupyter Notebooks (web-based Python environment for data analysis and coding – e.g., Google Colab, or local Jupyter installation)
- AI Chat Tools (e.g., ChatGPT, Gemini, or similar accessible LLMs for interaction and project integration)
- Simple Datasets (provided datasets on weather, sports, classroom data examples, etc.)
Session Duration: 1 hour 30 minutes
Week 1: What IS Artificial Intelligence? – Demystifying AI and its Capabilities
- Learning Objective: Define Artificial Intelligence (AI) in simple terms, understand different types of AI (narrow vs. general AI), explore examples of AI in everyday life, and discuss the core concepts of AI and Machine Learning.
- (20 min) Concept Deep-Dive + Examples: What is AI? – Interactive Discussion & Examples
- Interactive Discussion: Start with the question: “What comes to mind when you hear ‘Artificial Intelligence’?” Brainstorm student ideas and preconceptions about AI.
- Define AI: Explain AI in age-appropriate language: “Making computers think and learn like humans (in some ways).” Focus on the idea of intelligence demonstrated by machines.
- Narrow vs. General AI: Differentiate between narrow or “weak” AI (AI for specific tasks, like image recognition, chatbots) and general or “strong” AI (hypothetical AI with human-level intelligence across all domains). Emphasize that current AI is mostly narrow AI.
- AI Examples in Everyday Life: Explore real-world examples of AI they already use or encounter:
- Voice assistants (Siri, Alexa, Google Assistant)
- Recommendation systems (Netflix, YouTube, Amazon)
- Spam filters
- Search engines
- Self-driving car technology (briefly)
- Image recognition in phones and apps
- Introduce Machine Learning (ML) as a key approach to AI: “Teaching computers to learn from data without being explicitly programmed.” “AI often uses ML to become ‘smart’.”
- Example: Show short videos or interactive demos showcasing AI applications and explaining basic AI concepts in a visual and engaging way.
- (35 min) Independent/Collaborative Coding Challenges: “AI Brainstorm & Concept Mapping”
- Challenge 1 (Brainstorming – Individual): “AI Idea Jar”. Each student individually brainstorms and writes down at least 3 ideas for how AI could be used to solve a problem or make something better in their daily life, school, or community. Put ideas in a virtual or physical “idea jar.”
- Challenge 2 (Concept Mapping – Pair Programming): Pairs take 2-3 AI examples discussed earlier (or from their brainstormed ideas). Create a simple concept map or diagram for each example, identifying:
- What is the AI doing? (Task)
- What kind of data might it use? (Data Input)
- What is the output or result? (Output/Prediction)
- Is it narrow or general AI? (Type)
- Challenge 3 (Team Discussion): Teams share their concept maps and discuss: What common elements do they see across different AI examples? What are the key characteristics of AI?
- (25 min) Real-world Problem-Solving (Mini-Project): “AI in My School/Community – Problem Identification”
- Mini-project: “AI in My School/Community – Problem Identification”.
- Challenge: Students work in teams to identify a real-world problem or opportunity in their school or local community that could potentially be addressed or improved using AI.
- Examples: Improving school lunch ordering process, optimizing bus routes, helping students find resources, making learning more personalized (brainstorm broadly, feasibility is not the primary focus yet).
- Teams define the problem clearly, identify the needs it addresses, and brainstorm potential AI-based solutions (at a high level, no coding yet).
- Teams should document their problem definition and initial AI solution ideas.
- (10 min) Peer Feedback + Q&A: “AI Idea Sharing & Defining AI”
- Teams briefly share their identified problems and initial AI solution ideas.
- Peer feedback: Positive comments and suggestions on problem relevance and potential AI application.
- Q&A: Open floor for questions about the definition of AI, types of AI, real-world AI examples, and the feasibility of using AI for different problems.
Week 2: Data Detective – Collecting and Analyzing Classroom Data with Spreadsheets and Simple Visualizations
- Learning Objective: Understand the importance of data for AI/ML, learn to collect simple data, organize data in spreadsheets (or similar tools), and perform basic data analysis and visualization to find patterns in data.
- (20 min) Concept Deep-Dive + Examples: Data is the Fuel for AI – Data Collection & Importance
- Review from Week 1: AI learns from data. Emphasize that data is the “fuel” for AI and ML. “No data, no AI learning.”
- Discuss different types of data: Numbers, text, images, sounds, sensor readings – all can be data for AI.
- Focus on simple, structured data for this week (tabular data that can be in a spreadsheet).
- Data Collection Methods: Brainstorm simple ways to collect data in the classroom or school environment: Surveys, observations, counting, recording measurements.
- Data Organization: Introduce spreadsheets (e.g., Google Sheets, Excel) as a tool for organizing data in rows and columns. Explain basic spreadsheet concepts: cells, rows, columns, headers.
- Basic Data Analysis: Explain simple data analysis tasks: finding averages, sums, maximum/minimum values, identifying trends, and patterns.
- Data Visualization: Introduce basic charts and graphs (bar charts, pie charts, line graphs) for visually representing data and making patterns easier to see.
- Example: Show a sample spreadsheet with simple data (e.g., favorite colors of students in the class). Demonstrate basic spreadsheet functions (SUM, AVERAGE, MAX, MIN) and creating a bar chart to visualize the data.
- (35 min) Hands-on Activity: “Classroom Data Collection & Spreadsheet Exploration”
- Data Collection Activity: As a class, decide on a simple question to collect data about from classmates (e.g., “Favorite type of pet?”, “Number of siblings?”, “Distance from home to school?”).
- Data Collection: Students collect data from each other (or use pre-provided sample classroom data, if time is limited) and record it in a shared spreadsheet (e.g., Google Sheet).
- Spreadsheet Exploration: Students explore the spreadsheet interface, learn to enter data, format cells, use basic spreadsheet functions (SUM, AVERAGE, COUNT), and create simple charts (bar chart, pie chart) to visualize their collected data.
- Guided practice: Teacher guides students through basic spreadsheet operations and chart creation.
- (25 min) Real-world Problem-Solving (Mini-Project): “Data Detective Challenge – Find Patterns in Classroom Data”
- Mini-project: “Data Detective Challenge”. Using the classroom data they collected and entered into the spreadsheet, students work in teams to:
- Analyze the data using spreadsheet functions.
- Create at least 2 different charts or graphs to visualize the data.
- Identify at least 2 interesting patterns or insights they can find in the data based on their analysis and visualizations. (e.g., “Most popular pet is dogs,” “Average number of siblings is 1.5,” “Distribution of distances from home to school”).
- Document their findings and visualizations.
- Teams present their data analysis findings to the class.
- Mini-project: “Data Detective Challenge”. Using the classroom data they collected and entered into the spreadsheet, students work in teams to:
- (10 min) Peer Feedback + Q&A: “Data Insights Showcase & Data Importance Discussion”
- Teams share their data visualizations and insights from the classroom data.
- Peer feedback: Focus on clarity of visualizations, insightful patterns identified, and effective use of spreadsheets for data analysis.
- Q&A: Discuss the importance of data quality, limitations of small datasets, how data analysis helps us understand information and make decisions, and the connection between data analysis and Machine Learning (ML needs data to learn patterns).
Week 3: Train Your First AI – Creating an Image Classifier with Google Teachable Machine (No-Code ML)
- Learning Objective: Introduce Machine Learning (ML) through a hands-on, no-code experience using Google Teachable Machine. Students will train their first image classification AI model to distinguish between “cats” and “dogs.”
- (20 min) Concept Deep-Dive + Examples: Introduction to Machine Learning & Image Classification
- Review from Week 2: AI learns from data. Focus on Machine Learning (ML) as a type of AI that learns from data to make predictions or classifications.
- Explain Image Classification: What is image classification? (Teaching a computer to recognize and categorize images). Examples: Recognizing cats vs. dogs, identifying objects in photos, medical image analysis.
- Introduce Google Teachable Machine: Explain it as a no-code tool that makes it easy to train your own ML models, especially for image, sound, and pose classification, without writing any code. Emphasize its user-friendliness and accessibility for beginners.
- Walkthrough Teachable Machine Interface: Briefly demonstrate the Teachable Machine website interface: Image project type, Class setup (Cat, Dog), Training, Preview, Export.
- Data Collection for Image Classification: Explain the need for training data (images of cats and dogs) to teach the AI model. Discuss the importance of diverse and representative training data for good model performance.
- Example: Show a short video tutorial or live demo of training a simple image classifier in Teachable Machine to classify cats vs. dogs. Highlight the steps: Data collection (uploading images), Training, Testing, Exporting (briefly mention exporting, focus on online preview for now).
- (35 min) Hands-on Activity: “Train Your Cat vs. Dog Classifier with Teachable Machine”
- Teachable Machine Project Setup: Students access Google Teachable Machine website and create a new “Image Project”.
- Class Setup: Create two classes: “Cat” and “Dog”.
- Data Collection: Students collect images of cats and dogs. Suggest using online image search (with appropriate filters for safe search and usage rights) or pre-provided image datasets. Emphasize collecting a reasonable number of diverse images for each class (at least 20-30 per class for a basic model). Upload images to Teachable Machine, assigning them to the correct classes (“Cat” or “Dog”).
- Training: Students train their image classification model in Teachable Machine by clicking the “Train your model” button. Observe the training process.
- Testing and Preview: Test their trained model using the “Preview” section in Teachable Machine. Use webcam to show new images of cats and dogs (or upload test images) and see how well the model classifies them. Observe the confidence scores.
- (25 min) Real-world Problem-Solving (Mini-Project): “Improve Your Cat vs. Dog Classifier – Data & Iteration”
- Mini-project: “Improve Your Cat vs. Dog Classifier”.
- Challenge: Test their initial cat vs. dog classifier more thoroughly. Try to “trick” the model with challenging images (images that are blurry, partially obscured, unusual breeds, images with both cats and dogs, etc.). Observe where the model makes mistakes.
- Iteration: Based on testing results, identify areas for improvement. Iterate on their model by:
- Collecting more training data, especially for classes where the model is struggling or for challenging image types.
- Reviewing their training data – are there any biases or issues in the dataset?
- Retrain the model with the new data.
- Re-test and observe if performance has improved.
- Document their testing process, model weaknesses, and iteration steps.
- (10 min) Peer Feedback + Q&A: “AI Model Showcase & Model Performance Discussion”
- Students showcase their trained cat vs. dog classifiers in Teachable Machine. Demonstrate its performance using webcam or test images.
- Peer feedback: Focus on model accuracy, ability to classify different images, and improvements made through iteration.
- Q&A: Discuss factors affecting model performance (data quality, dataset size, model complexity – briefly), limitations of their simple model, and real-world applications of image classification AI (image search, object recognition in self-driving cars, medical image analysis, etc.).
Week 4: Patterns and Predictions – Predicting Weather Trends Using Simple Linear Regression in Jupyter Notebooks (Intro to Data Science)
- Learning Objective: Introduce basic Data Science concepts, learn to use Jupyter Notebooks (Python environment) for simple data analysis, and perform a basic linear regression analysis to predict weather trends using a provided weather dataset.
- (20 min) Concept Deep-Dive + Examples: Introduction to Data Science & Prediction with Linear Regression
- Introduce Data Science: What is Data Science? (Using data to answer questions, solve problems, make predictions). How is it related to AI/ML? (Data Science often uses ML techniques for analysis and prediction).
- Data Science Process (Simplified): Data Collection -> Data Cleaning -> Data Analysis -> Data Visualization -> Insights/Conclusions -> Predictions. Focus on Data Analysis and Prediction for this week.
- Introduce Jupyter Notebooks: Explain Jupyter Notebooks as an interactive coding environment (combining code, text, visualizations). Explain it’s a tool used by Data Scientists. Introduce Google Colab as a free, web-based Jupyter Notebook environment.
- Basic Python in Jupyter Notebooks: Briefly review basic Python syntax (variables, print statements – from Python 1 course, or provide quick intro if students are new to Python). Emphasize that they will use Python for data analysis in Jupyter.
- Introduce Linear Regression: Explain linear regression as a simple ML technique for finding relationships between variables and making predictions. Simplified explanation: “Drawing a line of best fit through data points to see trends and predict future points.” Example: Predicting ice cream sales based on temperature.
- Example: Show a simple example of linear regression concept visually (graph with data points and line of best fit). Briefly demonstrate a pre-written Jupyter Notebook performing linear regression on a simple dataset (e.g., ice cream sales vs. temperature dataset) to predict sales for a given temperature. Highlight the Python code used (very basic, focus on understanding the concept of linear regression and data analysis in Jupyter).
- (35 min) Hands-on Activity: “Weather Data Analysis and Prediction with Jupyter Notebooks”
- Jupyter Notebook Setup: Students access Google Colab (or local Jupyter Notebook environment) and open a pre-provided Jupyter Notebook template that contains:
- Loading a simple weather dataset (e.g., sample dataset with columns: Day, Temperature, Rainfall, Sunshine Hours). Provide a simplified, cleaned dataset for this initial activity.
- Basic Python code to load data, perform linear regression analysis (using a simple library like numpy for linear regression – provide pre-written code, students use it, not write it from scratch this week), and visualize the results.
- Data Exploration: Students run the pre-written Jupyter Notebook code cells to:
- Load and examine the weather dataset (using Python code in Jupyter).
- Perform linear regression to find the relationship between “Day” and “Temperature” (or another relevant pair of variables in the dataset).
- Visualize the data and the regression line using charts (generated by Python code in Jupyter).
- Guided Practice: Teacher guides students through running the Jupyter Notebook cells, understanding the Python code (at a high level, focus on understanding the data analysis process and the output, not writing complex Python code this week), and interpreting the visualizations.
- Jupyter Notebook Setup: Students access Google Colab (or local Jupyter Notebook environment) and open a pre-provided Jupyter Notebook template that contains:
- (25 min) Real-world Problem-Solving (Mini-Project): “Weather Trend Prediction Challenge”
- Mini-project: “Weather Trend Prediction Challenge”. Using the weather dataset and the Jupyter Notebook template, students work in teams to:
- Perform linear regression to predict weather trends for a different pair of variables in the dataset (e.g., “Day” vs. “Rainfall,” “Day” vs. “Sunshine Hours,” or “Temperature” vs. “Sunshine Hours” – choose pairs that might show some linear relationship).
- Modify the Jupyter Notebook code (by changing variable names in pre-written code – guided modifications) to perform the new linear regression analysis and generate visualizations for their chosen variables.
- Analyze their visualizations and linear regression results. What trends do they observe? Can they make any predictions about future weather based on these trends? (e.g., “Is temperature generally increasing over time?”, “Is rainfall decreasing over time?”, “Is there a relationship between temperature and sunshine hours?”).
- Document their analysis, visualizations, and weather trend predictions.
- Teams present their weather trend predictions and data analysis findings to the class.
- Mini-project: “Weather Trend Prediction Challenge”. Using the weather dataset and the Jupyter Notebook template, students work in teams to:
- (10 min) Peer Feedback + Q&A: “Data Prediction Showcase & Data Science Discussion”
- Teams share their weather trend predictions and data visualizations from Jupyter Notebooks.
- Peer feedback: Focus on clarity of visualizations, reasonable trend interpretations, and effective use of Jupyter Notebooks for data analysis.
- Q&A: Discuss limitations of simple linear regression (not always perfect for complex data), other types of ML for prediction (briefly mention more advanced ML techniques), the role of Data Science in real-world prediction and decision-making, and ethical considerations in using data for predictions (potential biases in data, responsible use of predictions).
Week 5: Ethics of AI – Role-Play and Discussion: Bias, Fairness, and Responsible AI
- Learning Objective: Introduce the ethical implications of AI, discuss concepts like bias, fairness, and transparency in AI systems, and explore the responsible development and use of AI through role-playing and ethical dilemma discussions.
- (20 min) Concept Deep-Dive + Examples: Ethics of AI – Bias, Fairness, Transparency
- Introduce AI Ethics: Why is ethics important in AI? (AI systems can have a big impact on people’s lives, so they need to be fair, responsible, and benefit society).
- Bias in AI: Explain AI bias: “AI models can learn biases from the data they are trained on.” Give concrete examples of AI bias:
- Facial recognition bias: AI systems being less accurate at recognizing faces of people of color or women if trained on datasets that are not diverse enough.
- Recruitment AI bias: AI systems for resume screening favoring certain demographics if trained on historical hiring data that reflects existing biases.
- Language model bias: Chatbots sometimes generating biased or offensive language if trained on biased text data from the internet.
- Discuss the sources of bias: Biased training data, biased algorithms, biased design choices, societal biases reflected in data.
- Fairness in AI: What does “fair AI” mean? (Treating everyone equally, not discriminating against certain groups). Discuss different types of fairness (equality of opportunity, equal outcomes – simplified).
- Transparency and Explainability: Why is it important for AI to be transparent and explainable? (To understand how AI makes decisions, identify and fix biases, build trust). “Black box” AI vs. “Explainable AI” (XAI) – simplified explanation.
- Responsible AI Development and Use: Discuss principles of responsible AI: Fairness, accountability, transparency, safety, privacy, beneficence.
- Example: Show short videos or articles discussing real-world examples of AI bias and ethical concerns in AI. Present ethical dilemmas related to AI.
- (35 min) Hands-on Activity: “Role-Play – Ethical Dilemmas in AI Decision Making”
- Role-Playing Scenarios: Present students with 2-3 ethical dilemma scenarios involving AI decision-making (prepare scenarios beforehand, age-appropriate and relatable):
- Scenario 1: AI Grading System: Should AI be used to automatically grade student essays or assignments? What are the potential benefits and risks? What are the fairness considerations? (Scenario from course outline).
- Scenario 2: AI in Hiring: Should companies use AI to screen job applications and select candidates for interviews? What are the potential biases that could arise? How can fairness be ensured?
- Scenario 3: AI in Healthcare: Should AI be used to diagnose diseases or recommend treatments? What are the risks of errors or biases in AI medical systems? How can patient safety and trust be maintained?
- Role Assignment: Divide students into small groups. Assign roles within each group (e.g., “AI Developer,” “Student/Job Applicant/Patient,” “Ethics Advisor,” “Policy Maker”).
- Role-Play & Debate: Each group role-plays their assigned scenario. Debate the ethical dilemmas, consider different perspectives, and try to come to a group consensus on the responsible use of AI in that scenario.
- Role-Playing Scenarios: Present students with 2-3 ethical dilemma scenarios involving AI decision-making (prepare scenarios beforehand, age-appropriate and relatable):
- (25 min) Real-world Problem-Solving (Mini-Project): “AI Ethics Checklist and Recommendations”
- Mini-project: “AI Ethics Checklist and Recommendations”. For one of the ethical dilemma scenarios they role-played, teams work together to create:
- An “AI Ethics Checklist”: A list of 3-5 key ethical considerations that should be taken into account when developing or using AI in that scenario (e.g., for AI Grading System: “Check for bias in training data,” “Ensure transparency in grading criteria,” “Allow for human review of AI grades,” “Consider impact on student motivation and learning”).
- “Recommendations for Responsible AI”: 3-5 concrete recommendations for how to develop or use AI in that scenario in a more ethical and responsible way (e.g., for AI in Hiring: “Use diverse training data,” “Audit AI system for bias regularly,” “Provide human oversight in hiring decisions,” “Ensure transparency about AI use to job applicants”).
- Teams present their AI Ethics Checklists and Recommendations to the class.
- Mini-project: “AI Ethics Checklist and Recommendations”. For one of the ethical dilemma scenarios they role-played, teams work together to create:
- (10 min) Peer Feedback + Q&A: “Ethics Checklist Showcase & Responsible AI Discussion”
- Teams share their AI Ethics Checklists and Recommendations.
- Peer feedback: Focus on the relevance and completeness of the ethical considerations identified, and the practicality and effectiveness of their recommendations for responsible AI.
- Q&A: Discuss the complexity of AI ethics, the lack of easy answers, the ongoing debate about AI ethics in society, and the importance of considering ethical implications in all AI projects they might create in the future.
Week 6: Chatbots (LLMs) – Designing a Homework Help Chatbot Using ChatGPT Prompts (Introduction to Large Language Models)
- Learning Objective: Introduce Chatbots and Large Language Models (LLMs) as a type of AI, explore the capabilities and limitations of LLMs using AI Chat tools (e.g., ChatGPT, Gemini), and design a simple homework help chatbot by crafting effective prompts for an LLM.
- (20 min) Concept Deep-Dive + Examples: Chatbots and Large Language Models (LLMs)
- Introduce Chatbots: What are chatbots? (AI programs that can have conversations with humans). Examples: Customer service chatbots, virtual assistants, educational chatbots.
- Introduce Large Language Models (LLMs): Explain LLMs as a powerful type of AI that powers many modern chatbots (like ChatGPT, Gemini). Simplified explanation: “LLMs are trained on HUGE amounts of text data from the internet and learn to understand and generate human-like text.” “They can answer questions, write stories, translate languages, and more.”
- Capabilities of LLMs: Discuss what LLMs can do: Answer questions, generate text, summarize information, translate languages, write different kinds of creative content.
- Limitations of LLMs: Discuss limitations of LLMs: Can sometimes be inaccurate or make up information (hallucinations), can be biased (reflecting biases in training data), lack true understanding or consciousness. Emphasize the importance of critical evaluation of LLM outputs.
- Introduce AI Chat Tools (ChatGPT, Gemini, etc.): Explain that they will be using AI chat tools to interact with LLMs and design their own chatbot. Emphasize responsible use of these tools and ethical considerations (not for cheating, but for learning and exploration).
- Example: Show a live demo of interacting with ChatGPT or Gemini, showcasing its capabilities (asking questions, requesting text generation). Discuss examples of educational chatbots and their potential uses.
- (35 min) Hands-on Activity: “Chatbot Interaction and Prompt Engineering with AI Chat Tools”
- AI Chat Tool Exploration: Students access an AI chat tool (e.g., ChatGPT, Gemini – free version). Explore its interface and basic functionalities.
- Chatbot Interaction: Students interact with the AI chatbot by asking it different types of questions and giving it different prompts:
- General knowledge questions (“What is the capital of France?”)
- Homework questions (simple math problems, science questions, history questions – age-appropriate). Emphasize ethical use – not to get answers to cheat, but to understand how chatbots work and their capabilities/limitations.
- Creative writing prompts (“Write a short story about a robot,” “Write a poem about the stars”).
- Summarization tasks (“Summarize this short article” – provide a short text).
- Translation tasks (“Translate ‘Hello, world!’ to Spanish”).
- Prompt Engineering: Experiment with different ways of phrasing questions or prompts to get better or more specific answers from the chatbot. “Prompt Engineering” – learning to craft effective prompts to guide LLM behavior.
- Document their chatbot interactions and observations: What types of questions does it answer well? Where does it struggle? How does prompt phrasing affect the responses?
- (25 min) Real-world Problem-Solving (Mini-Project): “Design a Homework Help Chatbot with ChatGPT Prompts”
- Mini-project: “Design a Homework Help Chatbot”. Teams design a chatbot that can help students with homework questions in a specific subject area (e.g., Math, Science, History, English – choose a subject relevant to the curriculum).
- Challenge: Teams work together to:
- Define the subject area for their homework help chatbot.
- Brainstorm types of homework questions students might ask in that subject.
- Craft a set of effective prompts for ChatGPT (or their chosen AI chat tool) that, when given to the chatbot, would generate helpful and accurate answers to those homework questions. Focus on prompt clarity, specificity, and guidance.
- Test their prompts by entering them into the AI chat tool and evaluating the chatbot’s responses. Refine prompts as needed to improve response quality.
- Document their best prompts and example chatbot interactions.
- Teams present their “Homework Help Chatbot” prompt designs and demonstrate example chatbot interactions.
- (10 min) Peer Feedback + Q&A: “Chatbot Prompt Showcase & LLM Capabilities Discussion”
- Teams share their homework help chatbot prompt designs and demonstrate example chatbot interactions.
- Peer feedback: Focus on the effectiveness of their prompts in generating helpful and accurate chatbot responses, clarity of prompts, and creativity in chatbot design.
- Q&A: Discuss the capabilities and limitations of LLMs, prompt engineering techniques, ethical considerations in using chatbots for education (potential for misuse, accuracy concerns, etc.), and potential future applications of chatbots in learning and other domains.
Week 7: AI in the Real World – Exploring Diverse Applications and Future Trends of AI
- Learning Objective: Broaden understanding of AI by exploring a wider range of real-world AI applications beyond those already discussed, investigate emerging trends in AI, and discuss the potential future impact of AI on society and different industries.
- (20 min) Concept Deep-Dive + Examples: AI in Diverse Fields – Beyond the Basics
- Expand beyond familiar AI examples to explore AI applications in diverse fields:
- Healthcare: AI in medical diagnosis, drug discovery, personalized medicine, robotic surgery.
- Transportation: Self-driving cars, traffic optimization, logistics and delivery drones.
- Agriculture: Precision agriculture, crop monitoring, automated farming.
- Manufacturing: Industrial robots, quality control, predictive maintenance.
- Environment: Climate change modeling, wildlife conservation, pollution monitoring.
- Arts and Creativity: AI art generation, AI music composition, AI-assisted design.
- Accessibility: AI for assistive technologies, speech recognition for accessibility, image recognition for visually impaired.
- Emerging Trends in AI: Discuss current and future trends in AI:
- Advancements in Large Language Models (LLMs) and Generative AI (text, images, code).
- AI in robotics and autonomous systems.
- AI in personalized learning and education.
- AI in scientific discovery and research.
- Ethical AI and Responsible AI practices becoming increasingly important.
- Example: Show short videos, articles, or case studies showcasing AI applications in different fields and highlighting emerging trends.
- Expand beyond familiar AI examples to explore AI applications in diverse fields:
- (35 min) Independent/Collaborative Coding Challenges: “AI Application Deep Dive – Research & Presentation Planning”
- AI Application Research: Students choose one real-world AI application from the diverse fields discussed (or find another AI application that interests them with teacher approval).
- In-Depth Research (Independent or Pairs): Students research their chosen AI application in more detail. Focus on understanding:
- What problem does this AI application solve?
- How does AI/ML contribute to this application? (What type of AI/ML techniques are used – if information is accessible and age-appropriate, otherwise focus on general AI role).
- What are the benefits and potential challenges/ethical considerations of this AI application?
- What are some real-world examples of this AI application in use?
- Presentation Planning (Teams): Students form teams (groups of 3-4) based on related or complementary AI application choices (or pre-assigned teams to ensure diversity of application coverage). Teams plan a short presentation to share their research findings with the class. Presentation format can be:
- Short verbal presentation with visuals (slides, posters, drawings).
- Interactive demo or simulation (if feasible and relevant).
- Short video or multimedia presentation.
- Focus on clear communication of key information about their chosen AI application.
- (25 min) Real-world Problem-Solving (Mini-Project): “Future of AI – Brainstorming and Visioning”
- Mini-project: “Future of AI – Brainstorming and Visioning”. Teams brainstorm and discuss:
- What are some positive future impacts AI could have on society and different industries in the next 10-20 years? (Brainstorm optimistic scenarios).
- What are some potential challenges or negative impacts of AI in the future that we need to be aware of and address responsibly? (Brainstorm potential risks and ethical concerns).
- What skills and knowledge will be most important for “Future Genius” students to have to thrive and contribute positively in an AI-driven world? (Focus on future skills – coding, data literacy, critical thinking, ethics, creativity, collaboration, problem-solving).
- Document their brainstorming ideas and future visions for AI.
- Teams prepare to share their “Future of AI” visions and brainstorming outcomes with the class in the next week’s session.
- Mini-project: “Future of AI – Brainstorming and Visioning”. Teams brainstorm and discuss:
- (10 min) Peer Feedback + Q&A: “AI Application Choices & Future Vision Ideas”
- Teams briefly share their chosen AI applications for research and their initial brainstorming ideas for the “Future of AI” visioning project.
- Peer feedback: Focus on the diversity of AI applications chosen, the relevance of research questions, and the creativity and thoughtfulness of their “Future of AI” visions.
- Q&A: Address any questions about AI applications, future trends in AI, research strategies, and preparation for their presentations and future visioning project.
Week 8: AI in the Real World – Project Presentations and Future Visions of AI
- (Learning Objective): Students will present their research findings on diverse AI applications, share their visions for the future of AI, and engage in discussions about the broader impact and future implications of AI technology.
- (20 min) Concept Review & Presentation Prep: Review of AI Applications and Presentation Guidelines
- Briefly review the diverse AI applications and emerging trends discussed in Week 7.
- Review presentation guidelines for the “AI Application Deep Dive” presentations: Clarity, conciseness, highlighting key findings, engaging presentation style.
- Provide any last-minute presentation tips or Q&A for presentation preparation.
- (35 min) Project Showcase & Demos: “AI Application Deep Dive Presentations”
- Teams present their “AI Application Deep Dive” research findings to the class.
- Each team presents their chosen AI application, explaining:
- What problem it solves.
- How AI/ML is used in this application.
- Benefits and challenges/ethical considerations.
- Real-world examples.
- Encourage engaging presentation styles, visuals, and clear communication of key information.
- Classmates and teacher provide positive feedback and ask clarifying questions after each presentation.
- (25 min) Real-world Problem-Solving (Mini-Project) Showcase & Discussion: “Future of AI Vision Sharing & Debate”
- Teams share their “Future of AI” visions and brainstorming outcomes with the class.
- Each team presents their brainstormed ideas about:
- Positive future impacts of AI.
- Potential challenges/negative impacts of AI.
- Future skills needed for an AI-driven world.
- Facilitate a class discussion and debate based on the teams’ future visions:
- Compare and contrast different teams’ optimistic and cautionary visions of AI’s future.
- Discuss common themes and diverging viewpoints.
- Debate the likelihood of different future scenarios and the factors that will shape AI’s future impact.
- Focus on encouraging thoughtful discussion, critical thinking about AI’s future, and considering both the potential benefits and risks.
- (10 min) Peer Feedback + Q&A: “AI Application & Future Vision Feedback and Reflection”
- Peer feedback: Provide constructive feedback on team presentations – clarity, content, engagement. Feedback on the thoughtfulness and depth of their “Future of AI” visions.
- Q&A: Open floor for final questions about AI applications, future trends, ethical implications, and reflections on the course so far.
Week 9: AI/ML Project Design and Development – Brainstorming and Planning Your Own AI Project
- (Learning Objective): Students will transition from learning about pre-built AI/ML examples to designing their own simple AI/ML project. They will brainstorm project ideas, define project scope, and plan the key components of their AI/ML project, incorporating ethical considerations into their design.
- (20 min) Concept Review & Project Inspiration: Review of AI/ML Concepts & Project Idea Brainstorming
- Briefly review key AI/ML concepts covered in the course so far: Image classification, prediction (linear regression – conceptually), chatbots (LLMs), AI ethics.
- Show examples of simple AI/ML projects that students could potentially create (age-appropriate and feasible with no-code/low-code tools):
- Enhanced image classifier (extend cat vs. dog classifier to other categories).
- Simple prediction tool (extend weather prediction to other datasets – e.g., sports stats prediction, sales prediction).
- Interactive chatbot for a specific purpose (extend homework chatbot to a different domain – e.g., story chatbot, fact chatbot).
- AI-powered game (simple game with AI opponent or AI-driven elements).
- Data visualization project with enhanced interactivity or analysis.
- Brainstorming Session: Lead a class brainstorming session to generate more AI/ML project ideas. Encourage students to think about problems they care about, areas they are interested in, and how AI/ML could be applied creatively and ethically.
- (35 min) Independent/Collaborative Coding Challenges: “AI Project Idea Pitch – Concept and Scope”
- Project Idea Brainstorming (Individual): Each student individually brainstorms at least 2-3 potential AI/ML project ideas. Think about:
- What problem or task will your AI project address?
- What type of AI/ML technique might be relevant (image classification, prediction, chatbot, data analysis)?
- What data might you need (or simulate) for your project?
- What are the potential ethical considerations for your project?
- Project Idea Pitch (Pairs): Students pair up and “pitch” their best project idea to their partner. Explain their project concept, intended functionality, and why it’s interesting or valuable. Get feedback from their partner.
- Project Idea Selection (Individual): Based on brainstorming and feedback, each student selects one AI/ML project idea to develop for the final project showcase in Week 10.
- Project Idea Brainstorming (Individual): Each student individually brainstorms at least 2-3 potential AI/ML project ideas. Think about:
- (25 min) Real-world Problem-Solving (Mini-Project): “AI Project Planning – Defining Scope and Features”
- Mini-project: “AI Project Planning”. Students begin planning their chosen AI/ML projects in detail. Focus on defining project scope and key features:
- Project Goal: Clearly define the goal of their AI/ML project. What will it do? What problem will it solve or what will it demonstrate?
- Key Features: List 2-3 key features or functionalities their project will have. Keep it realistic and achievable within the time constraints (1 week for development). Prioritize core features over ambitious scope.
- Tools and Technologies: Specify which tools they will use (Teachable Machine, Jupyter Notebooks, AI Chat tools, etc.).
- Data Source (if applicable): Identify data they will use or how they will simulate data for their project (if needed).
- Ethical Considerations: Briefly outline 1-2 key ethical considerations relevant to their specific project and how they plan to address them.
- Basic Project Plan: Create a simple plan or outline of the steps they will take to develop their project.
- Students document their project plans and scope definitions.
- Mini-project: “AI Project Planning”. Students begin planning their chosen AI/ML projects in detail. Focus on defining project scope and key features:
- (10 min) Peer Feedback + Q&A: “AI Project Plan Sharing & Feasibility Check”
- Students briefly share their AI project plans and scope definitions.
- Peer feedback: Focus on the clarity of project goals, feasibility of the scope, and the thoughtfulness of their ethical considerations.
- Q&A: Address any questions about project scope, tool usage, data needs, and project feasibility. Provide guidance on refining project scope and focusing on achievable goals for the final project week.
Week 10: AI/ML Project Development and Showcase – Future Genius AI/ML Creators!
- (Learning Objective): Students will dedicate the session to developing their individual or paired AI/ML projects, implementing their project plans, and preparing for a final project showcase to demonstrate their AI/ML creations.
- (35 min) Project Work Time – AI/ML Project Development: Building Your AI Creation
- Students work individually or in pairs to develop their chosen AI/ML projects based on their project plans.
- Provide dedicated project work time in class.
- Teacher circulates, provides individual guidance, answers questions, and helps students overcome technical challenges in using Teachable Machine, Jupyter Notebooks, AI Chat tools, or other chosen platforms for their projects.
- Encourage iterative development – build core features first, test, and then add enhancements if time allows.
- Emphasize focusing on creating a functional and demonstrable project within the limited time frame, rather than aiming for overly complex or fully polished projects.
- (25 min) Project Showcase & Demos: “Future Genius AI/ML Creator Showcase!”
- Students showcase their completed AI/ML projects to the class.
- Each student/team presents their project, demonstrates its functionality, and explains:
- What is their AI/ML project?
- What problem does it address or what does it demonstrate?
- Which AI/ML tools and techniques did they use?
- What were the key features of their project?
- What ethical considerations did they address in their project design (if applicable)?
- What were the biggest challenges they faced and what did they learn from the project development process?
- Encourage engaging demos and clear communication of their AI/ML creations and learning journey.
- Classmates and teacher provide positive feedback and enthusiastic applause for each project demonstration.
- (10 min) Course Recap & Rewards: “Future Genius AI/ML Creators!”
- Course recap: Summarize key skills and concepts learned in AI/ML Explorers 2: What is AI/ML, Data Science basics, Image Classification (Teachable Machine), Linear Regression (conceptually in Jupyter), Chatbots/LLMs (ChatGPT prompts), AI Ethics, and the process of designing and developing simple AI/ML projects. Congratulate students on completing AI/ML Explorers 2 and becoming “Future Genius AI/ML Creators!”.
- Encourage continued AI/ML exploration and learning: Suggest resources for further learning (online courses, websites, books about AI/ML for teens), encourage them to continue experimenting with AI tools and exploring AI applications in their interests.
- Award certificates of completion for AI/ML Explorers 2. Recognize outstanding projects and achievements (optional awards, e.g., “Most Creative AI Project,” “Best Data Analysis,” “Most Ethically Conscious Design,” “Most Innovative Use of AI Tools”). Provide celebratory rewards (e.g., AI/robot-themed stickers, small STEM toys, coding resources, books about AI/ML for teens, AI-themed treats).
- (20 min) (Optional – if time allows, can be shortened or omitted if needed): “Future of AI – Open Discussion and Q&A”
* Open class discussion about the future of AI, building upon the “Future Visioning” from Week 7 and the project experiences in Week 10.
* Discuss: What are they most excited about for the future of AI? What are they still concerned about regarding AI’s future impact? What role do they see themselves playing in an AI-driven world? What are their next steps for learning more about AI/ML?
* Final Q&A: Open floor for any final questions about AI/ML, the course, or future learning pathways.
This “Future Genius AI/ML Explorers 2” curriculum is designed to provide a hands-on, engaging, and ethically informed introduction to the world of AI, ML, and Data Science for 10+ year olds, using accessible no-code and low-code tools. Remember to adapt the complexity of projects and challenges based on the students’ progress and interests, and emphasize creativity, collaboration, and responsible AI practices throughout the course!
Course Title: Future Genius Drone Explorers: My First Drone Adventures
Age Group: 10+ years
Course Synopsis: This 10-week introductory course provides an exciting exploration of drones as aerial robots using CoDrone EDU. Students will learn fundamental concepts of flight, drone mechanics, and control systems. The course begins with hands-on flight practice and transitions into programming using both block-based (Snap!/Blockly) and text-based (Python) environments. Students will develop computational thinking skills, problem-solving abilities, and teamwork through engaging activities, flight challenges, and creative drone projects. The course emphasizes drone safety, responsible use, and building a strong foundation for understanding aerial robotics and programming.
Tools:
- CoDrone EDU Drones
- Snap!/Blockly Programming Environment (CoDrone EDU compatible, e.g., web-based or app)
- Python Programming Environment (CoDrone EDU compatible, e.g., Thonny, VS Code with CoDrone extension)
- Indoor Flight Area (gymnasium, large classroom, or open indoor space)
- Flight Obstacles (hoops, cones, targets – for flight challenges)
Session Duration: 1 hour 30 minutes
Week 1: Welcome to Drone World! – Introduction to Drones, Flight Basics, and Safety
- Learning Objective: Introduce drones as aerial robots, understand basic drone components, learn fundamental concepts of flight (lift, thrust, drag, gravity), and emphasize drone safety rules and responsible operation.
- (20 min) Concept Deep-Dive + Examples: What are Drones? & Basics of Flight
- Introduce Drones: What are drones? (Unmanned Aerial Vehicles – UAVs, aerial robots). Real-world drone applications (photography, delivery, agriculture, search and rescue, etc.). Discuss the increasing importance of drone technology.
- Drone Components: Identify key parts of CoDrone EDU: frame, propellers, motors, battery, flight controller, sensors (brief overview).
- Basics of Flight: Explain the four forces of flight: Lift (upward force), Thrust (forward force), Drag (air resistance), Gravity (downward pull). How do drones achieve lift and control? (Propeller speed and angles).
- Drone Safety & Regulations: Emphasize drone safety rules: always fly in safe, open areas, maintain visual line of sight, never fly near people or obstacles, responsible drone operation, respecting privacy. Review any local drone regulations (simplified for age group).
- Example: Show videos or images of different types of drones and their applications. Demonstrate the basic components of CoDrone EDU.
- (35 min) Hands-on Activity: CoDrone EDU Inspection and Pre-Flight Checks & Basic Flight Practice (Take-off and Landing)
- CoDrone EDU Inspection: Students carefully inspect their CoDrone EDU drones, identify components (props, motors, battery, LEDs), learn about battery charging and handling. Pre-flight checklist review.
- Basic Flight Practice (Pairs/Small Groups, one drone per group initially): In a safe, open indoor area, practice basic drone take-off and landing. Focus on gentle take-offs, controlled hovering at low altitude, and smooth landings. Emphasize safety and controlled movements. Students take turns piloting under supervision.
- Start with very basic remote control using the CoDrone EDU remote controller (if included) or a mobile app controller (if applicable) – focus on basic throttle (up/down) and yaw (rotation).
- (25 min) Real-world Problem-Solving (Mini-Project): “Safe Landing Zone Challenge”
- Mini-project: “Safe Landing Zone Challenge”. Mark designated “safe landing zones” on the floor (using mats or tape).
- Challenge: Students practice taking off and landing their drones within the designated safe landing zones. Focus on precision landing and controlled descent.
- Discuss challenges of controlling a drone and the importance of practice and smooth control inputs.
- (10 min) Peer Feedback + Q&A: “Flight Experience Sharing & Safety Review”
- Students share their initial flight experiences, discuss challenges and successes.
- Peer feedback: Positive encouragement and sharing flight tips with each other.
- Q&A: Review drone safety rules, address flight control questions, and discuss initial impressions of drone flight.
Week 2: Mastering Drone Control – Hovering, Yaw, Pitch, and Roll
- Learning Objective: Learn to master basic drone flight controls: throttle (altitude), yaw (rotation), pitch (forward/backward), and roll (sideways movement), and practice controlled hovering and basic maneuvers.
- (20 min) Concept Deep-Dive + Examples: Drone Flight Controls – Throttle, Yaw, Pitch, Roll
- Review basic flight concepts. Focus on explaining the four primary drone controls in detail:
- Throttle: Controls motor speed and altitude (up/down).
- Yaw: Controls rotation around the vertical axis (left/right rotation).
- Pitch: Controls forward and backward movement (tilting the drone forward/backward).
- Roll: Controls sideways movement (tilting the drone left/right).
- Explain how these controls are used in combination for complex maneuvers.
- Example: Demonstrate each control individually and then in combination using a drone simulator (if available) or by visually demonstrating with a model drone. Show videos of drone maneuvers highlighting these controls.
- Review basic flight concepts. Focus on explaining the four primary drone controls in detail:
- (35 min) Hands-on Activity: Flight Practice – Controlled Hovering, Yaw, Pitch, Roll
- Controlled Hovering Practice: Students practice maintaining stable hover at a consistent altitude, minimizing drift. Focus on throttle control.
- Yaw Control Practice: Practice controlled yaw rotations (360-degree turns, precise rotations to specific angles). Focus on yaw stick control.
- Pitch and Roll Control Practice: Practice controlled forward/backward (pitch) and sideways (roll) movements. Start with short, controlled movements and gradually increase complexity.
- Progressive Flight Exercises: Introduce a series of progressive flight exercises (e.g., hovering in place, controlled yaw rotations, figure-eights, squares) to practice combining controls.
- Students practice individually or in pairs, taking turns piloting and providing feedback to each other under supervision.
- (25 min) Real-world Problem-Solving (Mini-Project): “Precision Hovering Challenge”
- Mini-project: “Precision Hovering Challenge”. Mark a target area on the floor (e.g., a circle or square).
- Challenge: Students practice hovering their drones precisely within the target area for a sustained period (e.g., 10 seconds). Focus on maintaining position and minimizing drift using throttle, pitch, and roll adjustments. Measure hovering time and accuracy.
- Discuss challenges of precise control and strategies for improving hovering accuracy.
- (10 min) Peer Feedback + Q&A: “Flight Control Showcase & Maneuvering Tips”
- Students demonstrate their hovering and basic maneuvering skills.
- Peer feedback: Focus on flight smoothness, control precision, and stable hovering. Share flight control tips and maneuvering advice.
- Q&A: Address flight control questions, discuss common piloting challenges, and review best practices for smooth and controlled drone flight.
Week 3: Introduction to Block-Based Programming – Snap!/Blockly for Drone Control (Basic Movement)
- Learning Objective: Introduce block-based programming for CoDrone EDU using Snap! or Blockly-based environment, learn to connect the drone to the programming environment, and use basic movement blocks to program drone take-off, landing, and simple flight paths.
- (20 min) Concept Deep-Dive + Examples: Block-Based Programming for CoDrone EDU (Snap!/Blockly)
- Introduce block-based programming for drones. Explain Snap!/Blockly as visual, drag-and-drop programming languages suitable for beginners.
- Introduce the CoDrone EDU programming environment (web-based or app using Snap!/Blockly). Tour the interface: Block palettes (Motion, Control, Events, etc., specific to CoDrone EDU), programming area, drone connection interface.
- Demonstrate connecting CoDrone EDU to the programming environment via Bluetooth.
- Introduce basic CoDrone EDU blocks for movement control (take-off, land, forward, backward, left, right, up, down, yaw left, yaw right, hover). Explain units (seconds, meters, degrees).
- Example: Show a simple block-based program to make CoDrone EDU take off, move forward, turn, and land.
- (35 min) Independent/Collaborative Coding Challenges: “First Programs – Block-Based Drone Flight”
- Challenge 1 (Programming – Independent): Write a block-based program to make CoDrone EDU take off, hover for 3 seconds, and land.
- Challenge 2 (Programming – Pair Programming): Pairs write a block-based program to make CoDrone EDU take off, move forward 2 meters, then backward 2 meters, and land. Experiment with different distances and directions.
- Challenge 3 (Combined Flight & Programming – Teamwork): Teams program CoDrone EDU to fly a simple square path using block-based programming (take off, move forward, turn right, repeat 4 times, land).
- (25 min) Real-world Problem-Solving (Mini-Project): “Programmed Landing Challenge”
- Mini-project: “Programmed Landing Challenge”. Mark a target landing zone on the floor (similar to Week 1).
- Challenge: Teams program CoDrone EDU using block-based programming to take off and land autonomously within the designated target landing zone. Focus on using takeoff and land blocks and controlling horizontal movement to reach the landing zone (using timed movements for now – sensor-based landing later).
- Discuss challenges of programmed landing and factors affecting landing accuracy (drift, wind – even indoors).
- (10 min) Peer Feedback + Q&A: “Block-Based Code Showcase & Programming Tips”
- Teams showcase their block-based drone programs and programmed landings.
- Peer feedback: Focus on code clarity, efficient use of block-based commands, smooth drone movements, and programmed landing accuracy. Share block-based programming tips and troubleshooting advice.
- Q&A: Open floor for questions about block-based programming, CoDrone EDU specific blocks, connecting drones to the programming environment, and challenges faced during block-based coding.
Week 4: Control Flow in Blockly/Snap! – Loops and Sequences for Drone Choreography
- Learning Objective: Learn to use control flow blocks in Snap!/Blockly: ‘repeat’ loops and sequences of commands to create more complex and efficient drone programs, and program basic drone choreographies.
- (20 min) Concept Deep-Dive + Examples: Control Flow Blocks – Loops and Sequences
- Review sequences of commands. Introduce ‘repeat [number]’ loop block in Snap!/Blockly. Explain how loops automate repetition and simplify code.
- Demonstrate using ‘repeat’ loop to make CoDrone EDU fly in a square path (repeating move forward and turn actions in block-based code).
- Explain how to create longer, more complex sequences of commands using block-based programming and loops.
- Example: Show a block-based program using loops to create a simple drone “figure-eight” flight path or a repeating dance move.
- (35 min) Independent/Collaborative Coding Challenges: “Block-Based Drone Choreography”
- Challenge 1 (Programming – Independent): Write a block-based program using a repeat loop to make CoDrone EDU perform a repeating back-and-forth movement pattern (e.g., move forward, backward, repeat).
- Challenge 2 (Programming – Pair Programming): Pairs write a block-based program using nested repeat loops to make CoDrone EDU fly in a grid pattern (similar to Week 3 Robot Explorers 1, but now with drones and block-based programming).
- Challenge 3 (Creative Choreography – Teamwork): Teams design and program a short drone choreography routine (a “drone dance”) using sequences of block-based movement commands and repeat loops to create repeating dance steps or patterns. Encourage creativity in dance moves and flight paths.
- (25 min) Real-world Problem-Solving (Mini-Project): “Programmed Flight Path Challenge”
- Mini-project: “Programmed Flight Path Challenge”. Set up a more complex flight path using cones or hoops as waypoints (e.g., a zig-zag path, a figure-eight path with waypoints).
- Challenge: Teams program CoDrone EDU using block-based programming and loops to autonomously fly through the defined flight path, navigating through or around the waypoints. Focus on using sequences and loops to create a planned flight path.
- Encourage precise programming and adjusting code for accurate flight path execution.
- (10 min) Peer Feedback + Q&A: “Drone Choreography Showcase & Loop Usage Tips”
- Teams showcase their block-based drone choreographies and programmed flight paths.
- Peer feedback: Focus on code clarity, efficient use of loops for repetition, smooth drone choreography, and accuracy in following programmed flight paths. Share block-based programming tips for choreography and path planning.
- Q&A: Discuss nested loops, creating more complex patterns with loops and sequences, and advantages of using loops for efficient drone programming.
Week 5: Introduction to Python Programming for Drones – Basic Python Syntax for Drone Control
- Learning Objective: Transition from block-based to text-based Python programming for CoDrone EDU, learn basic Python syntax for drone control, and write simple Python programs for drone take-off, landing, and basic movement.
- (20 min) Concept Deep-Dive + Examples: Python Programming for CoDrone EDU
- Review block-based programming. Discuss its limitations for more advanced control and flexibility.
- Introduce Python as a text-based alternative for CoDrone EDU programming. Reiterate Python’s power and versatility.
- Compare Snap!/Blockly blocks to equivalent Python code for drone control (take-off, land, movement). Show direct code equivalents for key blocks.
- Introduce basic Python syntax for CoDrone EDU control: Connecting to drone (if needed – specific syntax depends on environment), drone.takeoff(), drone.land(), drone.move_forward(distance), drone.turn_left(angle), etc. (Provide basic Python command examples).
- Setting up Python environment (if not already done): Guide students to set up a Python environment compatible with CoDrone EDU (LEGO Education Python environment or VS Code with extension) if they haven’t already.
- Example: Show a simple Python program to make CoDrone EDU take off, move forward, turn, and land using Python drone control commands.
- (35 min) Independent/Collaborative Coding Challenges: “First Python Drone Flights”
- Challenge 1 (Programming – Independent): Write a Python program to make CoDrone EDU take off, hover for 3 seconds, and land (Python version of Week 3 Challenge 1).
- Challenge 2 (Programming – Pair Programming): Pairs write a Python program to make CoDrone EDU take off, move forward 2 meters, then backward 2 meters, and land (Python version of Week 3 Challenge 2). Program entirely in Python.
- Challenge 3 (Code Translation to Python – Teamwork): Teams take their block-based square path program from Week 3 and translate it into equivalent Python code using Python motion commands and loops (provide basic loop structure example in Python). Run the Python program to make the drone fly a square path.
- (25 min) Real-world Problem-Solving (Mini-Project): “Python Programmed Landing Challenge”
- Mini-project: Recreate the Programmed Landing Challenge from Week 3, but now program it entirely in Python.
- Challenge: Teams program CoDrone EDU using Python programming to take off and land autonomously within the designated target landing zone. Focus on using Python takeoff() and land() commands and controlling horizontal movement using Python motion commands to reach the landing zone (using timed movements for now).
- Compare programming in Blockly/Snap! vs. Python for the same task – discuss differences and initial impressions of Python text-based coding for drones.
- (10 min) Peer Feedback + Q&A: “Python Drone Code Showcase & Syntax Transition Discussion”
- Teams showcase their Python drone programs and programmed landings.
- Peer feedback: Focus on correct Python syntax, basic drone control commands in Python, and comparing Python code to Blockly/Snap! blocks. Share Python coding tips and initial impressions of text-based drone programming.
- Q&A: Open floor for questions about Python syntax for drone control, differences between block-based and text-based drone programming, challenges faced during the Python transition, and advantages/disadvantages of each approach.
Week 6: Python Control Flow for Drones – Python Loops and Sequences for Advanced Flight Paths
- Learning Objective: Learn to use Python control flow structures (for loops, while loops) for drone programming, creating more efficient and complex Python drone programs and enabling more advanced flight paths and routines in Python.
- (20 min) Concept Deep-Dive + Examples: Python Loops for Drone Control
- Review Python for and while loops from Python 1 & 2 courses (or briefly introduce if students are new to Python loops). Explain how to use loops to repeat drone actions in Python code.
- Demonstrate Python code examples using for loops to repeat drone movement sequences (e.g., square path in Python) and while loops for conditional drone actions (e.g., move forward until a condition is met – although sensor-based conditions are introduced later, could use time-based condition for now).
- Compare Python loop syntax to Blockly/Snap! loop blocks and discuss advantages of text-based loops for more flexible control.
- Example: Show a Python program using a for loop to make the drone fly a square path in Python code.
- (35 min) Independent/Collaborative Coding Challenges: “Python Looping Drone Flights”
- Challenge 1 (Programming – Independent): Write a Python program using a for loop to make CoDrone EDU perform a repeating back-and-forth movement pattern in Python (Python version of Week 4 Challenge 1, now in Python).
- Challenge 2 (Programming – Pair Programming): Pairs write a Python program using nested for loops to make CoDrone EDU fly in a grid pattern in Python (Python version of Week 4 Challenge 2, now in Python). Program entirely in Python.
- Challenge 3 (Creative Python Choreography – Teamwork): Teams enhance their drone choreography routine from Week 4, now programming it in Python using loops and sequences of Python movement commands to create more complex and efficient drone dance routines in Python.
- (25 min) Real-world Problem-Solving (Mini-Project): “Python Programmed Flight Path Challenge (Advanced)”
- Mini-project: Revisit the Programmed Flight Path Challenge from Week 4.
- Challenge: Teams program CoDrone EDU using Python programming and loops to autonomously fly through a more complex defined flight path (more waypoints, curves, or patterns) using Python loops for efficient path execution. Focus on using Python for loops and sequences to create precise and repeatable flight paths in Python code.
- Encourage precise Python programming and adjusting code for accurate flight path execution using text-based Python.
- (10 min) Peer Feedback + Q&A: “Python Loop Code Showcase & Advanced Path Planning Discussion”
- Teams showcase their Python drone programs using loops and advanced flight paths.
- Peer feedback: Focus on code clarity, efficient use of Python loops for repetition, smooth drone flight paths programmed in Python, and accuracy in following programmed paths using Python code. Share Python loop programming tips and advanced path planning advice in Python.
- Q&A: Discuss nested loops in Python for drone control, different uses of range() in Python for loops for flight paths, advantages of Python loops for creating complex and efficient drone flight programs, and real-world applications of programmed flight paths for drones (mapping, surveying, automated tasks).
Week 7: Python Functions for Drone Control – Reusable Python Code for Complex Maneuvers
- Learning Objective: Learn to define and use functions in Python for drone programming, creating reusable Python code blocks for common drone maneuvers and routines, to structure Python drone programs and improve code organization and readability for more complex flight tasks.
- (20 min) Concept Deep-Dive + Examples: Python Functions for Drone Programming
- Review functions concept from Python 1 & 2 courses. Emphasize the importance of functions for code organization, reusability, and modularity in text-based drone programming.
- Demonstrate defining Python functions for common drone maneuvers: takeoff_and_hover(duration), fly_square_path(side_length), spin_degrees(angle). Show Python function definition and calling syntax in drone control context.
- Explain how to use parameters in Python functions to make them more flexible and reusable for different flight scenarios (e.g., move_forward(distance_meters), turn_degrees(angle_degrees)).
- Example: Show Python code examples defining and calling functions for drone movement, take-off/landing, and other drone tasks in Python.
- (35 min) Independent/Collaborative Coding Challenges: “Python Function-Based Drone Routines”
- Challenge 1 (Function Creation – Independent): Write Python functions for takeoff_safely() (take-off and hover for a short time), land_smoothly() (land gently), and move_forward_timed(seconds) (move forward for a specified duration). Use these functions to create a simple drone routine.
- Challenge 2 (Function Combination – Pair Programming): Pairs write Python functions for more complex drone maneuvers, like circle_around_point(radius) (simulated circle for now, precise circle with GPS/sensors later), figure_eight_pattern(size). Combine these functions to create a drone flight pattern routine using Python functions.
- Challenge 3 (Code Refactoring – Teamwork): Teams take their Python programmed flight path program from Week 6 and refactor it to use functions to encapsulate movement sequences and path segments (e.g., fly_straight_section(distance), turn_corner_degrees(angle)). Improve Python code structure and readability using functions for path planning.
- (25 min) Real-world Problem-Solving (Mini-Project): “Python Function-Based Drone Show”
- Mini-project: Students create a short “drone show” program in Python using functions.
- Challenge: Design a drone show routine with at least 3-4 different drone maneuvers or flight patterns. Define Python functions for each maneuver (e.g., fly_square(), circle_pattern(), vertical_climb(), spin_sequence()). Combine these functions in a sequence to create a coordinated drone show routine programmed in Python. Incorporate drone LEDs for visual effects if possible within Python programming.
- Focus on using Python functions to organize and structure complex drone flight routines, improve code readability, and create reusable code for drone show choreography in Python.
- (10 min) Peer Feedback + Q&A: “Python Function Drone Code Showcase & Advanced Choreography Discussion”
- Teams showcase their Python drone programs using functions and drone show routines.
- Peer feedback: Focus on effective use of Python functions for drone control, clear function definitions with parameters, well-structured Python code, and smooth drone choreography programmed with Python functions. Share Python function programming tips and advanced drone choreography design advice.
- Q&A: Discuss function scope in Python drone programming (revisit and expand if needed), benefits of functions for creating libraries of reusable drone maneuvers, and real-world applications of function-based drone programming in automated drone tasks, drone shows, and complex flight missions.
Week 8: Introduction to Drone Sensors – Reading and Using Sensor Data in Python (Simplified)
- Learning Objective: Introduce drone sensors available on CoDrone EDU (if any are readily accessible and programmable via Python in a simplified manner for this introductory level – otherwise, focus on conceptual understanding and simulated sensor data for this week, and real sensor integration in Robot Explorers 3). Learn conceptually about how drones use sensors and explore basic sensor data reading in Python (if feasible and simplified).
- (20 min) Concept Deep-Dive + Examples: Drone Sensors – Enabling Autonomous Flight
- Introduce drone sensors: What sensors do drones use? (Barometer, accelerometer, gyroscope – IMU, magnetometer, GPS, optical flow, distance sensors, cameras – depending on drone model). Focus on sensors relevant to CoDrone EDU and its Python programmability (e.g., IMU, barometer, potentially optical flow or distance sensor if accessible in simplified Python API).
- Explain how sensors allow drones to perceive their environment and enable autonomous flight and intelligent behaviors.
- Focus conceptually on:
- IMU (Inertial Measurement Unit): Accelerometer (measures acceleration, tilt), Gyroscope (measures rotation rate). How IMU data is used for drone stabilization and orientation.
- Barometer: Measures air pressure, used for altitude estimation and control.
- Optical Flow Sensor (if applicable and simplified access): Measures visual flow, used for precise hovering and position hold indoors.
- Distance Sensor (if applicable and simplified access): Measures distance to objects, used for obstacle avoidance or distance-based tasks.
- If simplified Python access to one sensor (e.g., barometer for altitude) is feasible and age-appropriate: Demonstrate Python code for initializing and reading data from that sensor (e.g., drone.get_altitude()). Show example of printing sensor data to the console in Python. If direct sensor access in simplified Python is too complex for this introductory level, focus on conceptual understanding of sensor types and their roles in drone autonomy, and proceed with simulated sensor data or sensor-reactive behaviors based on timed actions for this week, and defer real sensor data integration to Robot Explorers 3.
- (35 min) Independent/Collaborative Coding Challenges: “Drone Sensor Data Exploration (Conceptual or Simplified Python)”
- Challenge 1 (Conceptual – Sensor Types): Students research and create a presentation (poster, slides, or verbal) explaining different types of drone sensors and their uses (based on information provided in deep-dive and online research if needed – focus on conceptual understanding, not deep technical details).
- Challenge 2 (Sensor Data Reading – Simplified Python, if feasible): If simplified Python sensor access is feasible: Pairs write a Python program to continuously read and print data from one accessible sensor (e.g., barometer altitude) to the console. Observe how sensor readings change as the drone moves or environment changes.
- Challenge 3 (Simulated Sensor Reactions – Teamwork, if direct sensor access is too complex): If direct sensor access is too complex for this week, teams create a drone routine where drone simulates reacting to a sensor input. Example: “Simulate” barometer – use time as a proxy for altitude. Program drone to fly upwards for 5 seconds (simulating climb), then say “Altitude reached!” (using print or drone display – if feasible), then hover for 3 seconds (simulating altitude hold), then land. Use comments in Python code to indicate “simulated sensor input” and intended sensor reaction.
- (25 min) Real-world Problem-Solving (Mini-Project): “Drone Altitude Display (Conceptual or Simplified Python)”
- Mini-project: “Drone Altitude Display” program.
- Challenge:
- Conceptual Focus (if sensor access too complex): Design a conceptual interface (drawing, mock-up) for displaying drone altitude information to a user. Consider what information to display (altitude value, units), how to visualize it (numbers, bar graph, etc.), and why altitude information is important for drone pilots.
- Simplified Python Focus (if sensor access feasible): If simplified Python sensor access is feasible, program CoDrone EDU in Python to: 1) Continuously read altitude data from the barometer sensor using Python code. 2) Display the current altitude value on the screen (console or Hub display) in Python code.
- Focus on understanding the concept of drone sensors, how they provide data, and (if feasible) basic Python code for accessing and displaying sensor data.
- (10 min) Peer Feedback + Q&A: “Sensor Concept Showcase & Drone Autonomy Discussion”
- Teams showcase their sensor presentations (conceptual focus) or Python sensor data display programs (simplified Python focus).
- Peer feedback: Focus on clarity of sensor explanations (conceptual focus), correct Python sensor code (simplified Python focus), and understanding of sensor roles in drone autonomy. Share tips for sensor understanding and basic sensor data handling.
- Q&A: Discuss different types of drone sensors, how sensor data enables autonomous drone behaviors, limitations of simplified sensor access (if applicable), and prepare for more advanced sensor integration in Robot Explorers 3 (or next level curriculum).
Week 9: Advanced Robotics Challenge – Autonomous Drone Flight (Capstone Project – Part 2)
- Learning Objective: Continue developing the advanced robotics capstone challenge project, focusing on implementing more advanced autonomous drone flight behaviors, integrating sensor data (if feasible and simplified), and refining Python code for complex drone control.
- (20 min) Project Work Time & Individual Guidance: Capstone Project – Advanced Programming & Autonomous Behaviors
- Teams continue working on their capstone drone projects. Focus on implementing more advanced autonomous flight behaviors using Python programming.
- If simplified sensor access is feasible: Begin integrating sensor data into Python code to create sensor-reactive drone behaviors (e.g., altitude hold using barometer data, basic obstacle avoidance using distance sensor – if applicable and simplified access).
- If direct sensor access is too complex: Focus on creating more complex timed autonomous flight routines in Python, simulating sensor-based behaviors using timed sequences and conditional logic based on time or simulated events.
- Teacher circulates, provides individual guidance on Python code development, sensor integration (if applicable), and helps teams overcome programming challenges.
- Encourage teams to break down complex autonomous behaviors into smaller, manageable Python functions and code modules.
- (35 min) Collaborative Coding Challenges (Optional, if needed): Focused Python Skill Practice during Project Work
- If teams are facing specific Python programming challenges related to their capstone projects (e.g., function design, loop implementation, conditional logic in Python drone control, basic sensor data handling in Python – if applicable), provide short, focused Python coding challenges or mini-exercises to help them practice those skills within the context of their drone projects.
- These challenges can be done individually or in pairs, as needed.
- (25 min) Project Work Time – Continued Development & Refinement: Implementing Autonomy and Testing
- Teams continue working on their Python capstone drone projects, implementing more advanced autonomous features, refining Python code, and beginning initial testing of their autonomous drone behaviors.
- Encourage iterative Python code development – write code, test in simulation (if available) or cautiously in flight (in safe area), debug, and refine.
- Teacher continues to provide support and guidance on Python programming and debugging.
- (10 min) Peer Feedback + Q&A: “Capstone Project Progress – Python Code & Autonomy Check-in”
- Teams briefly share their capstone project progress – Python code development, implementation of autonomous behaviors, and initial testing experiences.
- Peer feedback: Focus on Python code structure, implementation of autonomous features in Python, and progress towards project goals. Share Python coding tips for advanced drone control and autonomy.
- Q&A: Address any questions about Python programming challenges for autonomous drone flight, sensor integration in Python (if applicable), and next steps for project completion in the final week.
Week 10: Capstone Project Completion, Showcase, and Drone Explorer Graduation – Aerial Robot Grand Finale!
- Learning Objective: Complete the capstone drone projects, showcase projects to the class, celebrate learning in drone technology and Python programming, and encourage continued advanced drone and STEM exploration.
- (15 min) Project Work Time – Final Polish: Completing and Preparing Capstone Demos
- Teams spend the beginning of the session adding final touches to their Python drone projects, completing code, debugging, optimizing flight routines, and preparing for final project demonstrations and presentations.
- (35 min) Project Showcase & Demonstrations: “Drone Explorer Grand Finale Showcase!”
- Each team presents their completed capstone drone project to the class.
- Teams demonstrate their CoDrone EDU performing the capstone challenge task autonomously (or semi-autonomously, depending on project complexity and sensor integration).
- Teams explain their drone’s design, Python code, sensor integration strategies (if applicable), the challenges they faced during development, the Python programming concepts they used, and what they learned about drone technology and programming throughout Drone Explorers.
- Encourage clear communication, highlighting their Python programming skills for drone control and their achievements in aerial robotics.
- Positive peer feedback and enthusiastic applause for each team’s impressive drone solution and presentation. Emphasize drone safety during demonstrations and ensure flights are conducted responsibly and in a controlled manner.
- (25 min) Drone Technology and Python Course Review & Advanced STEM Pathways: “Drone Explorer Graduates!”
- Course recap: Summarize key skills and advanced concepts learned in Drone Explorers: Drone flight principles, drone control, block-based and Python programming for drones, Python control flow, Python functions, introduction to drone sensors (conceptually or simplified Python), Engineering Design Process applied to drone projects. Congratulate students on completing Drone Explorers and becoming “Drone Explorer Graduates!”.
- Advanced STEM Pathways: Briefly introduce potential next steps in drone technology and STEM learning (more advanced drone programming with Python, exploring drone SDKs and APIs for more control, computer vision with drones, autonomous drone navigation algorithms, drone applications in various fields, competitive drone challenges, drone engineering and design principles, potential career paths in drone technology and related STEM fields). Build excitement for continued drone and STEM exploration.
- Award certificates of completion for Drone Explorers. Recognize outstanding projects and achievements (optional awards, e.g., “Most Creative Drone Design,” “Best Python Code,” “Most Autonomous Drone,” “Best Flight Performance”). Encourage continued practice, advanced drone learning, and participation in drone clubs or competitions.
- (10 min) Recap + Rewards: “Future Genius Drone Explorers – Python Graduates!”
- Final words of encouragement and immense appreciation for their hard work, creativity, and progress in drone technology and Python programming throughout the Drone Explorers course.
- Provide celebratory rewards (e.g., drone-themed stickers, small drone toys, STEM resources, books about drones, Python programming, or aerial robotics for teens, drone-themed treats). Consider small drone-related gifts or resources to encourage continued drone exploration if budget allows.
This “Drone Explorers” curriculum is designed to provide an exciting and progressive introduction to drones, flight principles, and Python programming for 10+ year olds. Remember to prioritize drone safety, adapt the complexity of capstone projects and challenges based on student progress and interests, and emphasize hands-on learning, collaboration, and the Engineering Design Process throughout the course!