How to Start Volunteering in Computer Science Classrooms
In the late Summer of 2020, still deep in the throes of the COVID-19 pandemic and dealing with a near-constant sense of dread and anxiety, I had an appointment with my optometrist that changed the course of my life and career.
After a few dozen rounds of "A or B, 1 or 2?", he asked me if I still "worked with computers" for a living. I was a Principal Engineer at a cybersecurity company called Automox at the time (their first Principal Engineer, actually, nbd), which I figured qualified as working with computers, and after responding in the affirmative, he told me that his son had been taking a computer science class at his high school.
"Unfortunately," he said, "the teacher seems to be ahead of the students in the curriculum by only a few weeks, so he's not learning as much as he'd like."
I was shocked by the revelation, which brought a whole new meaning to the phrase "those who can't do, teach," so I went home that day and sent an email out to every high school in my area, asking if I could volunteer in their computer science programs in some way. If I'm being completely honest, I didn't actually know how I could help (after all, I didn't have any teaching experience), but I just knew that I needed to get involved somehow.
I ultimately heard back from just one school, but in that one act, I discovered a number of incredible (yet, to me, undiscovered) ways that Software and IT professionals can get involved in computer science classrooms. While my journey quickly led from volunteering in classrooms to actually teaching one, I thought I'd share some of the lessons learned and highlight different ways that my former peers can lend their expertise to the next generation of engineers.
"Sponsored" Volunteer Programs
There are a handful of formal programs that provide opportunities to get involved in computer science classrooms, but the two that I personally joined were Code.org (which seems to have actually decommissioned its volunteer program sometime in the last year or two) and Microsoft TEALS.
If I'm being perfectly honest, your mileage with programs like these will vary.
In the 3-4 years I was on the Code.org volunteer list, I was only ever contacted by one middle school teacher to volunteer to teach at a STEM day that resulted in a two-hour adventure through a blizzard, and the realization that teaching middle school just wasn't for me.
As for Microsoft TEALS, I was never contacted to volunteer... ever.
Volunteering at the Source
If you really want to have an impact, my recommendation is to go directly to the source. From Kindergarten through Grade 12, nearly every school has some sort of STEM program that teaches computer science concepts. While I was (and am) more interested in the potential for real-life change that students can experience at the high school level, I can promise you that elementary and middle schools need volunteers, too; and, believe me, there are many ways to get involved.
The first thing you need to do is reach out not just to the schools in your area, but also to the school district itself, and even your state's Department of Education. While the state and district websites don't always have clear contact information, you can often find a page on volunteering, or even a general contact page that will get routed to the right person (eventually). Keep an eye out for any page or person related to CTE (Career and Technical Education), ETMA (Engineering, Technology, and Media Arts), or STEM (Science, Technology, Engineering, and Mathematics); any of those will get you much closer to a person who can connect you with the right people.
At the school level, most school websites list the contact information for every teacher and staff member. You will want to send an email to at least these people:
- Any/all teachers teaching in STEM-related fields (think Computer Science, Robotics, Engineering, etc.).
- The principal and associate/vice principal(s), who won't actually be the deciders, but will increase your likelihood of getting a response (teachers are busy people, so getting ghosted is more about their workload than it is about their interest in receiving your support).
- Some schools have titles like "Career Counselors" or "Work-Based Learning Specialists" or something like that, which are positions that help students plan their lives after high school and connect them with internships before graduation.
Anyone outside the above sphere of influence might pass on your email, but they are also just as likely to ignore it in the sea of thousands of other things they have to do. Don't take it personally.
What "Volunteering" Looks Like
Once you are in contact with a school (or schools), the next thing to do is figure out what level of involvement you actually want to have. If your work schedule is flexible, then maybe you want to spend time in the classroom as a guest lecturer or assistant, but if you'd rather volunteer on your own time, then you might want to get involved as a program advisor, tutor, or after-school program mentor.
Schools are happy to get any support they can from their communities, so you have options here and are unlikely to get too much pressure to help more than you are able. So you understand the big picture, let's break down a few of the different volunteering capacities I mentioned above.
Guest Lecturing
Guest lecturing is pretty much exactly what it sounds like: you come into a classroom (physically or virtually), and give a lecture or lead a lesson on a topic of your choosing. My first classroom exposure was as a guest lecturer, where I gave a 30-minute talk on "Careers in Technology" to a high school computer science class.
This is a great way to get your feet wet, and can be as simple as showing up and talking for a bit, or as involved as preparing slides, activities, and assignments. The key here is to coordinate with the teacher ahead of time to make sure your content aligns with their curriculum and the students' current level of understanding.
As a now-teacher, I can tell you that guest lecturers are always appreciated, both for the content they bring and for having one less lesson to plan and grade.
Classroom Assistance
Sometimes, teachers have an activity or module that they already have to (or want to) teach, but could use an extra set of hands (or, more appropriately, an extra brain) to help answer student questions or provide one-on-one support.
This is where classroom assistance comes in.
It's not a formal role, per se, but more of an ad-hoc arrangement where you show up to a class session and help out as needed. This can be especially helpful in computer science classes, where both the students and teachers can have a wide range of skill levels and may need varying degrees of assistance.
Program Advising
One of the requirements (at least in the state of Colorado) of a high-quality Career and Technical Education (CTE) program is to have industry professionals involved in the program's development and execution. This is called a Program Advisory, and is an opportunity for industry professionals to lend their expertise to help shape the curriculum, provide feedback on equipment needs, and ensure that the program is aligned with current industry standards.
I joined a program advisory at about the same time I started volunteering in classrooms, and I enjoyed hearing about the challenges and successes of the program from the teacher's perspective, while also connecting with other local professionals who were also invested in the program's success.
An advisory will typically meet a few times a year, and while it's not a huge time commitment (a couple of hours a semester), participation provides an opportunity to influence curriculum, certification paths, work-based learning opportunities, and even internship pipelines for students.
Tutoring and Mentoring
If you have the time and inclination, one-on-one tutoring or mentoring can be an incredibly rewarding way to give back. This can take many forms, from helping a student with homework or projects to providing guidance on college applications and career paths.
The next evolution of my volunteering journey was becoming a mentor for an after-school coding club that the high school I was involved with had recently started. This was a once-a-week club where students would come together and build a project of their choosing, with me acting as a resource and guide. Students could ask questions, get help with coding challenges, and learn about best practices in software development. It was a blast because every one of them chose to be there, rather than being required to attend a class.
Final Thoughts
Volunteering in computer science classrooms is a fantastic way to give back to your community, inspire the next generation of engineers, and stay connected to the ever-evolving world of technology. Whether you choose to guest lecture, assist in the classroom, advise a program, or mentor students, your expertise and experience can make a significant impact.
If you would like to volunteer, but aren't sure where to start, or don't have any particular affinity for connecting in your own district (or your district doesn't have any computer science programs), I am always looking for new advisors, mentors, and guest lecturers for my own classroom.
Feel free to connect with me, and we can figure something out!