Welcome!



My name is Avi Megiddo, and I work as an educator and curriculum developer in Taiwan. With degrees in Cognitive Science from UC Berkeley and Education from Purdue University, I’m still learning every day how to create more engaging and accessible learning experiences.

Since ChatGPT came out, I have been co-authoring scripts for Google Sheets and Google Slides, which increase productivity, classroom management, and interactivity.  Click on the image below to preview these tools:



You’re invited to explore my blog posts and projects, where you’ll find simple Scratch games, Google Slides activities, Google Sheet templates, and academic papers. I’ve put them together with the hope that they might be of help to teachers and students alike.

By merging my interests in design, math, and computer science, I try to create resources that may encourage collaboration and streamline education processes. I believe that we can always find ways to improve, and I’m eager to learn from your feedback.

Below, you will find a selection of my blog posts and projects. Feel free to explore, and don’t hesitate to reach out with your thoughts!


Dynamic Spinner

Welcome to the home of innovation, where the classic game spinner is reimagined for the digital age. Here, I combine the time-honored joy of anticipation with the precision of modern technology. This spinner isn’t just a tool; it’s a harmonious blend of design, mathematics, and computer science, all brought to life through the power of conversational coding with ChatGPT.

My original Scratch project and code:
https://scratch.mit.edu/projects/970791967

 

YouTube Demo Video:

 

Use it on Scratch:

Features:

Programmatic Creation: Spinners are generated through Python code, leveraging ChatGPT’s conversational AI to refine the design and functionality. This ensures a seamless and efficient process from concept to creation.

Dynamic Spinner Size: The tool automatically adjusts the spinner’s size based on the participant list length. By parsing a comma or space-delimited string of names, it dynamically generates a spinner with the corresponding number of sectors, making it adaptable to various group sizes.

Mathematical Precision: Incorporates mathematical formulas to accurately determine the spinner’s winning sector based on degrees rotated. This not only enhances the fairness of the selection process but also introduces students to practical applications of geometry and arithmetic.

Engaging Sound Effects: The inclusion of sound effects and the potential for an AI-hosted voice add an auditory dimension to the experience, making the spinner more interactive and enjoyable.

Interdisciplinary Educational Tool: This project exemplifies interdisciplinary learning, combining elements of Language Arts (communicating ideas to AI), Computer Science (coding the spinner in Python and Scratch), MYP Design (creating a user-friendly interface), and Mathematics (applying geometric and arithmetic principles).

Accessibility and Integration: Designed to run in Google Colab, the spinner tool is accessible and easy to share, thanks to its integration with Google Drive. It requires no setup, making it readily available for educators and students.

Active Learning: Encourages active learning by allowing students to directly engage with coding concepts and see the immediate impact of their work. This hands-on experience is invaluable in reinforcing learning objectives and fostering a deeper understanding of the subject matter.

Conclusion:

The spinner is a bridge between the physical and digital.  This project is a testament to the power of interdisciplinary collaboration, demonstrating that with creativity, technical skill, and a bit of AI assistance, the possibilities for enhancing education are limitless.

My original Scratch project and code:
https://scratch.mit.edu/projects/970791967

My createSpinners Python code:


NY Times Spelling Bee in Scratch

Inspired by the NY Times Spelling Bee, I challenged myself to create a Scratch version of this game.  It’s nice that in Scratch you can easily iterate and improve your projects over time.

Rules:

Words must be at least 4 letters long and must contain the yellow center letter. Letters do not have to be adjacent to each other, and duplicating letters is allowed. I created the background hexagons with Google Drawings and Inkscape. In Scratch, I created a “dictionary” based on an English word list from: http://www.mediafire.com/file/5cy3vcsag29ic43/Word_List.txt/file
I also created letter frequencies based on the following sources:
https://www3.nd.edu/~busiforc/handouts/cryptography/letterfrequencies.html
https://en.wikipedia.org/wiki/Scrabble_letter_distributions
https://en.wikipedia.org/wiki/Letter_frequency

I got a great suggestion from Nirmala Sankaran, Co-Founder of HeyMath, to include the total possible words for a given board. This required iterating over the dictionary and checking if each word is valid for each board, given the game rules.
You can find the original code here: https://scratch.mit.edu/projects/603333011


MATCHSTICK Math Puzzles

I curated a bunch of different matchstick puzzles to create this interactive collection.  Have a look!

MATCHSTICK Math Puzzles

MATCHSTICK Math Puzzles.pptx

I believe learning should be fun and memorable. We all possess our unique set of talents and skills, including musical, spatial, aesthetic, linguistic, analytic, mathematical, kinesthetic, social-emotional, leadership, organization, planning, and more. Educators should differentiate their instructional approaches and learning environments to cater to all kinds of learners.

Othello / Reversi in Google Slides

Othello / Reversi in Google Slides

Othello and Reversi by Avi Megiddo.pptx

Word cloud of education words

made with wordclouds.com

I fed it a large text file of my academic writing, after cleaning it up using regular expression matching.  Zoom in!

 

 

Blog

 

Classroom Groups Manager in Google Slides: Simplifying Group Creation

Avi Megiddo

MYP Design Teacher, Kaohsiung American School
September 7, 2024

 

Creating dynamic, balanced student groups is an essential part of classroom management. Whether you’re grouping students for projects, discussions, or activities, organizing them efficiently can take up valuable teaching time. The Classroom Groups Manager automates this process, providing you with an easy way to create groups, assign seats, and avoid problematic pairings. With just a few clicks, you can manage class groups based on your needs while saving past groupings for future reference.

Students in MYP Design class grouped for a 2-week Design Challenge

 

Classroom Groups Manager Sidebar  © Avi Megiddo 2024

Key Features of the Classroom Groups Manager Tool

This tool leverages Google Apps Script to turn Google Slides into a versatile group creator and random student selector. It’s designed with teachers in mind and offers several features that make classroom management more streamlined and engaging.

1. Create Random Student Groups of Any Size

Teachers can generate random pairs, groups of 3, 4, or 5 students, or even custom groups centered around selected students. Whether forming small teams for a project or organizing students for discussion, this tool provides the flexibility to create groups that fit your classroom structure.

2. Bad Pairings and Wildcards

Certain students may not work well together. The Classroom Groups Manager allows you to save these bad pairings, ensuring they are not grouped together. Additionally, the tool prevents bad pairs from becoming the “odd one out” (wildcard) in groupings where the total number of students does not divide evenly into groups.

If a wildcard needs to be created, the system intelligently chooses someone not involved in a bad pairing and allows them to join a group of their choice. Currently, this feature is not active in circle arrangements or groupings around selected students, but works perfectly for fixed desk or standard group arrangements.

  1. Random Student Selector

The random student selector ensures all students have an equal chance to participate. It randomly selects a student, highlights their name in fluorescent green, enlarges their desk/rectangle, and keeps track of the last selected student. This ensures more inclusive and balanced class participation, and that no student is called on repeatedly in succession.

Fluorescent green rectangle represents a randomly chosen student.
Gold is a wild card that can choose their own group.


4. Visual Group Layouts

The tool visually organizes groups directly onto the Google Slides canvas, providing an instant view of your classroom seating or group assignments. It places students into rectangles, which can be customized to fit your class’s layout. With drag-and-drop functionality, you can adjust the layout on the fly, enabling real-time flexibility.

5. Grouping Around Selected Students

This feature allows you to assign certain students to specific groups (e.g., group leaders or students needing extra support), while the remaining students are evenly distributed among them. This ensures balanced group dynamics and gives teachers strategic control over group composition.

 

Group leaders set with other students arranged around them

6. Arrange Students in a Circle

For certain classroom activities, like group discussions or icebreakers, you may prefer students to sit in a circle. The tool supports a circle arrangement feature, which automatically spaces students evenly in a circular layout, while
taking bad pairings into account to avoid conflicts within groups.

 

 

 


 

  1. Assign Names to Fixed Desks Without Rearranging

The Assign Names to Desks feature respects the current layout and orientation of desks that a teacher has manually arranged on the slide. Whether desks are rotated, repositioned, or grouped in non-traditional ways (such as bean bags, couches, or different seating zones), this feature simply assigns student names to the desks as they are.

This ensures that teachers can maintain their customized classroom environment, allowing for exact positioning based on various learning areas or furniture setups. Unlike other group creation functions that rearrange desks into grids or circles, this feature keeps your specific arrangement intact and focuses only on assigning names.

 

How to Use the Classroom Groups Manager Tool

Step 1: Add Your Students

You can input student names into the tool’s sidebar in multiple formats:

  • Comma-separated: “Ashley, Catherine, Derek, Liz, Milo, Raysen, Alexandra”
  • Space-separated: “Ashley Catherine Derek Liz Milo Oliver Raysen Alexandra”
  • A combination of both: “Ashley, Catherine Derek, Liz Milo Oliver Raysen, Alexandra”Step 2: Create GroupsAfter entering your students’ names, select the group size (e.g., groups of 4) or assign specific students as group leaders. The tool will automatically balance the groups, taking into account any bad pairings you have saved. You can also group students around selected individuals, perfect for strategic group formations.

    Step 3: Make a Duplicate Slide for Each Class

    For teachers managing multiple classes or needing to create new group configurations over time, duplicating a slide is essential. This ensures that previous groupings are preserved, allowing you to experiment with new arrangements without losing the original layout.

    Here’s how to duplicate a slide in Google Slides:

    1. Select the Slide: In the left sidebar of Google Slides (where all the slides are listed), find the slide that contains the groups or seating arrangement you want to duplicate.
    2. Right-Click the Slide: Right-click on the slide you wish to copy. A drop-down menu will appear.
    3. Click “Duplicate Slide”: From the drop-down menu, select Duplicate Slide. This will create an exact copy of the slide, which you can now modify as needed.
    4. Rename the Slide: Double-click the slide name (usually visible in the notes area or in the sidebar) and rename it according to the class or activity you’re working on (e.g., “Block 2: Science Project Groups”).

    By duplicating slides, you can create different group configurations for different classes or activities, while keeping a history of past groupings. This is particularly helpful if you want to revisit a previous arrangement or quickly switch between different layouts for various lessons. It also ensures that you don’t lose the initial setup when experimenting with new configurations.


    Practical Applications for Teachers

    The tool isn’t just for group formation. Here are a few other ways it can be useful in your classrooms:

    • Differentiating Instruction: Assign stronger students as group leaders, ensuring every group has a capable peer for guidance.
    • Avoiding Conflicts: Use the bad pairings feature to avoid putting certain students together, preventing disruptions or conflicts during group work.
    • Creating Varied Groupings: Over time, you can create different configurations by duplicating slides, saving past groupings, and re-using them to keep things fresh.

    Using the “Add Class Name/Label” Feature

    Labeling your slides is important for keeping track of different groupings or activities over time. You can easily add class names or labels to your slides to, for example, “Block 2: Science Project Groups”

    Block 2: Science Project Groups

    Reading Discussion Partners

By duplicating slides and applying unique labels, you can save past groupings for future reference. This means you can easily switch between different configurations and ensure students experience varied group dynamics over time.

The Classroom Groups Manager is designed to offer flexibility in how teachers manage student groups. Here are just a few ways the tool can be used:

  • Differentiate Instruction: Assign strong students as group leaders, ensuring each group has guidance from a capable peer.

  • Avoid Problematic Pairings: Use the bad pairings feature to avoid placing certain students together, allowing you to prevent known conflicts in group work.
  • Create Varied Groupings: Over time, you can create different group configurations and save past groupings by duplicating slides. This ensures good variation and prevents the same students from working together repeatedly.

Manually Adjusting Text for Long Names

Although the tool resizes text automatically based on name length, some longer names may require manual text fitting. To make sure the text fits properly within shapes, you can set the text padding to zero:

  • Select the shape containing the student’s name.
  • Open the Format Options panel.
  • Scroll to Text Fitting and set the left, right, top, and bottom padding to zero:

This ensures that even long names fit within the allotted space. Note that as of this writing, the Google Apps Script API does not allow programmatically changing the text fitting/text padding.

Conclusion

The Classroom Groups Manager simplifies the complex task of managing classroom groups. Whether you’re creating groups for discussions, seating arrangements, or projects, this tool provides the flexibility and control needed to organize your class efficiently. With features like bad pairings, random student selection, and grouping around key students, it saves valuable time while hopefully fostering more dynamic and effective student collaboration.

Try it in your classroom and see how it transforms the way you manage student groups!

 


Make Words Game:

Implementing a Classic Pen & Paper Game in Google Sheets

Introduction

Word games have always been a popular form of entertainment and education, with classics like Boggle, Scrabble, and the New York Times’ Spelling Bee captivating word enthusiasts worldwide. Growing up, I played these games with my family using paper and pencil, which created wonderful memories and a love for word puzzles. Inspired by these timeless games, I set out to create MakeWords, a Google Sheets-based game that brings the excitement of word puzzles into a digital and easily accessible format. This game isn’t just a fun way to pass time; it’s also a valuable educational tool, particularly for ESL and ELL students.

Project Overview

Objective: Form as many smaller words as possible from a given longer word.

Rules: Players are given a long word and must form as many valid smaller words as possible using the letters from the long word.

Video Preview

Educational Benefits

  • Vocabulary Expansion: Players are encouraged to think of and form longer, more complex words, helping them expand their vocabulary.
  • Strategic Thinking: The exponential scoring encourages strategic thinking, as players need to weigh the benefits of finding longer words against the time it takes to think of them.
  • Engagement: The increasing points for longer words make the game more exciting and competitive, which can help maintain students’ interest and engagement.
  • Reinforcement of Spelling: Regularly forming and validating words helps reinforce correct spelling and word usage.

Gamifying Learning

MakeWords is a powerful tool for engaging students through gamification. Teachers assigning this game are leveraging the principles of gamification to make learning fun and interactive. Here’s how:

Engaging Through Gamification

  1. Making Learning Fun: By turning word practice and spelling into a game, students are more likely to enjoy the learning process. The competitive element, where students aim to find as many words as possible from a given word, and the longer the word, the more points are awarded.
  2. Attention to Detail: The game requires students to pay close attention to the letters in the given long word. They need to ensure they are using the letters correctly, checking for duplicates, and verifying the validity of the words. This meticulous approach enhances their attention to detail and spelling accuracy.
  3. Fostering a Competitive Learning Environment: By choosing the same starting long word,and playing simultaneously, users can compete to see who can get the most points in the given time. This healthy competition can drive players to improve their word recall and spelling skills as they strive to outperform their peers.

Tracking Performance and Growth

  1. Timestamps for Tracking Progress: Each game session is automatically named and saved with a timestamp. This feature allows teachers and parents to track the progress of students over time. They can see how students are improving in their ability to recall and form words.
  2. Performance Review: By reviewing past game sessions, shared with teachers or parents, it’s easy to identify patterns in a student’s performance. Teachers can see which types of words students struggle with and provide targeted support to help them improve.
  3. Growth in Word Recall and Retrieval: As students play more games, their ability to recall and retrieve words is likely to improve. Teachers can use the timestamps and saved game sessions to monitor this growth, providing evidence of learning progress over time.
  4. Data-Driven Insights: The structured data from each game session offers valuable insights into a student’s learning journey. Teachers can analyze this data to understand individual strengths and weaknesses, adapting their teaching strategies to better support each student.

Practical Implementation

Assigning the Game: Teachers can easily assign MakeWords to students in Google Classroom. The game is accessible and straightforward, making it easy for students to start playing and learning immediately. Teachers can keep track of usage; this shared access ensures that those involved in the student’s education can see their progress and provide encouragement or additional support as needed.

Encouraging Continuous Improvement: With each game saved and accessible, students can see their own improvement over time. This visibility can be a powerful motivator, encouraging them to keep practicing and improving their word skills.

Technical Setup – Google Sheet Structure

Dictionary Sheet: Contains a list of long words organized alphabetically into columns (A-Z). 

This structure significantly improves efficiency by limiting the search space. Instead of searching through one long column containing the entire dictionary, the search is confined to a single column corresponding to the first letter of the word, making lookups faster and less resource-intensive.

Game Sheet: The gameplay takes place here, where players enter their words and see their scores.

Google Apps Script

  • Random Word Selection: The script draws a random long word from the “Dictionary” sheet.
  • Word Validation: Players enter their words in designated cells, and the script checks their validity, ensuring they can be formed from the letters of the long word.
  • Scoring System: The script calculates points based on the length of the words and handles duplicate entries and invalid words.

Feedback

Providing clear reasons why a word is invalid is vital feedback that enhances the learning experience in “Make Words.” When players receive specific feedback, such as a word being invalid due to incorrect letters or being a duplicate entry, they can quickly adjust their strategies and avoid making the same mistakes. This targeted feedback not only aids in faster learning but also keeps the game challenging and educational. Knowing why a word is invalid or seeing their scores improve encourages players to think more critically and enhances their problem-solving skills, making MakeWords both a fun and valuable educational tool.

A key feature of MakeWords is the use of toast notifications. These are small, non-intrusive pop-up messages that appear briefly at the bottom of the screen. The name “toast” comes from the way these notifications pop up like a slice of toasted bread. Toast notifications are particularly effective because they provide feedback without interrupting gameplay. Unlike traditional dialogue boxes or alerts that require user interaction to close, toast notifications allow players to continue playing seamlessly. Players are informed about the validity of their words and their points without having to click anything to dismiss the notification. This ensures a smooth and engaging gaming experience.

Toast notifications provide instant feedback on the validity of their words and the points they earn. This real-time response keeps students engaged and helps them learn from their mistakes without interrupting the flow of the game. Moreover, this immediate feedback is crucial for maintaining high levels of motivation and engagement, as it helps players understand the rules better and improve their word-forming skills dynamically.

Smart Scoring Method

One of the unique aspects of this game is its smart scoring method, designed to encourage players to find longer words. 

This exponential scoring system motivates players to find longer words, as each additional letter significantly increases the points earned. It turns the game into a more strategic and engaging activity.

Performance Optimization with Binary Search

One significant challenge was ensuring the game ran smoothly and updated scores correctly during fast play. This required an efficient way to validate words against a large dictionary.

Efficient Google Sheet Structure

  • Dictionary Sheet: Contains a list of long words organized alphabetically into columns (A-Z). This structure improves efficiency by limiting the search space. Instead of searching through one long column containing the entire dictionary, the search is confined to a single column corresponding to the first letter of the word, making lookups faster and less resource-intensive.

Why Binary Search?

Binary search is a powerful algorithm for finding an item in a sorted list in logarithmic time. Imagine you’re playing a number guessing game, where you have to guess a number between 1 and 100. Each time you make a guess, you’re told whether the number is higher or lower than your guess. You might start by guessing 50. If the number is higher, you then guess 75, and if it’s lower, you guess 25. By continually dividing the range in half, you quickly narrow down the possibilities.

Applying Binary Search to Word Validation

By organizing the dictionary sheet alphabetically into columns based on the first letter of each word, I leveraged binary search to quickly validate words. Here’s how:

  • Alphabetical Columns: The dictionary is divided into 26 columns (A-Z), each containing words that start with the corresponding letter.
  • Sorted Words: Within each column, the words are sorted alphabetically.

Example:

Suppose a player enters the word “cinema”. The script:

  • Locates the Column: Identifies the relevant column ‘C’ for words starting with ‘C’.
  • Performs Binary Search:
    1. Finds the middle word in the ‘C’ column. With 24,797 words, the middle word would be around the 12,399th word.
    2. Let’s assume the middle word in the 0 to 12,398 range is “cobra”.
    3. Compare “cinema” with “cobra”:
      • Since “cinema” comes before “cobra” alphabetically, search the first half of the column.
    4. Narrow the search range to 0 to 6,199.
    5. Find the new middle word in this range, let’s say it’s “cherry”.
    6. Compare “cinema” with “cherry”:
      • Since “cinema” comes after “cherry”, search the second half of this range.
    7. Narrow the search range to 3,100 to 6,199.
    8. Find the new middle word in this range, let’s say it’s “clementine”.
    9. Compare “cinema” with “clementine”:
      • Since “cinema” comes before “clementine”, search the first half of this range.
    10. Narrow the search range to 3,100 to 4,649.
    11. Find the new middle word in this range, let’s say it’s “cite”.
    12. Compare “cite” with “cinema”:
      • Since “cinema” comes before “cite”, search the first half of this range.
    13. Repeat this process until “cinema” is found or the range is exhausted.

Benefits of This Structure:

Notice how, in just 4-5 comparisons, we got down to less than 1,000 options from the over 24,000 words starting with C. Compare this method to going through the entire dictionary of over 150,000 words every time we want to validate a word! Binary search can reduce the search space significantly, making it ideal for handling large datasets and ensuring quick word validation even during fast-paced play.

Code Snippet for Binary Search:

  • arr: The array (list) of sorted words being searched.

  • target: The word you’re looking for.

  • left and right: The starting and ending indices of the current search range.

  • mid: The middle index of the current search range.

  • midValue: The word at the middle index, compared to the target word.

Implementation Details

Step-by-Step Guide

  1. Set up the Google Sheets: Create a “Dictionary” sheet and a “Make Words Game” sheet.
  2. Google Apps Script: Implement the script to handle word selection, validation, and scoring. Here’s a key snippet from the script:
  3. Start Playing: Draw a random word and begin forming smaller words. The script will handle validation and scoring in real-time.

    Breakdown of the Scoring Formula

    The formula used in cell F2 to calculate the total score is:

    =SUMPRODUCT(IF(ISNUMBER(B4:B45), B4:B45, 0)) + SUMPRODUCT(IF(ISNUMBER(D4:D45), D4:D45, 0)) + SUMPRODUCT(IF(ISNUMBER(F4:F45), F4:F45, 0))

    How It Works:

    • SUMPRODUCT Function: This function multiplies corresponding components in the given arrays and then sums the results. It’s used here to handle both numeric and text entries.
    • IF Function: IF(ISNUMBER(B4:B45), B4:B45, 0) checks each cell in the range B4. If the cell contains a number, it returns that number; otherwise, it returns 0. This ensures that only valid points (numbers) are included in the sum.
    • ISNUMBER Function: This function checks whether each cell contains a number. It’s essential for filtering out non-numeric values like text or empty cells.
    • Sum Calculation: The formula does this for three ranges: B4, D4, and F4. It sums the valid numeric values from these ranges separately and then adds the results together to get the total score.

    This formula efficiently calculates the total points from multiple columns, ensuring that only numeric values are considered, which is particularly useful during fast-paced play.

    Conclusion

    The MakeWords game is a fantastic way to bring the joy of classic word games into the digital age, using tools like Google Sheets and Google Apps Script. Whether you’re an educator looking for a fun classroom activity or a word enthusiast, this game offers endless possibilities for learning and enjoyment. I invite you to try creating your own version and share your experiences!

    Explanation of Functions

    1. Initial Setup Functions
      • onOpen: This function adds a custom menu item to the Google Sheets UI when the spreadsheet is opened.
      • newGame: This function sets up a new game session, renaming the current game sheet with a timestamp, deleting any existing game sheet, duplicating a past game sheet if available, and initializing a new game sheet.
    2. Helper Functions
      • getLetterCount: This function counts the occurrences of each letter in a given word.
      • binarySearch: This function performs a binary search on a sorted array to efficiently find the target word.
    3. Core Game Functions
      • drawRandomWord: This function selects a random word from the dictionary sheet.
      • isRealWordLocal: This function checks if a word is real by performing a binary search in the dictionary sheet.
      • isValidWord: This function validates a word by comparing its letter counts with those of the given long word.
      • isDuplicateEntry: This function checks for duplicate word entries in the current game session.
      • updatePoints: This function updates the points in the adjacent cell based on the length of the word.
      • showToast: This function displays toast notifications within the spreadsheet.
    4. Event Handling Functions
      • onEdit: This function handles the onEdit event, validating the entered word and updating the game state accordingly.
      • processUpdateQueue: This function processes the update queue, ensuring smooth handling of word entries and validations.

    How to Play

    Click the MakeWords game to make your own template. A new menu item called ‘Make Words’ will be created. Select ‘New Game’ from that menu. If you encounter a problem, click on the ‘Extensions’ menu and choose ‘Apps Script’. Then, run the onOpen function from the script editor.

    Running the Google Apps Script shared is safe. Here’s what you can expect during the process:

    1. Authorization Request: When you run the script, you will encounter an authorization request. This is a standard procedure for the script to access specific data within your Google account.
    2. Clicking “Advanced”: During authorization, you will need to click on “Advanced” to review and understand the script’s permissions.
    3. Allowing the Script to Run: You might see a warning about the script being unverified. This is not indicative of any malicious activity. Simply select the option to allow the script to run. It’s important to note that this grants the script permission to read and modify the contents of cells in the sheet, which is necessary for it to perform the requested actions.I hope you find this tool to be a useful game-changer. Here’s to taking tournament management to the next level! Please enjoy these interactive tournament brackets. Play on!

    Full Code Base:

    Make Words Code.gs


Code, Click, Spin: 

Bridging Computer Science, Design, Math, and Physics
to build a Digital Spinner

YouTube Demo:

Article:

Code, Click, and Spin: Creating a Digital Spinner with Scratch, Python, and ChatGPT

 



Author: Avi Megiddo

Google Sheets is a game-changer for managing tournament brackets.

Welcome to the world of tournament brackets reinvented! In this article, I want to take you on a journey that began with my fascination for brackets during my elementary school days. I vividly remember how our principal would post these elaborate double-elimination tournament brackets, drawn with markers on butcher paper, for various school sports, chess competitions, and other tournaments. I would stare at them, eager to figure out the underlying logic. How could the brackets be structured to accommodate scenarios other than 4, 8, or 16 participants? This curiosity stuck with me, and as technology advanced, I continued to think of innovative solutions to simplify the bracket management process.

As an educator and a tech enthusiast, I have frequently observed the struggles of managing tournament brackets. Whether it’s in a classroom setting or a community sports event, maintaining tournament brackets can be notoriously challenging. Handwritten brackets necessitate rewriting names, erasing and correcting mistakes, and a plethora of papers and posters. The process is not just tedious but is also prone to errors. Additionally, subscription-based digital solutions pose their own set of problems such as subscription, privacy concerns, payment issues, and rigid UI. This led me to a question – Can Google Sheets offer a better solution?

Research, Tinkering, and Discovering

In March 2022, prior to ChatGPT, I started to explore the potential of Google Sheets for creating dynamic tournament brackets. The initial design concept was to use the cell border lines strategically to create the tournament bracket lines on which to write player names and to guide the rounds of elimination. This required meticulous work, but I think it was worth it. 

One strong advantage of using Google Sheets is the automatic advancement of winners to the next round through cell formulas and functions.  However, this would require the user to indicate who won.  An early feature I envisioned was the use of checkboxes to indicate the winners.  I found a snippet of code online that could turn checkboxes into radio buttons,  (credit to Ben Collins): https://www.benlcollins.com/apps-script/radio-buttons-in-google-sheets/.  Being able to click once to update match winners was essential for updating the tournament brackets efficiently. I customized this code to suit the specific needs of the tournament brackets.

The journey continued as I experimented with cell formulas and explored the possibilities of Google Apps Script. Later that year, I found an invaluable ally in ChatGPT, which greatly simplified the creation of cell formulas and scripts.

The Final Product: Interactive Tournament Brackets for All

This template is a culmination of innovative thinking, smart use of technology, and the desire to provide an efficient, free, and shareable solution for managing tournament brackets. This Google Sheets tool is designed to be user-friendly, customizable, and efficient. Here’s what it offers:

  • Checkboxes to Indicate Winners: No more scribbling names or making erasures. A single click is all it takes to update the brackets, making the process of indicating winners delightfully simple.
  • Customizable Bracket Design: You have the freedom to use cell borders to design your tournament brackets. Customize the appearance to fit the theme and aesthetic of your tournament.
  • Single and Double Elimination Templates: The sheet provides templates for both single and double-elimination tournaments, catering to different competition formats and preferences.
  • Participant Randomization and Easy Resetting: Randomize participant orders for fair play and effortlessly reset the sheet for new tournaments without hassle.
  • Streamlined Tournament Management: Once the participants’ names are entered into the sheet, tournament management becomes a breeze. The sheet advances winners based on checkboxes, and manages conditional matches, ensuring a smooth and efficient tournament flow.
  • Ensuring Data & Format Integrity with Cell Protection: To prevent accidental changes to crucial data and formulas, cell protection is incorporated into the design. It warns users attempting to edit protected cells and helps maintain the integrity of the sheet. This is particularly useful for safeguarding critical formulas that should not be altered accidentally.
  • No Subscription or Privacy Worries: This tool is free to use and fully customizable. You won’t have to worry about subscription costs, and your data stays with you, ensuring privacy.
  • Engaging for Educators and Students: With its intuitive design and efficient management capabilities, this tool is hopefully both practical and engaging. Educators and students may find it an accessible and educational addition to their tournament activities.

Taking Tournament Management to the Next Level

While this Google Sheets tool is a highly functional solution, it represents a beta version and is continuously evolving. I am excited to share it with fellow tournament enthusiasts, educators, and tech-savvy individuals who appreciate efficiency, accuracy, and user-friendly experiences. Your feedback and suggestions will be invaluable for refining and enhancing this tool.

Follow the instructions below to get started:

  1. Open the template preview of the Single & Double-Elimination Brackets Sheet
  2. Click on the ‘USE TEMPLATE‘ button in the top-right corner of your sheet.
  3. Choose your tournament type: 3, 4, 6, 7, 8, 10, 12, or 16.
  4. Sheets with ‘s’ after the number are single-elimination tournaments.
  5. Do not change the sheet names, as the script relies on them to run.
  6. Enter the names of the participants in Column A, starting with cell A2.
  7. Pick the order, or click the ‘randomize order‘ button for random matchups.

The code:

Running the Google Apps Script shared is safe. Here’s what you can expect during the process:

  1. Authorization Request: When you run the script, you will encounter an authorization request. This is a standard procedure for the script to access specific data within your Google account.
  2. Clicking “Advanced”: During authorization, you will need to click on “Advanced” to review and understand the script’s permissions.
  3. Allowing the Script to Run: You might see a warning about the script being unverified. This is not indicative of any malicious activity. Simply select the option to allow the script to run. It’s important to note that this grants the script permission to read and modify the contents of cells in the sheet, which is necessary for it to perform the requested actions.
    I hope you find this tool to be a useful game-changer. Here’s to taking tournament management to the next level! 
    Please enjoy these interactive tournament brackets. Play on!

Google Sheets Word Search Generator


Create custom word search puzzles with ease using this convenient tool. With just a few simple steps, you can generate word search puzzles using your own list of words.



This tool is perfect for teachers, students, or anyone looking to have some fun with words. Follow the instructions below to get started:

  1. Open the template preview of the Word Search Generator Google Sheet
  2. Click on the ‘USE TEMPLATE‘ button in the top-right corner.
  3. Enter or paste a list of words in Column A, starting on cell A2
  4. Click the ‘make puzzle + answer key‘ button

This tool  will automatically generate a word search puzzle by randomly placing the words in any possible direction within the grid. It will also color-code the cells containing the words to create an answer key. The original sheet’s name with have “-ANSWER KEY” appended to it, it will be duplicated, and the duplicate will have ” – HIDE ANSWERS” appended to its name. This duplicate sheet will serve as the word search puzzle, which can be projected on a whiteboard, shared digitally, or printed.

If you wish to save the puzzle as a PDF, click the ‘Print to PDF’ button. This will create a PDF version of the puzzle in your Google Drive, and open it in a neighboring tab.

The code:

Running the unverified Google Apps Script I’m sharing is a safe and straightforward process. Here’s what you will see on the first run:

  1. Authorization Request: When running the script, you will encounter an authorization request, which is a standard procedure for the script to access specific data within your Google account.
  2. Clicking ‘Advanced‘: During the authorization process, you will be prompted to click on the ‘Advanced‘ option to review and understand the script’s permissions before proceeding.
  3. Allowing Script to Run: After clicking ‘Advanced’, you might see a warning about the script being unverified. This does not indicate any malicious activity. To proceed, simply select the option to allow the script to run.

Please note that by allowing the script to run, you are granting permission for it to read from and modify the contents of cells in the sheet. This is necessary for the script to perform the requested actions and only needs to be done once.

Additionally, I want to clarify that the code for this script was co-authored with ChatGPT. However, it is self-contained and does not involve any external APIs or calls to AI when it is run. Your data and device will remain secure. I hope this information alleviates any concerns you may have.

I hope you enjoy using the Word Search Generator tool to engage and challenge your students or to simply have fun solving word search puzzles. If you have any questions or feedback, please feel free to reach out.

Happy puzzling!

~ Avi


Make random orders, partners, and groups

This is a handy tool that will make organizing random orders, partners, and groups a breeze in your classroom. With just a few simple steps, you can randomize student names, create random partners, and form groups of three or four. This tool is designed to save you time and ensure fairness in your classroom activities and assignments.

DEMO:

To get started, follow these instructions:

  1. Open the template preview of the Google Sheet.
  2. Click the ‘USE TEMPLATE‘ button in the top-right corner.
  3. Paste the names of your students in Column B, starting from cell B3.
  4. To randomize the order of the names, click the ‘Randomize‘ button.
  5. To create random partners, click the ‘Make Partners‘ button.
  6. Click the ‘Groups of 3‘ or ‘Groups of 4‘ buttons as you wish.

The code:

Running the unverified Google Apps Script I’m sharing is a safe and straightforward process. Here’s what you can expect:

  1. Authorization Request: When you run the script, you’ll encounter an authorization request. This is a standard procedure and necessary for the script to access specific data within your Google account.
  2. Clicking “Advanced”: During the authorization process, you will be prompted to click on the “Advanced” option. This step allows you to review and understand the script’s permissions before proceeding.
  3. Allowing Script to Run: After clicking “Advanced,” you might encounter a warning about the script being unverified. This doesn’t mean any malicious activity is occurring. To proceed, simply select the option to allow the script to run.

Please note that by allowing the script to run, you are basically giving it permission to read from and modify the contents of cells in the sheet. This is necessary for the script to perform the requested actions for you.

Additionally, I want to clarify that the code for this script was authored with ChatGPT. However, it is self-contained and does not involve any external APIs or calls to AI when it is run. Your data and device will remain secure. Feel free to use and modify the code as per your requirements.

I hope this tool simplifies your classroom management and fosters a collaborative and inclusive learning environment. If you have any questions or feedback, please don’t hesitate to reach out.

Happy teaching!

Avi


A Scratch version of the NYTimes Spelling Bee

Inspired by the NY Times Spelling Bee, I challenged myself to create a Scratch version of this game.
Rules: Words must be at least 4 letters long, and must contain the yellow center letter. Letters do not have to be adjacent to each other, and duplicating letters is allowed. I created the background hexagons with Google Drawings and Inkscape. In Scratch, I created a “dictionary” based on an English word list from: http://www.mediafire.com/file/5cy3vcsag29ic43/Word_List.txt/file
I also created letter frequencies based on the following sources:
https://www3.nd.edu/~busiforc/handouts/cryptography/letterfrequencies.html
https://en.wikipedia.org/wiki/Scrabble_letter_distributions
https://en.wikipedia.org/wiki/Letter_frequency

I got a great suggestion from Nirmala Sankaran, Co-Founder of HeyMath, to include the total possible words for a given board. This required iterating over the dictionary and checking if each word is valid for each board, given the game rules.
You can find the original code here: https://scratch.mit.edu/projects/603333011


Tangrams in Google Slides

#GoogleSlides #Tangrams #GAFE #GoogleSuiteforEducation #lowfloorhighceiling #visualspatial
  • To play, you will need to edit this file, and you can make a copy by clicking
    ‘File’ –> ‘Make a copy’
  • Click the ‘Shift’ key while rotating pieces to snap to common angles.
  • Implementing Tangrams in Google Slides makes a lot of sense for online/blended learning. It builds multimedia literacy skills, visuospatial skills, and a deeper understanding of how Google Sheets work.
  • This material is suitable for primary mathematics, PYP Design, and MYP Design
  • Creating the Tangrams set from scratch in Google Drawings is a good high-ceiling activity, and a way to teach unit conversion, proportions, aspect ratio, and more.
 

Base Ten Blocks in Google Slides

Base Ten Blocks in Google Slides: Counting, Adding, Multiplying, and Place Value. Math ages 5 – 9.
#GoogleSlides #BaseTenBlocks #GAFE #GoogleSuiteforEducation #lowfloorhighceiling
 

24 Game in Google Slides

24 Game in Google Slides:
Practice basic arithmetic, PEMDAS, build creativity
#PEMDAS #24game #primarymath #mathgames #GoogleSlides #GAFE #GoogleClassroom

Google Anonymous Animal Tokens

#anonymousanimals #GoogleDocs #GAFE #GoogleSlides

Google Anonymous Animal Tokens


Interactive Matchstick Math Puzzles in Google Slides

#matchstickpuzzle #matches #matchstickmath #mathpuzzles #GAFE #GoogleSlides

MATCHSTICK Math Puzzles

MATCHSTICK Math Puzzles.pptx

 


 

Checkers in Google Slides

Checkers in Google Slides

 


 

Othello™ / Reversi boardgame in Google Slides

Othello / Reversi in Google Slides

 


 

 

Design Thinking Challenge:
Create a font for the numbers 0 through 9 in Google Slides

Design Thinking Challenge: Make your own font for the numbers 0 through 9

 

 


 

Number (Cuisenaire) Rods:
Counting, adding and measuring in Google Slides

Number (Cuisenaire) Rods in Google Slides

Number (Cuisenaire) Rods by Avi Megiddo.pptx

 


 

Connect Four in Google Slides: Play & Create Your Own

CONNECT FOUR by Avi Megiddo

 

 

 


 

Pre-Assessment for Differentiation

Activity 1_ Pre-Assessment for Differentiation.pdf


Assessing Project-Based Learning

Activity 1: Assessing Project Based Learning


Data-based Modifications of Formative Assessment

Avi's Activity 3_ Blog Post_ Data-based Modifications of Formative Assessments.pdf