My time in the High School Computer Science

I had the opportunity to support one of the local Loudoun County High Schools this year by volunteering to assist in AP Computer Science as part of the TEALS program (www.tealsk12.org).  TEALS provides volunteers who can teach an entire computer science class for schools that do not have access to trained educators, and also provides teacher assistants (TAs) for schools that already have teachers, but would like additional support in their programs.  Loudoun already had teachers, so I volunteered as a TA (which was fortunate, as my schedule wouldn’t have supported the responsibility of the full class).

As a TA, my role was to participate in the 90 minute class a few times a week (block scheduling puts the class at alternating schedules of two or three days per week).  The classes are purposely scheduled in the first block so I could be done in the morning without much impact on my work day (and those who know me realize that my “work day” is the other 22.5 hours).  There were weeks where I could participate in each class, and then there were stretches where work conflicts prevented me from being there at all.  Some days I arrived early to meet with students to help with projects, and some days I had to leave early for work commitments – the schedule was more flexible than I had expected, and that helped me manage the time.  Overall, on average I estimate that I was able to be there once or twice a week through the whole year (note: there was another TA supporting the class, and that helped with coverage).

My initial expectation was that I would spend most of my time supporting the teacher, Doug Poland (from here on: Doug) with curriculum delivery, and that I’d pepper in some industry anecdotes and enrichment on the side.  After a few days I realized that Doug had the curriculum well in hand – he was awesome with the students and really knew how to deliver the class content at the right pace for the class.  In addition, the students were hesitant to approach me on the classroom content, so opportunities to help weren’t as common as I’d expected.  So, for the first few weeks, I did my best to provide real-world context for the topics we discussed, and I also did some fun demonstrations of new technology and programming tools.  As I developed a rapport with the students they began to ask more questions and I got more involved in helping them with classroom and extracurricular projects.  Overall, much of my engagement with students was driven by project work that wasn’t necessarily part of the curriculum – which I believe is a result of having a highly competent teacher for the classwork that provided me the bandwidth to provide additional enrichment and experience that went beyond the classroom topics.

The end result was very positive: the AP Computer Science test scores for the class was significantly above the national average, and they had more than double the number of students with a 4 or 5 score on the test than last year.  Of course, we may have had the benefit of an unusually talented set of students (and they were, in my opinion), but I also believe that the combination of strong curriculum coverage with additional enrichment and industry experiences played a nice role in the success.  Nice enough to warrant further pursuit, at least.

It was a fantastic experience, I learned and grew a great deal through the year, and I think (hope) that I had a positive impact on the students, as well.  As we start preparing for the next school year, I’d like to share my motivations and learnings with the goal of motivating more industry professionals to get involved in some way.

 

Why I did it

My role at Microsoft deals with working with companies who build solutions for Education, and I also have responsibility for inspiring students to pursue STEM and Computer Science disciplines.  I’ve worked with the Education industry for some time and I have several educators in my family, but I felt that if I really wanted to understand the environment, I had to immerse myself in it.  That meant getting into the classroom and working directly with the students and teachers.

The larger motivation, however, was personal.  I have a deep passion for the advancement of technology, and I see, first hand, the challenges that many companies face with the dearth of good technical talent.  I believe that innovation and entrepreneurship are the keys to unlocking our national economic potential, and that innovation is fed by education.  Without a large, diverse pool of technically educated citizens, economic growth will continue to languish.  I see the amazing opportunities (jobs and entrepreneurship) that are available to Computer Science graduates, and I’m frustrated that more students are not pursuing this path.

So I decided to pitch in and try to help make a change, and the best place to start for something like this is close to home.  Fortunately, the TEALS program and the Loudoun County Public School administration provided the structure to allow me to do so.

 

What I learned

My first observations and realizations were about the students.  It was a big class (35 students) with very diverse skill sets.  Some students were fairly new to programming, while a few others were very advanced.  AP Computer Science is an elective class, so they were all very sharp and motivated, which made things a bit easier on me, I’m sure.  Girls were a small minority (~15%) – which is an ongoing problem that we need to address. 

The first surprise was seeing how collaborative the students were.  I mentioned above that they were hesitant to ask me for help, which is understandable as I was the stranger in their classroom.  If there was a problem, they would flock together and try to figure things out – only approaching the teacher (Doug) as a last resort (and approaching me as a final Hail Mary).  The more advanced students were more than happy to help the others, and there was a lot of respect in the room.  There’s the perception that Computer Science is a heads-down, lonely discipline – but this couldn’t be further from the truth.  Computer Science is about problem solving through logic and collaboration, and Doug fostered that very well in his class.  We need to make sure that others see this, as well.

The interesting thing about that collaboration: most computer labs that I’ve seen aren’t really set up well for team interaction.  The labs typically are classrooms that have been retrofitted to contain as many computers as possible, without much shared space or room for collaborative work.  In addition, most of the technology is fairly dated (which I understand due to budgets), and the display screens were fairly small.  This might be fine for teenage eyes that can nearly see down to the molecular level… but for aging folks like me, viewing their code was a real problem… and I can imagine it must also be difficult for teammates who aren’t sitting right in front of the screen.  Net net: it would be a good idea to rethink labs and build out an environment that better support collaboration.  I saw a great example of this done well at Chesapeake High School outside of Baltimore with their Virtual Learning Environment.

The next surprise for me was how open the students were to new technology.  We adults, especially those of us in the tech industry, typically develop strong opinions and viewpoints about technology and resist any influence or change once our perspectives are set.   Not so with students… they are sponges for information.  They’ll absorb and learn anything and everything… they are limited or influenced by biases or previous experience.  Is it cool?  Is it interesting?  Is it new?  They’ll take it on… and that was very refreshing and made it fun.  I just hope that maturity and experience doesn’t drill that passion out of them too quickly.

That said, at the beginning of the year I asked the class “how many of you are considering a degree in science or technology?”  Less than half the class raised their hands.  That jolted me a bit… here we have a set of really smart students who actively elected to take a challenging technology course, who arguably would be the most suitable for science and engineering disciplines – but less than half were considering it.  Unfortunately, I forgot to ask the same question at the end of the year… so I don’t know if any intent changed.  I do know that several of the students were going on to some great CS programs at very good universities – which makes me optimistic.

An obvious observation was that the teacher really does make a difference – but I developed a deeper understanding of why that’s so.  AP Computer Science can be a fairly dry topic… so it’s critical to find ways to connect with the students and make it compelling.  The course curriculum is meant to take the full year – so staying on pace and having good lesson plans is critical.  On top of that, the ability to quickly assess a student’s understanding and then keep track of that among the dozens and dozens of individuals is extremely challenging… teachers have developed expertise in this that is very unique.  Just like a great mechanic can often tell how an engine is running just by listening to it, great teachers have a “sixth sense” in assessing the students and the class.  A great educator combines all of these things: strong understanding of the curriculum, process and structure to keep the class on track, the innate ability to assess performance, the capability to personalize instruction for each student, and the ability to excite and inspire students – regardless of the subject.  Again, I was fortunate that Doug had all of these qualities (most CS teachers I know do, actually).

With all that, however, there was very little bandwidth to do much else in the class.  My early expectation was to really dig in on some extracurricular enrichment programs, but I came to realize that the students (and the teachers) are already really, really busy.  It’s not easy to carve 20-30 minutes off the schedule without significantly impacting something else.  So we had to figure out ways to provide that enrichment without being disruptive, and we did so by shortening any in-class diversions, holding some class trips, delivering some programs during breaks (such as a Student Startup Camp over Easter), and then trying to squeeze some things in after the AP tests were complete.  It wasn’t easy, though… and took a lot of personal time from the students, teachers, and other volunteers.

The out-of-class experiences were like steroids to the students’ motivation, though.  Those extra doses of the “real world” went a long way to helping the students connect their class work to tangible outcomes.  We had tremendous support from the community in delivering these events, including from organizations such as the Center for Innovative Technology, AOL, and the Loudoun County Chamber of Commerce (not to mention the organizations that were already involved in TEALS: Microsoft, Telos, JASON Project). 

Towards the end of the year, the biggest request that heard from the students: how can they get jobs and internships?  Some of them managed to snag some nice opportunities with local companies, but there was no systematic way to make that happen.  There is definitely a need to provide more structure around this to help connect these students to opportunities.  The kids are smart enough and skilled enough to provide real value to an employer – we just need to help connect the dots (and that’s my mission for the next year).

 

Where to go from here

This first year with TEALS was most certainly the “learning year.”  I can recall commenting with Doug that “we’d figure it out as we go along” late last summer… and we did.  Now that we have that experience under our belts, I have better perspective over what’s possible, what my role can be, and what will be effective.  The time commitment proved to be manageable, and should be even more so in the future.  So I’m definitely in for another year, at least.

Some of the areas that I’d like to focus through the year:

  • Evangelize the need for better labs and hardware: students get excited by new, diverse, whiz-bang things – labs should have more interesting technology than their own backpacks… and we need to have environments that are more suitable to “real” computer science work (collaborative, team-based, shared screens, etc).  I’d like to find ways to help make that happen.
  • Find ways to celebrate the teachers and offer opportunities for more professional development: part of the TEALS mission is to create a self-sustaining culture that really enables Computer Science teachers, and after what I saw last year with all of the Loudoun CS teachers, I’m convinced that we need to do more to recognize and empower them.  They are the stewards of the future innovators… every ounce of support we give them will come back as pound of opportunity.
  • Create more programs for out of class experiences: Those who play sports get to exercise their skills in games, and they have a vision for a potential future in college and professional sports (because they see the games every day).  Computer science class is like practice and skills development… but if you don’t ever get to use those skills in a “real game” and if you don’t ever get to see what real “professionals” do, it’s difficult to maintain passion.  We need competitions, startup weekends, code camps, awards, visits to universities, visits to tech companies and incubators, and more… and I’ll be pursuing that.
  • Develop internship and job programs for students while in school and during summer: with all of the great universities and tech companies in this area, putting together a structured program for high school technology internship should be a no brainer.  I know we can get this done.
  • Get more people involved: this is the key…the ability to have an impact scales directly with the number of people who are involved in the program.  Every individual brings something new and different to the program and to the students… and the more we reach, the greater the benefits for everyone.

 

I’ll end on that last note, since this write up has already gone about three pages more than I originally intended.  I know that MANY people are very interested in helping with TEALS, and there are a variety of opportunities to do so. 

For those who even just might be interested, we have overview sessions scheduled tomorrow at the GWU campus and Ashburn at 8:30am, and then another at 11am at the Microsoft Office in Reston. 

 

GWU details: https://www.facebook.com/events/507239536015870/?ref=2

Microsoft Reston details: https://www.facebook.com/events/220091784808964/?ref=2

 

Feel free to contact me directly if you are interested, or if you’d just like to find out more about the program.