Expressing Computer Science Concepts Through Kodu Game Lab Kathryn - - PowerPoint PPT Presentation

expressing computer science concepts through kodu game lab
SMART_READER_LITE
LIVE PREVIEW

Expressing Computer Science Concepts Through Kodu Game Lab Kathryn - - PowerPoint PPT Presentation

Introduction Analysis Conclusions Expressing Computer Science Concepts Through Kodu Game Lab Kathryn T. Stolee Teale Fristoe March 10, 2011 Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 1 / 26 Introduction


slide-1
SLIDE 1

Introduction Analysis Conclusions

Expressing Computer Science Concepts Through Kodu Game Lab

Kathryn T. Stolee Teale Fristoe March 10, 2011

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 1 / 26

slide-2
SLIDE 2

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Challenge

Learning to program is hard

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 2 / 26

slide-3
SLIDE 3

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Challenge

Learning to program is hard Teaching programming is hard, too

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 2 / 26

slide-4
SLIDE 4

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Motivation

Educational Programming Languages: Useful to introduce novices to programming Commonly used in a classroom setting Used to create video games, simulations, animations, art ... Focus is on ease-of-use and attractiveness Many examples: Alice, Greenfoot, Scratch ...

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 3 / 26

slide-5
SLIDE 5

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

About Kodu

A video game for creating 3d video games Designed to compete with modern console games Available on Xbox or PC Uses an Xbox controller as the interface for playing and programming 110,000+ installs in 150+ countries Kodu Game Lab

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 4 / 26

slide-6
SLIDE 6

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

How Kodu is Different

Integrates common gaming concepts (e.g., scoring, camera positioning, termination conditions) Programming model does not resemble syntax and abstraction level of mainstream languages Kodu World

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 5 / 26

slide-7
SLIDE 7

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

How Kodu is Different

Integrates common gaming concepts (e.g., scoring, camera positioning, termination conditions) Programming model does not resemble syntax and abstraction level of mainstream languages Kodu World Little is known about how skills learned in Kodu may transfer to more traditional languages

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 5 / 26

slide-8
SLIDE 8

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Interacting with Kodu

Play Mode Play the game Test or simulate programming logic Edit Mode Modify terrain and

  • bjects

Program characters

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 6 / 26

slide-9
SLIDE 9

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Interacting with Kodu

Play Mode Play the game Test or simulate programming logic Edit Mode Modify terrain and

  • bjects

Program characters Kodu World

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 6 / 26

slide-10
SLIDE 10

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Interacting with Kodu

Play Mode Play the game Test or simulate programming logic Edit Mode Modify terrain and

  • bjects

Program characters Kodu Turtle Tree Apple

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 7 / 26

slide-11
SLIDE 11

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Programming: Kodu Language

Language is a high-level, visual, and event-driven Statements take the form of ’When – Do’ clauses

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 8 / 26

slide-12
SLIDE 12

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Programming: Kodu Language

Language is a high-level, visual, and event-driven Statements take the form of ’When – Do’ clauses Rule → Condition Action

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 8 / 26

slide-13
SLIDE 13

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Programming: Kodu Language

Language is a high-level, visual, and event-driven Statements take the form of ’When – Do’ clauses Rule → Condition Action

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 8 / 26

slide-14
SLIDE 14

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Programming: Kodu Language

Language is a high-level, visual, and event-driven Statements take the form of ’When – Do’ clauses Rule → Condition Action

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 8 / 26

slide-15
SLIDE 15

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Programming: Kodu Language

Language is a high-level, visual, and event-driven Statements take the form of ’When – Do’ clauses Rule → Condition Action

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 8 / 26

slide-16
SLIDE 16

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Programming: User Perspective

Programming involves visual composition of tiles

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 9 / 26

slide-17
SLIDE 17

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Programming: Rule Prioritization

Rules are ordered and

  • rganized into pages

Conflicting rules resolve action using order Conflicting Rules

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 10 / 26

slide-18
SLIDE 18

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Programming: Page Usage

Characters can have up to 12 pages of programming Switching pages changes character behavior (e.g., a power-up)

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 11 / 26

slide-19
SLIDE 19

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Big Question

Big Question Can traditional computer science concepts (e.g., boolean logic,

  • bjects, variables, iteration, control flow) be expressed in Kodu?

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 12 / 26

slide-20
SLIDE 20

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Research Questions

RQ1: Which computer science concepts can be expressed through the Kodu Language? RQ2: How often does each computer science concept appear in the programs created by the Kodu community?

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 13 / 26

slide-21
SLIDE 21

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Research Questions

RQ1: Which computer science concepts can be expressed through the Kodu Language? Kodu Language Analysis RQ2: How often does each computer science concept appear in the programs created by the Kodu community?

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 13 / 26

slide-22
SLIDE 22

Introduction Analysis Conclusions Motivation Kodu Programming Research Questions

Research Questions

RQ1: Which computer science concepts can be expressed through the Kodu Language? Kodu Language Analysis RQ2: How often does each computer science concept appear in the programs created by the Kodu community? Analysis of ∼350 Kodu Programs

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 13 / 26

slide-23
SLIDE 23

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

CS Concepts in Kodu

Obviously Supported: Objects: Encapsulation, Creation, Deletion Control Structures: if – then, iteration Variables: Global, Local, Random Boolean Logic: Negation Subtly Supported: Objects: Cloning (class system) Boolean Logic: Conjunction, Disjunction Control Flow: Cycles, Fan-in, Fan-out Yet to be Investigated: Function calls . . .

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 14 / 26

slide-24
SLIDE 24

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

CS Concepts in Kodu

Obviously Supported: Objects: Encapsulation, Creation, Deletion Control Structures: if – then, iteration Variables: Global, Local, Random Boolean Logic: Negation Subtly Supported: Objects: Cloning (class system) Boolean Logic: Conjunction, Disjunction Control Flow: Cycles, Fan-in, Fan-out Yet to be Investigated: Function calls . . .

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 14 / 26

slide-25
SLIDE 25

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Boolean Logic: Negation

not A

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 15 / 26

slide-26
SLIDE 26

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Boolean Logic: Negation

not A 1 when A do B 2 when not A do C

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 15 / 26

slide-27
SLIDE 27

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Boolean Logic: Negation

not A 1 when A do B 2 when not A do C

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 15 / 26

slide-28
SLIDE 28

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Boolean Logic: Conjunction

Condition Action 1 when A do B 2 when C do D 3 when always do E

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 16 / 26

slide-29
SLIDE 29

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Boolean Logic: Conjunction

Condition A ∧ C ⇒ D Action 1 when A do B 2 when C do D 3 when always do E

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 16 / 26

slide-30
SLIDE 30

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Boolean Logic: Conjunction

Condition A ∧ C ⇒ D Action A ⇒ B ∧ E 1 when A do B 2 when C do D 3 when always do E

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 16 / 26

slide-31
SLIDE 31

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Boolean Logic: Conjunction

Condition A ∧ C ⇒ D Action A ⇒ B ∧ E 1 when A do B 2 when C do D 3 when always do E

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 16 / 26

slide-32
SLIDE 32

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Boolean Logic: Disjunction

A ∨ C ⇒ B

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 17 / 26

slide-33
SLIDE 33

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Boolean Logic: Disjunction

A ∨ C ⇒ B 1 when A do B 2 when C do B

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 17 / 26

slide-34
SLIDE 34

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Boolean Logic: Disjunction

A ∨ C ⇒ B 1 when A do B 2 when C do B

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 17 / 26

slide-35
SLIDE 35

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Expressions of Control Flow

Pages represent character state in terms of behavior Switching pages can create non-linear program flow

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 18 / 26

slide-36
SLIDE 36

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Expressions of Control Flow

Pages represent character state in terms of behavior Switching pages can create non-linear program flow

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 18 / 26

slide-37
SLIDE 37

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Expressions of Control Flow

Pages represent character state in terms of behavior Switching pages can create non-linear program flow

s 1 2 bump coin bump tree

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 18 / 26

slide-38
SLIDE 38

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Control Flow Patterns

Cycles (iteration)

s 1 2 3 4 Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 19 / 26

slide-39
SLIDE 39

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Control Flow Patterns

Cycles (iteration)

s 1 2 3 4

Fan-in (reuse)

s 1 2 3 4 Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 19 / 26

slide-40
SLIDE 40

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Control Flow Patterns

Cycles (iteration)

s 1 2 3 4

Fan-in (reuse)

s 1 2 3 4

Fan-out (conditional flow)

s 1 2 3 4

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 19 / 26

slide-41
SLIDE 41

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Research Questions

RQ1: Which computer science concepts can be expressed through the Kodu Language? Kodu Language Analysis RQ2: How often does each computer science concept appear in the programs created by the Kodu community? Analysis of ∼350 Kodu Programs

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 20 / 26

slide-42
SLIDE 42

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Profile for Kodu Program

346 programs from the XBox community (13 months of data) Property Average Median Rules 109 54 Total Tiles 497 231 Programmed Characters 18 12

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 21 / 26

slide-43
SLIDE 43

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Boolean Logic in the Community

CS Concept # % Games Games Logical Not 61 17.6% If-Then-Else Statements 29 8.4% Logical And Condition1 17 20.9% Logical And Action1 13 16.0% Logical Or 208 59.9%

1The indentation feature needed for the logical and was introduced on

March 19, 2010. These values consider only the 81 (23.4%) games published after that date.

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 22 / 26

slide-44
SLIDE 44

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Boolean Logic in the Community

CS Concept # % Games Games Logical Not 61 17.6% If-Then-Else Statements 29 8.4% Logical And Condition1 17 20.9% Logical And Action1 13 16.0% Logical Or 208 59.9%

1The indentation feature needed for the logical and was introduced on

March 19, 2010. These values consider only the 81 (23.4%) games published after that date.

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 22 / 26

slide-45
SLIDE 45

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Control Flow in the Community

CS Concept # % Games Games 2+ States 202 58.4% Cycles 166 47.9% Fan-in > 1 174 50.3% Fan-out > 1 123 35.5%

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 23 / 26

slide-46
SLIDE 46

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Control Flow in the Community

CS Concept # % Games Games 2+ States 202 58.4% Cycles 166 47.9% Fan-in > 1 174 50.3% Fan-out > 1 123 35.5%

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 23 / 26

slide-47
SLIDE 47

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Control Flow in the Community

CS Concept # % Games Games 2+ States 202 58.4% Cycles 166 47.9% Fan-in > 1 174 50.3% Fan-out > 1 123 35.5%

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 23 / 26

slide-48
SLIDE 48

Introduction Analysis Conclusions Language Analysis Boolean Logic Control Flow Analysis of Programs

Threats to Validity

Internal Relationship between expressing concepts in code and learning those concepts is unverified. External Programs were self-selected for uploading to Xbox community and may not be representative of the broader population.

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 24 / 26

slide-49
SLIDE 49

Introduction Analysis Conclusions

Conclusion

What We Learned: Many fundamental computer science concepts can be expressed in Kodu Users make extensive use of the language and complex language constructs Questions Left Unanswered: Are Kodu users internalizing the computer science concepts that appear in their games? (Requires evaluation) Can Kodu be used to teach computer science?

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 25 / 26

slide-50
SLIDE 50

Introduction Analysis Conclusions

Expressing Computer Science Concepts Through Kodu Game Lab

Kathryn T. Stolee Teale Fristoe

kstolee@cse.unl.edu teale@soe.ucsc.edu

March 10, 2011

Kathryn T. Stolee, Teale Fristoe Computer Science Concepts in Kodu Game Lab 26 / 26