My First Global Teaching Experience

My experience teaching Python as a Section Leader at Code in Place 2021 — and why it was the best thing to happen to me during the pandemic.

Sanjana Chakravarty
12 min readJun 13, 2021
Code in Place 2021 application portal

I am ashamed at how long it took me to finally sit down with this blog that I have intended to write for weeks now.

More than a month ago, I volunteered to be a Section Leader at Stanford University’s Code in Place 2021 edition.

Code in Place started out as just a course, but by the end of it everyone had so much fun that we just kept adding more and more things to do together as a community.

Introduction

Code in Place is an initiative led by some professors at Stanford University to create a global community of 12,000 students and 1,100 volunteer teachers, or “section leaders”. This is a free online course born out of the pandemic situation and is a 6-week introduction to Python programming using materials from the first half of Stanford’s CS106A course.

What makes Code in Place different from any online course on say, Coursera, is the community. Apart from the recorded lectures prepared by the Stanford professors, students are invited to join a 50-minute weekly section every week. A section is led by a section leader (that’s me!) and it consists of about 8–10 students. This is an opportunity to interact with other students and get a taste of live, collaborative coding and interactive learning.

Now that we’ve got the introduction out of the way, let me dive into my experience with the program.

Based on my limited past experiences, I’d realized that I like teaching — but for several reasons (financial constraints, low confidence, lack of experience) I hesitated to say that I want to take it up as a profession.

I got to know about this opportunity from a friend — she knew about my dilemma and forwarded me the link to apply as a teacher. I honestly wouldn’t have, had I not read this on the application portal:

Know how to program but don’t have much teaching experience? Please apply. We learned from last year that new teachers were amazing and inspiring. We would like to help you become the great instructor you can be.

I loved how they emphasized on this point, and how even people with no teaching experience are also encouraged to apply. It’s almost as if they knew that someone like me would have opened the link with the intention to close it immediately after and never return.

Where else would people be so willing to take an inexperienced person like me in a teaching role — where else would I get a better opportunity to learn how to teach, where beginners would be encouraged? With this in mind, I applied — initially keeping no expectations, and then slowly realizing exactly how much I wanted to do this.

I have 2 years of Python experience and 6 years of programming experience overall — I suppose that helped my confidence a lot too.

I might be using some abbreviations throughout this blog:

CIP — Code in place

SL — Section leader

Want to read this story later? Save it in Journal.

Application

The application surprised me, to be honest. I was expecting questions about my resume and university CGPA (though now it seems ridiculous for me to be thinking this) — but the form did not ask for any of this.

There were short essay type questions where we had to describe ourselves and any prior teaching experiences we might have had already (it’s alright if you do not have any!), and our prior programming experience (with emphasis on Python).

The second part of the application is what I found most interesting. It was also the most time-consuming half of the entire application.

Debugging a piece of code

Given a buggy code, I had to debug it. I spotted one major logical error, one major syntax error and one minor style error. Here is the following code, see if you can spot them too:

def main():
dictionary = {}
dictionary["learning"] = "awesome"
dictionary["coding"] = "fun"
# ... Fill with more data
remove_keys_containing_string(dictionary, "learn")
print(dictionary)
"""
This Python function takes in a dict and a string and removes all keys containing that string from the dict
"""
def remove_keys_containing_string(dictionary, remove):
toRemove = None
for key in dictionary:
for i in range(len(key)):
print(key[i:i+1])
if key[i:i+1] == remove:
toRemove.add(key)
if toRemove != None:
for key in toRemove:
del dictionary[key]

When writing the explanations for the error, I imagined explaining it to a student, without making any assumptions or leaving any explanations incomplete and dangling.

In the next part, I was asked to guide the student who wrote this code. This didn’t mean simply pointing out the bugs and how to fix them, but to analyze them and find out the thought process of the student — identify where the confusion may lie, and how to explain the concepts that the student might be struggling with.

Teaching Demo

Next, we had to record a 5–6 minute demo video of ourselves teaching a small snippet of code in Python. This was the code to be taught:

# File: marsweight.py# we use constants!
MARS_MULTIPLE = 0.378
def main():
# technically weight is measured in newtons, but one of your
# goals is to focus on the python, not the physics!
earth_weight_str = input('Enter a weight on earth: ')
# input() returns a value in string form, get the number out
earth_weight = float(earth_weight_str)
# more variables is good times when first learning
mars_weight = earth_weight * MARS_MULTIPLE
# note the string concatenation!
print('The equivalent weight on Mars: ' + str(mars_weight))
if __name__ == '__main__':
main()

If selected, CIP team contacts you for the onboarding process.

Teacher Training Workshops

All new SLs had to join two mandatory Teacher Training Workshops. We were divided into groups of about 10 SLs, and each Teacher Training Group had two teacher mentors who were to guide us on how to prepare for our first ever section, and how to tackle tricky situations during them.

I missed my first workshop and had to join a different slot, unfortunately. We introduced ourselves and then we had a brief skit of sorts where the teacher mentors pretended to be the section leaders and we were the students. Once this skit ended, we discussed what went well and what could have gone better.

The second workshop was a lot of fun because I attended my own slot so I felt like I belonged in that group. Here, we discussed how our first sections went and answered some questions that helped us reflect upon the section and how they respond.

We also had a short activity on handling difficult situations in section, and how to respond to them.

The training workshops were fun because it helped us get introduced to some other SLs and make friends there. Since most of us seemed nervous at first, knowing that everyone’s in a similar situation helped me feel better.

My Section Experience

Unfortunately, CIP took place at the same time as India’s second wave of COVID-19 cases. With 30% of students being from India, this meant that many of the sections in the India-friendly time zones suffered from low attendance. I got infected just before my first section as well, but thankfully my symptoms were mild and so I still managed to take my section.

But I was lucky that I had at least three consistent sectionees attending my sections every week.

I’m currently a student myself, so I had an idea of how awkward online classes can get — sometimes you may get students who do not interact at all and you have to speak to yourself for an hour straight. I came prepared expecting the worst, but thankfully it was nowhere near that bad.

I had one student who knows programming already (but not in Python), one student who is an economics major graduate (so they knew some mathematical concepts) and another who was a complete beginner to coding. My biggest challenge was preparing a section that would not be too boring for the one who knew coding already, and not too advanced for the beginners.

Thankfully, I am not sure how I did it, but sections felt natural. The students did interact a lot and let me know of what doubts they faced.

I allowed the students to do all the coding, and run into the bugs themselves, and if needed, debug it themselves too. I was there just to nudge the group in the right direction when everyone is stuck, and to discuss different approaches to the problems.

I realized that I also had to prepare a short recap, in case students were not able to review the lecture material before coming for section. I had to keep in mind that for a lot of people, this pandemic is a hard time, and everyone is volunteering their free time for this, even thought they’re all busy people. I am very thankful to my sectionees for all the efforts they have put into this program. It made my experience as a section leader very fulfilling as well.

Most sections had two (or more) short coding problems, sometimes it was only one, but this was rare (first section had ice-breakers, so that took up some of the coding time). I found it difficult to finish everything on time, because I did not want to extend section, out of respect for the students’ time. Somehow, I did manage quite fine, though.

I preferred to use the whiteboard (provided by OhYay — the tool we used to conduct sections) over slides. I used slides in the week we had to code image manipulation, because I wanted some visual representation that would take a lot of time to draw on the whiteboard.

But otherwise, I preferred the whiteboard because it kept things dynamic. I could change the content on the go, depending on how the section is progressing, and it makes me feel more like I’m in a classroom. A lot of SLs created and used very beautiful slides for their sections, and these slides really inspired my sections too. Shoutout to those SLs for their amazing contribution to the whole community!

We had a surprise cheerleader!

Another massive shoutout to the OhYay team for the amazing work they did. The tool had a collaborative workspace, a whiteboard, a breakout rooms option and also a common room. You could type messages, react or share your screen too. I was very comfortable on OhYay and hope I get to use it again someday!

The entire CIP community also had a forum on Ed to keep in touch with — and we sure made full use of it! All announcements, posts and discussions were held there.

It was hard saying goodbye in the last section

Training the AI Grader

The AI grader is one of the ambitious projects undertaken by the CIP staff. It’s an attempt to build and train an AI model which will be able to grade the code of students. This is more difficult than it sounds initially because there’s just so many ways a code can go wrong, and for various different reasons.

I volunteered to help train this grader in my free time on the weekend, along with around 50 other SLs. Grading the code of students was a new experience for me, and so I had a lot of fun. I got to analyze the bugs and imagine what the thought process of the students might have been when they were writing that code.

But I spoke to a lot of SLs who are also teachers by profession and they said it was boring because they do it all the time. Since I’m new to teaching, I found this really fun, but I can imagine doing this for days might make it very dull.

I hope the AI grader is a success in the near future!

The Tea Room

Students of CIP might be a little unfamiliar with the tea room, because this was only for the SLs.

The tea room was a hangout space for all the SLs on OhYay. It had a bunch of rooms I never got to fully explore, but here’s one of them — the jigsaw puzzle!

We missed a piece!

You can meet other SLs all over the world in the tea room and just chat, or talk about interesting things. I made a lot of friends in this room and it was one of the most fun experiences in CIP!

SL Workshops and AMAs

Even though all the 5 sections came to an end, we didn’t want to say goodbye just yet! So the staff allowed us to hold workshops or meetups for SLs, and AMA sessions for the students.

People come from all kinds of backgrounds and have varying levels of experience in CIP. Everyone has something to learn from each other, and that’s why these workshops were so beneficial for us! It was a great opportunity to learn something new or just to network with people from similar backgrounds or experience. Some of us even found mentors or study partners from these sessions!

The AMAs were for the students to ask questions to SLs about their experiences. I held the last AMA for CIP — on Women in Tech. It was a fun experience and I got to answer many questions and interact with so many women who are interested in making a mark in the industry.

We also had AMAs from the teaching staff — the SLs got to interact with some incredible people in the CIP team and at Stanford who told us about their experiences. These sessions were one of the best parts of CIP.

Extras

Although students won’t get a certificate, they will get to showcase a project by the end of the course. The SLs will be given a certificate (and a lot of them have received theirs already).

There is also a t-shirt for CIP 2021 that we can buy. If you aren’t able to afford one, someone else can also sponsor yours for you.

Conclusion

My age was a reason why CIP was such a valuable community for me. I am only a sophomore, and the minimum age to be an SL or a student was 18. This meant that I was one of the least experienced people on the team. There were SLs with many years of industry experience, who are already professors, or are just students with more years of learning than me. Knowing that I am one of the least experienced allowed me to be completely vulnerable about my weaknesses and the fact that I have so much to learn. I had so many questions, and there were so many kind people willing to answer them.

The same goes for the students. All my students were either older than me or had more experience than me. Knowing that, and still being the “teacher” in the room was a humbling experience for me. It was a very healthy environment — and I really appreciated that. Everyone in the teaching staff was very approachable too, and that made me rethink some things about the hierarchy that is so prominent in India and other Asian countries.

What makes CIP so special is the people in it. The students who volunteered 40+ hours of their time, without the promise of a certificate or degree or grades, just to learn coding. The section leaders who volunteered their time without any incentives other than the joy of the experience. The staff who were present throughout and were involved in everything that was going on, despite being very busy people themselves. The way everyone encouraged each other.

I really would love to have a CIP 2022 edition, but that would mean the pandemic has to stick around till 2022, and I sincerely hope that does not happen. Hopefully, we can have some other program in place of CIP in 2022. I would still love to be involved in the programs organized by the lovely people of the CIP team.

Thank you to everyone on the CIP team for making this possible:

Thank you to Julie Zelenski, Chris Piech, Mehran Sahami, Kate Rydberg, Kylie Jue, Cathy Zhang, Michael Chang, Moussa Doumbouya, Lisa Einstein, Brahm Capoor, Miranda Li, Patricia Wei and Yosefa Gilon.

Thank you to the students and section leaders who were there for this whole experience.

CIP was the highlight of my pandemic. It boosted my mental health and my confidence, and made me learn something new about myself and my own capabilities.

I remember saying I hesitated to say I wanted to be a teacher. I still do not know if it’s possible for me to be one (because my constraints have not magically vanished yet) — but at least now I can say one thing with confidence. Regardless of whether I want to be a teacher or not, I know I really love teaching.

Creating something of your own? Join the Journal slack community for support from creators like yourself.

--

--