90 likes | 304 Views
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.
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