Posts tagged ‘computing for everyone’
LiveCode Community Edition is released: HyperCard is free again and runs on anything!
I’m excited about this and find myself thinking, “So what should I do with this first?” LiveCode isn’t as HyperCard-like as it could be (e.g., you edit in one place, then compile into an application), and it has all of HyperCard’s limitations (e.g., object-based not object-oriented, lines are syntax). But it’s free, including all engines. I can program iOS and Android from the same HyperCard stack! I can build new kinds of programming languages and environments on top of Livecode (but who in the world would want to do something like that?!?) that could compile into apps and applications! It’s a compellingly different model for introductory computing, that sits between visual block programming and professional textual programming. Wow…
LiveCode Community is an Open Source application. This means that you can look at and edit all of the code used to run it, including the engine code. Of course, you do not have to do this, if you just want to write your app in LiveCode there is no need for you to get involved with the engine at all. You write your app using LiveCode, the English-like scripting language, and our drag and drop interface. Fast, easy, productive and powerful.
ACM Europe recommends computing for all students
From the new report from Informatics Europe and ACM Europe:
• Recommendation 1. All students should benefit from education in digital literacy, starting from an early age and mastering the basic concepts by age 12. Digital literacy education should emphasize not only skills but also the principles and practices of using them effectively and ethically.
• Recommendation 2. All students should benefit from education in informatics as an independent scientific subject, studied both for its intrinsic intellectual and educational value and for its applications to other disciplines.
• Recommendation 3. A large-scale teacher training program should urgently be started. To bootstrap the process in the short term, creative solutions should be developed involving school teachers paired with experts from academia and industry.
• Recommendation 4. The definition of informatics curricula should rely on the considerable body of existing work on the topic and the specific recommendations of the present report (section 4).
What Makes Code Readable: Not What You Think
This is a nice post considering the interaction between language complexity, readability, and learnability. It could have been made stronger by including some of the empirical data. Thomas Green in his empirical research on language features didn’t just find that explicit BEGIN IF…END IF blocks were easier to read by novices, he found that they were TEN TIMES easier for novices to read. Being less succinct is not just easier for novices, it may be so much easier that it’s the difference between success and giving up.
My point is, the larger the vocabulary you have, the more succinctly ideas can be expressed, thus making them more readable, BUT only to those who have a mastery of that vocabulary and grammar.
If we made the English language smaller, and reduced the complex rules of grammar to a more much simple structure, we’d make it much easier to learn, but we’d make it harder to convey information.
via What Makes Code Readable: Not What You Think | Making the Complex Simple.
Requiring Computing Education: An Impractical Path to Computing Literacy
My thinking on computing education has been significantly influenced by a podcast about hand-washing and financial illiteracy. I suspect that education is an ineffective strategy for achieving the goal of Computing Literacy for Everyone. I have a greater appreciation for work like Alan Kay’s on STEPS, Andy Ko’s work on tools for end-user programming, and the work on Racket.
On Hand-Washing and Financial Illiteracy
I have been listening to Freakonomics podcasts on long drives. Last month, I listened to “What do hand-washing and financial illiteracy have in common?” I listened to it again over the next few days, and started digging into the literature they cited.
At hospitals, hand-washing is far less common than our knowledge of germ theory says it ought to be. What’s most surprising is that doctors, the ones with the most education in the hospital, are the least likely to wash their hands often enough. The podcast describes how one hospital was able to improve their hand-washing rates through other behavioral methods, like shaming those who didn’t wash their hands and providing evidence that their hands were likely to be filled with bacteria. More education doesn’t necessarily lead to behavioral change.
Much more important was the segment on financial illiteracy. First, they present the work of Annamuria Lusardia who has directly measured the amazing financial illiteracy in our country. There is evidence that much of the Great Recession was caused by poor financial decisions by individuals. Less than a third of the over-50-year-old Americans that Lusardia studied could correctly answer the question, “If you put $100 in a savings account with 2% annual interest, at the end of five years you will have (a) less than $102, (b) exactly $102, or (c) more than $102?” More mathematics background did lead to more success on her questions, but she calls for a much more concerted effort in financial education. Her arguments are supported by some pretty influential officials, like Fed Reserve Chair Ben Bernanke and former Secretary of the Treasury Paul O’Neill. It makes sense: If people lack knowledge, we should teach them.
Lauren Willis strongly disagrees, and she’s got the data to back up her argument. She has a 2008 paper with the shocking title, Against Financial Literacy Education that I highly recommend. She presents evidence that financial literacy education has not worked — not that it couldn’t work, but it isn’t working. She cited several studies that showed negative effects of financial education. For example, high school students who participated in the Jump$start program become much more confident about their ability to make financial decisions, and yet made worse decisions than those students who did not participate in the program.
The problem is that financial decisions are just too complicated, and education (especially universal education) is expensive to do well (though Willis doesn’t offer an estimated cost). Educational curricula (even if tested successful) is not always implemented well. The gap between education in teen years and making decisions in your 40′s and 50′s is huge. Instead of education, we should try to prevent damage from ignorance. Willis suggests that we should create a cadre professional of financial advisors and make them available to everyone (for some “pro bono”), and that we should increase regulation of financial markets so that there are fewer riskier investments for the general public. It costs the entire society enormously when large numbers of people make poor financial decisions, and it’s even more expensive to provide enough education to prevent the cost of all that ignorance.
This was a radical idea for me. Education is not free, and sometimes it’s cheaper to prevent the damage of ignorance than correcting the ignorance.
Implications for Computing Literacy Education
I share the vision of Andy DiSessa and others of computing as a kind of literacy, and a goal of “Computing for All” where everyone has the knowledge and facility to build programs (for modeling, simulations, data analyses, etc.) for their needs. Let’s call that a goal of “Universal Computing Literacy,” and we can consider the costs of using education to reach that goal, e.g., “Universal Computing Education to achieve Universal Computing Literacy.”
The challenge of computing literacy may be even greater than the challenge of financial literacy. People know even less about computing than they do about finance. We don’t know the costs of that ignorance, but we do know that it has been difficult and expensive to provide enough education to correct that ignorance.
Computing may be even more complicated than finance. Willis talks about the myriad terms that people need to know to make good financial decisions (like “adjustable rate mortgages”), but they are at least compounds of English words! I attended a student talk this week, where terms like “D3” and “GreaseMonkey” were bandied about like they were common knowledge. We invent so much language all the time.
What could we possibly teach today in high school that will be useful in even five or ten years, when those students are in their careers, to be able to build something that they could use? “We’ll teach conceptual knowledge so that they can pick up any tools or languages they need.” We have no idea how to achieve this goal in computer science. It takes an enormous effort to develop transferable knowledge, and progress in computing changes the target task all the time. I have a PhD in Computer Science, and it takes me way too much effort to pick up JavaScript libraries that I might want to use — far more effort than a non-technical person will be willing to put in.
The problem is that education is often inefficient and ineffective. Jeremy Roschelle pointed out that education improvements rarely impact economic outputs. Greg Wilson shared a great paper with me in response to some tweets I sent about these ideas. Americans have always turned to education to solve a wide variety of ills, but surprisingly, without much evidence of efficacy. We can teach kids all about healthy eating, but we still have a lot of obesity. Smokers often know lots of details about how bad smoking is for them. Education does not guarantee a change of behavior. This doesn’t mean that education could not be made more effective and more efficient. But it might be even more expensive to fix education than to deal with ignorance.
Universal education is always going to be expensive, and some things are worth it. Text illiteracy and innumeracy are very expensive for our society. We need to address those, and we’re not doing a great job at that yet. Computing education to achieve real literacy is just not as important.
I am no longer convinced that providing computing education to everyone is going to be effective to reach the goal of making everyone computing literate, and I am quite convinced that it will be very expensive. Requiring computing education for STEM professionals at undergraduate level may still be cost-effective, because those are the professionals most likely to see the value of computing in their careers, which reduces the costs and makes the education more likely to be effective.
Barb sees a benefit in Universal Computing Education, but not to achieve Universal Computing Literacy. We need to make computing education available everywhere for broadening participation in computing. To get computing into every school, Barb argues that we have to make it required for everyone. Without the requirement, schools won’t go to the effort of including it. Without a requirement, female and URM students who might not see themselves in computing, would never even give it a chance. In response to my argument about cost, she argues that the computing education for everyone doesn’t have to be effective. We don’t have to achieve lifelong literacy for everyone. Merely, it has to give everyone exposure, to give everyone the opportunity to discover a love for computing. Those that find that love will educate themselves and/or will pursue more educational opportunities later. I heard Mike Eisenberg give a talk once many years ago, where he said something that still sticks with me: that the point of school is to give everyone the opportunity to find out what they’re passionate about. For that reason, we have to give everyone the chance to discover computing, and requiring it may be the only way to reach that goal.
It’s always possible that we’ll figure out to educate more effectively at lower cost. For example, integrating computing literacy education into mathematics and science classes may be cheaper — students will be using it in context, teachers in STEM are better prepared to learn and teach computing, and we may improve mathematics and science teaching along the way. My argument about being too expensive is based on what we know now how to do. Economic arguments are often changed by improved science (see Malthus).
As Willis suggests for financial literacy, we in computing literacy are probably going to be more successful for less cost by focusing on the demand side of the equation. We need to make computing easier, and make tools and languages that are more accessible, as Alan Kay, Andy Ko, and the Racket folks are doing. We have to figure out how to change computing so that it’s possible to learn and use it over an entire career, without a PhD in Computer Science. We have to figure out how to get these tools into use so that students see use of such tools as authentic and not a “toy.”
“Computing for All” is an important goal. “Access to Computing Education for All” is critical. “Universal Computing Education to achieve Universal Computing Literacy” is likely to be ineffective and will be very expensive. On the other hand, requiring computing education may be the only way to broaden participation in computing.
Interview with Code.org video director
Interesting interview with the director of the Code.org video. The comments are intriguing and reflect the diverse and contrary perspectives on these issues: “There are nowhere near 1 Million unfilled software engineer jobs in the United States. Becoming a software engineer is a choice that is not a sideline choice, it becomes your whole life. While learning some coding may be a help for students, the premise of Code Stars is deeply flawed.” (Thanks to Mark Miller for the tip!)
Michelle Fields talks to filmmaker Lesley Chilcott about her film Code Stars. There is a dearth of computer engineers in America, and Chilcott is trying to reverse this trend through documentary film. Hear how many computer engineers started their lucrative careers at a young age with very simple programs, and how you can too.
via Decoding Success: Striking It Rich in the Tech Industry – YouTube.
Meet Wikipedia, the Encyclopedia Anyone Can Code
It sounds like you can only use Lua for encyclopedia-like functions (e.g., handling citations), but what a wonderful step toward having a tool for building simulations and data processing & visualizations into the encyclopedia. It’s a nice new motivation for “Computing for Everyone.”
It began as the encyclopedia anyone can edit. And now it’s also the encyclopedia anyone can program.
As of this weekend, anyone on Earth can use Lua — a 20-year-old programming language already championed by the likes of Angry Birds and World of Warcraft — to build material on Wikipedia and its many sister sites, such as Wikiquote and Wiktionary. Wikipedia has long offered simple tools that let tens of thousands of volunteer editors reuse little bits of text across its encyclopedia pages, but this is something different.
“We wanted to provide editors with a real programming language,” says Rob Lanphier, the director of platform engineering at the Wikimedia Foundation, the not-for-profit that oversees the online encyclopedia. “This will make things easier for editors, but it will also be significantly faster.”
via Meet Wikipedia, the Encyclopedia Anyone Can Code | Wired Enterprise | Wired.com.
We Need an Economic Study on Lost Productivity from Poor Computing Education
How much does it cost the American economy that most American workers are not computer literate? How much would be saved if all students were taught computer science?
These questions occurred to me when trying to explain why we need ubiquitous computing education. I am not an economist, so I do not know how to measure the costs of lost productivity. I imagine that the methods would be similar to those used in measuring the Productivity Paradox.
We do have evidence that there are costs associated with people not understanding computing:
- We know from Scaffidi, Shaw, and Myers that there are a great many end-user programmers in the United States. Brian Dorn’s research on graphic designers identified examples of lost productivity because of self-taught programming knowledge. Brian’s participants did useless Google searches like “javascript <variablename>” because they didn’t know which variable or function names were meaningful and which were arbitrary. Brian saw one participant spend a half an hour studying a Web resource on Java, before Brian pointed out that he was programming in Javascript which was a different language. I bet that many end-users flail like this — what’s the cost of that exploration time?
- Erika Poole documented participants failing at simple tasks (like editing Wikipedia pages) because they didn’t understand basic computing ideas like IP addresses. Her participants gave up on tasks and rebooted their computer, because they were afraid that someone would record their IP address. How much time is lost because users take action out of ignorance of basic computing concepts?
We typically argue for “Computing for All” as part of a jobs argument. That’s what Code.org is arguing, when they talk about the huge gap between those who are majoring in computing and the vast number of jobs that need people who know computing. It’s part of the Computing in the Core argument, too. It’s a good argument, and a strong case, but it’s missing a bigger issue. Everyday people need computing knowledge, even if they are not professional software developers. What is the cost for not having that knowledge?
Now, I expect Mike Byrne (and other readers who push back in interesting ways on my “Computing for Everyone” shtick) to point out that people also need to know about probability and statistics (for example), and there may be a greater cost for not understanding those topics. I agree, but I am even harder pressed to imagine how to measure that. One uses knowledge of probability and statistics all the time (e.g., when deciding whether to bring your umbrella to work, and whether you can go another 10K miles on your current tires). How do you identify (a) all the times you need that knowledge and (b) all the times you make a bad prediction because you don’t have the right knowledge? There is also a question of whether having the knowledge would change your decision-making, or whether you would still be predictably irrational. Can I teach you probability and statistics in such a way that it can influence your everyday decision making? Will you transfer that knowledge? I’m pretty sure that once you know IP addresses and that Java is not the same as JavaScript, you won’t forget those definitions — you don’t need far-transfer for that to be useful. While it is a bit of a “drunk under the streetlight” argument, I can characterize the behaviors where computing knowledge would be useful and when there are costs for not having that knowledge, as in Brian and Erika’s work. I am trying to address problems that I have some idea of how to address.
Consider this a call to economics researchers: How do we measure the lost productivity from computing illiteracy?
Kids Use Coding Skills to Hack Online Games: Singular or Plural?
What a strange story! Are there really “kids” using coding skills to hack accounts? Or is there one case of one 11 year old Canadian boy, which has AVG concerned about coding instruction? And who’s calling C# “elementary”? What elementary schools are teaching “C#”?
Why would AVG be concerned about kids learning to program? It’s not the case that most CS classes cover “How to make a virus 101″ or “Advanced how to cheat other gamers.” I wonder if this is another case of “Don’t learn to code — leave it to the experts.” Is it really threatening to IT firms that more teenagers are learning to program?
Kids as young as 11 are using coding skills to hack accounts on social media and gaming sites, according to one report. Antivirus firm AVG says children are writing malware to steal data and virtual currency from friends.
However, the hacks are still in their infancy, as researchers found errors that trace back to the original source. One author included his exact email address, password and additional information, revealing an 11-year-old boy in Canada. Most programming languages researchers found in the study were elementary, such as C# and Visual Basic. Check out the video, above, for more.
Code Acts: How Computer Code influences the Way We Perceive the World
This is a fascinating essay. Some of it goes too far for me (e.g., that code “produces new forms of algorithmic identity”), but the section I quote below is making a deep comment relative to the arguments we’ve been making here about “computing for everyone.”
Why should everyone know about computing? I’ve argued about the value of computational literacy as literacy — a way of expressing and notating thought. I’ve also argued about the value of computer science as science — insight into how the world we inhabit works. This part of the essay is saying something more generative — that code provides metaphors for the way we think about the world, so not knowing about code thus limits one’s ability to understand modern culture and science. The idea is akin to computational thinking, but more about cultural practices than cognitive processes.
Code is the language of computation; it instructs software how to act. But as the instructions written down in code travel out into the world, organized in the algorithmic procedures that make up software, it also has a significant influence on everything it touches. The result is a profound softwarization of society as software has begun to mediate our everyday ways of thinking and doing.
For example, software and its constituent codes and algorithms have become a metaphor for the mind, for ideology, for biology, for government, and for the economy, and with the rapid proliferation of software as an interface to the world, code has been seemingly naturalized in collective life. Computer code has also been described as a kind of law, or the set of rules and constitutional values that regulate the web. The idea that code is law suggests that choices about how to code the web will define the controls and freedoms that are built or programmed into it.
These ways of looking at code demonstrate that code is much more than a language for instructing computing machines. Instead, we need to understand code as a system of thought that spills out of the domain of computation to transform and reconfigure the world it inhabits.
via Code Acts: How Computer Code Configures Learning | DMLcentral.
Michael Littman’s new blog: End-user programming for household devices
I’m excited about the direction that Michael Littman is taking with his new blog. It’s a different argument for “Computing for Everyone.” He’s not making a literacy argument, or a jobs argument. He’s simply saying that our world is filled with computers, and it should be easy to talk to those computers — for everybody. Nobody should be prevented from talking to their own devices.
The aspiration of the “Scratchable Devices” team is to help move us to a future in which end-user programming is commonplace. The short version of the pitch goes like this. We are all surrounded by computers—more and more of the devices we interact with on a daily basis are general purpose CPUs in disguise. The marvelous thing about these machines is that they can carry out activities on our behalf: activities that we are too inaccurate or slow or fragile or inconsistent or frankly important to do for ourselves. Unfortunately, most of us don’t know how to speak to these machines And, even those of us who do are usually barred from doing so by device interfaces that are intended to be friendly but in fact tie our hands.
We seem to be on the verge of an explosion of new opportunities. There are new software systems being created, more ways to teach people about programming, and many many more new devices that we wish we could talk to in a systematic way. The purpose of this blog is to raise awareness of developments, both new and old, that bear on the question of end-user programming.
via Scratchable Devices Blog | End-user programming for household devices.
Berners-Lee calls for computer science education for children
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.
Computer science counts towards the English Baccalaureate
I mentioned a while back that the Vint Cerf had expressed support for CS becoming part of the English Baccalaureate degree. It’s been announced that CS does now count, but as a science. Pretty much the same decision we made here in Georgia.
The decision by Education Secretary Michael Gove will mean that computing will count as a science in the English Baccalaureate for secondary school league tables from January 2014 – alongside physics, chemistry, biology and pupils taking double science.
The Department for Education says the change is intended to reflect the “importance of computer science to both education and the economy”.
via BBC News – Computer science part of English Baccalaureate.
Documentary Aims to Make Programming Cool
Code.org is aimed at making programming cool, and they’re going to do it with a documentary:
Code.org’s initial effort will be a short film, currently being edited, that will feature various luminaries from the technology industry talking about how exciting and accessible programming is. Two of the most famous programmers and entrepreneurs in history — Mark Zuckerberg, the chief executive of Facebook, and Bill Gates, the chairman and co-founder of Microsoft – were among the people interviewed for the film, according to a person with knowledge of the project who wasn’t authorized to discuss details about it.
Lesley Chilcott, a producer of the documentaries “Waiting for ‘Superman’” and “An Inconvenient Truth,” is making the film.
via A New Group Aims to Make Programming Cool – NYTimes.com.
Kids should learn programming as well as reading and writing – Mitch Resnick
A recommended video from Mitch Resnick, who leads the Lifelong Kindergarten group at the MIT Media Lab, the home of Scratch.
Most people view computer coding as a narrow technical skill. Not Mitch Resnick. He argues that the ability to code, like the ability to read and write, is becoming essential for full participation in today’s society. And he demonstrates how Scratch programming software from the MIT Media Lab makes coding accessible and appealing to everyone — from elementary-school children to his 83-year-old mom.
As director of the Lifelong Kindergarten group at the MIT Media Lab, Mitch Resnick designs new technologies that, in the spirit of the blocks and finger paint of kindergarten, engage people of all ages in creative learning experiences.
via Kids should learn programming as well as reading and writing – Boing Boing.
Computer code frees us to think in new ways: BBC News – Viewpoint
A nice piece describing reasons to learn code. What makes this one particularly noteworthy is how it talks about art, architecture, and aesthetic — learning to code as a way of connecting to our world.
Both aesthetic and rooted in physics, sturdy yet beautiful, containing both purpose and artistic intent. Code is now a core part of the architecture of the world we live in.
It both powers and shapes finance, business, and entertainment; it is embedded in our homes and in our pockets. And so “architecture” feels like the appropriate metaphor for the skills needed to master it: for architecture both shapes its inhabitants and is shaped by them.
Computer programs can make people more efficient in day to day life
It can’t really exist without people inside it. And we can’t separate code from people; from the people who write it; from the people who are shaped by it.
via BBC News – Viewpoint: Computer code frees us to think in new ways.
Recent Comments