Teaching Iowa Students to Code

I recently attended an interesting group discussion about getting students in Iowa, specifically rural Iowa, access to computer science skills.

The state has a desire to do something and the resources to match but one of the challenges has been getting the right teachers in the schools to teach technology classes. It’s not a problem everywhere, but in many rural Iowa communities it is.

One of the challenges I heard was that many of the students have a desire to learn but the curriculum is new and teachers are scarce. The internet is not scarce so let’s use that to get the few teachers with the right curriculum to the places where the curriculum and teachers are scarce.

An idea I didn’t get to suggest at the time

Hire 2-3 engineers who are wonderfully good with a desire to teach. Top notch in their field, who have a desire to teach the youth how to code. Pay them market rates that they could make doing engineering work anywhere else and make it up in the number of students attending the class.

Task them with designing curriculum to meet students intellectually where they are at, and selecting the tools they use to teach with. Let the engineers design the curriculum and design their own tests.

Engineers will likely self-select open source tools, standardized environments and probably even cloud IDEs. Let them design a classroom that starts to look more like new models used in higher education where the students can be anywhere and beam into the class itself. Standardize the time a particular student skill level is taught by skill rather than by grade, across the state.

9-10am – 10110-11am – 10211-12am – 103

Add 104 all the way up to whatever number signifies you already have a job or as needed.

The class times are directionally meant to provide a reliable time and aren’t really that important. They certainly wouldn’t need to be sequential. Small group time or 1:1 time could be scheduled separately.

The curriculum could be state-wide and the facilities to join the class should already be in place with some minor changes. Yes, there could be hundreds if not thousands of students attending each class. It’s more like a Twitch experience than a traditional classroom and that might just be ok because if it’s recorded the student can take it away and watch the lesson over and over. Record every lesson everyday and make it available.

Since this is software, students can also complete or test their tasks over and over again until they submit it. Enough submissions that pass the tests grants them access to the next level of courses.

Letting one or two people teach the entire state how to code in a 101 class from 9-10am sounds kind of nuts. Except it’s potentially much less expensive compared to 100+ teachers trying to learn the curriculum and then being expected to test on it. Testing coding skills could look more like Code Academy than the Iowa Test of Basic Skills.

Companies like Udacity, Skillshare, and Outschool have been showing us how to do this for years.

Just an idea

I was terrible in school. I’m also not a great teacher. I do however observe pretty well and my observation here is that if you can’t physically get the right teachers in the room, put them on a screen. You can’t guarantee the youth will pay attention but computing is simple enough if that if their stuff doesn’t compile or they don’t accept the course their grades aren’t trivial. They literally fail and don’t get to go the next class. Code isn’t subjective when you’re learning the fundamentals. It compiles or it doesn’t. It runs or it doesn’t. It breaks, or it doesn’t.

This is only complex if you’re trying to design the system and you aren’t an engineer.

Meet the students where they are at and align incentives

The harsh reality is that the motivated students are going to self-learn on GitHub so much faster than any of these programs could possibly teach them but we could give them a launching point by exposing them to teachers who can recognize and nurture some of their talent.

I’d suggest hiring engineers to consider the fundamentals of what they are teaching and who the audience is. Let engineers modify their communication to their audience if they have a passion for it.

Something far more provocative that I’ve kept thinking about is compensation. Designing bonus programs for the teachers hired based on ten year programs could dramatically change long term participants and earning potential. One idea would be to compensate teachers based on the income produced by the graduates impact in the context of tax dollars generated. Design the education system to be as rewarding as the banking system by compensating the teacher engineers based on the economic impact their students make. It’s like return on equity but a lot more distributed.

My son started taking online art courses over the last year from teachers in Texas and California and it’s really shifted my perspective on how widely impactful this type of format can be.