Part 2: Teaching Policy People to Code at the Harvard Kennedy School

A running-club model for summer coding

David Eaves
Project on Digital Era Government
5 min readJun 27, 2018

--

Context

This summer, digital HKS launched an experimental pilot to help MPP and MPA students at the Harvard Kennedy School of Government (HKS) learn Python.

We started the conversation with a post about why we are doing this, and over the summer we’ll continue to share more details about this experiment: why we are running it, how we are going about doing it, what we hope will happen, what actually did happen. We’ll also share how this effort dovetails with our goal of fostering more public interest technologists.

In this second post, we dive into the model we’re using to make sure that a diverse, far-flung group of public policy students can get the content and person-to-person support they need to learn how to code by replicating a model we happily borrow from summer running clubs.

Distributed + Decentralized

Once we realized that there would be a lot of demand from current and incoming policy students to learn the basics of computer science, the biggest question we faced was — How should a policy school teach coding?

With a huge wealth of free online resources right at our fingertips, making our own computer science class would be a mistake. It’s not the core competency of the Kennedy School, and we don’t have the time or resources to roll out something new. At the same time, massive open online course (MOOC) providers have done us a big favor by ironing out kinks and learning hard lessons about engagement and technical integration. Taking advantage of their innovation let us focus on what mattered a lot more — making sure that our students had the resources they needed to be successful.

Our innovation was to leverage an online MOOC and pair with our own online infrastructure and human resources. First, we selected an edX course out of MIT that is known to be tough but very effective in online instruction in the basics of Python. The course is free to use if students don’t purchase an official completion certificate. We then set up a Canvas page within the Kennedy School’s existing learning management system infrastructure, along with an instance of the Piazza teaching environment. Finally, we made a Slack channel — again, for free — where all of the students could have a space for peer-to-peer conversations across the summer. With the combination of edX, Canvas, Piazza, and Slack, we had a set of shared services that would work for current and incoming students spread across the globe working on summer fellowships and in jobs. More importantly, we had a set of tools that could be used at virtually no marginal cost, which meant that we could really spend our energy setting up what we hope will be the secret sauce of this experiment — peer course assistants and a cohort experience.

A Running Club for Python

Completion rates for online courses have historically been pretty abysmal — and even researchers who cut samples to intended completers (as opposed to those just browsing) tend to be happy to see at least a quarter of students make it to the end of online coursework. The problem with online courses is that students miss the value that comes with being in the classroom — attention from the professor, peer interactions, the amazing ‘aha’ moments when you figure out how to move forward as a group.

photo courtesy of Foter.com

The challenge is similar to the one you face if you sign up for a big road race several months out. You might have a ton of motivation to run a marathon in June, but when life gets in the way, you need some real support to make it to October in good enough shape to get through 26.2 miles. Our strategy was to replicate a kind of running club model: students scattered all of the globe are writing code on their own computers and their own time, but we give them coaches and peers they can leverage for motivation, advice, and support along the way.

Because we leaned on existing infrastructure and services, the bulk of our resources go to paying several course assistants, hired from across Harvard. Some are students at the College or recent graduates; others are Masters candidates at the Kennedy School. What they have in common is knowledge of different programming languages and, when possible, experience teaching others how to code. These coaches are available for one-on-one questions and support, but they also help moderate the discussion on Piazza and Slack, advise on assignments, and join local study groups.

Just as importantly, we’re helping students support each other. This might involve physical study groups in cities like Washington, DC or San Francisco. It can also be informal conversations that start in Piazza and Slack. The more we can cultivate a sense of community, the more we help students not only complete this course, but also build a foundation for future data science endeavors.

Still A Lot for Us to Learn

To be clear, we’re still learning the right way to achieve these goals. Coming in, we assumed that we could generate a ‘running club’ vibe asynchronously. But more than a few have shared that even though they’re aware of other participants, it’s hard to feel connected. Formalizing class ‘hours,’ when students can watch lectures and do assignments at the same time but in different locations, might be a smart way to help more remote students stay engaged.

We also recognize that coding isn’t always like the other courses we teach. Normally, we present ideas and give students time to read, reflect, and digest before application. Coding might best be done in long, contiguous periods of practice and repetition, so you can pick up the muscle memory alongside the concept. One colleague analogized it to baseball. If you hit once on Monday and think about it for three days, then hit once again on Thursday and again on Saturday and keep that up for a few months, you might never learn. A better way could be to hit 100 balls in a row, every day, for two weeks. There are tradeoffs in doing things all at once versus spread out over time, and it’s worth thinking about them.

Keeping you up to date

All of us at digital HKS look forward to seeing how the students build their skills during the summer, and the kinds of academic and professional doors that opens for them in the coming year. Keep an eye out for future posts from us — and as always, don’t hesitate to reach out to us with questions.

This piece was written by David Eaves, Lecturer in Public Policy at HKS and Ben McGuire, an HKS student who is, by chance, participating in the Python Pilot.

--

--

David Eaves
Project on Digital Era Government

Associate Prof at the Institute for Innovation & Public Purpose, UCL. Work on digital era public infrastructure, transformation & public servants competencies.