Why learn to program? Why Kojo?
Why learn to program?
Here’s a brief answer:
- To better understand the world around you - by gaining a deeper knowledge of computation, the foundation of the digital world that’s augmenting the physical world.
To make this idea more concrete, here are some examples related to computation, it’s delivery, and its effect on the world:- What are some examples of computations that we consume every day?
- Google search, Google maps, Amazon/Flipkart, Ola/Uber, Netflix, Banking, etc., etc.
- How are these computations delivered to us?
- Via (web)apps.
- Computations are getting more and more prevalent. Smart cities provide a good context to think about this:
- IoT, AI, Robots, Systems.
- Transportation (e.g. smart traffic lights).
- Health (linked body sensors ↔ transportation ↔ hospitals).
- Energy (smart buildings, smart road lighting).
- Security (cameras, sensors, social feeds).
The above ideas are meant to highlight why it is important to learn about computation if you hope to understand the world around you at a non-superficial level.
- What are some examples of computations that we consume every day?
- To get good brain exercise (with reinforcement, given the goal oriented and interactive nature of programming).
- The exercise is in the areas of logical, creative, and critical thinking.
- To have a new way to learn subjects like mathematics, art, music, and science.
- For deeper understanding and exploring synergies.
- As a medium to understand processes and learn problem solving.
- To provide practice with the process of creation, analysis, and design.
- In our education systems, there’s a lot of emphasis on acquiring information, but very little emphasis on doing anything with that information. A process is about doing things, and regular practice with processes is very important for children.
- As a rich medium for communication and collaboration.
- To build up a scalable world changing skill.
- And cultivate an inventor mindset.
- Or get a job and earn a decent (or great) living.
Why Kojo?
Kojo has the following things going for it:
- It is a modern programming environment.
- It uses a powerful programming language that has good support for all the essential ideas in computing.
- It has rich activity areas that you can program in.
- It provides exciting opportunities for physical product design and development.
Individually, each of the above features is very useful to have in a programming environment. Collectively, these features enable Kojo to provide a very fertile space for empowered exploration, discovery, creation, innovation, and learning.
The motto in Kojo is – Play. Create. Learn.
In Kojo, children play with small Scala programs. They create drawings, animations, games, and Arduino based intelligent circuits (with appropriate additional hardware). And they learn logical and creative thinking, programming, problem solving, math, physics, emotional grit, collaboration (via pair programming), and a lot more.
Take a look at the Kojo Showcase (from the Showcase menu inside Kojo) to get a feel for what is possible with Kojo.
One of the major foundational goals of the Kojo project is for kids to learn how to learn with understanding – given the opportunity to apply learned ideas to many different situations, and the exploration, discovery, and creation involved in this process. All of this fosters in them a mindset of experimentation, innovation, self-reliance, growth, mental discipline, and teamwork – with Kojo as the enabler.
The above ideas (and their implementions in Kojo) relate well to the fundamental goals of education that were enunciated very nicely by Shri Auribindo: Learn to know, Learn to do, Learn to be, Learn to live together.