Coding for Carrots | Google Doodle

Anna Boyle
Design for Educational Games | Spring 2021
7 min readMar 31, 2021

Game Critique | 4

Design for Educational Games
Instructor | Erik Harpstead
Spring 2021

All images courtesy of “Code for Carrots”.

Game Metadata

For my fourth Game Critique, I have decided to review “Coding for Carrots”, a mini Google Doodle browser game that is designed in association with Computer Science Education Week as a game that celebrates 50 years since kid programming languages were developed.

Coding for Carrots is:

In the interactive Doodle, you program and help a furry friend across 6 levels in a quest to gather its favorite food by snapping together coding blocks based on the Scratch programming language for kids” — From the Google Doodle Archive

The game was developed by the Google Doodle team, Google Blockly team, and researchers from MIT Scratch.

Learning Objectives

The primary learning objective for “Coding for Carrots” is to introduce a large audience (through Google Doodle) to the power and playfulness of the kid coding language Scratch while also celebrating its history and orgins.

Although, quite subtle “Coding for Carrots evaluates players on how efficient their code is in achieving the best outcome based on the different scaffolded tasks and trails of “coding for carrots” that the bunny is presented.

Through writing code in Scratch, players engage with 6 levels of coding that increase in difficulty as players program the movements of a bunny along a specific path in order to collect the carrots associated with the outline of the shape they are presented with.

Game Elements

The core mechanics and game elements of “Code for Carrots” include:

  1. The Bunny Character — This is the character that you interact with and moves through programming at each level of the game.
  2. Six Levels — The different levels of programming that the bunny engages with that increase in difficulty.
  3. The Code Box — where the Code Blocks and elements live.
  4. The Bunny Code Block — Placed at the beginning of each activity.
  5. The Arrow Code Block — That engages the bunny in hopping forward.
  6. The Turning Code Block — That engages the bunny in turning left or right.
  7. The Looping Code Block — That gives players the ability to run the same code on the bunny multiple times.
  8. The Play Arrow — That gives players the opportunity to test and interact with their line of code to see if it is an accurate representation of achieving the best goal.
  9. The Shortest Solution Score — After each level players are presented with the shortest solution score based on their performance.
  10. Sound — That indicates movements or interactions.
The “Arrow Code Block”
The “Turning Code Block”
The “Loop Code Block”

Overall the mechanics of this game are relatively easy to engage with as players are introduced to the different code blocks at the beginning of the game and have the ability to test the different interactive code blocks before moving on to the next level.

Engaging with the first level.
Engaging with a more advanced level.

In each level, players have the ability to click and drag code block elements into the code box and playback their line of code as many times as they want in order to advance on to the next round. There is no indicator that you are taking the most efficient or preferred approach to what you develop. A lot of it feels like trial and error.

As players advance on to the next level they receive a brief piece of feedback indicating whether or not we're able to achieve the shortest solution through an indication of color outlining a sore badge— but it’s difficult to determine just how well or poorly you performed in a specific level. This progression continues until you’ve completed all 6 levels and are then prompted to share your experience or score via social media platforms as a form of celebrating the history of kids coding.

Learning Principles

The main learning principles that I have identified in “Code for Carrots” include.

  1. Pretraining
  2. Scaffolding
  3. Application
  4. Feedback

Below I will cover all 4 principles and the effectiveness of their use.

  1. Pretraining — This is represented at the beginning of the first 3 levels where you are being introduced to the 3 different code blocks: arrows, turns, and loops. Providing this opportunity to test the elements before moving into the activities was pretty effective. However, personally, I wasn’t able to fully understand the application or effectiveness of the “Loop Block”.
  2. Scaffolding — This is represented in how each level increases in difficulty and the player's ability to use different variable code blocks to achieve the best outcome.
  3. Application — After completing the pretraining involved with learning the application of each code block players are then given the chance to apply their new knowledge at the level that proceeds the pretraining activity. Here players engage with the code box where they click and drag elements to guide the bunny’s interaction along the path that has been presented to them at a specific level. This proves to be relatively effective as players have the ability to test their code in realtime and make adjustments to their code as needed.
  4. Feedback — This is represented through the feedback that is provided during and at the end of the activity via the shortest solution scoring card.
    Personally, I felt that the effectiveness of the feedback was quite limited. It isn’t until after you’ve completed multiple levels that you receive feedback on the effectiveness of achieving the “shortest solution” and even then the representation is unclear as to whether or not you did well or poorly.

Overall Critique

Overall I have mixed feelings about “Code for Carrots” as an effective educational game. Although I feel like it is well designed for the purposes of a coded, interactive, Google Doodle associated with the history of kids coding. I believe it falls short in a lot of areas as an effective education tool and has a lot of potential to be better.

For example, playing this game I was interacting with the experience solely as a beginner player and often times found myself “hacking” different ways to navigate the task and path I was provided. However, even though I was able to make it through each level, I didn’t know if I was doing it correctly. (i.e. I didn’t use the “Loop block” once because I wasn’t really clear on what it did.)

Based on my experience I have outlined a few recommendations below that I believe would aid in enhancing the learning experience as a whole.

Feedback — I think this could really be improved. Receiving feedback or clues during the learning experience as opposed to after the experience would guide beginner learners in understanding the key principles and learning objectives early on as opposed to feeling lost or “hacking” their way through the different levels as I did.

The Code Box — It was difficult to review the patterns I had developed in the code box as the levels became more challenging, I wish that this box was expandable to provide more visual context to a learner's actions.

Scoring — I think this could also be improved. If I could have engaged with a specific point system or scoring system that made sense as I was interacting with the experience I think it would have motivated me more to do better. As opposed to just trying different patterns and testing them through trial and error.

Context — I have dyslexia and found the turn left and turn right arrows to be a little confusing when interacting with them. It would have been nice to have a hover state over the code blocks that explained the use or showed an action video to help players reinforce their understanding over time.

--

--