Monday, September 10, 2007
what is the effect of technology, work, play and the media in general on our intelligence?
Are we becoming smarter or dumber?
Are we living in some sort of Huxleyian "Brave New World" fog, endlessly distracted from the vital issues of our time? A western form of brainwashing? Contrast this with the Marxist view that the capitalist system creates its own gravediggers. Which is correct?
Or, are we becoming smarter but feel unfulfilled because we sense our lives could be much better?
Were people smarter when print was the dominant medium? (Postman and Gatto seem to be saying this)
What effects do TV, video games and the internet have on intelligence?
Is there a general upward trend in intelligence irrespective of media?
Are we getting smarter but still not utilising our full potential, that many are missing out on really important "higher learning" (whatever that is)?
Is the western canon important. Are there important texts or concepts that an educated person ought to read or develop? (Kay has articulated a list of "non universals")
Does the way in which work is organised make us less or more intelligent? (Braverman argued less; Adler argued more)
Are political influences, such as the politics of inclusion, making us dumber? (Furedi argues this)
"Dumbing down" is a popular phrase. Some people argue that things as varied as TV, playing video games, School and going to work dumb you down. But others argue that TV and video games can make you smarter. Some even argue that School can make you smarter but that is very uncool :-)
Anti elitism and egalitarianism are popular sentiments. But do these sentiments mask anti-intellectualism?
I'd like to explore these questions:
1. the effect of broad media changes on our intelligence
2. the effect of personal computing on our intelligence
3. the effect of the internet and "web2.0" on our intelligence
4. the effect of School on our intelligence
5. the effect of work on our intelligence
6. the effect of the politics of inclusion on our intelligence
READING LIST
(I might come back and update and / or annotate this from time to time)
I am currently reading some of this material and would be interested in the opinions of others who are reading it.
1. the effect of broad media changes on our intelligence
Postman, Neil. Amusing Ourselves to Death: Public Discourse in the Age of Show Business (1985) 116 reviews
Bauerlein, Mark. The Dumbest Generation: How the Digital Age Stupefies Young Americans and Jeopardizes Our Future (Or, Don't Trust Anyone Under 30). (amazon)
Recommended by Mark Nichols in this substantial blog: Solid Thinking
Gee, James Paul. What Video Games Have to Teach Us About Learning and Literacy (2003) 26 reviews
Johnson, Steven. Everything Bad is Good for You: How Today's Popular Culture is Actually Making Us Smarter (2005) 70 reviews
2. the effect of personal computing on our intelligence
Kay, Alan. Some annotated references
"Point of view is worth 80 IQ points"
explanation: At PARC we had a slogan: "Point of view is worth 80 IQ points." It was based on a few things from the past like how smart you had to be in Roman times to multiply two numbers together; only geniuses did it. We haven't gotten any smarter, we've just changed our representation system. We think better generally by inventing better representations; that's something that we as computer scientists recognize as one of the main things that we try to do.
another explanation: what is special about the computer is analogous to and an advance on what was special about writing and then printing. It's not about automating past forms that has the big impact, but as McLuhan pointed out, when you are able to change the nature of representation and argumentation, those who learn these new ways will wind up to be qualtitatively different and better thinkers, and this will (usually) help advance our limited conceptions of civilization (source)
Some recent discussion about non universals and powerful ideas here
Papert, Seymour. Mindstorms: Children, Computers and Powerful Ideas (1980) my review
Papert, Seymour. The Children's Machine: Rethinking School in the Age of the Computer (1993)
Maxwell, John. Tracing the Dynabook: A Study of Technocultural Transformations (2006) link to pdf
3. the effect of the internet and web2.0 on our intelligence
Keen, Andrew. The Cult of the Amateur: How Today's Internet is Killing Our Culture (2007) 50 reviews
Is Google Making Us Stupid? Nicholas Carr (argues that net use works against deep, reflective reading; also discusses hisorical parallels)
Weinberger, David. Everything is Miscellaneous: The Power of the New Digital Disorder
video of a debate between Weinberger and Keen
Clay Shirky is my favourite informed commentator on these questions at the Many2Many site. For example, Andrew Keen: Rescuing 'Luddite' from the Luddites, is a critique of Keen
Friedman, Thomas L. The World is Flat: A Brief History of the Twenty-First Century (2005) reviews
Locke, Chris; Searls, Doc; Weinberger, David. The ClueTrain Manifesto: The End of Business as Usual 95 theses
4. the effects of School on our intelligence
Gatto, John Taylor. Dumbing Us Down: The Hidden Curriculum of Compulsory Schooling (1992). Gatto also has a web site, Challenging the Myths of Modern Schooling
the "outcomes based education literature
Berlach, Richard G., Outcomes-Based Education and The Death of Knowledge pdf
Killen, Roy. Outcomes-Based Education: Principles and Possibilities html
5. the effect of work on our intelligence
Braverman, Harry. Labor and Monopoly Capital (1974)
Adler, Paul. Technology and the Future of the Firm: A Schumpeterian Research Agenda (1985)
Langer, Albert. Technology and the Future of Work (1985)
Adler, Paul. Technology and Us (1986)
Adler, Paul. Technology and the Future of Work (1992) description
Postrel, Virginia. The Future and Its Enemies (1998) excerpts reviews
6. the effect of the politics of inclusion on our intelligence
Furedi, Frank. Where Have All The Intellectuals Gone?: Confronting 21st Century Philistinism (2004) reviews
Friday, September 07, 2007
when kids program visually in etoys / squeak what is happening programatically under the hood?
When you program in etoys you first draw something, then you convert it to an object, then you display a Viewer which enables you to observe the properties (heading, x position, y position etc.) and write scripts for the object. You can also produce a second object and then pass variables between objects. For example, you can pass the heading of a rocket's steering wheel from the steering wheel to a script which belongs to the rocket.

There is stuff happening here which I haven't seen in other programming systems. What other system enables you to visually pass a variable from one object to another and then lets you observe it running and change it while it is running? What is about Squeak / Smalltalk that makes this possible when it is apparently not possible in other programs like Game Maker or Flash?
Specifically, I want to understand what is happening behind the scenes. What classes are involved? And in connection to an earlier blog about OOPs: Is etoys programming an example of "class create" or "object use"?
This involves looking behind the etoys visual interface to the Smalltalk classes and code which is making it possible.
Understanding this might have important implications wrt how we first teach programming to our youth. Can OOPs be taught to youth before procedural programming?
I previously wrote a blog about OOPs in which I quoted from mark guzdial's blog extensively. Mark is saying that OOPs is harder than procedural, with specific reference to "class create" being harder but not so much wrt "object use":
- "Object-use" means instantiating objects, applying methods to objects, writing new methods.Charles Stewart left a comment on my blog suggesting I look at prototype based programming, he left a link to a wikipedia article about it. When I looked that up it said that a prototype was cloning of instances and called it class-less and it made reference to the concept coming from Self and Squeak
- "Class-create" means creating new classes and solving problems by writing different methods in different classes (distributing responsibility).
Then when I read about the background to morphic I came across this (User-Scripting has since evolved into etoys):
"In the User-Scripting style, you construct surface graphics by directly assembling standard Morphic parts -- e.g. Rectangles, Images, Joysticks, etc., by dragging them from a Parts Bin and arranging them as desired, and then you add user-defined state and behavior by adding instance variables and writing methods for "Players" who represent the individual morphs you wish to script.How to look behind the scenes?
The user thus does not directly subclass any particular kind of Morph, but rather she assembles Morphs and gives them special state and behavior by associating them with "Players", which are the fundamental user-scriptable object types for User Scripting."
- IntroductionToMorphic/Morphic-Styles-Scripting
If you click on the light gray debug halo, the one with a spanner icon, a menu appears which enables you to inspect the morph. Then by clicking on extension you can see the important classes involved in the programming side of things. Then you select (highlight) the class name you want more information about and followed by Alt+b to open the browser on that class. This contains all the information you want.

Smalltalk has the open-ness and tools to enable you to look under the hood which is a significant other advantage for learning. Any proprietary program which hides or blocks information is reducing the potential to learn important under the hood knowledge.

By poking around in this way I discovered that the important classes involved are MorphExtension and the Player class, which are described as follows:
Object subclass: #MorphExtension
instanceVariableNames: 'locked visible sticky balloonText balloonTextSelector externalName isPartsDonor actorState player eventHandler otherProperties'
classVariableNames: ''
poolDictionaries: ''
category: 'Morphic-Kernel'
MorphExtension provides access to extra instance state that is not required in most simple morphs. This allows simple morphs to remain relatively lightweight while still admitting more complex structures as necessary. The otherProperties field takes this policy to the extreme of allowing any number of additional named attributes, albeit at a certain cost in speed and space.
Model subclass: #Player
instanceVariableNames: 'costume costumes'
classVariableNames: 'BiggestSubclassNumber TimeOfError'
poolDictionaries: 'References'
category: 'Morphic-Scripting'
The fundamental user-scriptable entity. Always represented by a user-specific subclass of Player; instance vars and methods relate to user-defined structures.
costume is a Morph, the primary morph I am currently wearing for graphical display.
Scripts are defined in subclasses of Player. These are UniClasses.
Messages in scripts are sent to Players. A Player may delegate to its costume, or to an object the costume suggests. Or, a Player may designate some other object to receive the script messages it does not understand. (see doesNotUnderstand:)
The UnscriptedPlayer subclass of the Player class is also important:
Player subclass: #UnscriptedPlayer
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Morphic-Scripting'
My instances are Player objects that have not been scripted, and which hence do not require a unique scripts dictionary, etc. As soon as needed, I am transformed automatically into a unique subclass of Player.
I looked at the before and after situation of adding a script to a rocket object. The important changes are in bold.
Before:
a MorphExtension (3333) [externalName = rocket ] [player = an UnscriptedPlayer (1733) named rocket] [other: (rotationCenter -> 0.5@0.5) (forwardDirection -> 0.0) (baseGraphic -> Form(70x64x32))]
After:
a MorphExtension (3333) [player = a Player66 (1733) named rocket] [other: (rotationCenter -> 0.5@0.5) (trailDotSize -> 6) (forwardDirection -> 0.0) (baseGraphic -> Form(70x64x32))]
So, when I added the script the UnscriptedPlayer class changes into Player66 class
Then if I inspect Player66 class in the browser I can see that it has the script I wrote and that the Steer object has been passed into the Player class of the rocket object:
script1
self forward: 1.
self setPenSize: 1.
self turn: Steer getHeading / (self beNotZero: 3)
Conclusions:
Even though I've learnt a lot I'm still not certain about whether this is "class create" or "object use". I still have a lot to learn about OOPs before I can clearly answer this question or even judge whether it is an important question to ask.
However, I do have a much clearer picture of what is happening behind the scenes when I do etoys scripting
Probably the main thing I have gained from this exercise was the knowledge that Squeak has good tools for quickly inspecting objects and classes, that as a system it encourages learning in this sort of way.
web2.0 spray: Stager versus Downes
Downes: Stager, Logo and Web 2.0
Gary Stager loves logo and knows what he is talking about. But when it comes to "web2.0" he shoots from the hip and there is a lot of spray. Moreover, there is some irony involved in criticising web2.0 so strongly in a blog post.
Stephen Downes has done some heavy lifting wrt theorising "web2.0". But in his response he either ignored or didn't understand Stager's logo philosophy and indulges in snide comments about "old-school" versus "new-school"
This is not a real debate, yet. It is two experts sounding forth on their favourite topics without taking the trouble to look deeper at what the other is really trying to say.
Here is my take on some of the issues
Disruptive technologies
Both logo and web2.0 technologies are disruptive to traditional School. So Stager and Downes ought to be on the same side here, more or less.
Politics
I have studied Papert deeply but (sadly) not Illich or Freire. My impression is that they are all on about deschooling society. Both Stager and Downes are arguing for more political and social activism wrt to school reform and are critical of those who can't see this. Where is the difference?
History
Logo has a history, which is eloquently summarised in Stagers post. Web2.0 advocates ought to study and acknowledge that history deeply. Otherwise they will be blinded and trapped in the glitter of the present and not put it into perspective. But web2.0 in general is not about studying history deeply. It's the exception. Web 1.0 is almost as good for doing that.
Expertise
Stager says that Papert was a deep expert leader. Downes says that you have to work it out by yourself with the help of your RSS feed. Both are right but who in the web2.0 movement has actually understood Papert and situated his contribution historically? Quite rightly, Stager is angry about that.
Objects to think with
Stager's point about "objects to think with" is important but needs further elaboration. Downes response is reasonable as a starter but shows no understanding of Papert's deeper meaning of this term
Developmental approach
Should software be developed with children in mind (Stager) or is that not so important because we want to bridge the artificial School / Society gap anyway (Downes)? I think to answer that does require some study of the history of computing and educational computing software. Who is going to do that?
Information theorising
Downes has done heavy lifting here and so is rightly aggrieved at Stager's one liners. Needs more work. In general the "web2.0" response is not to read Downes theories, understand them and respond to them but just to keep on blogging
Tools and philosophy
Stager: "It is difficult to sustain a "revolution" when its goals remain unclear and the soldiers rally around the tools, not ideals"
Downes protests because he has done some significant philosophical work here. But since Downes rejects constructionism that's an ongoing debate that needs to happen. It would be a good thing if we had more debate about tools, philosophy and the human condition.
I think there is some convergence between Papert's philosophy (see invitation to immersion) and the more articulate "web2.0" philosophy (eg. blog of proximal development). But only some. At it's best web2.0 in education is mainly about Vygotsky and written language, whereas Papert is mainly about maths-land (logo) and science-land (LEGO logo). Both are important but the approach is different
More on my views about some of these issues here: a challenge to connectivism
Tuesday, September 04, 2007
morphic / etoys is a superior graphical user interface and programming development system
The purpose of this article is to outline the argument for superiority. A different article could be written discussing the reasons for the remarkable fact that a superior system has remained largely undiscovered by education systems for over 10 years.
A quick look at the main design features, with screenshots, makes the superiority of morphic clear. The manipulations and screen shots were done in a recent version of squeak obtained from the squeakland site.
1. Concreteness and Directness
Everything on the screen is a morph and can be directly touched and manipulated. Action by contact not action at a distance.


By direct manipulation programming, using the halos, I can quickly alter the size, colour, border and drop shadow of the original rectangle, as shown.


Or I can use the menu halo to alter a closed curve morph to an open curve and use the handles to reshape it.
2. Liveness

If I click on the cyan coloured halo which has an eye icon, then an interactive Viewer pops up which enables me to see the car's x and y co-ordinates and heading in real time. I can also make the car move, turn, make noises and many other things (only part of the Viewer is shown in the screenshot)

The script can be changed even as it runs, allowing the user to see the effect of script changes immediately. The script can be turned on and off directly through the clock icon. Just as you don’t have to (and can’t!) turn off the laws of physics before manipulating an object in the real world, you needn’t suspend stepping before manipulating a morph or even editing its code.
In morphic any morph can have a life of its own: object inspectors update, piano rolls scroll, movies play:

What are morphs? What can they do?
morph = shape or form, from the Greek.
Morphic is a subset of classes within the the Squeak / Smalltalk programming language.
All the things you see on the screen are morphs. So the Squeak GUI is built from morphic and can be reprogrammed if you have the skill and inclination to do that.
Morphs can be programmed to:
- perform actions in response to user inputs
- perform actions when they interact with other morphs
- perform actions at regular intervals
- control the placement and size of submorphs in building more complex objects
Some history
The first version of morphic was developed by John Maloney and Randy Smith at Sun Microsystems Laboratories as the user interface construction environment for the Self 4.0 system. Self is a prototypebased language, similar to Smalltalk but without classes or assignment. ... For Squeak, morphic was re-written from scratch in Smalltalk.
Conclusion:
The Halo features (direct manipulation programming of size, colour etc.) and the Viewer features (a dynamic graphical inspector and browser) are what make morphic superior to other systems IMHO. Other systems have part of the Scriptor feature (a place to define, edit, test, save and schedule scripts) but not all of it. They don't have late binding, the ability to make changes while the system is running. The ability to test and reprogram on the fly while the program is running is an enormous boost to understanding variables and debugging code.
REFERENCE
An Introduction to Morphic: The Squeak User Interface Framework by John Maloney
This describes morphic, how it works, design principles, some history and compares it with the MVC (Model-View-Controller) framework. The author is one of the original developers of morphic.
Morphic - The Squeak User Interface by Juan Manuel Vuletich
An excellent introduction to the history and design of Morphic. Describes the evolution of Morphic from MVC and Self
Morphic tutorials
Saturday, September 01, 2007
in general programmers are not creatures of the Enlightenment
Should we even try to teach programming? I have met hundreds of programmers in the last 30 years and can see no discernible influence of programming on their general ability to think well or to take an enlightened stance on human knowledge. If anything, the opposite is true. Expert knowledge often remains rooted in the environments in which it was first learned--and most metaphorical extensions result in misleading analogies. A remarkable number off artists, scientists, philosophers are quite dull outside of their specialty (and one suspects within it as well). The first siren's song we need to be wary of is the one that promises a connection between an interesting pursuit and interesting thoughts. The music is not in the piano, and it is possible to graduate Julliard without finding or feeling it.This has been niggling away at me in the background and in some of my dialogues with others for some time now
- alan kay, The Early History of Smalltalk
I have on occasions argued that programming skills in their own right do stand for "higher order thinking" (a phrase I'm no longer happy with) and deserve their own place in the sun.
And I have argued against the Victorian VELS (integration of computing into the curriculum) on the grounds that young students need exposure to skilled computing teachers and not the English teacher who sits out the front marking while kids get on with their word processing (and playing games they have smuggled in)
But the above quote from alan kay and his general emphasis that the main important thing is the non univerals does force me to look again at these stances
I wasn't wrong about the underlying problems of computer integration. I wasn't wrong that programming skills are in some hard to define way, "advanced". It's not so much that my arguments were wrong but that I didn't have a sufficiently firm grasp of the big picture, that the non universal powerful ideas really is the main issue.
This probably makes school reform harder still. Because the ways Schools generally teach maths and science is not powerful either. I've rocked the boat in science faculties in the past and they didn't like it. And teaching maths on the computer using logo? Yes, you can dabble with that in the middle school if you want to, but there just isn't time for it in the senior curriculum.
Programming can be powerful but unless we get the context and environment right then any gains will be much less than what could have been achieved. As Alan Kay points out many good programmers don't inspire in a more general sense. The harmony is not in the piano. logo or game maker is not weeties for the brain.
Although some of my own history is good it is easy to lose the way, to lose track of the powerful ideas, in the complexity and inflexibility of School
The reason I first decided to learn to program is that I read parts of a cult book, Godel, Escher, Bach by Doug Hofstadter (230 amazon customer reviews) and decided the only way I could possibly understand recursion was to explore it through programming. Mindstorm by Seymour Papert (my review) was another seminal influence, which led me eventually to comp.lang.logo on USENET, which became a vital part of my learning environment for a few years. Good start. So I explored some logo, did fractals and other interesting stuff (ISDP, Quadratics, immersion)
But 20+ years later I'm teaching year 9 specialist computer classes basic IT skills like file management and word processing in a computer lab. I'm bored with it, slipping into darkness.
Of course, I've been doing other interesting stuff along the way, like game making, but overall I've taken my eye off the main game -->> the powerful ideas / non universals. I don't see any easy answers for this in the context of School. But we need to talk about it.
Tuesday, August 28, 2007
eben moglen to tim o'reilly, "you have wasted ten years"
moglen understands the ephemeral and potentially dangerous nature of web2.0 (eg. google aggregates our data centrally in exchange for free apps, its not certain what they will do with it in the future), looks behind it to more fundamental issues - freedom, property, money
his critique of o'reilly and the OS part of FOSS is spot on, IMO
some moderating commentary here from Peter Rock
Friday, August 24, 2007
thoughts on a python programming competition
I'm on long service leave, so I had time to participate in this competition, since they encourage teacher participation. NB. I would not have had time for it - no way - if I had been teaching.
I was very rusty on my python programming. Having the intensity of a competition with strict deadlines (complete 5 challenges a week for 5 weeks) provided some clear structure and pressure to get on with it
My general view about programming is that it is hard to learn. I'm also quite keen to improve my skill because for me programming has a deep sense of epistemological importance wrt to future of the human race. Two links and one quote about this. Why program? What is programming?
(Abelson and Sussman)....writing a computer program is really about the intellectually difficult task of how to control a complex system. The programming language provides us with a means to express and explore ideas about this which would otherwise be too complex to manage.Each participant is given a profile page where, inter alia, they can enter their code into a window. A server runs some tests on the code which then provides feedback and whether your code was successful or not. You have 5 tries before you lose any points, which is a necessary feature for a machine check. Although far from perfect this mechanism does mean that the organisers do not become snowed under with marking. The negative is that it also limits the creativity or individuality of the competition, unlike some Game Maker competitions I have recently been involved with.
Forums are also provided. One of the forums allows participants to put in a query for code they think should work but which doesn't. I used this a few times. Then a real person evaluates your code and gives you some feedback.
So, there is a combination of machine checking and human checking which minimises work load for the organisers but provides necessary human to human feedback for those who are puzzled with a hard problem. The testing process meant that you had to finish off your program completely to pass all the tests. If you didn't then you received zero points
In the main this feedback mechanism worked well for me. ie. normally the feedback (either machine or human) made sense and I could then proceed to improve my code. Sometimes I thought the tests were either mean (not explained in the challenge) or trivial (eg. "!" missing in a print statement) but the 5 point buffer made up for that.
It was a competition. There was scoring with points, a leader board was published etc. Overall, I found this provided focus and was motivating. However, when I couldn't solve the spreadsheet problem fully after 4 days it made me dispirited for a while. So it could be hard for those struggling with the basics more than me.
The challenges varied in difficulty from easy to hard (my opinion). Examples of hard problems included a spreadsheet simulation (I learnt about eval in doing this one, but still didn't manage to meet all the criteria in time) and programming a MUD.
The challenges focused pretty much on the maths and logic domain. My logical thinking mechanisms have been give a good workout! The sort of things covered required me to improve my skills in the use of strings, lists, dictionaries, conditionals and importing and reading files. For example, one of the problems involved reading in an English to German dictionary (provided) and programming some translations of nouns from English to German and back again. Other problems involved sequences, working out what the sequence was and then writing a program to provide the correct output for an input sequence number.
So, my criticism here is that this is reinforcing an already stereotyped pool of recruits into programming, those who are already good at maths and logic. I think more than this will be required to reverse the trend of declining IT enrollments to courses. Read Mark Guzdial's post, The Wonderful Opportunities of the Declining Enrollment Crisis
Briefly, here are some of the things I learnt or beliefs which were reinforced from the programming part of the competition:
- computer programming is not easy (I've already said that)
- you need to put in the hours
- it's necessary to have some large slabs of uninterrupted time, the very thing that nearly all teachers do not have
- sometimes logic errors totally confound me, initially, I just cannot see how the error message I am receiving, either from python traceback, or, from the competition automatic tests, could possibly be correct
- but then it's either terribly frustrating or wonderfully elating when some time later your next effort either succeeds or fails
- surely I'm not the only programmer who experiences despair and / or elation
- more than once I did not read the question thoroughly enough and this led to errors which could have been avoided - pretty funny since I'm a teacher who sometimes tell students to read the question carefully and then become frustrated sometimes when they don't seem to
- overall the testing process pushed me in the direction of becoming more rigorous and proactive, to think before submitting code - to question some of my "she'll be right, mate" attitudes
- you need a good reference manual, pp. 49-50 of Python in a Nutshell (list and dictionary methods) has become well worn.
Thursday, August 23, 2007
OOPs?
But one thing I noticed was no requirement for object oriented programming.
I do have a beginners book on python programming (Python Programming for the absolute beginner by Michael Dawson) which does teach OOPs. Don't be put off by the dumbed down title, it has very clear explanations which is unusual in my experience for programming books.
Also I've become aware of the origins of OOPs through reading Alan Kay's Early History of Smalltalk and also Dan Ingalls Design Principles Behind Smalltalk and this knowledge makes a difference (without going into those detail at this stage).
So, I've become aware of two things.
At best, Education is stuck at the level of procedural or structured programming. Or quite often for most students, just applications, no programming at all.
OOPs is important (vital) for programming more complex systems but is harder and therefore makes limited inroads into formal Education.
Despite finding it hard to get my head around OOPs myself I don't really want to believe the second statement. I'm hoping that etoys / squeak (visual programming) might provide the answer of making OOPs more accessible. I'm not sure.
Reading Mark Guzdial's blog (he has published books in both Smalltalk and Python) makes me think that part of OOPs (creating classes) might be too difficult
This:
"Objects, for example, are harder for people to understand than procedural programs. Distributing responsibility and process across multiple objects increases cognitive overhead. That's empirically demonstrated. While it may be provably better (e.g., improvements in cohesion, coupling, and encapsulation), it demands more from its practitioners -- and in so doing, makes it harder to take on that role. As more complex ideas flow into the task of programming (structured programming, strong type systems, iterators, abstract classes, interfaces, and so on), the cognitive demands increase."And this:
- Plea to Language Designers: Bring Back GoTo!
Two of the graduate students working with me, Brian Dorn and Allison Tew, did a fascinating study over the winter break and submitted a paper on it (still awaiting word on acceptance). They reviewed all the programs (scripts) that graphics designers had written for Adobe Photoshop and then had shared with other graphics designers/programmers at a specific website. These were written in Adobe's form of JavaScript. Brian knew (from an earlier study reported in his ACM ICER 2006 paper) that these designers/programmers had virtually no formal computer science background. The questions that Brian and Allison were asking included "Without a curriculum directing coverage of everything, what programming constructs do these end-user programmers use -- either because it's so useful, or because it's easy enough to understand without a course, or both?" In a real sense, this is studying "natural" programming -- what programmers "in the wild," who program because it's useful to them, do without the influence of a teacher.And these extracts from a discussion he was having on another list:
As one might imagine, every program used variables and assignments, and virtually every program used conditionals and relational operators. But then there are some subtle and fascinating differences. Over 60% of the projects they found used FOR loops, but only 37.5% used WHILE loops. Are FOR loops nearly twice as useful or twice as easy to understand as WHILE loops? They also found that the use of TRY-CATCH for dealing with exceptions appeared in over 60% of the projects they reviewed. Perhaps exceptions are much more useful or much easier to understand than WHILE loops, though virtually everyone teaches a WHILE loop but not everyone teaches exceptions. Programmer-created functions appear in over 70% of the programs they reviewed. Programmer-created objects appear in less than 20% of the programs. Perhaps "objects-first" isn't as natural as we might think.
Studying Programming in the Wild
- "Object-use" means instantiating objects, applying methods to objects, writing new methods.Mark Guzdial makes a lot of sense. Reality check. However, I'm still very interested in pushing ahead and learning OOPs myself as well as further exploring the potential of etoys in that context.
- "Class-create" means creating new classes and solving problems by writing different methods in different classes (distributing responsibility).
- "Early" means in the first week of class, or in the students' first programming assignment
Using the term "impossible" seems to be setting up a strawman. Nothing in education is "impossible." How about if we use a new term: "works," where works means "students can be successful in completing tasks using what they perceive as a reasonable amount of effort." ...
Reconsidering the phrase "objects-early is impossible," let's first consider "object-use early doesn't work." I'd say that the evidence AGAINST that is pretty strong. Not only do we have evidence of broad student success in tools like Alice (which doesn't have classes and methods in the same sense as Java or Smalltalk, so it tends to be "object-use" rather than "class-create") but even in Logo -- whose turtle is clearly a "first object." Roy Pea and Midian Kurland found that few students that they studied really learned Logo well, but there's a good bit of evidence from studies like Sharon Carver's that students could learn Logo -- that Logo "works."
Now let's consider "class-create early doesn't work." The way I read the research, there's a lot of support for that statement: Creating classes and writing distributed methods is *hard*. Consider some of the research evidence:
- Anne Fleury's work showed that students far prefer in-line code, even going so far as to prefer constants to named values. The Psychology literature makes that obvious: having to look elsewhere to find the value for something increases cognitive load.
- T.R.G. Green's work showed that increasing cognitive load (by making people look elsewhere for code and values) makes it harder to program, e.g., people read more slowly and make more errors.
- John Carroll's and Mary Beth Rosson's work at IBM in the 1980's on Smalltalk found that programmers had a hard time understanding the distinction between classes and instances.
- Even Adele Goldberg's technical reports from Xerox PARC in the 1970's showed that most of their students weren't able to complete program modification tasks in the given time. It took too much time to find where a particular feature was buried in a particular class. It didn't "work."
Overall, it's hard to test this hypothesis convincingly. It's hard to control for all factors and get students to program the same things with and without making classes. But there is a macro-level way of testing this evidence. For the schools whom I've talked to, the failure rate in introductory classes jumped when they went to class-create early, either in C++ or Java. That evidence suggests that it's true that class-create early doesn't work....
For myself, I'm going to stick with an approach of object-use early and class-create later (week 10 or later). Here are my reasons:
- PROGRAMMING IS HARD. Even procedural programming. I see students struggling with where to put the RETURN even in week five. In our last midterm, I was dismayed with how many students were still struggling with how to manipulate two different indices when working with two different arrays (sounds). I'm happy with where our students get in 15 weeks.
- OBJECT ORIENTED PROGRAMMING IS HARDER. I have seen no evidence that class-create programming is EASIER than procedural programming when dealing with introductory-level concepts and CS1 level of programming. I've seen lots of evidence (referenced in my last message) that it's harder. This doesn't have to do with the teaching method -- this is entirely a matter of cognitive load. The raw task of O-O programming requires a greater cognitive load than procedural programming.
- I CAN'T AFFORD TO MAKE IT HARDER. With high failure rates, students' perception of CS as being too hard, and declining enrollments, I can't afford to include class-create early. The costs aren't worth the benefits of learning object-oriented programming in the first course. I believe we need more of a gradual slope in our intro course, not such a steep curve that looks to students like a wall.
- NSF CPATH, Jobs and Objects
Wednesday, August 22, 2007
Ramon Leon: On Smalltalk
Smalltalk in Action
This provides a link to a video which demonstrates the power of late binding:
... some of the features of the refactoring browser on a running instance of the classic Asteroids game. He extracts a method to a component, changes the color of the asteroids, then shows off undo and redo. He does so while the game is running without ever having to break his flow with something as silly as a compile, debug, run cycle that we’ve all grown so accustomed to in most other languages.Building a blog using Seaside
This links to a screencast of Ramon building a blog in seaside in 15 minutes. Seaside is a web development program which is written in Smalltalk
My Journey to Linux
The transition from being a Windows guy to a Linux guy. Shit happens.
Why Smalltalk
"I’m still amazed by how many people think they can grok Smalltalk by seeing syntax examples. Smalltalk isn’t its syntax, it’s its environment. Smalltalk is a living world of running objects, there are no files, no applications, just what’s running. To understand Smalltalk, you have to either actually use it for a while, or have a seasoned Smalltalker demonstrate it to you. Reading sample code just won’t cut it."
Ramon's top posts are here
Thursday, August 16, 2007
powerful ideas discourse

I asked Alan Kay, on the Squeak list, for some clarification of the "non universals" slide from his Europython 2006 keynote
This has sparked a discussion about powerful ideas - what are they and why don't they figure more in School or University education?
The 'non universals' thread starts here (my initial post) or for an overview of the August archive (to follow the subthreads more coherently) look here
Some of the discussion points so far:
- Where does the non universals list originate from?
- Clarification of the meanings of these terms from the non universals list: 'Theory of Harmony' and 'Similarities over Differences'
- Why aren't powerful ideas taken up by School?
- Elaboration on the reasons for the huge gulf between genuinely powerful ideas and the current reality of our formal education systems
Someone once asked Mohandas Gandhi what he thought of Western Civilization, and he said he "thought it would be a good idea!"These are important issues, we need to discuss them more. Understatement.
Similarly, if you asked me what I thought of University Education, I would say that "it would be a good idea!"
child's play

Fix my laptop
10 yo boy and 8 yo girl disassemble, troubleshoot a loose wire, and reassemble the XO - visit link to joel's blog to see video and read more description
Tuesday, August 07, 2007
mark guzdial on computing education: the importance, problems and possible solutions
Mark's teaching approach is to start with a rich concept from the wider world of science or economics, for example, and then use computers, including programming, to enrich the study of that domain. As well he has background exposure to the philosophical and educational ideas of Alan Kay and Adele Goldberg, which he incorporates systematically in his thinking and writing. Every blog he writes is of a high standard, no waste or diversions from the central theme of educational computing (unlike my blog!). Here are some of the main issues which I feel he covers brilliantly:
- the reasons why computer education including programming is vitally important, ie. a coherent argument about why everyone should learn to program
- recognition of and reasons for the world wide enrollment decline in computer science
- recognition with evidence that many students find programming hard and fear it
- discussion of student understanding of basic computer concepts
- contextualised computer education as part of the solution to these problems
- description and feedback from the courses they run at Georgia Tech.
- critical discussion about getting more girls involved in studying computing
Why Should Everyone Learn to Program? (Or, WHO should learn to program?)
Outline of an argument put to Mark's Associate Dean
What Students Think of Media Computation
Inspirational feedback from students from the Georgia Tech Media Computation course
The Wonderful Opportunities of the Declining Enrollment Crisis
Analyses the reasons for decline in Computer Science enrollments and what could be done about it
Follow-up: Report on Grace Hopper Panel
Discussion of "Female-friendly education: Increasing participation or watering down?"
CompFreak Round-Up
Summary of projects tackled and some student feedback from the Computational Freakonomics course
What is Computing?
The computer is the most significant invention for augmenting human thought since the invention of writing ...
Computational Freakonomics
Description of this course
Contextualised Computing Education
Rationale for a new type of computer education
Students find programming distasteful
"I’ve had a couple of experiences over the last few months that demonstrated to me just how much students dislike programming, at a deeper level than I had expected ..."
BOOKS
Mark is the author of several books about computing, just linking to a couple here:
Introduction to Computing and Programming in Python, A Multimedia Approach
Squeak: Open Personal Computing and Multimedia (with Kim Rose)
Thursday, August 02, 2007
everything bad while in the process of amusing us to death is good

Daniel Livingstone has the intellectual wherewithal to compare two books which on the surface point us in opposite directions. Brilliant!!
Amusing Ourselves to Death: Public Discourse in the Age of Show Business (1986) by Neil Postman
Everything Bad is Good for You: How Today's Popular Culture is Actually Making us Smarter (2005) by Steven Johnson
Daniel's blogs are thought provoking:
Amused to Death
TV Culture Makes us Smarter ... than what?
Smarter and Sillier
I’ve been reading a lot about alan kay’s ideas recently and discovered that Postman was a member of the advisory board for the Viewpoints Research Institute until his death in 2003
In his biography of Kay, John Maxwell analyses the connection b/w Postman’s social analysis and Kay’s ideas about using computers with children. Here is a long quote from Maxwell's thesis about this:
Kay’s warning that too few of us are truly fluent with the ways of thinking that have shaped the modern world—logical argument and systems dynamics — finds an anchor here. How is it that Euclid and Newton, to take Kay’s favourite examples, are not part of the canon, unless one’s very particular scholarly path leads there? We might argue that we all inherit Euclid’s and Newton’s ideas, but in distilled form. But this misses something important, and I know I’ve missed something important in my understanding of math and science. Kay makes this point with respect to Papert’s experiences with Logo in classrooms:
Despite many compelling presentations and demonstrations of Logo, elementary school teachers had little or no idea what calculus was or how to go about teaching real mathematics to children in a way that illuminates how we think about mathematics and how mathematics relates to the real world. (1997, p. 19)The problem, in Kay’s portrayal, isn’t “computer literacy,” it’s a larger one of familiarity and fluency with the deeper intellectual content; not just that which is specific to math and science curriculum. Kay’s diagnosis runs very close to Neil Postman’s critiques of television and mass media (Postman was a member of the advisory board for the Viewpoints Research Institute until his death in 2003); that we as a society have become incapable of dealing with complex issues. Postman charges that public argument on the scale of that published in and around the US Constitution would be impossible today, because the length and depth of the argumentation simply would not fit in a television format, newspapers would not print it, and too few people would buy it in book format (Postman 1986).Being able to read a warning on a pill bottle or write about a summer vacation is not literacy and our society should not treat it so. Literacy, for example, is being able to fluently read and follow the 50-page argument in Paine’s Common Sense and being able (and happy) to fluently write a critique or defense of it. (Kay 1996 p. 548)Another example of “literacy” that Kay repeatedly mentions is the ability to hear of a disease like AIDS and to recognize that a “disastrous exponential relationship” holds:Many adults, especially politicians, have no sense of exponential progressions such as population growth, epidemics like AIDS, or even compound interest on their credit cards. In contrast, a 12-year-old child in a few lines of Logo [...] can easily describe and graphically simulate the interaction of any number of bodies, or create and experience first-hand the swift exponential progressions of an epidemic. Speculations about weighty matters that would ordinarily be consigned to common sense (the worst of all reasoning methods), can now be tried out with a modest amount of effort. (Kay 1994)Surely this is far-fetched; but why does this seem so beyond our reach? Is this not precisely the point of traditional science education? We have enough trouble coping with arguments presented in print, let alone simulations and modeling. Postman’s argument implicates television, but television is not a techno-deterministic anomaly within an otherwise sensible cultural milieu; rather it is a manifestation of a larger pattern. What is ‘wrong’ here has as much to do with our relationship with print and other media as it does with television. Kay noted that “In America, printing has failed as a carrier of important ideas for most Americans” (1995). To think of computers and new media as extensions of print media is a dangerous intellectual move to make; books, for all their obvious virtues (stability, economy, simplicity) make a real difference in the lives of only a small number of individuals, even in the Western world. Kay put it eloquently thus: “The computer really is the next great thing after the book. But as was also true with the book, most [people] are being left behind” (1995). This is a sobering thought for those who advocate public access to digital resources and lament a “digital divide” along traditional socioeconomic lines. Kay notes,As my wife once remarked to Vice President Al Gore, the “haves and havenots” of the future will not be caused so much by being connected or not to the Internet, since most important content is already available in public libraries, free and open to all. The real haves and have-nots are those who have or have not acquired the discernment to search for and make use of high content wherever it may be found. (Kay 2000a, p. 395)What is to be done, then? This sort of critique puts the education system in the United States (and most Western countries, by obvious extension) in such bad light that many are tempted to depair. Kay’s project is relentless, though: with or without the school system, the attempt to reach children with powerful ideas and the means to working with them is always worthwhile. Part of the key to seeing a way through this is to remember that education does not equal school, nor does television (or any other medium) represent an essential obstacle to education. “Television,” says Kay, again recalling Postman’s argument, “is the greatest ‘teaching machine’ ever created. Unfortunately, what it is best at teaching are not the most important things that need to be learned” (1995). But in this are also the seeds of an alternative; how could different media be harnessed in such a way as to lead in a more productive direction? How can children have any “embedded cultural experience” that encourages learning logic and systems thinking? The answer isn’t in the design of any particular curriculum. Rather, Maria Montessori’s vision inspires Kay: putting the emphasis on children’s “absorbent minds” and the freedom to play and explore.The objects in our system are instead a help to the child himself, he chooses what he wants for his own use, and works with it according to his own needs, tendencies and special interests. In this way, the objects become a means of growth. (Montessori 1972, p. 150)
expertise and historical perspective
David Thornburg (Comment 11) introduces some historical perspective and argues a radical rejectionist position that there is nothing new in "web 2.0" and he cites a number of web 2.0 technologies that have historical precursors:
He goes on to point out that there is a difference between qualitative change (truly new stuff) and quantitative change ("web 2.0")Blogging? Oh, you mean “bulletin boards?” These were wildly popular when Marc Andreeson was in elementary school.
Oh, I know, Second Life! Yesiree. That has Web 2.0 written all over it. Except that Neal Stephenson wrote all about it in Snowcrash, published in 1992. His vision of a parallel virtual world became reality a few years later with a program called the Palace that kids all over the world were using to create virtual worlds ...
Although he is correct in a technical sense (a point acknowledged in the discussion and reinforced by Tom Hoffman, Comment 20: we should use language correctly, web 2.0 is hyped) I don't think he wins the debate overall
Chris Lehmann (Comment 13) and Andy Carvin (Comment 15) challenge David's qualitative / quantitative distinction in pointing out that a lot of incremental changes (even if not representing true innovation) do eventually add up to a qualitative change in the overall environment. I agree with this dialectic: sufficient quantitative change can lead into qualitative change.
A brief summary of some of the points they and others made:
hardware: broadband explosion, cheaper storage
software: easier to use applications, RSS matters for keeping track, tagging / folksonomies, open APIs
social: more user generated content: eg. blogs, wikis, photos, podcasts, video, more community
economic: low to zero barriers of entry to publish
I liked the way Mike Guerana (comment 46) summed it up:
The new iterations of the “old” web technologies have been amazing evolutions in being able to receive information that is more customized and personal. I like the fact that I can use Google Reader for RSS and not have to visit each page throughout the day. I don’t care what it is called ...OK. David Thornburg made a bold discussion point and there was a good response from some authorities and participants in the "web 2.0" community.
But historical analysis has many perspectives. There are other good critical discussion points about "web 2.0" that could have been made but were not. IMO, David Thornburg was making a technical-historical point, that web2 technologies have pre-web precursors. I think it might be more important to make the educational-historical point that we have seen great computer based educational technologies in the past - logo is a good example - that have now faded so much from view that many in the "web 2.0" community may not have even heard about them or the educational philosophies of their advocates (Papert, Harvey, Kay, Stager etc.)
Sylvia Martinez elaborates on this other history in web 20 and historical perspectives:
Furthermore, within the thread and within the web 2.0 community some things are said, by intelligent people, that I think are wrong / dangerous. For instance:Right now the concept of Web 2.0 in schools is in the hands of excited educators who have felt the power of learning something new and want to share it with their students and other educators. It’s a contagious, revolutionary feeling that we are on the cusp of something that will change the world.
This feels SO much like the 80’s, when computers first started trickling into schools. But the dark side is how schools, instead of letting educators show the way, turned to corporations and publishers to commercialize and pre-package the computer into school-friendly forms. It deprived students and teachers of authentic chances to program, to make music, and to create. Instead of the revolution in learning that seemed to be ever so temptingly on a permanent horizon, it turned computers into test prep machines that reinforced the way school “delivered” information to students.
The score: Technology - 0, “School” - 1
Miguel Guhlin (comment 42): "I don’t have to worry about being an expert since there are so many people out there who are experts…I can rely on you"
David Weinberger has written a book with this title: "Everything is Miscelleous"
Andrew Keen, a web 2.0 critic, said in his debate with David (video link) that the book was good but he could never agree with the title. I agree, the title is very bad. (I haven't read the book)
Leigh Blackall in response to my earlier post said he relied on trusted experts: "my Youtube experience is made up of recommendations from experts I already trust".
This argument reinforces my belief that expertise is another important question that "web 2.0" needs to address. When experts argue then we begin to make progress. We should not be trusting experts but building environments where they are encouraged to argue.
Overall the debate on David Warlick's blog was great because experts argued on issues of importance, many of the comments were of high quality and their was passion and involvement.
But web 2.0 is not always like this. One of Seymour Papert's learning principles espoused long ago in The Children's Machine (1992) is that, "a good conversation enhances learning". Well, how about a bad conversation? And aren't there many bad conversations on web 2.0 forums? As I said in an earlier blog:
Global village idiocy, banalisation, hive mind, self censorship and chasing popularity are all real problems.As web 2.0 scales this problem may well become worse. eg. at the moment most teachers who blog do have things of interest to say, they tend to be movers and shakers who want to change the system. Perhaps those clammering for more and more of web 2.0 ought to reflect a little on what normally happens to technologies once they enter the mainstream.
Monday, July 30, 2007
Pearson: progressive sounding leftist rhetoric has betrayed aboriginal people

Noel Pearson points out that progressive sounding "leftist" rhetoric originating from the tolerant middle classes is a cultural obstacle that aboriginal people have to overcome. Nice folks who want to do the right thing but who haven't thought deeply about the issues or are afraid to take a tough stand. In contrast, Pearson is a tough minded Leftist who can see through the wishy washy rhetoric and is prepared to unite with anyone who is prepared to take real take action in order to improve the situation of his people:
The middle-class producers of culture and ideology often see themselves as the Left. My texts have often been perceived as attacks on the Left. But I support key policies of the Left. In many areas, Aborigines can agree with the Left, including the people who have felt most hit by my criticism. I agree with them on land rights and conservation, trade unions, redistribution and the role of government in guaranteeing equitable health care and education.
The contention of mine that has caused most consternation when I have challenged the Left during the past eight years is that the result of progressive policies can be at odds with the good intentions that inspired them. My aim has been, as Dennis Glover wrote in The Australian yesterday, to "set higher standards for the Left" by critically examining the outcomes of ostensibly leftist policies. It is appropriate to set high standards because the Left's claim to the right to govern rests on its promise to lift the living standard and prospects of the lowest classes.
The challenge of education facing our children should be understood as a class challenge. There are strong class forces at work that are barriers to social advancement.
The main means by which class stratification is maintained and social progress impeded is not by direct and conscious oppressive behaviour by privileged classes. Rather, the forces of class operate culturally. They are embedded in the prevailing ideologies and intellectual currents, popular and niche cultures. Their effect is to cause confusion in the minds of lower-class people about social progress and how it may be achieved, and cause them to behave in ways that are contrary to their interests.
I developed a (provocative) rule of thumb when it comes to examining the nostrums and prescriptions of the middle-class culture producers, who often come from the progressive cultural Left: whatever they say our people should do, we should look at the opposite of what they say because that will usually be the right thing to do. Therefore:
* They say substance abuse is a health issue and should be approached with tolerance.
We say it is a behavioural and social order issue and we need to rebuild intolerance.
* They say education should be culturally appropriate.
We say this should not be an alibi for anti-intellectualism, romantic indigenism and a justification for substandard achievement.
* They say we should respect Aboriginal English as a real language.
We say we should speak our traditional languages and the Queen's English fluently.
* They say our people need to bedefended in a hostile criminal justice system.
We say we need more policing to restore law and order.
* They say our people are victims and must not be blamed.
We say our people are victimised but we are not victims.
* They say we have a right to passive welfare.
We say we do not have a right to dependency and, indeed, we have a greater right to take up a fair place in the real economy.
* They say economic integration is antithetical to our identity.
We say our culture cannot and will not survive as long as we live in the social dysfunction caused by economic dependency.
* They say poverty is our main problem.
We say passivity is our main problem because it prevents us from taking advantage of opportunities to get out of poverty and the resources we get are squandered.
The striking thing about this stark disagreement about what is really progressive is that we are at odds with so-called progressive thinking across vast tracts of policy.
For me it is not personal antagonism that explains the gulf between me and most national indigenous leaders and intelligentsia; it is this fundamental analytical and policy gulf about what is progress and what is not.
Glover is right when he says that I am a man of the Left because my fidelity is to the lot of the underclass, of whom my people are its most miserable members.
It is that I believe liberal and conservative policies have more to contribute to indigenous uplift than outdated progressive thinking.
It became clear to me that some elements of leftist ideology contribute to the barriers that keep our people down. The key to understanding this is to recognise the profound change in the role of leftist theory. When the theories of the Left were originally formulated, the Left was a revolutionary force. However, the Left has merged with power and government. Leftist ideology is integral to the political and intellectual structure of our society.
The challenge for the Left today is to stop assuming that leftist policy by definition is policy that will help the most oppressed. The most obvious example that this is not the case is the rise of a political and intellectual industry that explains, defends and facilitates behaviours that keep people in the underclass. A young Aborigine today who follows the conventional leftist recipes of the past four decades is destined to stay at the bottom of society.
Sunday, July 29, 2007
Squeak: Open Personal Computing and Multimedia
draft of Squeak: Open Personal Computing and Multimediaby Mark Guzdial, Kimberly Rose. Paperback - 544 pages 1st edition (June 15, 2001) Prentice Hall; ISBN: 0130280917
This post is a summary of the pdfs available from the above site, essentially a free download of an important book:
noel.pdf (39 pp)
Squeak for Non-Native Speakers by Noel Rappin
The goal of this chapter is to provide you with enough information about Squeak to understand the code samples and design principles in the later chapters, and allow you to experiment with it on your own – experimentation is a major part of the Squeak world view
steinmetz.pdf (34 pp)
Computers and Squeak as Environments for Learning by John Steinmetz
To promote more thoughtful discussion about computers and learning, and to provide some background before considering Squeak projects, this chapter will begin with general thoughts about children and computers.
Part 1 presents some assumptions and persistent misconceptions about computers and learning.
Part 2 presents their most common current use, simulating older media—such as words on paper or musical sound—while offering extra leverage for working in those media.
Part 3 considers brand new possibilities offered by computers, with entirely new ways to perceive and understand. Squeakers are developing tools, ideas, and genres to help these new media evolve
morphic.final.pdf (38 pp)
An Introduction to Morphic: The Squeak User Interface Framework by John Maloney
Morphic is a user interface framework that makes it easy and fun to build lively interactive user interfaces. Morphic handles most of the drudgery of display updating, event dispatching, drag and drop, animation, and automatic layout, thus freeing the programmer to focus on design instead of mechanics
pierce-final.pdf (24 pp)
Alice in a Squeak Wonderland by Jeff Pierce
This chapter is an introduction to Squeak Alice, an authoring tool for building interactive 3D worlds in Squeak
mathmorphs.pdf (42 pp)
MathMorphs: An Environment for Learning and Doing Math
Luciano Notarfrancesco and Leandro Caniglia
What if mathematicians had a place to keep all their living objects? Not a planar place, but a multidimensional one, with an unlimited capacity to hold things inside. A space with colors and movement.
andres 2.pdf (40pp)
Extending MathMorphs with Function Plotting by Andrés Valloud
This chapter describes how to plot mathematical functions in Squeak. It covers and shows the objects involved and how to present the results in Morphic using the MorphicWrappers. It is aimed at Squeakers who desire to develop objects with rich graphic representations
formatted-btf-once-more.pdf (12 pp)
Back to the Future Once More by Dan Ingalls
The purpose of this chapter is to update the paper “Back to the Future – The Story of Squeak, a Practical Smalltalk Written in Itself” (hereinafter simply “BTF”).
1. Introduction 2. The Evolution of Squeak 3. The Interpreter 4. The Object Memory 5. Storage Management 6. BitBlt and WarpBlt 7. Smalltalk to C Translation 8. Sound 9. Code Size and Memory Footprint 10. Performance and Optimization 11. The Squeak Community 12. Future Work
greenberg.pdf (31 pp)
Extending the Squeak Virtual Machine by Andrew C Greenberg
- Why Extend Squeak?
- Speaking Slang (a subset of Smalltalk)
- The Shape of a Smalltalk Object
- The Anatomy of a Named Primitive
- The Mechanics of Building a Plugin
A Tour of the Squeak Object Engine by Tim Rowledge
This chapter will explain the design and operation of the Squeak Object Engine. The term Object Engine is a useful phrase that encompasses both the Smalltalk low-level system code (such as the Context and Process classes) and the Virtual Machine. We will discuss what a Virtual Machine (VM) is, how it works, what it does for Squeak programmers and users, and how the Squeak VM might develop in the future.
parsia 2.pdf (13 pp)
Networking Squeak by Bijan Parsia, Bolot Kerimbaev, Lex Spoon
There is a apparent split in the Squeak worldview between the intensely individualistic and the thoroughly social. Squeak itself aspires to be a complete personal computing environment (with the single user in both computational and intellectual control from top to bottom) and a tool for collaborative development, exploration, and experimentation. This conception is akin to the notion of a networked personal computer—neither a thin client dependent on the network and server, nor an isolated workstation, but a node among peers, server, client, and self-sufficient in turn, separable but connected. A Squeaker is not merely autonomous, but autokoenomous
porting-subfinal 2.pdf (57 pp)
Porting Squeak
Squeak must be one of the most ubiquitous programming languages to date. In addition to the original version for Mac OS, Squeak has been ported to a wide variety of very dierent platforms: most major avors of Unix, MacOS-X, several variations of Windows and Win/CE, OS/2, several \bare hard-ware" systems, and so on
shafer-final.pdf (15 pp)
The Future of Squeak by Dan Shafer
Friedrich Nietzsche once said, “Our destiny exercises its influence over us even when, as yet, we have not learned its nature; it is our future that lays down the law of our today.”
If ever there was a topic to which Nietzsche’s thought could be applied, it is Squeak. We have not yet learned the nature of the destiny of Squeak because it continues to unfold before our very eyes and because we are about the business of creating that destiny. Yet, to an extent not attained by other programming languages and environments, Squeak has always been about the future. Its future has in fact determined many of the ways it works and thinks today.
stpope_siren7.pdf (37 pp)
Music and Sound Processing in Squeak Using Siren by Stephen Travis Pope
The Siren system is a general-purpose music composition and production framework integrated with Squeak Smalltalk (1); it is a Smalltalk class library of about 320 classes (about 5000 methods) for building various music-and sound-related applications
xp.pdf (22 pp)
Embracing Change with Squeak: Extreme Programming by J. Sarkela, P. McDonough, D. Caster
The XP practices embody a set of heuristics for recognizing and adapting to change, for change is the only constant in XP. The XP process values learning as a basic skill for individuals and the team, as the tensions inherent in development stimulate evolutionary growth. In the XP view, setbacks and failures provide essential feedback on which the software development process thrives, where risk is something to be understood and managed, not merely avoided.
Saturday, July 28, 2007
Squeak Etoys on the OLPC XO
Squeak Etoys on the OLPC XO
written by Alan Kay
This document is a first draft of a summary of Etoys on the One Laptop Per Child XO computer. It will undergo many changes in the next few months. The first official edition is expected by August 2007.
“Like-LOGO”: Scripting that is also mathematics, turtle as a vector
“Like-Hypercard”: WYSIWYG Page oriented UI & Media authoring for presentations, web content, etc.
“Like-Starlogo”: Massively parallel objects
“Like Squeak Smalltalk”: Everything is a dynamic object, multimedia, multiplatform, etc.
Aimed at a wide variety of users and levels of use
- Is use by many children and adults around the world
- Good for constructivist learning and teaching
- Multilingual
- Self contained and runs on many platforms
- Both standalone and web-based
- Integrated multimedia
- Collaborative
- Made from many integrated media objects
- Authorable at all levels from end-user to expert
Etoys is
“Like Logo” – but with costumes, multimedia, etc.
“Like Starlogo” – but at all levels of scale
“Like Hypercard and Powerpoint” – but simpler and richer
“Like Smalltalk” – it is Squeak Smalltalk underneath
“Like itself” – it has special properties that are unique
Etoys was first tested with children in 1997, and has since spread around the world to be used by many children in cultural and language environments. Etoys is multilingual and has been successfully used in USA, Europe, South America, Japan, Korea, India, Nepal, and elsewhere.
The multilingualization is dynamic: languages can be switched on the fly (this can be lluminating for children) and there is a “kit” that aids the introduction of a new language.
Etoys is also “ecumenical”: it runs on more than 20 platforms bitidentically including all of the standard ones, many PDAs and SmartPhones, and on the OLPC XO machine.
Current Languages include:
English, French, German, Spanish, Portuguese, Japanese, Chinese, Korean, Swahili
Languages in progress include:
Arabic
Greek
Thai
Friday, July 27, 2007
conversation and expertise in a flat but wrinkled world
And what did you hear, my blue-eyed son?It's better that everyone has their own interactive medium and chaos reigns, than the alternative of Big Media or traditional School alone. If we want radical change in the media and education then there is no alternative but to go through chaos. “Web 2.0” won't change School dramatically if it doesn't also change society dramatically.
And what did you hear, my darling young one?
...
I saw ten thousand talkers whose tongues were all broken,
I saw guns and sharp swords in the hands of young children,
...
Heard one hundred drummers whose hands were a-blazin',
Heard ten thousand whisperin' and nobody listenin',
Heard one person starve, I heard many people laughin',
Heard the song of a poet who died in the gutter,
Heard the sound of a clown who cried in the alley,
...
- Bob Dylan, A Hard Rain's A-Gonna Fall
The technology that is popularly but problematically named web 2.0 is, unfortunately, also a trademarked O'Reilly marketing slogan. Paul Graham provides some clarity here in his interpretation of the phrase:
- Ajax - JavaScript works, eg. Google Maps, web based apps are getting better
- Democracy - amateurs can sometimes surpass professionals (wikipedia) and deciding what counts for news (reddit, delicious)
- Don't maltreat users - avoid heavy handed branding, signing up procedures, offer free services where possible
The social optimists' hope for web 2.0 is that it is disruptive and corrosive to the hierarchical way of doing things, enabling the active participation and empowerment of those formerly known as the audience.
The pessimistic or realistic problem with web 2.0 is its tendency to overreach itself and the inevitable fact that as it grows (a new blog every second), the quality must decline.
My own blog was initially more intended as an easily searchable online notebook than anything else. I was initially surprised at the number of other people who read it and it took me a while to take the conversational aspect of it seriously. I've learnt a lot from some other bloggers (eg. artichoke) in the way they nurtured their comment threads – and eventually through thoughtful comments received on my own blog.
One possible downside to being noticed is that I might end up wanting to please those readers rather than representing my own thoughts (self censorship). The upside is that knowing there are readers persuades me to express my thoughts more clearly, partly for the readers' sake, but that is a huge benefit for me as well. There is positive pressure to make your thoughts clearer for a real audience, especially a critical audience who can respond.
But not all blogs or discussion groups are like this. Web 2.0 can also be a game that people learn to play in an attention seeking economy. Global village idiocy, banalisation, hive mind, self censorship and chasing popularity are all real problems.
I also need time alone to read books, for slow, deep thinking, for reflection, to get away from the business and shallowness of much of the web. Now I think it's more about exploring meanings, I never thought that meaning was so complicated but blogging has gradually changed me. If there is a real struggle to express ourselves more expertly through language then that recreates who we are.
However, the notion of using “web2.0″ tools to expand expertise (certainly possible) is different from the notion of bloggers already being experts. The internet has certainly blurred the lines between expert and amateur. But as well as some amateurs displaying expert knowledge there are also lots of amateurs pretending to be experts when they are not. For me the important question is not web 2.0 as such but how do we work out who an expert is? Expertise is special IMO and ought to be valued. I’m critical of theories that just emphasise the importance of connection without saying much else.
Paul Graham makes a point about Democracy. Amateurs can sometimes surpass professionals (wikipedia) and deciding what counts for news (reddit, delicious). Unlike blogs, the sites mentioned here have quality control mechanisms. Collectively, the blogosphere is doing the filtering for us. But of course these sites are still evolving, they have not solved the issue of expertise.
Computers and the internet do have a disruptive effect on School, Media and many of our ideas, including our idea of expertise. I think it is the disruptive potential that makes the system and some teachers (many follow the lead of the system) hesitant.
The bible writing monks were experts at all things involved in being a bible writing monk. But that didn’t make them experts in all things involving printing. I wonder how many made the transition?
So what is our notion of expertise? How do we recognise a powerful idea, how do we recognise an expert? For me, this is the question that the “web 2.0” movement needs to answer.
Alan Kay's remarks about our lack of computer science could also be applied to web 2.0:
"Computing spread out much, much faster than educating unsophisticated people can happen. In the last 25 years or so, we actually got something like a pop culture, similar to what happened when television came on the scene and some of its inventors thought it would be a way of getting Shakespeare to the masses. But they forgot that you have to be more sophisticated and have more perspective to understand Shakespeare. What television was able to do was to capture people as they were. So I think the lack of a real computer science today, and the lack of real software engineering today, is partly due to this pop culture."references:
The title includes a reference to Tom Friedman's well known book, The World is Flat. Thanks to durff for the insight that it is also wrinkled.
Web 2.0 Paul Graham analysis of Web 2.0
economics-of-information-resources
the comments contains a dialogue between artichoke and myself, which helped clarify some of my views
teachers are experts Comment I left at Graham Wegner's blog contradicting the thesis that teachers are experts
That's Hot - Web 2.0 and the Empty Vessel Sylvia Martinez, Web 2.0 is often little more than a marketing slogan
Ten Things Radical about the Weblog form of Journalism Jay Rosen
This reference and the next one draws attention to the fact that thoughtful commentators from the beginning have understood that blogs have both a radical and conservative nature
Ten Things Conservative About the Weblog Form in Journalism Jay Rosen
Debate between David Weinberger and Andrew Keen (video)
There is a great discussion, towards the end of this debate, about the nature of expertise. I liked Andrew Keen's approach about the historical importance of the nation state, democracy and authority, that it is a debate that we have to have, although I thought that the audience did very well in challenging Keen (eg. the guy from Canada, the guy from wikipedia), perhaps more so than David Weibberger did.
What are we going to say about 'Cult of the Amateur'
Clay Shirky went along to a forum to criticise Andrew Keen's book about “The Cult of the Amateur” but ended up saying that it made some valid points against some more one eyed blog evangelists
Andrew Keen: Rescuing 'Luddite' from the Luddites
A follow up more effective effort by Shirky to refute Keen