CS has to be for the “regular” kids

As I mentioned previously I have signed up for an APCS Principles MOOC from the University of Alabama.  The instructor throws out discussion questions every now and then for the class to discuss.  One of the discussion questions had to do with recruiting kids into CS classes.  It made for some very interesting reading.

As I read these recruitment suggestions I noticed a trend.  Many teachers seem to be looking for “high achievers”, “AP potential”, “hard workers”, “good prospects”, and so on.  I have to say I am absolutely opposed to this type of approach.  We live in a CS world.  Everybody lives in this world therefore everybody should get a CS education, not just the upper level students.  If the school only offers AP level CS then it is doing 90% of the students a disservice.  CS has to come down to the lowest level.  The argument is that not every kid is capable of doing CS, where CS is often thought of as programming.  Maybe every kid cannot do Java (heck, I can barely do Java) but I think they can all learn to program a little robot or get something working in a language like Scratch.

CS teachers need to be recruiting all kids into the classes.  If the school only has upper level CS classes then it is time to reconsider the curriculum and consider the fact it is the 21st century.  I am of the opinion if it is a choice between APCSA for a very few or a low level CS survey class for the many then the APCSA is toast.  “Principles” is directed to the broader spectrum of students so we as teachers need to get the word out that it is not just for the high achieving students.  CS has an elitist reputation, we need to change that.

CS needs to be a K-12 curriculum.  Maybe not as a stand-alone CS class but at least as an integrated thread in all classes.  Somewhere in there every kid should get an opportunity to program a robot, write a simple program, and build an algorithm that actually results in something visual happening (as opposed to memorizing someone else’s algorithm as in a math class).  The people who point out that they use a word processor or spreadsheet in their class and claim it is CS might as well give a kid a 10 key calculator, teach them to add on it, and claim that is math.  Apps are part of the picture, but only a part.  Teaching apps teaches kids to be users, which is very necessary to survive.  Teaching CS teaches kids to be builders, which is necessary to do more than just survive.  Every kid should have the chance to be a builder.

(You should see me discuss this live.  I wave my hands a lot and get very excited.)


13 Responses to “CS has to be for the “regular” kids”

  1. lenandlar Says:

    Good post. We can do some good cs with spreadsheet tho

  2. gflint Says:

    Very true. Another one of those things I should do more with. One of our math teachers does quite a bit with Excel.

  3. alfredtwo Says:

    Having an face to face conversation with you is now on my bucket list. In fact it the reason I am starting a bucket list.

  4. gflint Says:

    I am trying to get in a motorcycle ride to Boston next year for a bowl of real clam chowder. Maybe then.

  5. Brian Sea Says:

    I’m in complete agreement with you that CS education should aim to reach every student and that such an education isn’t necessarily one of programming. The problem, I think, is that most CS educators (college and secondary) are bent on this notion that programming needs to happen first, whereas i think it should happen as a *side effect* of learning CS concepts. We need to focus on where CS has evolved to and not where it came from.

    There is a common practice of not separating the cognitive concepts of CS from the tool-oriented concepts (programming, robotics, etc). I think not doing this separation leads to cognitive overload in students, and people inherently now tie the two together. For example, two of the three cases you cite are programming, and most CS educators still talk about computer science in terms of programming. We need to talk about CS in terms of the cognitive concepts students learn like Abstraction, Encapsulation, Modularization and Information Theory. Programming is the side-effact of these cognitive concepts, not the reason to learn them!

    What computer science has over mathematics is that students cannot get away from creating algorithms. Whereas, in mathematics, they can get away with simply memorizing the end formulas. What computer science has over engineering is that students can create things without the need to physically build them. Computer science, as a field, has a lot going for it that educators just don’t seem to be pushing.

    I really need to get my WordPress installation up so I can just write all this my own site 😀


    Oh… And the students we should be looking to cultivate need to be resilient, curious/experimental and collaborative — basically what *every* educational subject should look for. We need to fight this idea that students need Algebra II to learn CS (they barely need Algebra I) and that only the smart ones can do this…

  6. gflint Says:

    When you get your site running, let me know. I will add it to the top of my reading list. Great thinking points. Teaching cognitive concepts is very difficult, especially for teachers who have not been shown how to teach it. Programming is easy to teach. Again it gets down to teacher training. There is no training in Abstraction etc. for teachers, especially high school teachers. It is also not something for which there is a high school level textbook.

  7. Brian Sea Says:

    Teacher training and lack of materials is a rather sad point regarding abstraction,etc. However, we must teach the concept of abstraction before programming really makes any sense. For example, the difference between literals, variables and arrays is merely one of abstraction, yet we separate the concepts. I teach them all at once but I teach the concept of them first in terms of abstraction using playing cards for searching and sorting. My students don’t program until the third or fourth week.

    Regarding the lack of materials… That’s why I’ve written my own 😀 I just have to get it in a state where other teachers might be able to use it.

  8. gflint Says:

    Where do you live? I need to come visit! This is the stuff I have been trying to write and compile for years. I do not have the programming background and training to write my own stuff in a coherent manner.

  9. Brian Sea Says:

    I didn’t say the materials were any good, but they work for my purposes. I developed them while working at Phillips Exeter Academy in Exeter, NH. I’m taking a break from education in Seattle at the moment, and I’ll be going back to teaching starting in August (in Oakland).

    That said, PEA still uses my material (or they did this year anyway). If you’re in the NH seacoast area, then Sean Campbell would be the one to visit. Just let him know I sent you 😉

  10. gflint Says:

    I am in Montana. Wrong side of the world from NH. Seattle? Hmmm.

  11. Mike Zamansky (@zamansky) Says:

    You’re absolutely right but I find it interesting that code.org’s partnership seems to require districts to pay for the past 8/9 which they claim will help identify kids who are good fits for CS.

    I call BS on that and the whole partnership is to set up a cash cow for the college board (which I wrote about on my blog).

    The truth is that all kids should be exposed to all major fields of study and hopefully, if they have good teachers learn how to think and see the world as a biologist, historian, poet, mathematician, etc.

    When kids take bio in high school it’s understood that it’s only appropriate for a very small number of those kids to go on to AP Bio and then further to pursue the life sciences – it takes a village.

    The challenge is to design entry courses that on the one hand can inspire the CS person to go on to more advanced study while at the same time give the non-cs person a set of mental and practical tools that will help them in whatever field they go into.

  12. gflint Says:

    I see code.org and it’s various relatives as a result of the extreme CS teacher shortage. Want to offer CS at your school and do not have a trained teacher? Here is a canned program. These canned programs are definitely better than nothing and even seem to get pretty good reviews at times, but they are not a good substitute for a teacher with the ability to adjust the course to meet student needs.

    • alfredtwo Says:

      One of the problems I see with canned curriculum and inexperienced teachers is the inability to help advanced students. Actually there is a problem anytime a student diverges from the canned steps but that is usually workable if you have a teacher and student who are willing to try things. On the other hand a student who finds things easy and wants to go beyond the curriculum is on their own without even someone to point them in a direction.

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s

%d bloggers like this: