Iconic Programmer A Visualization Tool for Teaching Concepts without Context
Overview A Brief History of Science Needs – food, clothing, shelter Ideas – customs, tools, artistic creation Improvements – rules, measurements, engineering design Formalizations – mathematics, theory
Education Fundamentals and Foundations First Math before engineering French grammar first Algebra before MCV (MathWorlds) Code before algorithms
Outline Computer programming Teaching programming – current practice The Iconic Programmer Using the Iconic Programmer Research Issues
What is Programming? Computer programs you interact with… Non-computer “programs” you do…
Concepts Series of actions / instructions Algorithm Actions Decisions Objects Inputs/Outputs
Implementation public class Account { private Money balance; public deposit (Money amount) { balance.add(amount); }
Pedagogy What is at the start of a text/course? What is a computer How to input text into a file and compile Programming syntax Details…stuff that changes
Issues Programming (processes) are important High anxiety / attrition Students get lost on context
Concepts Processes Actions and decisions States and entities Algorithms Logical organization of ideas
The Iconic Programmer Pure graphical programming interface Minimalist Real Visually intuitive Interactive
Programming Concepts Actions Sequence Decisions Branching Repetitions Looping
Programming Context Data manipulation Basic math Number games Telephone menus Input and output
Actions Declare Processes work on “objects” Assign Random, mathematical, input Output Text or data
Program 1 I have a number, try to guess it… Actions Creation of my number Your attempts to guess
Decisions Feedback and interaction Need to allow multiple paths / actions
Program 2 You have three guesses to get my number… Decisions Correct guess – yes/no Actions/paths Guess again or stop
Repetition Concept Guess, repeat Repeat do the action/path over again Repetition is based on a decision
Program 3 Repeated guessing Linear search
Program 4 A complete program Binary search
Iconic Programming Supplement to introductory high school or university programming courses Three-week general science module Computers are pervasive Programming is a general skill
Research Issues Kinesthetic thinking Modes of interaction Visualization models