Posts tagged ‘end-user programming’
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.
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.