Teachers will find CodeMonkey offers a friendly but challenging introduction to computer programming, with a bit more rigor and knowledge transfer than can be found in the elementary coding tools that don't engage with actual scripting. The easy-to-read code and easy-to-follow connection between the code and the action make it a perfect platform for talking about some core concepts in programming. Students will enjoy the challenging puzzles and the cartoon setting. To implement, teachers can rely on the full set of detailed lesson plans included in the classroom version and use the dashboard to track student progress and achievements; the interface also includes an answer key. Teachers can see their students' solutions to the challenges and the games they create in the Showroom, where they can share them with the class. For teachers who want or need more support, there are free webinars, video tutorials, and professional development options to help.
CodeMonkey puts students in charge of helping a monkey retrieve its lost bananas while journeying through a whimsical map full of procedural coding puzzles, writing real code in CoffeeScript or Python to solve them. Designed for those with no prior programming experience, each of the hundreds of included levels is viewed from a top-down perspective, and students must write and run code snippets in one area of the screen in order to guide the monkey across each level in another. This separated style helps students instantly see the results of their work, and the game steps through each line of code as it's acted out.
Each new level of CodeMonkey introduces an additional piece of code or a new function, or challenges players to put previously learned pieces together for themselves. Difficulty increases slowly but steadily, and students can see how each piece of syntax affects the outcome. Students can also switch between Story mode and Skill mode, where they get extra practice on the skills they've learned. Students also earn achievements after reaching certain thresholds.
After players get the gist of the interface and puzzles, the focus is on getting each solution to work as efficiently as possible so it receives the maximum number of stars. If students have trouble solving a puzzle or don't receive the maximum number of stars, hints are given as to how to write more effective code. Students can share their best solutions and even create their own challenges once they've finished all the puzzles, while teachers -- with the paid classroom or school version -- can track students' progress and help students with an answer key of all solutions.
Be advised, though, puzzles can be tough and will sometimes stump students. While there's a lot of support -- there are plenty of in-game hints, teachers have the solutions, peers can share theirs, and the developers are available for consultation -- students will still be challenged to do their best. Lessons are grouped into sections that help students learn one skill well before moving on to the next; each lesson builds on previous learning. Programming concepts covered include loops, variables, function calls and definitions, objects, arguments, arrays, for loops, Boolean conditions, until loops, if and if-else conditions, and keyboard and mouse events. More advanced students can eventually move on to creating their own games or setting up new challenges for their peers to solve.
Key Standards Supported
Expressions And Equations
Write, read, and evaluate expressions in which letters stand for numbers.
Use variables to represent numbers and write expressions when solving a real-world or mathematical problem; understand that a variable can represent an unknown number, or, depending on the purpose at hand, any number in a specified set.
Understand that a function is a rule that assigns to each input exactly one output. The graph of a function is the set of ordered pairs consisting of an input and the corresponding output.1
The Number System
Understand that positive and negative numbers are used together to describe quantities having opposite directions or values (e.g., temperature above/below zero, elevation above/below sea level, credits/debits, positive/negative electric charge); use positive and negative numbers to represent quantities in real-world contexts, explaining the meaning of 0 in each situation.
Key Standards Supported
Reading Informational Text
By the end of the year, read and comprehend informational texts, including history/social studies, science, and technical texts, at the high end of the grades 4–5 text complexity band independently and proficiently.
Follow precisely a multistep procedure when carrying out experiments, taking measurements, or performing technical tasks.
Determine the meaning of symbols, key terms, and other domain-specific words and phrases as they are used in a specific scientific or technical context relevant to grades 6–8 texts and topics.
Integrate quantitative or technical information expressed in words in a text with a version of that information expressed visually (e.g., in a flowchart, diagram, model, graph, or table).
Determine the meaning of symbols, key terms, and other domain-specific words and phrases as they are used in a specific scientific or technical context relevant to grades 9–10 texts and topics.
Key Standards Supported
Define a simple design problem reflecting a need or a want that includes specified criteria for success and constraints on materials, time, or cost.
Generate and compare multiple possible solutions to a problem based on how well each is likely to meet the criteria and constraints of the problem.
Plan and carry out fair tests in which variables are controlled and failure points are considered to identify aspects of a model or prototype that can be improved.
Define the criteria and constraints of a design problem with sufficient precision to ensure a successful solution, taking into account relevant scientific principles and potential impacts on people and the natural environment that may limit possible solutions.
Evaluate competing design solutions using a systematic process to determine how well they meet the criteria and constraints of the problem.
Analyze data from tests to determine similarities and differences among several design solutions to identify the best characteristics of each that can be combined into a new solution to better meet the criteria for success.