The topic of this article may not meet Wikipedia's general notability guideline .(June 2024) |
Formation | 2016 |
---|---|
Founder | David Graham |
Founded at | Pearland, Texas |
Type | Privately Held |
Headquarters | Houston, Texas |
Owner | David Graham |
Website | https://www.codeninjas.com/ |
Code Ninjas is a for-profit educational organization specializing in teaching coding to kids, and is the largest kids coding franchise in the world with over 400 locations open and operating in three countries. [1] It is headquartered in Pearland, Texas. [2] It was founded by David Graham in 2016, inspired by watching his son learn Tae Kwon Do. [3] It has locations in the United States, Canada, and United Kingdom.
Code Ninjas buildings are separated into classrooms and lobbies. The lobbies are for parents to pick up and drop off their kids and have free Wi-Fi, refreshments, and games or toys for the kids to play with while on break or waiting for their parents. Meanwhile, the classrooms (referred to as dojos) have giant desks and are restricted for only Code Senseis (the educators), and Ninjas (the students), aged 7–14, who are given laptops to do programming. Each of the kids start out at white belt, and work their way up the "Path of Enlightenment" to Black Belt. [4] In the "Create" program, different belts have different coding languages. For example, white, yellow, orange, and green belts learn JavaScript. Impact, the latest curriculum launched around May 2023 is structured around Microsoft Make Code Arcade a system that allows for text (JavaScript) or block based coding, their previous program utilized a Konva based game engine, blue belts would learn LuaU, Roblox's own version of Lua. Purple, brown, red, and black belts learn C# with Unity. [4] In black belt, the ninjas are directed to create their own game through the Unity platform. These games are then approved and uploaded to the code ninjas website. Throughout the curriculum, ninjas learn about computer science concepts such as control flow, object-oriented programming, and many other common programming concepts.
Code Ninjas operates on a belt system, similar to karate. Ninjas begin at white belt, then progressing to yellow belt, orange belt, green belt, blue belt, purple belt, brown belt, red belt, and finally, black belt. Each belt has its own curriculum, and each belt usually uses different coding programs and types of coding. Each belt progressively gets harder and difficult, white belt being the easiest and black belt being the hardest. Although belts were originally represented through physicals electronic wristbands which would allow the ninja to "scan into" the dojo, Code Ninjas now does not supply physical bands and instead digitally keeps track of the ninjas' accomplished belts. Some locations still provide wristbands as a form of an accomplishment rather than a key to login for their sessions. [ citation needed ]
Based upon the Code Ninja's Belt System, there are 2 platforms the ninja can use in order for them to start and improve their coding skills:
The GDP, which stands for Game Developing Platform, is a type of software developed by Code Ninjas as their learning software for the curriculum since their launch of 2016. The tools and functions can be found here Code Ninjas GDP Documentation for those who are currently working or started working at Code Ninjas to get a grasp on the software but provided under the file in GitHub: ReadMe.md, it is only strictly available for teaching and is not necessarily used for an open-source project but there is no license under the software of itself. The original reason for its documentation (or fork) was made by someone named Jackson Hagood, for Code Ninjas in Woodlands, Texas, to help improve their efficacy of teaching, but due to the franchise nature of Code Ninjas, it is eventually adapted for other locations across the country. [5]
Despite the software is written in HTML, the ninjas will use JavaScript in order for them to learn how to use JavaScript instead of HTML. White to Orange belt focuses on how the player can learn how to interact the game using mouse click, basic movements, basic object interactions/collisions and events. Once they have reached to Green Belt, they will start working on more complex but similar concepts of collisions, working on platforms, movements and etc. After they finished Green Belt, they will reach blue belt where Roblox Studio becomes the next goal for the ninjas to learn.
The GDP is covered in White, Yellow, Orange, and Green Belt; Language is JavaScript.
Roblox Studio - Lua
The Blue Belt program shifts their focus from GDP to Roblox Studio. This time, the ninja will learn how to use Lua, but they only learn how to make platforms or obbies (shortened for obstacle courses) in Roblox. There isn't much significance in this belt pertaining to learning overall, but it primarily focuses on the humanoid, which is a property that holds the information of the player's health, walking speed, and jump strength, events, and other simple concepts. It is favorited among younger ninjas because it involves Roblox. The reason for this change is not to just learn how to use a different language, but to start preparing the ninja to learn how to use Game Engines. Once they accomplish on completing Blue belt, that is when the curriculum will start shifting to a much more complex concepts like Object-Oriented Programming. This is when Purple Belt and so forth works on Unity and C#.
Roblox Studio is covered only in Blue Belt; Language is Lua.
Unity - C#
C# and Unity is introduced in Purple belt, and is the final software before they reach black belt. This curriculum focuses on the object-oriented nature in C# and how they can apply those principles in making games in Unity. The concepts are similar to past belts, but focuses on abstraction, which is the main premise of object-oriented languages, and learning how to use Unity and the tools it provides to effectively make games in a more professional, industrial level. Purple to Red belt are considerably the longest section to work on, and it requires more time and effort for the ninja to complete. Once the ninja finishes the belts, they go on to Black Belt.
Unity is covered in Purple, Brown, and Red Belt; Language is C#
Capstone Project - Black Belt
(The ninja still uses C# and Unity)
Eventually, once the ninja makes it to black belt, they are given a goal: To create a game for them to publish. Completion time of Black Belt can vary between ninjas. It can take as much as 6 months but go as long as a year or even more. There is no curriculum, but instead a planning sheet for the ninja to use to plan, prepare their black belt game. There is no general direction for the ninja to follow, but he has to follow the plan that he created. If the ninja wants to make an RPG game, he has to follow directions to make an RPG game. Tower Defense, platform games, and etc. requires different paths that they need in order for them to complete their game. They will need their collective knowledge for them to create their game. There are no rules regarding of how they make their game as long they put their effort into it. [ citation needed ]
Once they complete their game, going through series of tests, their game will be published to the Black Belt Website.
Capstone Project can only be done in Black Belt.
IMPACT [6] is a proprietary learning platform made in collaboration with Microsoft as a use of means to teach kids. Despite it being called IMPACT, it is built on top of another platform called MakeCode Arcade made by Microsoft. [7]
During the summer, Code Ninjas offers camps alongside normal classes, where the parents drop their children off for a half-day summer class during the weekdays, either in the morning or in the afternoon. The content of these camps mainly focuses on programming skills, usually coding or other game development aspects in either Minecraft or Roblox; however, other camps such as becoming a YouTuber [8] focus on improving students' computing abilities through other means. Other summer camps offered by Code Ninjas including: 3D design and print with Tinkercad, 3D animation with Blender as well as various Python camps.
[9] [ citation needed ]
Lua is a lightweight, high-level, multi-paradigm programming language designed mainly for embedded use in applications. Lua is cross-platform software, since the interpreter of compiled bytecode is written in ANSI C, and Lua has a relatively simple C application programming interface (API) to embed it into applications.
In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.
A computing platform, digital platform, or software platform is the infrastructure on which software is executed. While the individual components of a computing platform may be obfuscated under layers of abstraction, the summation of the required components comprise the computing platform.
Bytecode is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references that encode the result of compiler parsing and performing semantic analysis of things like type, scope, and nesting depths of program objects.
A game programmer is a software engineer, programmer, or computer scientist who primarily develops codebases for video games or related software, such as game development tools. Game programming has many specialized disciplines, all of which fall under the umbrella term of "game programmer". A game programmer should not be confused with a game designer, who works on game design.
In computing, a visual programming language, also known as diagrammatic programming, graphical programming or block coding, is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations. VPLs are generally the basis of Low-code development platforms.
Game programming, a subset of game development, is the software development of video games. Game programming requires substantial skill in software engineering and computer programming in a given language, as well as specialization in one or more of the following areas: simulation, computer graphics, artificial intelligence, physics, audio programming, and input. For multiplayer games, knowledge of network programming is required. In some genres, e.g. fighting games, advanced network programming is often demanded, as the netcode and its properties are considered by players and critics to be some of the most important metrics of the game's quality. For massively multiplayer online games (MMOGs), even further knowledge of database programming and advanced networking programming are required. Though often engaged in by professional game programmers, there is a thriving scene of independent developers who lack a relationship with a publishing company.
TypeScript is a free and open-source high-level programming language developed by Microsoft that adds static typing with optional type annotations to JavaScript. It is designed for the development of large applications and transpiles to JavaScript. Because TypeScript is a superset of JavaScript, all JavaScript programs are syntactically valid TypeScript, but they can fail to type-check for safety reasons.
MonoDevelop is a discontinued open-source integrated development environment for Linux, macOS, and Windows. Its primary focus is development of projects that use Mono and .NET Framework. MonoDevelop integrates features similar to those of NetBeans and Microsoft Visual Studio, such as automatic code completion, source control, a graphical user interface (GUI), and Web designer. MonoDevelop integrates a Gtk# GUI designer called Stetic. It supports Boo, C, C++, C#, CIL, D, F#, Java, Oxygene, Vala, JavaScript, TypeScript, and Visual Basic.NET. Although there is no word from the developers that it has been discontinued, nonetheless, it hasn't been updated in 4 years and is no longer installable on major operating systems, such as Ubuntu 22.04 and above.
Roblox is an online game platform and game creation system developed by Roblox Corporation that allows users to program and play games created by themselves or other users. Created by David Baszucki and Erik Cassel in 2004 and released in 2006, the platform hosts user-created games of multiple genres coded in the programming language Lua. Early in Roblox's history, it was relatively small, both as a platform and as a company. Roblox began to grow rapidly in the second half of the 2010s, and this growth was accelerated by the COVID-19 pandemic.
In computing, a script is a relatively short and simple set of instructions that typically automate an otherwise manual process. The act of writing a script is called scripting. Scripting language or script language describes a programming language that is used for scripting.
Blockly is a client-side library for the programming language JavaScript for creating block-based visual programming languages (VPLs) and editors. A project of Google, it is free and open-source software released under the Apache License 2.0. It typically runs in a web browser, and visually resembles the language Scratch.
freeCodeCamp is a non-profit educational organization that consists of an interactive learning web platform, an online community forum, chat rooms, online publications and local organizations that intend to make learning software development accessible to anyone.
ASU VIPLE is a Visual IoT/Robotics Programming Language Environment developed at Arizona State University.
Leadwerks is a cross-platform game engine developed by Leadwerks Software that focuses on ease of use and learning. The software supports Windows and Linux, with OS X support in development. Leadwerks is currently on its fourth major version and is sold through the Steam digital distribution platform.
FlatBuffers is a free software library implementing a serialization format similar to Protocol Buffers, Thrift, Apache Avro, SBE, and Cap'n Proto, primarily written by Wouter van Oortmerssen and open-sourced by Google. It supports “zero-copy” deserialization, so that accessing the serialized data does not require first copying it into a separate part of memory. This makes accessing data in these formats much faster than data in formats requiring more extensive processing, such as JSON, CSV, and in many cases Protocol Buffers. Compared to other serialization formats however, the handling of FlatBuffers requires usually more code, and some operations are not possible.