Berners-Lee calls for computer science education for children

February 6, 2013 at 10:25 am 5 comments

The first part of what Berners-Lee says below makes sense to me. Students don’t really see computing until there’s breakdown. Interfaces carefully hide away the computing underneath. But it does not really make sense for children to check log files and re-write scripts when something breaks with Twitter or Facebook. I think he may be confounding two reasons for knowing about computing education: (a) to understand your world (“I think I have a clue why this broke, or even why it was working in the first place”) versus (b) to be able to construct in that world — to be a producer, as well as a consumer. Both are good reasons for learning about computing, but it’s not always the case that you can construct around every bug that comes up, especially with large social networks.

“A quarter of the planet uses the web,” he cautioned, “then within this quarter of people who may tweet and use social networks and so on, there’s a fairly small set of people who code. But when you look at those people, they have the ability to make a computer do whatever they can imagine.

“I think a lot of folks growing up today, when they open a computer, it’s like opening a refrigerator. It’s an appliance, it’s white goods, there’s some stuff in it, if it needs more in it you stock it, you put more music in it, you play it. And If it breaks it’s: ‘Mom, can I have a new one’.”

“It’s not actually ‘what went wrong there? Let me go in there, lets look at the log files, what crashed, why didn’t it have the right permissions, lets see if we can re-write that script so that it works in the new version of the operating system.’”

via Berners-Lee calls for computer science education at a younger age | VG247.

Entry filed under: Uncategorized. Tags: , , .

GT and Coursera’s MOOC stumble: Why they are still experiments A Dream Deferred: How access to STEM is denied to many students before they get in the door

5 Comments Add your own

  • 1. Don Davis (@gnu_don)  |  February 6, 2013 at 10:52 am

    Well, a great deal of this owes to the culture of black box technology that students grow up in. The interfaces they use are typically proprietary in nature and locked down to impede tinkering and consequently impair potential tinker learning. This is certainly done for a reason and its impact on society and culture is indelible (Kim, 2006; see also Eisenberg, 2003).

    Though there are many more avenues to being a creator nowadays (e.g. Scratch, AppInventor, Arduino, etc..), rather than being a passive consumer, many of these opportunities are only afforded the more affluent, which significantly impacts CS equity (Margolis et al., 2008; Warschauer & Matuchniak, 2010). Compare for example the demographics of those subscribing to Make magazine

    In all fairness though, it seems that people don’t just tinker or play around with a system because they can. Among a few thousand Linux users surveyed, only about ~3% indicated having read or tweaked source code with any frequency (Davis & Jabeen, 2011). [Though this don’t eliminate other tinkering, tweaking, or scripting…]

    Davis, D., & Jabeen, I. (2011). Learning in the GNU/Linux community. In Proceedings of the 2011 Conference on Information Technology Education (pp. 21–26). New York, NY, USA: ACM.

    Eisenberg, M. (2003). Mindstuff. Convergence: The International Journal of Research into New Media Technologies, 9(2), 29–53.

    Kim, S. (2006). Capitorgs and free/libre and open source software: Toward critical technological literacy and free/libre and open source society. Educational Insights, 10.

    Margolis, J., Goode, J., Holme, J. J., & Nao, K. (2008). Stuck in the shallow end: Education, race, and computing. Cambridge, MA: The MIT Press.

    Warschauer, M., & Matuchniak, T. (2010). New technology and digital worlds: Analyzing evidence of the equity in access, use and outcomes. Review of Research in Education, 34(1), 179–225.

  • 2. rdm  |  February 6, 2013 at 11:26 am

    I would not classify “examining log files and permissions” as being a producer. In my opinion, that’s firmly in the consumer category.

    It’s also, unfortunately, not a part of the vocabulary of many consumers. It’s also frequently the difference between a mystery and a comprehensible problem.

    Fortunately or unfortunately, to manipulate computer systems we need to have some kinds of mental abstractions that represent the structure of those systems, and files, processes, permissions and logs are — in this context — relevant concepts.

    If we draw an analogy to automobiles : we would not be talking here about building an engine or even changing the oil, instead we would be talking about looking at the dashboard and being aware that it has wheels and an engine.

  • 3. lexspoon  |  February 6, 2013 at 3:08 pm

    Scripting might be a good target for that sweet spot of useful to everyone but not requiring a ridiculous amount of study. It also makes for an elegant hand-off between computing professionals and computing literates: scripting is the way that a computer literate can customize prefab computer components into something useful to them personally.

    “Analyzing log files” makes scripting sound like pointless dreary work. A better example would be downloading 10,000 tweets that have a particular hash tag, and seeing whatever other hash tags they include. People who can do this have a qualitatively better life than people who can’t, and I suspect most anyone can if they were to spend a year taking classes on it.

    • 4. Erik Engbrecht  |  February 7, 2013 at 12:17 am

      Computationally analyzing 10,000 tweets with some hash tag and analyzing 10,000 log entries are essentially the same thing.

      On the practical side there are a couple primary differences. The log files contain information about “what the computer is doing,” which may open new doors of understanding into the machine so the computer isn’t some mysterious artifact (or appliance) that does what it does and what way it does it is beyond comprehension. On the other hand, reading a text file is about the most basic programming task. There’s no (apparent) network involved. There’s not authentication or accounts. You open it in a text editor, and it is there to see. You process it in your program, and you are processing what you saw.

      The tweets, on the other hand, have no meaning in terms of the machine but are likely to have social meaning. This is more likely to resonate with what a person already knows, but it doesn’t offer any insights into the machine. Instead the machine is providing you with a way to gain insights into people. However, there’s more barriers. It’s not a file sitting there to be read, it’s a download, and in this case that requires HTTP. It also probably requires some sort of account, and likely requires non-trivial authentication and authorization. Also, the tweets probably come in JSON or XML, which requires a library to parse. This is about how the system works as opposed to just the machine, but the system is more complicated and poses distracting challenges beyond just reading a file. Processing a log is straight forward and potentially useful but probably socially meaningless. Processing a tweet stream is more complicated because you have to obtain the stream, but more socially meaningful.

      So what’s the goal? Understand the machine? Be able to extract data from the system? Be able to leverage the machine to do what would be a tedious and error prone task for a person?

      • 5. lexspoon  |  February 7, 2013 at 9:57 am

        To make it explicit, I’m leaning toward the last goal that Erik lists. I’m leary of “understanding the machines” as a direct goal. It looks like a more productive framing to categorize people as computer “professionals” and computer “literates”, and to think of the goal of mass education as turning everyone into at least a computer “literate”. It seems unquestionable that there is an area of knowledge appropriate for literacy; I was stretching to speculate what might be in that zone.

        A literate is going to need some understanding of how the machines work. However, they aren’t learning it for general edification. They just need to learn certain concepts before they can even use spreadsheets or write tweet-processing scripts. So try and identify what those concepts are.

        To give some negative examples, I don’t think the general public would benefit from knowing about testing strategies. They don’t need to know how to build an index. They don’t need to know sorting algorithms. They don’t need to understand dependency management. They don’t need to understand deprecation cycles. They don’t need to know how to implement data structures.

        Scripting, though….


Leave a Reply

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

You are commenting using your 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

Trackback this post  |  Subscribe to the comments via RSS Feed

Recent Posts

February 2013
« Jan   Mar »


Blog Stats

  • 1,268,077 hits

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 4,563 other followers

CS Teaching Tips

%d bloggers like this: