Janus: a step towards distributed constraint programming
Proceedings of the 1990 North American conference on Logic programming
The early history of Smalltalk
HOPL-II The second ACM SIGPLAN conference on History of programming languages
Programming by example: novice programming comes of age
Communications of the ACM
Alice: lessons learned from building a 3D system for novices
Proceedings of the SIGCHI conference on Human Factors in Computing Systems
Generalizing by removing detail: how any program can be created by working with examples
Your wish is my command
The child-engineering of arithmetic in ToonTalk
Proceedings of the 2004 conference on Interaction design and children: building a community
Time travelling animated program executions
SoftVis '06 Proceedings of the 2006 ACM symposium on Software visualization
AgentCubes: Raising the Ceiling of End-User Development in Education through Incremental 3D
VLHCC '06 Proceedings of the Visual Languages and Human-Centric Computing
Designing digital technologies for layered learning
ISSEP'06 Proceedings of the 2006 international conference on Informatics in Secondary Schools - Evolution and Perspectives: the Bridge between Using and Understanding Computers
Hi-index | 0.00 |
LOGO has been evolving in incremental steps for 40 years. This has resulted in steady progress but some regions of the space of all programming languages for children cannot be reached without passing through unacceptable intermediate designs. What are the ultimate aims of LOGO? What criteria and aesthetics should be used in determining which areas of the design space are most promising? What would the ideal programming language look like? Would a family of special-purpose languages be more effective than a single language? In looking to the future what can we learn from the history of LOGO? What can we learn from other programming systems for children? Alan Kay is leading a new project entitled, "Steps toward the Reinvention of Programming". What are its strengths and weaknesses? We can conceptualise the design alternatives as defining an n-dimensional space. Some dimensions represent major alternatives for syntax, others for dealing with concurrency, others for the underlying computational models, and others for features of the programming environment. The goal of this paper is to spur a discussion of these issues. I will present my personal opinions based upon 30 years of research experience in this field.