Using Video Games to Motivation Teach Computer Programming...

23
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 to Teach Computer Programming Donald H. House, Brian A. Malloy, Cory Buckley and Chris Malloy

Transcript of Using Video Games to Motivation Teach Computer Programming...

Page 1: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 2: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 3: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 4: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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!

Page 5: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 6: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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, . . .

Page 7: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 8: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 9: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 10: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 11: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 12: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 13: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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.

Page 14: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 15: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 16: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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 . . .

Page 17: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 18: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 19: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 20: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 21: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 22: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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

Page 23: Using Video Games to Motivation Teach Computer Programming …elearningsymposium.gmu.edu/2011/presentations_2011/A Game... · 2011-08-03 · Motivation Impediments to... Most Approaches

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!