So another article, this time in Edutopia by Marc Prensky. This one is entitled “Programming: The New Literacy” and I highly recommend you go and read it.
One thing that jumps off the page at me is Marc’s definition of programming:
“I believe the single skill that will, above all others, distinguish a literate person is programming literacy, the ability to make digital technology do whatever, within the possible one wants to do — to bend digital technology to one’s needs, purposes, and will, jsut as in the present we bend words and images. Some call this skill human-machine interaction; some call it procedural literacy. Others just call it programming.”
I really like this broad definition of programming. I think we as computer scientists sometimes take such a narrow view of programming as writing code. (for example the person who commented to the article outraged that writing HTML was used as an example of a programming task) Maybe programming isnt the right word, but I think its not too far off. Doesn’t society already use programming in the more general sense than writing code in a programming language? We program our VCR (or TIV0), “program” the settings on our phone or other electronic devices.
Maybe we need to redefine what it means to be computer literate. No one denies that computer literacy (in its broad sense) is just as important for our students to have as reading, writing and arithmetic skills. Because until this point “literacy” has only encompassed a limited number of computer applications doesn’t mean the definition has to stay that way.
At one time a person was math literate if they could perform simple operations (addition/subtraction/ etc.) and manage their personal finances. With the types of exit exams from HS required by NCLB there is a new implicit definition of math literate to include algebra and geometry skills. Why can we redefine what it means to be computer literate?
Ok, so what would that manifesto look like? I have some ideas below, but would love your input. Remember these are the skills that your average Joe employee should have. Since we are taking an average of Joe’s lets assume that the CS phd’s and programmers, sys admins, etc. balance out the construction workers and McDonalds employees. So we are talking about the average HS graduate who will be going to college for either a 2 or 4 year degree.
Computer Literacy for All:
1. Have a knowledge of the tools that are available in a variety of domains (software, hardware, communication technologies, web 2.0 technologies, etc.) and be able to discuss the uses of those tools to solve problems.
2. Given a piece of software and basic instructions, be able to use the software as designed to solve a problem.
3. Be able to talk about “settings” on electronic devices. Be able to reason about settings that are “possible” for such a device and manipulate and change settings on standard devices.
4. Understand how computers store and process large amounts of information. (this could take the form of some kind of database course, or a course in information storage and retrieval over the web)
5. Reason about, and discuss the social aspects of computing. This includes privacy, ethics, security, etc.
6. Be able to automate processes. (This could start as writing/recording macros and expand to simple programming in appropriate situations)
7. Identify sources of lifelong learning. How do you find out about new technologies? How do you keep yourself on the cutting edge as an employee in order to be the most productive at your job?
.. I’m sure that there are more to go here.. and many of these are already listed by ISTE and the CSTA Level 1 curriculum. Now we need to get them infused into state standards as well. But the question is how do we do that… anyway - one question at a time.. any other “literacy” topics that I missed?