expressing computer science concepts through kodu game lab

50
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

Upload: donguyet

Post on 02-Jan-2017

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Expressing Computer Science Concepts ThroughKodu Game Lab

Kathryn T. Stolee Teale Fristoe

March 10, 2011

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

Page 2: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch 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

Page 3: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch 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

Page 4: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch 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

Page 5: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch Questions

About Kodu

A video game for creating 3dvideo games

Designed to compete withmodern console games

Available on Xbox or PC

Uses an Xbox controller asthe interface for playing andprogramming

110,000+ installs in 150+countries

Kodu Game Lab

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

Page 6: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch Questions

How Kodu is Different

Integrates common gamingconcepts (e.g., scoring,camera positioning,termination conditions)

Programming model does notresemble syntax andabstraction level ofmainstream languages

Kodu World

Little is known about how skills learned in Kodu may transfer tomore traditional languages

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

Page 7: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch Questions

How Kodu is Different

Integrates common gamingconcepts (e.g., scoring,camera positioning,termination conditions)

Programming model does notresemble syntax andabstraction level ofmainstream languages

Kodu World

Little is known about how skills learned in Kodu may transfer tomore traditional languages

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

Page 8: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch Questions

Interacting with Kodu

Play Mode

Play the game

Test or simulateprogramming logic

Edit Mode

Modify terrain andobjects

Program characters

Kodu World

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

Page 9: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch Questions

Interacting with Kodu

Play Mode

Play the game

Test or simulateprogramming logic

Edit Mode

Modify terrain andobjects

Program characters

Kodu World

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

Page 10: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch Questions

Interacting with Kodu

Play Mode

Play the game

Test or simulateprogramming logic

Edit Mode

Modify terrain andobjects

Program characters

Kodu

Turtle

Tree

Apple

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

Page 11: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch 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

Page 12: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch 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

Page 13: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch 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

Page 14: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch 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

Page 15: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch 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

Page 16: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch Questions

Programming: User Perspective

Programming involves visual composition of tiles

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

Page 17: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch Questions

Programming: Rule Prioritization

Rules are ordered andorganized into pages

Conflicting rules resolveaction using order

Conflicting Rules

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

Page 18: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch 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

Page 19: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch Questions

Big Question

Big Question

Can traditional computer science concepts (e.g., boolean logic,objects, variables, iteration, control flow) be expressed in Kodu?

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

Page 20: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch Questions

Research Questions

RQ1: Which computer science concepts can be expressedthrough the Kodu Language?

RQ2: How often does each computer science concept appearin the programs created by the Kodu community?

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

Page 21: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch Questions

Research Questions

RQ1: Which computer science concepts can be expressedthrough the Kodu Language?Kodu Language Analysis

RQ2: How often does each computer science concept appearin the programs created by the Kodu community?

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

Page 22: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

MotivationKodu ProgrammingResearch Questions

Research Questions

RQ1: Which computer science concepts can be expressedthrough the Kodu Language?Kodu Language Analysis

RQ2: How often does each computer science concept appearin 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

Page 23: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis 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

Page 24: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis 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

Page 25: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis 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

Page 26: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis of Programs

Boolean Logic: Negation

not A1 when A do B

2 when not A do C

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

Page 27: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis of Programs

Boolean Logic: Negation

not A1 when A do B

2 when not A do C

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

Page 28: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis of Programs

Boolean Logic: Conjunction

Condition

A ∧ C ⇒ D

Action

A ⇒ B ∧ E

1 when A do B

2 when C do D3 when always do E

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

Page 29: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis of Programs

Boolean Logic: Conjunction

Condition

A ∧ C ⇒ D

Action

A ⇒ B ∧ E

1 when A do B

2 when C do D3 when always do E

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

Page 30: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis of Programs

Boolean Logic: Conjunction

Condition

A ∧ C ⇒ D

Action

A ⇒ B ∧ E

1 when A do B

2 when C do D3 when always do E

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

Page 31: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis of Programs

Boolean Logic: Conjunction

Condition

A ∧ C ⇒ D

Action

A ⇒ B ∧ E

1 when A do B

2 when C do D3 when always do E

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

Page 32: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis 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

Page 33: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis of Programs

Boolean Logic: Disjunction

A ∨ C ⇒ B1 when A do B

2 when C do B

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

Page 34: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis of Programs

Boolean Logic: Disjunction

A ∨ C ⇒ B1 when A do B

2 when C do B

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

Page 35: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis of Programs

Expressions of Control Flow

Pages represent character state in terms of behaviorSwitching 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

Page 36: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis of Programs

Expressions of Control Flow

Pages represent character state in terms of behaviorSwitching 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

Page 37: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis of Programs

Expressions of Control Flow

Pages represent character state in terms of behaviorSwitching 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

Page 38: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis 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

Page 39: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis 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

Page 40: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis 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

Page 41: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis of Programs

Research Questions

RQ1: Which computer science concepts can be expressedthrough the Kodu Language?Kodu Language Analysis

RQ2: How often does each computer science concept appearin 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

Page 42: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis of Programs

Profile for Kodu Program

346 programs from the XBox community (13 months of data)

Property Average MedianRules 109 54Total Tiles 497 231Programmed Characters 18 12

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

Page 43: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis 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 onMarch 19, 2010. These values consider only the 81 (23.4%) games publishedafter that date.

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

Page 44: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis 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 onMarch 19, 2010. These values consider only the 81 (23.4%) games publishedafter that date.

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

Page 45: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis 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

Page 46: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis 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

Page 47: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis 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

Page 48: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Language AnalysisBoolean LogicControl FlowAnalysis of Programs

Threats to Validity

Internal Relationship between expressing concepts in codeand learning those concepts is unverified.

External Programs were self-selected for uploading to Xboxcommunity and may not be representative of thebroader population.

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

Page 49: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Conclusion

What We Learned:

Many fundamental computer science concepts can beexpressed in Kodu

Users make extensive use of the language and complexlanguage constructs

Questions Left Unanswered:

Are Kodu users internalizing the computer science conceptsthat 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

Page 50: Expressing Computer Science Concepts Through Kodu Game Lab

IntroductionAnalysis

Conclusions

Expressing Computer Science Concepts ThroughKodu Game Lab

Kathryn T. Stolee Teale Fristoe

[email protected]

[email protected]

March 10, 2011

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