About 18 months ago, I came across Lalit Pant, the brain behind the Kojo desktop learning environment, working as a volunteer math teacher at the Himiyota School in India. Lalit, like myself, is a programmer and I discovered we have similar goals: making computer-programming fun, simple and easy to learn. What I really enjoy is that Lalit has committed his time to doing this for children.
Lalit spent the first six years of his career as a software engineer in India, most of them at TCS , then in the US for about 11 years, working at a startup in Pittsburgh, and subsequently at Sterling Commerce in Dallas. Increasingly unhappy with where his life was going, and eager to apply his experiences to accomplish something more meaningful, Lalit moved back to India with his wife and children to become a teacher.
Martin Odersky is Chairman and Chief Architect of Typesafe and creator of the open source Scala programming language; this post was co-authored by Lalit Pant, the creator of Kojo .
A Shared Vision
“A little while after arriving in India I started teaching at Himjyoti school. It was a super experience; working with under-privileged but very bright girls was tremendously satisfying and rewarding,” recalls Lalit. “I found I really enjoyed teaching!”
However, like me, Lalit was dissatisfied with traditional approaches to teaching math and science. He found many of the accepted methods to be dry, abstract, and counter-intuitive for many children. He explains that there were major elements missing from the education process, like interactivity, creativity, and the ability to work at your own pace. Being a math teacher who also loved computer programming, Lalit decided to create an environment where learning could be fun- so Kojo was born.
Making Math and Programming Fun
Kojo is a Scala-based learning environment in which children study mathematics using computer programming while practicing logical and creative thinking. With Kojo, students get to play with math, science, art, and music in an interactive hands-on way.
“Over the past year and a half multiple batches of girls at Himjyoti School have been learning Math with me on Kojo, each group for about 3-4 months,” says Lalit. “We first focus on the core Turtle commands, skipping any formal language training. The girls get to think of Kojo as an environment where they can control a turtle. They become familiar with a few basic commands, and then they just code. They create art, they solve puzzles, they do some geometry-based sketches, they compose music. At the end of the day, they have used the computer as a tool to play with ideas, and practice logical and creative thinking. They learn about the programming language naturally.”
Lalit discovered the students soon sharpen their skills and progress well beyond the turtles-only point. The enthusiasts want to start writing Kojo stories, tutorial or teaching worksheets for other students follow while using Kojo. These too are written in Scala–and results have indicated that the girls really get it! “The girls are tremendously enthusiastic about Kojo. When the summer vacation arrived they pestered me to make them Kojo CDs to take back to their villages, so that they could install and continue to use it at their village school.”
When I asked why Lalit chose Scala as the programming language for Kojo, he says it’s pretty simple- “Scala works well because it’s a language with a low entry floor for beginners and a high ceiling for students to grow.” In practice, kids find it easy to just start programming in Scala and use only the features they need. Since beginners start with a very small and simple subset of the language and progress to a level of desired proficiency, there’s a lot of room for them to go as far as they like.
Over the years, I have had the pleasure of watching Scala gain traction on a broad scale–from social media sites like Twitter and LinkedIn, increased adoption in the financial services sector, and even NASA utilizing Scala’s power as they deploy rockets into space. But for Lalit and me, education is where it all begins. When we enable children to program naturally, embracing writing code with enthusiasm and creativity, they will grow beyond the stereotypes of dry, abstract, and intimidating programming. We strive to create the motivating environment that prepares and sharpens their minds for tomorrow’s challenges, building the web frameworks and applications of the future.