Coding is a fad

Sigh.  Let me just first refer you to this.  Back? Okay.  So here’s the latest (original here; comments in both locations are worth reading) “we shouldn’t teach coding” diatribe.

I think our issue isn’t should we, but how should we.  There are some important points raised in this post and in Mark Guzdial’s recent post along the same lines.  First, coding/programming/CS courses are primarily being introduced in high income, predominantly white schools.  More needs to be done to incorporate it in other kinds of schools, so that it doesn’t continue to be something “white guys” do (see the recent diversity stats from Google).  In the article linked above, Larry Cuban suggests as much, and Guzdial addresses this as well.  We all agree this is a problem.  Now we need to address it.

Second, we need scaffolding and transfer.  Mark points to some good research about whether the problem-solving skills that are at the heart of some of these initiatives will transfer to CS or to other disciplines.  Unlike Math and Reading, there isn’t much out there yet on best practices for teaching CS concepts to younger kids.  There’s research on undergrads and to some extent high school, but not much for the K-5 crowd.  Again, Cuban and Guzdial agree that there’s no research proving that transfer occurs.  So we need to work on this as well.

Third, I think we need to connect some dots here.  And separate some.  While I think there are ways we can teach CS in the younger grades in a way that is effective and that teaches some real skills, I’m almost more interested in the mere exposure.  Perhaps because I work with all girls, I want to give girls the opportunities to explore computing and engineering  that they might not take on their own.  Society still pushes girls toward non-stem extracurricular activities.  Boys still tend to pick up things like coding on their own for fun while girls won’t think of it unless they’ve seen it.   So I’m connecting the dots between the lack of diversity in CS and introducing it early through school.  Teaching the skills and giving opportunities are somewhat separate goals, and for me, the latter takes slightly more precedence, but they kind of go hand in hand.

Let me address Larry Cuban’s “true believers” and Logo example.  I never learned Logo in school, but I did learn BASIC and I think that was part of the same “reformation” that Cuban mentions.  I was a student during the Logo phase of things so I can’t speak personally to what was going on for educators at that time, but I know my education history and theories.  And I know that computers were expensive back then.  My suspicion is that Logo died out because the equipment was expensive and then testing came into fashion and that’s where the money got shifted.  By the time computers were affordable and on everyone’s desk, the idea of coding or computational thinking as a school subject had been all but forgotten.  In fact, my small college got its first computer lab the year I graduated.  It was a luxury to have a PC or Mac back then.

In 2014, to use computers, no one needs to know anything about how it works.  You press the button, click the mouse and things happen.  Up until graduate school and even for part of grad school, I had to at least know markup to write a paper.  To analyze data meant using a database and some scripting.  To post homework online meant knowing HTML, CSS, and JavaScript.  Now all that’s done for you.

But just as not understanding your history means you are doomed to repeat it, not knowing how your computer works and how to harness its power for your own purposes means you are doomed to be at its mercy and not the other way around.

Cuban admits that these skills are needed, but thinks schools won’t teach them “right” (to simplify his argument).  It’s true that school boards and districts, and administrators confuse CS with Photoshop and Microsoft Office and buy iPads on which coding is all but impossible (it’s at least limited).  But that’s why there are organizations like the CSTA and Code.org and NCWIT and many others that try to educate people about what Computer Science is and to set standards for schools to follow.  This can do a lot to make sure schools have some guidelines and understanding about what CS is and best practices for teaching it.

Cuban suggests that teachers aren’t invested in teaching CS. There are teachers, teachers with Computer Science degrees, who want to teach Computer Science in schools, but many schools won’t make room for it and the teachers are relegated to teaching Office applications or keyboarding at worst and at best, Photoshop or CAD drawing.  (Or they end up teaching another subject, like Math or Physics)  That’s why you can’t just randomly make someone a CS teacher.  You need to hire for it.  There needs to be certification for it.  Most states don’t have that yet.

So, I understand the worry, that this whole movement will be a flash in the pan, but I think there are some solid reasons to teach coding as early as elementary school.  And I do think we need to address the issues raised by Cuban, Guzdial, and others.  We need more research.  We need standards (not testing, mind you), we need committed and professional teachers, and we need infiltration into diverse school populations.  All of these can be addressed, and they shouldn’t be used as barriers to moving forward.

6 Replies to “Coding is a fad”

  1. Is it just me or does it seem like all or at least most of the people saying we don’t need to teach more CS in schools white males? Just an observation.

  2. Perhaps. Maybe they don’t want to let people into the club. Oh wait. Isn’t there a whole book about that. 🙂

    I’ve seen a couple of women make this argument (Joanne Jacobs and Valerie Strauss). Both are Education people. They don’t know coding/programming/CS. They’re seeing it, I think, in the same light as iPad initiatives, online testing, SmartBoards, adaptive learning, etc. In other words, to them it’s not a discipline, but a tool. To me, it’s both. Just as writing is both. Writing is a discipline/craft and it’s a tool used in other disciplines and careers. Same for math. But people see to be inclined to equate computing with the idea of just a tool more so than other things.

  3. “Great minds work in similar ways” or “All nuts think the same.” My latest post is on the same track. http://gflint.wordpress.com/

    I am a math teacher and after 30 years of teaching math I am still trying to figure out why we teach so much algebra. It is not like we use any of it or that there are jobs demanding algebra skills. “But you need algebra to do calculus”. How may people use calculus? Engineers? Nope. They need to be able to solve problems and they usually use a computer. Scientists? How many of our students go on to be scientists? And scientists live in a world of statistics (not calculus) and computer modeling. If we used logic we would trash about two years of upper level high school math and replace it with two years of computer science with that two years of lost math blended in. Can you imagine the chaos? Math teachers out of jobs, textbook publishers with old style books they cannot sell, Math Ed professors claiming “That is not the way we did it went I was in high school (in the 1960s)”. Besides, computers are just a fad. Pencil, paper and long division by hand will come back.

  4. Engineers don’t use a lot of calculus, but they do need to use algebra a lot—fairly simple stuff, like solving linear and quadratic equations, or multiplying out a chain of gain and sensitivity numbers, some of which are symbolic rather than numeric. Occasionally there is an optimization problem that needs calculus to solve it. The engineers don’t often need to crunch through a lot of calculus problems analytically, but they do need to know how to set up optimization problems, and understanding gradient descent and other optimization techniques does require understanding the concepts of calculus. People doing control theory (for robotics, for example) need a bit deeper understanding of calculus—it would be very hard to understand Kalman filtering without calculus.

    I agree, though, that it would probably be better to have less high school calculus and more statistics and computer science.

  5. Gasstationwithoutpumps points out a huge weakness with many teachers, we often just do not know what is important to teach. Educators need to improve the connection between the real world and the classroom curriculum. Is there something in factoring trinomials that makes it worth all the time that is spent on it? One of hundreds of examples that I see as a left over from the last century. What is important for the kids to know to be successful for any future?

  6. From my viewpoint as an engineering professor, the biggest weakness I see is in the inability of students to do multi-step problems without having it broken down into a series of single-step problems. Next year I plan to have them create worksheets for themselves, since that seems to be the only way they have ever seen a multi-step problem, and they’ve never solved a multi-step problem without that scaffolding. Scaffolding is great when students are just starting, but descaffolding is not happening. Students expect to apply the method of the current section in one step to whatever problem they are given—no thought required.

    When I assign problems that require, for example, computing the gain needed in an amplifier to convert one voltage to another, students have no problem (or not too much). But when they have to take a physical signal, multiply it by the sensitivity of a sensor (which may be on the datasheet in inconvenient units that need further multiplicative factors), multiply by a current-to-voltage resistance, and then use the result to calculate the desired gain to match the voltage range of an analog-to-digital converter, they spend hours getting tangled up. More than three multiplications and they are lost, pushing buttons randomly on their calculators.

    None seem to have ever done “sanity checks” on their results—looking at what happens as parameters go to 0 or infinity, for example, or checking that the output being predicted for an amplifier is between the power rails. I would have thought they would get those notions in physics classes, but apparently not.

    I think that programming classes can also be a good place for doing sanity checks, paying attention to boundary conditions (what happens with an empty input file, a null string, a zero value), but the definition of reasonable behavior is often more difficult for programming than for physics and electronics (zero resistance or infinite resistance simplify the models, but the right thing to do with an empty set is often unclear).

Comments are closed.