90 likes | 102 Views
This talk explores the development of a prototype APL programming environment inspired by the Scratch multimedia programming environment. It demonstrates features such as drag-and-drop expression creation, animated graphical objects, and communication with namespaces. The APL Spider and APL Sandbox are also discussed.
E N D
Scratch that Itch! An experiment in applying ideas from the MIT Media Labs “Scratch” application to create an introductory APL teaching tool Steven J. Halasz Fiserv Corporation
The Inspiration • This talk explores a new way of writing APL inspired the "Scratch" multimedia programming environment for children developed by the Lifelong Kindergarten group at MIT Media Lab • A prototype APL programming environment will be demonstrated which supports features found in Scratch: • creating and editing expressions using "drag and drop" • Communicating, continually executing namespaces associated with animated graphical objects
Background • 1998 paper on teaching introductory APL • Problem-oriented approach • 1999 taught APL to a group of mathematically advanced 12 year olds • APL Tutor Software • 2005-2007 teaching multimedia in Maldives • The MIT “Scratch” application for children • 2007-2009 “APL Sandbox” • Introductory APL at Fiserv
Modes of Learning • Listening, Reading, Writing, Quizzing • Good for learning basic facts, but… • Don’t prepare you to perform independently • Guided exploration • Holy Grail of training but difficult to do well • Only the hardiest learners will explore productively in unsupportive environments • Difficult to create automated guidance in an open environment
Traditional Introduction to APL • “Obstacle Course” to learning APL • Syntax errors • Mismatched parentheses • Unmatched quotes • Traditional function definition • Typing APL characters (high minus) • The APL session manager • To get to AHA! you need to explore but, • A lot of pain before you get there • These obstacles are an unnecessary distraction from learning the core language
MIT Scratch (scratch.mit.edu) • Quick and easy to get interesting results • Drag and drop programming • Mostly prevents you from writing unexecutable code • Can’t drop a numeric expression into a place that requires a logical condition • Expression grouping is automatic • Can’t type invalid numbers • Can change code while it’s executing and see the results in real time
APL Sandbox • Drag and drop from a limited menu • Implied execution • Controlled keyboard entry of non-APL characters only • Automatic insertion of parentheses and close quote
APL Spider • Uses OpenGL adapted from Alex Kornilovsky’s GLAUX workspace • Add/delete graphical objects, processes or functions as tabbed execution environments • Communication via “posting” of global variables • Lifetime of one execution cycle only • Mostly limited to functions available in Dyalog APL • Has “post” function • Doesn’t have high level graphics functions like “touching” or “bounce on edge” • Not difficult to implement in APL
To Do List • Fix bugs • Expanded Dyalog GUI support • Extend to 3d • Browser version • Guided problems with hints and solution validation