Posts tagged ‘end-user programming’
I was intrigued to see this post during CS Ed Week from ChangeTheEquation.org. They’re revisiting the Scaffidi, Shaw, and Myers question from 2005 (mentioned in this blog post).
You may be surprised to learn that nearly DOUBLE the number of workers use computing than originally thought. Our new research infographic shows that 7.7 million people use complex computing in their jobs — that’s 3.9 million more than the U.S. Bureau of Labor and Statistics (BLS) reports. We examined a major international dataset that looks past job titles to see what skills people actually use on the job. It turns out that the need for complex computer skills extends far beyond what the BLS currently classifies as computer occupations. Even more reason why computer science education is more critical than ever!
ChangeTheEquation.org is coming up with a much lower estimate of end-user programmers than did Scaffidi et al. Why is that? I looked at their methodology:
To estimate the total number of U.S. citizens who use computers in complex ways on the job, CTEq and AIR examined responses to question G_Q06 in the PIAAC survey: What level of computer use is/was needed to perform your job/last job?
- STRAIGHTFORWARD, for example using a computer for straightforward routine tasks such as data entry or sending and receiving e-mails
- MODERATE, for example word-processing, spreadsheets or database management
- COMPLEX, for example developing software or modifying computer games, programming using languages like java, sql, php or perl, or maintaining a computer network
Their “Complex” use is certainly programming, but Scaffidi et al would also call building spreadsheet macros and SQL queries programming. ChangeTheEquation has a different definition that I think undercounts significantly.
I spoke to the author, Esther Shein, a few months ago, but didn’t know that this was coming out until now. She makes a good effort to address both sides of the issues, with Brian Dorn, Jeannette Wing, and me on the pro side, and Chase Felker and Jeff Atwood on the con side. As you might expect, I disagree with Felker and Atwood. “That assumes code is the goal.” No–computational literacy and expression, the ability to use the computer as a tool to think with, and empowerment are the goals. Code is the medium.
Still, I’m excited about the article.
Just as students are taught reading, writing, and the fundamentals of math and the sciences, computer science may one day become a standard part of a K–12 school curriculum. If that happens, there will be significant benefits, observers say. As the kinds of problems we will face in the future will continue to increase in complexity, the systems being built to deal with that complexity will require increasingly sophisticated computational thinking skills, such as abstraction, decomposition, and composition, says Wing.
“If I had a magic wand, we would have some programming in every science, mathematics, and arts class, maybe even in English classes, too,” says Guzdial. “I definitely do not want to see computer science on the side … I would have computer science in every high school available to students as one of their required science or mathematics classes.”
The new Wolfram Language sounds pretty interesting. I was struck by the announcement that it’s going to run on the $25 Raspberry Pi (thanks to Guy Haas for that). And I liked Wolfram’s cute blog post where he makes his holiday cards with his new language (see below), which features the ability to have pictures as data elements. I haven’t learned much about the language yet — it looks like mostly like the existing Mathematica language. I’m curious about what they put in to meet the design goal of having it work as an end-user programming language.
Here are the elements of the actual card we’re trying to assemble:
Now we create a version of the card with the right amount of “internal padding” to have space to insert the particular message:
Congratulations! Well-deserved! Here’s a link to the original paper.
Brad A. Myers, professor in the Human-Computer Interaction Institute, will be honored for the second year in a row as the author of a Most Influential Paper at the IEEE Symposium on Visual Languages and Human-Centric Computing, (VL/HCC). He is the first person to win the award twice since it was established in 2008.
Myers and his co-authors — former students Andrew Ko, the first author, is now an assistant professor at the University of Washington, and Htet Htet Aung, now a principal user experience designer at Harris Healthcare Solutions in the Washington, D.C., area — will receive the Most Influential Paper award at VL/HCC 2013, Sept. 15-19 in San Jose, Calif. The symposium is the premier international forum for research on how computation can be made easier to express, manipulate, and understand.
Their 2004 paper, “Six Learning Barriers in End-User Programming Systems,” focused on barriers to learning programming skills beyond the programming languages themselves. Their study of beginning programmers identified six types of barriers: design, selection, coordination, use, understanding, and information. This deeper understanding of learning challenges, in turn, supported a more learner-centric view of the design of the entire programming system.
Nice piece in Smithsonian Magazine about the efforts to move computing into primary and secondary schools. And hey! That’s me they quoted! (It’s not exactly what I said, but I’ll take it.)
Schools that offer computer science often restrict enrollment to students with a penchant for math and center the coursework around an exacting computer language called Java. And students frequently follow the Advanced Placement Computer Science curriculum developed by the College Board—a useful course but not for everyone. “What the computer science community has been slow to grasp is that there are a lot of different people who are going to need to learn computer science, and they are going to learn it in a lot of different ways,” says Mark Guzdial, a professor of interactive computing at the Georgia Institute of Technology and author of the well-respected Computer Education blog, “and there are a lot of different ways people are going to use it, too. ”
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.
LiveCode had an earlier blog piece on how they want to implement “Open Language” so that the HyperTalk syntax could be extended. This piece (linked below) goes into more detail and is an interesting history of how LiveCode evolved from HyperCard, and how they plan to refactor it so that it’s extensible by an open source community.
LiveCode is a large, mature software product which has been around in some form for over 20 years. In this highly technical article, Mark Waddingham, RunRev CTO, takes us under the hood to look at our plan to modularize the code, making it easy for a community to contribute to the project. The project described in this post will make the platform an order of magnitude more flexible, extensible and faster to develop by both our team and the community.
Like many such projects which are developed by a small team (a single person to begin with – Dr Scott Raney – who had a vision for a HyperCard environment running on UNIX systems and thus started MetaCard from which LiveCode derives), LiveCode has grown organically over two decades as it adapts to ever expanding needs.
With the focus on maintenance, porting to new platforms and adding features after all this time evolving we now have what you’d describe as a monolithic system – where all aspects are interwoven to some degree rather than being architecturally separate components.
via Taming the Monolith.