Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 1 of 23
Go Back
Full Screen
Quit
Using Video Games toTeach Computer Programming
Donald H. House, Brian A. Malloy,Cory Buckley and Chris Malloy
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 2 of 23
Go Back
Full Screen
Quit
1. Motivation
• Who:
– Non CS Majors: Artists, Architects
– Digital Production Arts
– Human Centered Computing
• Why:
– Build computing foundation
– Generalist: Programmer & Artist
• My job: artists to programmers
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 3 of 23
Go Back
Full Screen
Quit
2. Impediments to Success
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 4 of 23
Go Back
Full Screen
Quit
2.1. Low Bs Don’t Work!
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 5 of 23
Go Back
Full Screen
Quit
3. Most Approaches
• Realize programming is difficult
• Use abstraction to remove rigor
• Icons & drag-and-drop approach
• Advantage: make programming accessible
• Disadvantage: hide computational model
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 6 of 23
Go Back
Full Screen
Quit
4. Our Approach: Lift the Veil
• Begin with an architecture abstraction
• Build basic programming paradigms
• Progressively “unveil” more architecture
• Progress to searching, sorting, . . .
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 7 of 23
Go Back
Full Screen
Quit
4.1. Our Approach: Lift the Veil
Computing Architecture Fidelity
Des
ign
Abs
tract
ion
Leve
l UP
LIS
P
C
Ass
embl
er
low highlow
high
Java
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 8 of 23
Go Back
Full Screen
Quit
4.2. Our Approach: Two Delivery Modes
• Lecture: Visualization of code execution
• Independent: game drives curriculum
• Independent: Cannot progress until mastercurrent level
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 9 of 23
Go Back
Full Screen
Quit
4.3. Our Approach: Lift the Veil
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 10 of 23
Go Back
Full Screen
Quit
5. The Architecture Simulator
• “Safe” programming environment
• Illustrate execution flow
• Explose computational model
• Gradual unveiling in 8 levels
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 11 of 23
Go Back
Full Screen
Quit
5.1. Simulator: Level I
• 5 instructions:input, output, assignment, if, while
• 4 registers
• Puzzles:
1. Swap 2 integers
2. Find the largest of 3 numbers
3. Input n numbers; find largest
4. Input numbers until sentinel; find largest
5. Find average of list of numbers
A DCB
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 12 of 23
Go Back
Full Screen
Quit
5.2. Simulator: Level II
• Add array
• Puzzles:
1. Find no closest to average
2. Sort list of numbers
3. Find median
A DCB
E
0 987654321
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 13 of 23
Go Back
Full Screen
Quit
5.3. Simulator: Eight Levels
1. 4 registers
2. Arrays
3. Type system
4. Memory & Addresses
5. Internal rep of data
6. Functions, AR, scope
7. Globals & static vars
8. Heap
The Craft of Computer Programming: Lifting the Veil,
Future Play Video Game Conference, Vancouver, BC,
May 6-7, 2010.
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 14 of 23
Go Back
Full Screen
Quit
5.4. The Simulator: Level 8: Full Model100010041008100C101010141018101C102010241028102C103010341038103C104010441048104C105010541058105C106010641068106C107010741078107C1080
GlobalsControl Stack
Dynamic Heap
main
sortnums
swap
00 00 00 0A00 00 09 1200 00 00 0300 00 0A C200 00 00 4100 00 12 0200 00 01 AB00 00 00 2D
00 00 10 0000 00 00 08
?? ?? ?? ??
00 00 10 00
00 00 00 0000 00 00 08
00 00 00 01
00 00 10 0000 00 10 01?? ?? ?? ??
?? ?? ?? ??
GLOBALS
global1 1080
int
global2 107C
int
mainsortnumsswap
n1 1058int
temp 1060int
n2 105Cint
01234567
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 15 of 23
Go Back
Full Screen
Quit
6. The Video Game
• Intention: Plug & Play
• Game tailored to audience
• Curriculum drives Game drives simulator
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 16 of 23
Go Back
Full Screen
Quit
6.1. The Video Game
• Find a register in the game
• Solve a puzzle and get second register
• or . . .
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 17 of 23
Go Back
Full Screen
Quit
6.2. The Video Game
• Fully Integrate Game and Programming
• Programming s/ not be a punishment
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 18 of 23
Go Back
Full Screen
Quit
6.3. Story Boards
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 19 of 23
Go Back
Full Screen
Quit
6.4. Story Boards
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 20 of 23
Go Back
Full Screen
Quit
6.5. Story Boards
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 21 of 23
Go Back
Full Screen
Quit
7. Prototype in Python
• 2D
• Not easily published on web
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 22 of 23
Go Back
Full Screen
Quit
7.1. Second Prototype in Unity 3D
• 3D
• Publishable on web
Motivation
Impediments to . . .
Most Approaches
Our Approach: Lift . . .
The Architecture . . .
The Video Game
Prototype in Python
JJ II
J I
Slide 23 of 23
Go Back
Full Screen
Quit
Demo!