At the start of 2020, Coronavirus struck the world. We were all forced to work from home from mid of March. Around the end of March, I got to know about Navgurukul. Navgurukul is an NGO run by Abhishek Gupta, IITD alumni. The name Nav + Gurukul means “New school” in Hindi.
The primary goal of Navgurukul is to provide one year of computer science education to 12th pass children of parents who have no means of providing for further education. They pick many students from various parts of India and provide them with a one-year residential course. The curriculum is centered around self-learning. The students have to make their food and learn through books, online courses, and mentors. The values gained by students from this experience are beyond what can be provided by the top most schools in our country.
My association with Navgurukul started when Pallavi, the head of the Schools team at CodeChef, started “Problem-solving using programming” classes for a few of these Navgurukul students. The course aimed to improve the computational thinking skills of the students. She wanted some volunteers from the Software Engineering team of CodeChef. Seeing it as an opportunity to learn and gain new experience, I jumped right in along with Ravi, a colleague.
It started with us observing her taking classes of these students every other day via online video conferencing. These classes’ pattern and culture were very different from what one observes in traditional schools or colleges. The students, around 10 in number, were enthusiastic and disciplined. As the students were from diverse backgrounds, not all of them had a working knowledge of English. So the teaching has to be done in both Hindi and English. The teacher’s goal was not to complete the syllabus as soon as possible but to enable students to think and solve problems independently.
There were no prerequisites for attending Navgurukul classes. Every concept was taught from the ground up to ensure everyone is on the same page. We used flowcharts as a means to solve problems and write solutions. Each class starts with a problem to be solved, and then the brainstorming session begins in which the goal is to make students reach the final solution. The teacher’s task was to point the students in the right direction using small hints and allow students to solve the problem by themselves.
After two weeks of observing Pallavi teaching the class, I started taking classes and felt my inability to teach students on the first day. My goal was to make them understand prime optimization. But after like 5 mins of them not being able to reach the solution, I explained it to them. One may think that explaining the solution will help them understand the concept better, but the reality was far from it. After explaining it in detail to them, I asked them to tell whatever I explained, and none of them could answer it. Then I got to know how naive it is to spurt out answers to students without letting them go through discovering it themselves.
Once I understood this lesson, I never gave away the answer to any question directly. Many times that involved thinking on the same problem for many classes in a row, but to give them the answer was not an option. It taught me a lot of patience. Also, the real benefit of learning by discovering is that they will never forget the taught concepts.
Apart from this, I learned a lot of other lessons on my journey of teaching Navgurukul students. Another biggest lesson is never to trust your students when they say that they understood. You can only be sure if they can explain the concept in simple language and answer your cross-questions. Also, everything that you say in class should be well thought out. As there was so much to teach, it is relatively easy to get digressed onto other topics during the class. The best way to mitigate this is by planning ahead of the class. We used to meet before each class and plan what to teach and other scenarios that could play out during the class. This planning helped us stay on track and focused on our class’s goal.
Another important aspect of teaching is understanding and managing your students. Whenever I give any puzzle or question to them, they will start discussing, and the discussion will never end unless you interrupt. It is easy for students to make groups and start discussing questions and topics without listening to what is going on in the class. Other times, the students won’t complete the homework when you have planned the whole lecture on them finishing it. Yet other times, they will be so delighted by solving something on their own that they won’t even let you teach further. These situations have taught me a great deal about managing a class and becoming a better teacher.
Image of the day when they gave their first contest on CodeChef after the curriculum ended.
So, this was the first of its kind experience in my life, and I have learned a lot of lessons by teaching Navgurukul students. At the same time, it improved my knowledge of the fundamentals of problem-solving as well. I would recommend everyone to have a teaching experience once in their life. It teaches patience, articulation, planning, management, and whatnot. Not only will it help in strengthening your knowledge of the subject, but it will also help in understanding how people learn. Thus I am very grateful for being able to experience this. Thank you, Pallavi and CodeChef, for enabling me to go through this journey.
Software Engineer at CodeChef and a recent Teacher 🙂