Why teach coding? Because it is all we know.

Schools are all about teaching coding.  From talking to teachers and looking at what high schools are offering it looks like there is no intent to teach CS or programming (by my definition programming includes UI design, algorithm development, problem solving techniques, pseudo code, flow charting, code design (away from the computer), and a large number of other tasks that are done away from the computer).  Most of the courses I have seen offered (admittedly a small sample but I feel it is very representative of the high school norm) are syntax courses: Python 101, Java 101, Scratch, or whatever.  Teaching problem solving or computational thinking is purely accidental.  Now why is this?  I see it as a combination of several things.

First, and maybe most common, many people (administrators in particular) think CS and coding are synonomious.  Opps.  They are not.  Coding is typing programs.  CS includes coding as a small subset of topics.  Of course, what topics are part of CS seems to still be up in the air.  When I decide I have to have EdD. after my name I will define high school CS and all the topics it should include and build a curriculum to address those topics.  Until that time I will avoid defining high school CS like it was the Black Plague.

Second on my list is that coding is comparatively easy to teach compared to full blown CS.  There are a lot of resourses out there for teaching coding.  Free textbooks, tutorials, coding academies, dozens of great languages, cool game engines and so on and so on.  A new coding teacher can stay a day or two ahead of the kids in the book/tutorial and come out with a halfway decent coding course.  To teach CS or even programming you actually have to know stuff.  You should probably have actually taken some college level courses in CS.  You should probably be able to at least spell pedagogy, even if you are not sure what it means.

Third, and most intimidating to me, is that CS is not really well defined.  If I want to offer an Algebra II course I can pick up one of a couple dozen textbooks that will give me a great idea of what Algebra II consists of.  That textbook will have the somewhat agreed upon topics, scope and sequence, and many pedagogical suggestions.  CS seems to have absolutely nothing.  Get a group of K – 16 computer teachers in a room and ask them what CS should include.  The middle school teacher (for example) is going to say Office and Photoshop.  High school teacher #1 (for example) is going to say that is not CS.  High school teacher #2 is going to say it needs to be taught so where else but in CS is it going to go?  High school teacher #3 suggests that the English department should teach Word, the Math department should teach Excel and the Publications or Art teacher should teach Photoshop.  (Hell immediately freezes over.)  The college teacher is going to say something the K-12 teachers do not understand because they have never taken a college CS course, they have only attended one-week summer in-services on coding.

The first teaching job I had was as a math teacher.  That first year I followed the book exactly.  I had four years of college math and did not have a clue as to how to help a student learn how to complete the square.  The book did.  A new CS teacher does not have this guide.  They are on their own.  So what are they to do?  Teach something where there are many guides available.  Coding.  Kind of a loop thing we have going here.


2 Responses to “Why teach coding? Because it is all we know.”

  1. Mike Zamansky Says:

    Yes – and many of them are the policy makers around here.

    I do thing, though, that the same conversation goes on in other subjects. Even though everyone agrees what Algebra II is in a typical HS class, there’s a reasonable amount of debate that goes on as to what should be taught and/or required in high school and also in college.

  2. gflint Says:

    A reasonable amount of debate is a good thing. With most HS subjects that debate is usually over some minor tweaking or at least about something with a strong historical foundation. With CS I really do not see anything to tweak. Of course a good thing about this is the flexibility this allows a CS teacher. You can teach almost anything computer related in a “CS” class and it counts. Apps, hardware, networking, coding, various math topics, they all are considered CS by someone. Kind of fun.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: