For a look at the lighter side of programming, check out the work that the Kogics Foundation is doing to teach underprivileged kids Scala and XHTML.
Join the DZone community and get the full member experience.Join For Free
Take 60 minutes to understand the Power of the Actor Model with "Designing Reactive Systems: The Role Of Actors In Distributed Architecture". Brought to you in partnership with Lightbend.
Back in May 2017, we launched our annual charity survey that looked into the rapidly evolving Fast Data, Streaming, and IoT ecosystem. We're thrilled that we received over 2400 responses, reaching our $5,000 donation goal for the Kogics Foundation, a public charitable trust in India run by Lalit Pant that provides free education to underprivileged children (including programming in Scala via Kojo), financial and in-kind help to the poor, and even medical assistance to those in need.
To learn more about Kojo and the Kogics Foundation plans for the future, we prepared this interview with Lalit. Enjoy!
Q: Can you tell us a little history about yourself and your current projects?
I'm a teacher, programmer, learner, and seeker based out of Dehradun, India. In an earlier life, I used to be a professional programmer. During that time, I built many, many systems (over the course of about 16 years) using a range of languages — C, C++, Java, Prolog, Ruby, Python, and Scala.
One of my primary projects over the past many years has been Kojo. The Kojo journey began when I arrived back in India in early 2009 (after living in the US for about 11 years), and started teaching math at Himjyoti school, Dehradun. While working with the kids there, I found that the standard approach to teaching math was very dry, removed from reality, and not at all enjoyable for kids (or teachers). Key elements were missing — real-world relevance, interactivity, feedback, and the ability for each child to learn at his or her own pace. I decided to do something about this, and thus Kojo was born — as an interactive learning environment, where kids could play with concepts in the areas of programming, math, and science. In late 2014, I started the Kogics Foundation along with my wife Vibha — to provide more structure to our Kojo based and other charitable activities.
My current projects (including work done on behalf of the Kogics Foundation) are:
- Setting up and supporting computer labs in villages.
- Conducting teacher training workshops.
- Developing learning material around Kojo.
- Kojo enhancements.
- Broader work in the areas of education and health.
I have also been getting into Deep Learning (a major subfield of AI). As part of this effort, I recently helped launch a startup in the medical imaging space (to facilitate widespread screening of serious disease). And I am now starting to think about how we can use recent advances in deep learning and data-science to make contributions in the area of education.
Q: So what is Kojo, in simple terms?
Kojo is a learning environment where "youngsters" (from ages 8 to 80!) play, create, and learn. They 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, math, physics, emotional grit, collaboration (via pair programming), and a lot more. Very importantly, they also learn how to learn with understanding. All of this fosters in them a mindset of exploration, innovation, self-reliance, mental discipline, and teamwork — with Kojo as the enabler.
Q: Who's using it nowadays, and what are their experiences?
We get about 100 online launches and 30 downloads a day — from all over the world (over 150 countries in the last year). So lots of people are using Kojo. Most users don't get back to me about their usage. But some do, and I get to hear things like:
"I started playing with Kojo and I am overwhelmed. It is exactly what I have been looking for, when teaching my class "Intro Programming", and I am sure I will happily go on discovering a lot more."
—Peter Gumm, Germany
"I wanted to drop you a short note to let you know about our use of Kojo. Each year we offer a summer camp where we bring in young girls to experience work in technical careers. I have taught on programming in past years, but this year I decided to try Kojo (even though I myself was completely new to it!). I spent last evening running over the basics and delivered the content this afternoon. The girls loved it and it was by far the best session I have had."
—Neil A. Pterson, USA
The core users that I have been involved with at a personal level over multiple years include:
Lund University, Sweden: The effort here is led by Bjorn Regnell, a professor in Software Engineering. Bjorn is a big fan of Scala, and has been a key contributor to the Kojo effort over the past many years. He is currently engaged in introducing Scala as a first programming language for computer science students at the faculty of engineering LTH (and they use Kojo in the first few sessions to get going). He also works at LTH's Science Center where school teachers and kids learn about programming using Kojo and Scala. The following are some numbers from the Science Center over the last couple of years:
- 2015: 5,000 kids tried Kojo and 130 teachers took a course in programming (3 half days).
- 2016: 6,400 kids tried Kojo and 340 teachers took a course in programming (3 half days).
- 2017: There is an even bigger interest this year.
Here are some observations from Bjorn:
- Kojo is the best tool, with a low barrier of entry, I have seen for making real text-based programming available for children, that is also usable all the way up to university level.
- With Scala being a real, industrial-grade programming language, the sky is the limit; and kids can tell if your teaching language is a toy language or if it is the real thing.
- For the future of Kojo I think it is vital that we offer an alternative to the JVM platform. Many schools invest in locked-down machines where Java cannot be installed in an easy way. I would love to see a web app similar to Scastie or ScalaFiddle, but with the Kojo API directly available. I hope the open source community around Kojo can take on this quest.
REACHA is an NGO based in Delhi that has partnered with the Kogics Foundation on multiple Kojo-based projects at the school (formal and informal) and community levels, including teacher training, support with running computer labs, and help with learning material development. The following are some observations by REACHA member/secretary Nikhil Pant:
- Kojo is a very useful tool to supplement ongoing learning-outcome improvement efforts by giving teachers and children a neutral, technology-driven platform wherein every child can potentially learn with understanding — at his/her own pace, and by using/maximizing their respective inherent abilities/talent.
- Kojo can help strengthen learning outcomes by being a mental gym to children.
- It is difficult to motivate teachers to put in the effort required to learn a new tool. Contrary to this, children dive into Kojo activities with enthusiasm and pick up the basics with ease.
- Kojo requires more extensive awareness/advocacy workshops for all child-development stakeholders to fully understand its potential. And validated data on learning-outcome improvements will help a lot with raising positive awareness (and CSR funds) for Kojo-based initiatives.
Kogics Foundation and schools around Dehradun — this is our own effort to keep our feet on the ground and make sure that we are personally involved with helping kids learn. A big part of this effort is to set up and run computer labs — to provide village children all of the learning opportunities afforded by software apps like Kojo. The experiences here have been very promising (but with a fair distance more to go). Kids have done tremendously creative stuff as they have started working with Kojo. But we need to augment this with a more structured approach to solving problems, and more material that directly targets the core ideas in their official curriculum. This is an area of active research for us — how frequently at a minimum should young kids be working with Kojo to get sustained benefits, what should they be doing during this limited time (they have a lot of other stuff going on at school), what kind of learning material should they have access to, etc.
This effort also involves regular teacher workshops at the Kalpana Center, our R&D lab for projects based around Kojo.
Q: Why did you select Scala in the first place?
I moved to Scala in 2007 after getting a little disillusioned with Java. I really liked Scala for its clean integration of object-oriented and functional programming, for its succinctness (and a host of other factors), and saw over time that Scala nicely enabled the following:
- Writing easy to use libraries/DSLs for doing supposedly hard and/or complex things. This is made possible by Scala's flexible syntax.
- Using these libraries with ease to play with the ideas involved — in a simple fashion.
When I started thinking in 2009 about building an app for kids, Scala (as both the implementation language and the user-level scripting language) was an obvious choice for me. And I think that time has borne out the validity of this decision, with me being able to provide DSLs for turtle graphics, compositional shapes, gaming, and circuits within Kojo, enabling kids to play in all of these areas with a fair amount of ease and simplicity.
Also, as I like to say (borrowing a phrase from Mitchel Resnick of Scratch fame), Scala is kind of the ultimate embodiment of the idea of a low floor, a high ceiling, and wide walls. It's trivial to get going (turtle graphics in Kojo), the sky is the limit (Apache Spark?), and there's a huge range of areas to play with (every area of computation under the sun, via the vast Java ecosystem). So it's pretty much always going to help you get the job (well) done, whatever the job. That was a good feeling to have while starting out.
Here are some sample Kojo programs to show the above ideas in action:
A turtle drawing:
A ‘shape’ drawing:
Another ‘shape’ drawing:
A simple game:
A simple Arduino program:
Q: What were some of your most memorable successes and stumbling blocks?
The beginning of the Kojo journey was very positive and encouraging. On the day that I announced Kojo on the Scala mailing list, I got a very favorable reception; people started using Kojo across the world and sent me good feedback.
I had many great moments during the Kojo years at Himjyoti school, as I saw ideas click in the heads of the bright girls who study there. The initial years at the Kalpana Center were also a time of joyful experimentation, learning, and creation — for both the kids at the center and me.
A sustained success has been the use of Kojo, spearheaded by Bjorn Regnell, at Lund University in Sweden.
I have also had the honor of being interviewed (or written about) by some of the top minds/companies in the technology industry — Phil Bagwell, Martin Odersky, Geertjan Wielenga/Oracle, Thoughtworks, and more. These interviews really helped in articulating the message, spreading it across, and increasing the size of the Kojo ecosystem.
And last but not least, I have had many great Kojo moments with my kids, Anusha (16) and Aditya (9). Anusha got on the Kojo train right at the beginning and has done very well during the journey — learning herself, teaching other kids, writing games for younger kids, helping with book-writing, etc. Aditya is now starting to follow in her footsteps.
A major stumbling block has been fitting Kojo within school schedules in a manner where it can be effective. Teachers (especially) and children these days are simply too busy with a gazillion things that need to be done in a time-bound manner — to actually have the stamina to care much about things that are beyond their immediate curriculum. Our approach till now has been to keep the lamp burning and be happy with whatever benefits we can provide. To overcome this hurdle, we need to tap into levels above the school administration. We plan to do so, soon.
Q: What your plans are for taking Kojo to the next level with this charitable contribution?
This contribution will help with the following:
- Setting up a new computer lab in a village school.
- Organizing teacher workshops.
- Creating new learning material.
- Remunerating selected teachers to make the above more effective.
- Getting an experiment going with setting up a library in a village school.
Many thanks to Lightbend for enabling all of the above via this contribution!
Q: Looking ahead, what are your long-term plans for Kojo?
The next frontier for Kojo is running within the browser. This will make the Kojo experience available to a much larger number of kids. This is starting to get important as schools invest in locked down systems where Java is difficult or impossible to install.
One of the features of Kojo is the storyteller — where teachers (or kids) can write stories (using a combination of Scala and XHTML) to explain ideas to others. This has the potential to really take off with a browser-based version of Kojo. In this context, Kojo can become a rich, powerful, integrated, easy authoring environment that kids can use to create and share their interactive projects and games with their peers, and teachers can use to create curated explorable explanations on important topics for children around the world. And if you combine this with machine intelligence to augment what works and tweak what doesn't, you have the makings of a very serious learning platform.
So there's a long and exciting journey ahead, with plenty of work that can be shared across multiple skill sets. If any this sounds interesting, please get in touch with me at firstname.lastname@example.org. We can use your help — all the way from funding to design & coding to learning material development.
Published at DZone with permission of Oliver White , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.