Title: KidSim
1KidSim
- Programming for Children Part II
CSCI 6304 Visual Languages
Yingxin He
2Agenda
- Introduction
- Components of KidSim
- Design of KidSim
- Cocoa Demo
- Empirical Evaluation
- Cognitive Dimensions
- Discussion
3Introduction
- The end-user programming problem
- -- Enable end users to program
- KidSim and Cocoa
- -- 1994, KidSim.
- -- 1996, Cocoa.
- -- 1998, Died.
- -- stagecast.
4Introduction (Cont.)
- The Goal of KidSim
- -- To program without learning conventional
programming - languages.
- The key idea
- -- Direct manipulation
- Programming by moving manipulating, drag
and drop etc. - -- programming by demonstration
- System records the user performance and
generalizes these - actions to create a rule that will be
automatically performed
5Components of a KidSim Simulation
- Board
- Control Panel
- Appearance Editor
- Rule Editor
- Variables
- CheckList
- Other elements
6Components of a KidSim Simulation (Cont.)
Board
7Components of a KidSim Simulation (Cont.)
Controls
Create Tool click on the board to create a new
type of piece
Paint Tool click on a piece to edit its
appearance
Rule Record Tool - click on a piece to record a
rule
Clock Controls - "Stop" or "Run" the world
8Components of a KidSim Simulation (Cont.)
Controls
Rewind - run the world backward, undo up to 1000
actions
Step Controls - run the world backward or forward
one step at a time
Clock Speed - adjust the world's running speed
from fast to slow
Delete Tool - click on anything to delete it.
Hold the shift key to delete more than one thing.
You can also delete things by selecting them then
hitting the delete key.
9Components of KidSim Simulation (cont.)
Appearance Editor
From Cocoa reference manual
10Components of KidSim Simulation
(cont.)
Rule Editor
If there is an empty space in the right, Then
move into it.
11Components of KidSim Simulation (cont.)
Variables
12Components of KidSim Simulation (cont.)
CheckList
13Design of KidSim
- KidSim adopted OO design, but it is not
complete OO. - Types
- -- abstraction of a particular kind of
characters, - -- correspond to classes in OOP.
- Characters
- -- A character is an instance of a particular
type, - -- corresponds to objects in OOP.
14Design of KidSim(cont.)
- Appearances and properties
- -- Appearances display what the character
looks like. - -- Properties maintain information about the
character. - -- They correspond to instance variables in
OOP. - Rules
- -- define what a character is to do,
- -- if, then statements,
- -- correspond to methods in OOP.
15Design of KidSim(cont.)
- Rule Execution
- -- On each clock tick, every character is
given a chance to act, - -- Each character searches its rules and
performs the first rule - that matches its current state.
- -- problems with parallel execution
- If I am next to an empty chair, sit in
it. - -- Sequential execution
- At each clock tick, the first character
that was place on the - board searches its rule list, and
executes the first rule that - matches its current state.
- This process continues until the last
character gets its chance. - -- Problems with sequential execution
- Hidden dependency! Premature commitment!
Error-proneness!
16Design of KidSim(cont.)
- Inheritance
- -- Each type has its own properties,
- appearances, and rules,
- -- Changes to one character affect all the
- instances of the same type,
- -- Each character can have its own value
- of a property and its own drawing for
- each appearance,
- -- Single level inheritance,
- Viscosity! Abstraction!
17Demo
See http//www.cs.dal.ca/yhe/oceanlife.html for
the internet version demo
18Empirical Evaluation
- Reliability
- -- It consumed large amounts of disk space
and - RAM, the minimal RAM requirements is
- 1.5MB.
- -- The system is slow and crashes
frequently. - Engaging thinking
- -- Children of age 12-14 can master the
- programming environment,
- -- enjoy using the system,
- -- fire their imagination.
19Empirical Evaluation (Cont.)
- Rule comprehension
- -- the children seem to spend very little
time reading back over the - rules they have already written for an
agent. - -- One pair of children have been producing
multiple copies of very similar - rules. Of the 15 rules written, only 6
can really be regarded as distinct - rules.
- Programming concepts
- -- No programming concepts have been
learned. - -- The interfaces are too easy and, thereby
do not encourage - reflection and learning.
- http//www.psychomogy.nottingham.ac.uk/staff/dg/Ki
dSim/Interact/Kidsimdg.html
20Cognitive Dimensions
- Closeness of Mapping
- Visibility
- -- Only one board for programming,
- -- But the space is limited.
- Abstract Gradient and Viscosity
- -- Single level inheritance
21Cognitive Dimensions (cont.)
- Hidden Dependency, Premature Commitment, and
Error-proneness -
- -- Rules are executed sequentially in each
clock tick, - -- Different orders in which the same set of
characters are created - can course different computing results.
22Discussion