Saturday, December 20, 2008

Computers in the Schools, Take 2.

I have a wonderful friend for whom I do writing, civil rights and consulting work, and who has asked me to work on drafting an Op-Ed piece for a major southern California newspaper on the issue of educational reform.


And, well, we have a disagreement on how best to cover it. So, I will rewrite for him but publish my version here.


I feel very strongly about pumping in another untold millions of public dollars into computers for schools that is almost certainly entirely wasted and wrong-headed because of the education industry's refusal to require basic computer literacy from teacher ed candidates.


My take is below.

====================================



Insanity is doing the same thing over and over, and somehow expecting the outcome to be different.


This recently-seen sig file on a “news for nerds” website is alarmingly apropos with respect to ongoing efforts at educational reform. Doing the same thing over and over... such as dumping untold billions of dollars into computers for schools – been there, done that, in the Clinton Administration, a decade ago. It was a failure then, and, if president-elect Obama's call to have a do-over succeeds, it's likely to be a failure now, at a time in which the public kitty increasingly cannot afford any more ill-conceived failures.


Larry Cuban has written a damning indictment of this entitled “Oversold and Underused: Computers in the Classroom.” His sobering analysis concluded that, among a host of factors, the need for stability trumping badly-needed rapid change and the neglect of politicians to ask why computers were even needed in the classroom contributed substantially to the stunning lack of return on the public's considerable investment. Like the banking and auto industry failures seen recently, the senseless dumping of computers into education without requiring follow-through from educators is a compelling demonstration of what happens when you have an insular body of professionals in a failing industry: power divorced from competence and reality; a power invested heavily in believing that, somehow, this time will be different despite doing nothing different.


Here's why this time probably won't be different. By 1984, as a society, we knew we were at the birth of the personal computer revolution. Certainly by the 1990s we knew it was a force to be reckoned with, especially in the field of education. But, in 2009, those who educate the educators will continue to fail to recognize the need to incorporate meaningful technology training in teacher preparation programs, meaning that all those shiny new computers in K-12 classrooms will continue to go largely unused -- at a price tag in the billions of public dollars, making them one heck of an expensive and utterly useless educational bailout package.


As an industry, education is incredibly insular – it recognizes little that is not internally validated. This is the industry which gave us our current constructivist approach to education in which, when taken literally, a central pillar of faith is that there is no such thing as objective truth or reality. Tell that to the programmer who needs his program to compile and later not unintentionally blow up a manned spacecraft; tell that to the engineer whose building needs to withstand an earthquake, or the doctor who needs to be able to figure out whether you've got cancer or merely indigestion. The real world and its problems are are based in objective reality and require that, when one “solution” isn't producing the desired results, you need to find another solution, and not drag your feet with your head in the sand.


The quality of our public education system is the predictor of whether or not the next generation will succeed or fail in taking charge of this country; whether we will continue to be a major world power or slide intellectually behind third-world countries. If we wish to be a competitor in the 21st century's global arena, our teaching and learning practices need to embrace 21st century tools and make dramatic changes to those practices in a timeframe which doesn't exceed a decade or more.


Education's insularity betrays our considerable investment in what is perhaps our greatest national product, namely, the human and social capital potentially produced by our schools. With respect to computers in the schools, that betrayal comes in the form of teacher education programs that comfortably ignore the personal computer revolution. Study after study pointedly documents that educators, both K-12 and in higher education, are, at best, casual, timid users of computer technologies: most only use those software programs pre-installed on their computers, namely, an office suite, email and web browser programs.


As a result, today's teacher preparation programs encourage a belief system that turns computers into incredibly expensive digital typewriters. Like the craftsman with only a hammer in his toolbox, educators tend to to define educational computer technology implementation in terms of the few, mostly inappropriate, software programs they already know how to use. This leads to such classroom insanity as making third-grade students input their vocabulary words into PowerPoint presentations or using a word processing program to type up stories or math word problems (by the way, these are actual examples of how computer technologies have been implemented in K-12; just how many billions of dollars would you estimate that is worth?).


Would we accept the bailout of the banks if they continued making the same risky loans? Are we in favor of funding a 'get out of bankruptcy court free' pass to automakers if they insist on not doing anything different than the same practices that got them into the financial morass they're in? Of course not – so why should education be any different?


Here's why we might as well be smoking the dollars we're insensibly burning: Thomas Alva Edison – not normally known as an imbecile – once famously predicted that the motion picture would lead to the death of the textbook. Dead Wrong. Radio, too, was predicted to become the airwaves of education. Didn't happen. Television (and, now, computer technologies used for distance learning) was supposed to largely eliminate the need for local classrooms and, well, that hasn't happened either.


Each novel technology has come with claims of revolutionizing education, claims that never quite translate into reality due at least in part to the inability of educators to critically examine the new technology, understand it, and learn how to effectively utilize it. It seems a remarkably lazy assumption that a radically new technology doesn't require the adoption of a new set of educational practices, and yet that has been education's response to the government's largesse. This intransigence to implement meaningful change ignores the wealth of literature which shows the educational benefits of computer technologies which utilize multiple media, interactivity, and customized tasks – the creation of such things by teachers which empowers both teacher and student. It is bafflingly unclear why, nearly a quarter century after the birth of the personal computer revolution, our nation's teachers still cannot fully realize the computer's benefits that were possible in 1987.


Like Barbie of old, ivory towers of teacher preparation programs cry that “programming's hard” and not something educators should have to learn. And however much we may want to sympathize that some of life's duties are, indeed, difficult, we need to realize that the reality of teachers being unable to create their own meaningful technology solutions means that the untold billions of dollars that have been – and will continue to be – spent on computers for the classroom is money we'd be better off spending on more janitors, nurses, teacher's aids, English language acquisition, and health, lunch and parenting programs.


And, of course, another factor frequently overlooked when reciting the 'we need more computers in the schools' mantra is that computer technologies are financial black holes that just keep growing. It's not sufficient to simply buy the machines – using and maintaining them requires the hiring of entire IT departments; additionally, there's software to purchase, training to provide (which, in the case of teachers, rarely happens), repair and replacement costs to shoulder. Technology is a hungry beast that requires constant and costly feeding.


Technology thus constitutes an entirely new set of budgetary requirements that unfortunately do not come with concommitant new sources of funding. As schools increasingly push their students to sell, sell, sell stuff that mostly nobody really wants to buy anyway, just to maintain basic services, and, at the same time, considerably increases homework loads just to make the No Child Left Behind folks happy with test scores, one wonders when exactly it is that a child gets to simply be a child. Just how many programs in the arts and vocational areas have been sacrificed to feed the federally-mandated technology beast? And at what cost to society? In this era of educational reform, have we forgotten the value of such things as creativity, play and imagination – three very important skill sets that helped some really innovative people born a half century or more ago to develop the personal computer, or take us to the moon, the solar system and beyond?


Social critic Neil Postman has observed that technological change is never value-free, nor are its effects additive – new technologies completely transform the social landscape with hidden value shifts that aren't well understood (or, indeed, are altogether ignored) in society's head-long rush to embrace the new technology as an unqualified a priori good. Were he alive today, Postman might well admonish us that, when gigabytes of storage, high bandwidth capacities, and megaherz processor clock speeds became the objects of desire, we unwittingly choose to value those things above the things that previously mattered to us -- helping children understand the process of negotiation by which we avoid nasty bullying to get what we want; fostering an environment which supports the creative and collaborative process by which we invent new things; nurturing good citizenship and an understanding of fair play and the civic principles for which this country stands.


And for what exactly???

Thursday, November 27, 2008

Recently seen on Slashdot...


...power corrupts. Powerpoint corrupts absolutely.

Wednesday, November 26, 2008

Revolution Media US$39!!

Revolution Media is being offered for a limited time for the fantastic price of $39!

Until November 30, you can save $10 off the normal download price of $49.

What is Rev Media? Rev Media has nearly all of the most important features of the full-blown Revolution product lines with the exception of being able to compile a standalone executable file. However, anything created with Media will run on all supported platforms (meaning, most importantly, Mac and Windows) via the freely-downloadable Media stack player (which is similar to the functionality provided by Hyperstudio).

From the company's website:

Revolution Media is the fun and creative, do-anything software construction kit everyone can afford. Learn programming logic, build exciting games, make quick work of projects large and small, and construct compelling multimedia experiences using drag-and-drop interface elements and the world's easiest language.

The company touts as advantage #1 that you can "learn programming" using Media. But, inasmuch as the "P" word tends to scare off alot of people who envision learning some nasty systems programming language featuring lots of ugly dot.syntax.unreadable.incomprehensible.crap, it should be noted that Media comes with the following out of the box:

* Templates to help automate the production of games, kiosks, portfolios and slide-shows
* 27 Quick-start tutorials and videos on how to use Media
* 78 Pre-built sample scripts to copy-paste into your own projects
* 13 Example stacks for you to use, modify, and take apart
* 377 page PDF User's Guide
* Full-featured, easy to learn English-like scripting language


Rev Media imports a broad spectrum of media formats -- GIF, JPG, PNG (for images), WAV, AIF (etc. for audio, although weird sampling rates on WAV don't work well), and QuickTime -- and thus make the product ideal for rich media presentations.

If I didn't already own an Enterprise license, I'd take advantage of this offer pronto! This product offers so many more advantages (short of the included stock media) than Hyperstudio that I still fail to understand the death-grip the latter has on the education market (probably it's that the older people with Ph.D.'s in education remember how horrific learning to program used to be back in the medieval period that they simply shy away from anything that promotes the "P" word... but that doesn't mean that the rest of us need to be dinosaurs, right?!).

Sunday, November 16, 2008

HyperStudio's Back!

And you might be wondering why that's a good thing(tm) as far as promoting Revolution is concerned, but it really is.

Roger Wagner is back as well, which will probably reassure those veteran educators who were fond of Hyperstudio and despaired of ever using it again.

Near as I can tell, it's still no Hypercard, much less Revolution, but boasts features that neither of the other two ever had or have yet, including kerning, web deployment (sure to delight the web-ueber-alles crowd, although the required plug-in appears to be Safari-specific), podcasting and webcam support, etc. And while the company's motto is "We know where your Mac wants to go,"  there are both Mac as well as Windows versions of the software. You can download a free stack Player for OS X versions of stacks created with the current version as well as an OS X player for legacy stacks made in versions 3 and 4. Mac OS 9 and Windows Players are also available, which is good news for those educators operating in legacy environments or using Windows.

HyperStudio seems to still utilize the stack-card metaphor, which is why its release is a good thing for Revolution, which also utilizes the stack-card metaphor; this could make it easier for HyperStudio users to feel comfortable investigating Revolution.

And why might they want to investigate Revolution? Because HyperStudio still lacks a scripting language, which means that, despite its wonderful new features, it is still a cross between PowerPoint and KidPix (the latter of which the company also sells). Revolution still wins hands-down for its natural-language scripting language which allows educators to easily create custom applications, including interactive fiction, testing software, and other media-rich software.

HyperStudio-loving educators who use Windows might want to make a foray into the Mac side, as the Macintosh version of HyperStudio is considerably beefier in terms of the out-of-the-box experience. The Mac version boasts more than 1,300 included clipart images as opposed to the 500 or so images included in the Windows version, and nearly double the number of animations as well (the number of included sounds and movies for both versions is the same; however, the Mac version includes what the company calls "semi-3D QTVR" movies).

The Mac "side" also boasts a greater number of export formats, including JPG, MOV, M4V (movie clips for iPod and iPhone), HTML, while the Windows side only exports to BMP, HTML and the standalone player that both can utilize.

Requirements. The Mac version can run on either PPC G4 or Intel processors, and requires 256 MB RAM and Mac OS 10.4.11 or newer. For Windows, you will Windows XP or later, a 600 MHz Intel-based processor and 256 MB of RAM.

A single license costs US$89.95. On the basis of the price point, however, Revolution still wins out, with RevMedia, which also requires a player (as opposed to being able to compile a standalone, which later versions of HyperCard and all versions of Revolution Studio or higher can do) costing a mere US$49.00.

Thursday, October 30, 2008

Explaining Contractions Using Revolution

The Revolution community is filled with many talented and prodigious programmers - the embodiment of those artists who actually meet deadlines and ship finished products.

I am not one of those people.

I have 7-year old twins, 5 chihuahuas, a part-time lecturing position at a state university and... well... I am an artist who doesn't ship.

But I can't tell you how many times I've used Revolution to make a half-baked stack, very successfully, I might add, to create a much-needed educational solution.

With respect to the creation of educational wares, we tend to be faced with a strict dichotomy between a certain very boring and largely inappropriate business-oriented presentation software that nearly all teacher education candidates are taught on the one hand, and the wonderful, full-featured software that many on our use-list are capable of producing (or, have indeed, produced) on the other. What we tend to forget is that there is a middle ground, one for which Revolution is the ideal candidate.

I think the education sector calls them "learning objects." That's their terminology for half-baked but imminently reusable software modules that do one small thing, but do that one small thing tolerably if not incredibly well. And that's what the bulk of my work using Revolution consists of these days.

For example - last year my children were in the first grade and, you know, first grade isn't what it used to be. They now demand that 6 and 7 year olds learn to read and create the relatively advanced language construct of contractions . My twins would come home literally crying in frustration over their inability to grok the concept.

I tried drawing them pictures. They didn't get it. They could barely read whole, simple, regular words, let alone something that's between a word and what??? How to effectively demonstrate the concept?

I was at a complete loss until I attended RevConWest in Las Vegas, Nevada, this year. I always enjoy Scott Rossi's informative and multimedia-oriented presentations and was somewhat floored to hear him toss out, quite casually, that in Revolution, it was simple stuff to animate an object along a graphic curve/object that the stack developer created.

Suddenly it was all so clear - I had been struggling with how to improve upon my drawings of the construction of contractions. Should I try it in iMovie? Break down and actually try to learn Flash? Neither seemed ideal, but right after Scott's presentation I sat down and spent maybe 20 minutes pulling together a simple stack that used Scott's tip (thanks!) to animate and underscore the construction of contractions using concepts as simple as the move command, text-to-speech commands, the wait command, changing the foregroundColor property for fields, and the if-then-end if that all real programmers apparently despise.

Here's what I did:

1. Launch Revolution. Create new Mainstack.

2. Found the image of a rectangular old-fashioned chalkboard image.

3. Set the windowShape property of my stack to the imported image ID of my chalkboard image. (I didn't need to do this; it was just eye-candy)

4. On card 1, I created 5 text fields as follows (for this particular contraction): "can" "+" "not"
"'" "o" (for an apostrophe and the about to be dearly-departed 'o' of my new contraction).

5. I decided to use the MacOS font chalkboard to emulate handwriting on a chalkboard. I set the foregroundColor property of all my text fields to white but then script them to change color to red when the text-to-speech command is speaking the word in the field.

I also used Rev's graphic-creation tools to create an arc that the apostrophe will traverse from its initial hidden outtasight position to where it will "bounce out" that troublesome "o" character to create the contraction.

The effect that I was going for was to very visually demonstrate two separate words coming together, with an apostrophe flying in from out of nowhere to bounce out the letter that it replaces in the newly-formed contraction, as this was the cognitive brick wall that my children were coming up against. Visually, it's a bit like watching a train wreck, except that it's a productive train wreck! The text-to-speech was used to help reinforce reading skills and to assist in how to pronounce the new contraction.

Below are the two main scripts that accomplish this:

6. In a preOpenCard handler, I set the loc of the apostrophe field to outtasight and hid the extra 'o' field but set its location to where it would need to be after moving the "not" field to its final destination:

on preOpenCard
set the loc of fld "could" to 221,188
set the loc of fld "not" to 550,188
put "o" after char 1 of fld "not" _ because it's deleted \
below
hide fld "o" -- because we don't need it until the train \
wreck
set the loc of fld "apostrophe" to 6,4
hide fld "apostrophe"
hide fld "equalSign"
hide fld "plusSign"
end preOpenCard



7. I entered the following in the card's openCard handler:

on openCard
wait 35 ticks
set the foregroundColor of fld "could" to red
revSpeak "could"
wait 45 ticks
set the foregroundColor of fld "could" to white
wait 25 ticks
set the foregroundColor of fld "not" to red
revSpeak "not"
wait 45 ticks
set the foregroundColor of fld "not" to white
wait 25 ticks
show fld "plusSign"
wait 45 ticks
hide fld "plusSign"
move fld "could" to 353,188 in 85 ticks
wait 15 ticks
show fld "equalSign"
show fld "apostrophe"
move fld "apostrophe" to the points of graphic "curve" Å
in 85 ticks
if the loc of fld "apostrophe" is not within the rect Å
of fld "area" then
hide fld "apostrophe"
end if
delete char 2 of fld "not" -- here's where I delete that "o"
show fld "o" at 548,188
move fld "o" to 554,621 in 85 ticks
hide fld "equalSign"
set the foregroundColor of fld "could" to red
set the foregroundColor of fld "not" to red
set the foregroundColor of fld "apostrophe" to red
revSpeak "couldn't"
wait 35 ticks
set the foregroundColor of fld "could" to white
set the foregroundColor of fld "not" to white
set the foregroundColor of fld "apostrophe" to white
wait 4 secs
visual effect wipe left
go next cd
end openCard


8. The above two scripts are repeated for each of the contractions needed on separate cards.

A few things are no doubt obvious at this point, the first of which is that I obviously never had any coursework in programming. Doubtless, there are more compact ways in which to script the same effect. But, for me, the winning feature is that I, as a non-programmer, could use a programming tool to whip up rather quickly a compelling bit of an educational solution the likes of which my children's teacher apparently could not. And my children didn't need to see that half-baked stack very many times before they "got it, thanks Mom!"

--If anyone wants the example stack, send me an email!

Friday, October 10, 2008

Welcome to Rev in Education!

Kindly listmom Heather Nagey at Runtime Revolution, in the course of an email on an unrelated matter, noted she needed an article to fill a hole in Revolution's online newsletter. I then whipped up the following half-baked offering (half-baked because there wasn't sufficient time to do anything but). I had mentioned to her that I had been thinking for some time of doing a blog on this very subject and when she indicated that this might be a good thing, I made the decision to finally get around to doing it.

Well, okay, the half-baked entry will be entry #2, not entry #1, as I suppose the latter really ought to actually explain what Revolution is and why I think it's ideal for the common educator who is looking for a technology solution that consists of using something other than PowerPoint (which I positively loathe, especially when it is used or demanded for use within the elementary education arena).

And so, what is Revolution and why exactly do I think you might want to learn more about it? The following is from a paper I presented at an AACE conference in Vancouver last summer (I believe it was ED-MEDIA 2008). I suppose AACE has some sorts of rights to it now and this is to give them/it their/its due.

=====================================

Runtime Revolution: An easy to learn programming software for educators

The public has high hopes for computer technologies in the public schools. An issue to be addressed is how best to utilize this investment. Computer technologies utilizing multiple media and interactivity are beneficial in teaching and learning. The production and sharing of learning objects demands that the educators possess the ability to create them. Numerous studies(1) reveal that most instructors do not venture beyond such “basic” computer usage tasks as email, the web and word processing. This article briefly examines novice/non-programmers and the multimedia authoring program Revolution concentrating on its programming language, visualization, and the possibility for meaningful module production/reuse.

Introduction
Computer scientist and educator Donald Norman (Norman, 1996) has noted that computer technologies, especially those utilizing multiple media and interactivity, are beneficial in three key areas of human learning, namely, engagement, effectiveness and motivation. Additionally, the excitement within the educational community with respect to the production and sharing of learning objects demands that the average educator possess the ability to create meaningful learning objects. This demand, however, presents the problem of learning the art of computer programming, an activity which suggests spending a good deal of time learning a cryptic computer language. This is not necessarily the case, however.

Some of you may remember Hypercard, an application program and programming development environment produced by Apple Computer in 1987. For those who never had the opportunity to use Hypercard, it was a graphically-oriented development environment coupled with not only an easily comprehensible, English language-like scripting language, but also a set of pre-built modules that the user could either utilize as-is out of the box or customize for a particular use. As such, it was in a way an embodiment of Ben Schneiderman's very articulation of the direct manipulation interaction paradigm that made graphical user interfaces such as Apple's Macintosh operating system easy to both learn and use by ordinary individuals: Hypercard provided (a) visual objects that (b) could be easily manipulated in (c) a series of rapid, incremental and reversible actions that resulted in the crucial feedback necessary for learning to use the program. As such, it was often used for rapid application development and quickly developed a reputation as a development environment which empowered ordinary persons to create their own software without enrolling in a computer science degree program.

Hypercard was not, however, without its disadvantages. Color support was weak; the only graphic file format directly supported was Apple's proprietary PICT; and standalone executable files could run only on Apple machines. These disadvantages, Apple's since-discontinuance of the program, the introduction of Microsoft's PowerPoint presentation software, and the development and popularity of the world wide web have seemingly introduced a shift among educators away from the production of interactive, desktop-based digital educational wares in favor of static web pages, PowerPoint presentations, and a few interactive digital modules produced by those increasingly fewer educators with the skills to embrace the hypermedia creation tools left on the market. Or, as Moser (2005) put it, “roughly ten years into the e-learning age, educational technology has made only modest inroads into changing teaching.”(2) The question, therefore, is whether there exists a market for a Hypercard-­like product or whether its paradigm-heyday should remain an education historical footnote.

The Rationale for Interactive Learning Modules and Problems with their Production
David Staley (2004) has suggested that discussions involving the implementation of digital technologies in the classroom begin by asking the question Why is this technology here?(3) “Ubiquity of technology is an insufficient rationale for inclusion in a classroom,” he advises.(4) Instead, as Claudia Perry (2004)(5) suggests, digital technologies in the classroom are best utilized when they “incorporate interactivity, self-paced and self-directed learning options... and varied presentations of information (text, audio, visuals, multimedia, simulation).”(6)

These qualities tend to be strikingly absent from most webpages and PowerPoint presentations, the former due to the need to learn something akin to a formal structured programming language, the latter by definition of the abilities of the software itself. Moreover, merely adding and simply reading a basic PowerPoint presentation, while technically meeting the average person's definition of using computer technologies in the classroom, is a tragic disservice to the public's investment in digital educational technologies: they lack the interactivity that makes computers in the classroom a useful pedagogical addition. Even students themselves find such presentations only marginally useful: one small study performed at the University of Washington suggests that students desire that such presentations be utilized more effectively,(7) which does little to suggest that said presentations are an effective learning tool in terms of engaging student interest.

One reason why such presentations are perhaps something less than an optimal example of computers in the classroom can be glimpsed in an observation Kendall Whitehouse (2005) made regarding the paradoxical earlier failure of television in the classroom as opposed to the well-known successes of educational television programs like Sesame Street and programs provided on the History Channel: “They do not use television to replicate the experience of the classroom. They provide a different type of learning, driven by the particular characteristics of the medium.”(8) Indeed, a large part of what distinguishes computer software from, say, a book, is its interactive nature. More pointedly, as Marshall McLuhan put it, “the medium is the message,”(9) and, in the case of the computer and its related technologies, the medium/message is interactivity. Thus, when designing computer tools for learning, it is imperative that one capitalizes on the computer's ability to provide interactivity, not only because it assists with engaging the learner but also because it leverages the characteristics of the computer's medium.

Armed with this insight, one might wonder why educators sometimes place such emphasis on PowerPoint presentations as an effective educational tool given the wide variety of digital creation tools that currently exist. The Wharton School (University of Pennsylvania) has developed and implemented what they feel is a fairly successful usage of web-based gameplay learning and simulation in the teaching of business and economic concepts.(10) The very nature of game play and simulation must needs require interaction with the end user. To achieve this need, the Wharton School utilizes a full-time IT staff to create these interactive learning modules in consultation with its faculty, and uses industry-standard development tools, including Macromedia's (now Adobe) ColdFusion MX, Flash and Dreamweaver, and Microsoft's SQL Server.(11)

The fact that the U of P requires a full-time IT staff to develop these programs as opposed to the faculty members themselves developing them is telling: industry standard tools tend not to be embraced by the average instructor. There exist entire certification processes for learning SQL; providing interactivity in Flash requires learning the close cousin of the JavaScript scripting language which was primarily designed as a “lite” version of the formal programming language Java (and which itself is the topic of numerous university-level classes and programs). Dreamweaver likewise requires the use of a relatively unintuitive scripting language or environment in order to provide web-based interactivity (such as asp or php-based solutions).

These, clearly, then, are not exemplary of programming solutions 'for the rest of us.' The reasons are well-known to those who study the psychology of the novice or non-programmer. Novice/non-programmers, not unlike the majority of the consumer (i.e., non-programmer) population are mystified by the computer's operations and see them largely as a mysterious black box (DuBoulay, as cited by Mayer, 1981).(12) Adding to this obstacle is the fact that computer languages have a distinct epistemology of computer data structures and algorithms that differ radically from the epistemology of natural human languages (Smith, Cypher, & Schmucker, 1996).(13) To put it briefly, as Solloway (1983) has noted, “even at a simple level, [programming] is a difficult activity to learn”(14) (one must understand that, in 1983, programming involved a strictly command-line environment). Indeed, it is estimated that fewer than one percent of computer users have the ability to engage in programming activities.(15)

The nature of the programming language itself presents a major obstacle for the novice/non-programmer, and it has been found that this audience has difficulty in parsing pseudocode [that is, natural-language] representations of the programming problem into the development environment's syntactical language (Green, 2001; Barr, Holden, Philipps, D. & Greening, 1999).(16) Additionally, programming language reference materials, especially language dictionaries, are of little assistance in that resources targetting the programming community tend to present code examples in isolated, small examples which are focused on a single concept or a single language construct.(17) This isolation removes code from context as well as code from feedback, and thus further fragments the programming/learning to program process by resulting in a critical lack of understanding of how intentions become pseudocode, and how pseudocode is translated into valid but rigidly syntactic computer language. Hence, both the traditional programming references as well as the nature of the programming language itself can result in the novice/non-programmer failing to develop an understanding of how the subcomponents of computer programs relate to one another and to the program's overall objectives.(18)

As an example, to set the label of a button, a traditional [object oriented] programming language would require the user to write

firstButton= new button
firstButton.label = "push me"


Whereas an authoring system/programming environment which utilized a language with natural-language properties would require the user to write

set the label of button 1 to "push me"

Two things should be immediately apparent when comparing the two sets of code: first, the traditional language required two lines of code whereas the natural-language language required only one, and, second, the natural-language code style mimics the way humans think (and, additionally, would be rather similar if not altogether identical to the pseudocode describing said action). This short example is indicative of the power of a non-traditional programming language using natural-language properties to capitalize on the novice/non-programmer learner's innate capacity for natural human language as an anchoring or scaffolding strategy in learning a development environment's programming language.

A second large obstacle facing the novice/non-programmer is the absence in many development environments to provide visual or otherwise obvious “one-to-one mapping between what they write or see (in the code) and what the system is doing as a result”(19) in the midst of a programming activity. This suggests that visual and visually-oriented programming environments such as Hypercard, Flash, Dreamweaver, VisualBasic and various iconic-flow programs would lend themselves well to the non/novice programmer by providing visual and metaphoric mappings or models of the programming environment which link code and output.(20) A wealth of literature exists documenting the importance of appropriate metaphor, visualization and natural-language environments in making programming an embraceable opportunity for the novice/non-programmer and will not be repeated here. The question here is whether or not Revolution is an example of that desired category of programming environments.

What is Revolution?
Revolution is very similar to Apple's Hypercard in that it is an object and media-rich, event-driven development environment which utilizes a natural language-like scripting language at its core. As in Hypercard, the metaphor in use for application development is the one of a 'stack' of cards. A 'stack' is a series of cards presented in a window. A stack can contain other stacks; additionally, two or more stacks can be deployed simultaneously in two separate windows. If the “stack-card” metaphor seems a bit dated, feel free to think of a “stack” as an application, and a “card” as a particular screen or window view (indeed, the need for retaining the stack-card metaphor and language elements is due to the company's wish to ease the transition of previous users of Hypercard and Supercard to allow them to import pre-existing “stacks” made with those products with only minimal scripting changes needed). Additionally, Revolution provides a wide variety of pre-made interface elements, from various button types (including menuing elements)to different text fields to graphics, movie objects (linked to QuickTime movies), image areas (for bitmapped graphics) and, within variants of *nix, vector graphics which the user may add to their project by a drag-and-drop methodology from Revolution's tools palette.

In sharp contrast to web-based documents, it is very easy to bring the application to life. Simple actions can be assigned directly to any of those elements with Revolution's language scripting language, thus reinforcing the concept of objects which exhibit event-driven behavior via the pedagogically sound method of linking code and output.

For instance, in a simple navigation system within a stack, the stack developer might wish to provide forward and backwards navigation buttons. Using Revolution, the procedure would be to drag-drop the button type of choice to one's open stack, then double-click the button itself directly to access a script window allowing the developer to assign the following scripted behavior (note: all text following “--” is commentary to the preceding code; the “--” tells the underlying engine to ignore anything following it on any given line):

on mouseUp –-the event precipitating the action
go next card –- the behaviour to be performed by clicking
end mouseUp –- the end of this particular action


Thus, in the above example, we have visual objects that the learner can manipulate, a direct object-action mapping paradigm linking code, object and outcome, and, additionally, by switching mode within the development environment from development to user/test mode (Revolution does not require a program to be compiled for testing, or, indeed, even end user use purposes), the learner can immediately test his/her efforts and receive valuable feedback which can serve to reinforce learning.

This is in stark contrast to authoring environments which utilize more formal programming languages: Richard Decker (of Analytical Engine fame, 1990) has noted that “even students with very good quantitative skills often expend more energy learning where semicolons belong than they do mastering the concepts.”(21) Decker's initial efforts involved a “best approaches” look at the single, terminal, university-level course in computer science which targets the non-computer science major. His findings suggest that visually-oriented authoring environments such as Hypercard or Revolution with natural-language like scripting languages support learning in that novice/non-programmers “want results, and we feel that at the introductory level this is an entirely appropriate point of view.”

Furthermore, by engaging in even such a simple programming activity as that noted above, the direct and immediate feedback can provide a sense of accomplishment(22) that not only is encouraging for the new/non-programmer, but also is an example of “actually completing assignments... that require technology skills” that Efaw (2005)(23) has noted as being one of two critical elements for successful implementation of technology in the classroom.

Meaningful interactivity, however, requires more than simply creating “go next” buttons that mimic using the space bar in a PowerPoint presentation. More complex interactivity can be created in Revolution by using what is called “branching constructs”; these provide different paths of action for the end user/student and can also be achieved using, again, natural-language constructs:

on mouseUp
answer “What do you want?” with “Coffee”, “tea” and “me”
if it is “Coffee” then –– user clicked Coffee
answer “Bad for your health” –– new dialogue box
end if
if it is “tea” then –– user clicked tea
answer “High in antioxidants!”
end if
if it is “me” then –– user clicked me
answer “I'm taken!”
end if
end mouseUp


In the above example, if-then and if-end if structures are used to provide branching for interactivity. The answer- with command produces a dialogue box with the button choices specified in the remainder of that line of code (up to 7 such choices are supported) whereas the answer alone command provides a dialogue box with the text specified.

Thus, on the surface, Revolution works much like the easy-to-use interface and application builder that Hypercard was. It is very similar. However, Revolution takes the Hypercard paradigm several steps forward. Recall some of the disadvantages of Hypercard: limited graphics support, practically nonexistant color support and the inability to deploy creations to the Windows operating system. Conversely, Revolution supports the major graphics file formats (TIFF, PNG, JPG, GIF etc.) as well as provides modern color support. Additionally, Revolution breaks the platform barrier by allowing a stack developer to deploy his or her creations onto the current major operating systems – Mac OS 9, Mac OS X, Windows Vista and XP, and a number of unix variants. Moreover (and very unlike Hypercard, which provided user interface elements that in some instances weren't even in compliance with Apple's Human Interface Guidelines -- HIG -- for the time), the Revolution engine creates interface elements that are HIG-compliant for every platform supported without any work required by the stack developer.
It sounds simple, and, for you, the potential developer of educational learning objects, it is simple, but what it means is quite extraordinary. You could even start making shareware applications that not only run in the Mac OS, but also in Windows, IRIX, Solaris, and more. And in case you prefer to impose your own style rather than follow the OS native ones, you are free to create windows of any size and shape or create widget-like applications translucent backgrounds. Moreover, with respect to the issue of distribution and reuse of learning objects, Revolution provides the free and easy ability to upload your stacks to a common and freely accessible server from within the program's IDE (integrated development environment), another successful strategy for assisting educators to infuse technology in the classroom.24

Revolution is thus a write-once, run-anywhere format. For the capital outlay of less than US$100, users can distribute their application in a format that requires a player. However this player comes for free and exists for any of the most common operating systems. For a heavier price tag, you can compile your stack and transform it into a native executable application that runs on those same operating systems, thus eliminating the need for a player engine. All you need is a license that allows you to compile for the appropriate OS. In other words, the potential audience for any of your applications can be almost infinitely expanded, literally at the click of a button.

Moreover, and important with respect to the popularity of learning objects and building collaborative repositories for the same, in addition to the ability to upload learning objects to Revolution's publicly-accessible server, uncompiled Revolution stacks allow new users or fellow developers the possibility to modify the existing learning object or repurpose useful code modules used within the learning object. This results from the uncompiled nature of the Revolution stack which provides not only full access to underlying code attached to specific objects, but also the ability to simply copy-paste useful objects and code between learning object stacks. Thus Revolution is not only learnable, but its IDE or integrated development environment actually supports as well as encourages learning and the ability for code modification/reuse directly.

Advanced Features
Revolution also provides solutions for more complex visual and audio representations of information. It has functions that give you formatted display of HTML or RTF content; spreadsheet/table fields; MIDI music file creation and playing; new sound-recording architecture; support for the parsing and creation of XML documents; Unicode text entry and text manipulation; instant access to web protocols like HTTP or FTP, and TCP sockets; almost instant access to SQL databases; and calls to the system shell. As an example, it has the ability to read a web document using the simple single line of code get url "google.com". Similarly, external web files can be linked to within Revolution using the simple bit of code go url "http://google.com", which launches the end user's default web browser and, if the computer has an active internet connection, directs the web browser to the specified site.

Revolution is also adept at text handling, largely because it does not utilize typed data that most formal programming languages use. For example, in a formal programming language, data must be declared to be boolean, integer, floating and strings. Failure to correctly indicate the data type can lead to the program not working. However, in Revolution, there is no need to declare data types: Revolution simply examines the data in context and chooses the correct form of treatment. Hence, in Revolution, “two” is the same as “2”. To put in a scrolling list field the data corresponding to the fourth column of data of a csv file exported from Excel, nothing more is needed than

repeat for each line l in file url "my.home.page—my_data.csv"
put item 4 of line l after field "the data"
end repeat


Revolution can also handle regular expressions. All tag names in a XML document can be found with the instruction

get matchtext(the_text, "<([^> ])+", the_match)

Regex and CSV and XML, oh my!
What's all this incomprehensible stuff about csv formats and regular expressions and text handling? Don't worry – if you don't need it, you don't need to know about it to use Revolution. But it's nice to know that, should you, the now novice/non-programmer, ever decide to spend a half-decade pursuing a degree in computer science, you won't necessarily feel the need to pitch Revolution overboard because it can't do “real” programming. For instance, recall the earlier example touting the simplicity and intuitiveness of Revolution's use of the if-then and if-end if constructs? Here's a secret: “real” programmers largely hate these constructs for being too verbose; they like “case” and “switch” statement constructs. Revolution isn't particular about which you use; use whichever is most within your comfort zone. Just keep in mind that being able to build something functional, polished, and impressive on, say, your Mac and hand it over to your, say, Windows or Linux-using (or, vice-versa) students and colleagues comes at the educationally-attractive price of ~US$50 (for Revolution Media, which also comes with pre-built templates, including games).

Conclusion
When Apple stopped supporting Hypercard, Educators were forced to moved on. Some moved to Macromedia Director or Flash, others to REALbasic, and, increasingly, many others to Microsoft's FrontPage and PowerPoint. But of the latter two, one still requires the mastery of complex language solutions and the second is lacking in interactivity. Somehow, the complexity or limitations of the “solutions” currently in use by and for educators seem to have put an end to educator's efforts and abilities to develop clever applications for use in the classroom. We sincerely hope that Revolution will re-energize them. The Revolution development environment is a breakthrough for anyone who writes and designs computer software. Revolution enables developers to easily and quickly create powerful Internet-enabled applications and solutions which can be delivered on Linux, Mac OS X, classic Mac OS, Windows, and popular UNIX systems. This makes it ideal for the education market.

Notes

(1) Green, K.C. (2003). The 2003 Campus Computing Survey, http://www.campuscomputing.net (accessedApril 2, 2007).

(2) Moser, F. (2007), Faculty Adoption of Educational Technology. Educause Quarterly (1)2007, p. 66. This particular article deals with faculty adoption of digital tools for learning in higher education.

(3) D. Staley (2004), Adopting Digital Technologies in the Classroom: 10 Assessment Questions, Educause Quarterly (3)2004, pp. 20-26.

(4) Ibid, p. 23.

(5) C. Perry (2004), Information Technology and the Curriculum: A Status Report. Educause Quarterly (4)2004, pp. 28-37

(6) Ibid, p. 30.

(7) Ibid, p. 31. Perry citing K. Gustafson, The Impact of Technologies on Learning, Planning for Higher Education, 33(2), pp. 37-43.

(8) Whitehouse, K. (2005). Web-Enabled Simulations: Exploring the Learning Process, Educause Quarterly 2005(3), p. 20.

(9) McLuhan, M. and Fiore, Q. (1967), The Medium is the Message: an inventory of effects.

(10) Ibid.

(11) Ibid, p. 23.

(12) Mayer, R. (1981). The Psychology of how novices learn computer programming. ACM Computing Surveys 13(1), 121-142.

(13) Smith, D., Cypher, A. & Schmucker, K. (1996). Making programming easier for children. ACM Interactions 3(5), 58-68.

(14) Bonar, J. & Soloway, E. (1983). Uncovering principles of n ovice programming. Proceedings of the 10th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, 10, 10-13.

(15) Smith, D., Cypher, A. & Schmucker, K., op cit.

(16) Green, T. (2001). Instructions and descriptions: some cognitive aspects of programming and similar activities. Proceedings of the working conference on advanced visual interfaces, 21-29.; Barr, M., Holden, S., Philipps, D. & Greening, T. (1999). An exploration of novice programming errors in an object-oriented environment. SIGCSE Bulletin 31(4), 42-46.

(17) Neal, L. (1989). A system for example-based programming. CHI'89 Proceedings, 63-68.

(18) Guzdial, M. (1995). Centralized mindset: a student problem with object-oriented programming. SIGCSE'95, 182-185.

(19) Ramadhan, H. (1992). An intelligent discovery programming system. Proceedings of the 1992 ACM/SIGAPP Symposium on Applied Computing: technological challenges of the 1990's, 149-159.

(20) Smith King and Barr, 1997

(21) Decker, R. and Hirshfield, S. (1990), A Survey Course in Computer Science using Hypercard. Proceedings of the twenty-first ACM-SIGCSE technical symposium on computer science education 22(1), pp. 229-235.

(22) Decker, ibid.

(23) Efaw, J. (2005) , No Teacher Left Behind: how to teach with technology. Educause Quarterly 4, 28-29.

(24) Efaw, op cit., 30.


About the authors

Judy L. Perry (BA History; MPA Public Administration; MSIDT Instructional Design and Technology, CSU Fullerton). Judy is currently a lecturer in the Computer Science Department at California State University, Fullerton.
Marielle Lange (BSc Psychology, Bruxelles; M.Phil Biology, Cambrdige; PhD Psycholinguistics, Bruxelles). Marielle has recently moved into custom software development after a decade of study, research and lecturing at Cambridge University and University of Edinburgh. She is especially interested in the creation of educational tools, with, for instance, the development a webmuseum of perception and cognition that received an award for best educational website (NAWeb 2000).