Learn Programming Independently Kyle Harms, Dennis Cosgrove, - - PowerPoint PPT Presentation

learn programming independently
SMART_READER_LITE
LIVE PREVIEW

Learn Programming Independently Kyle Harms, Dennis Cosgrove, - - PowerPoint PPT Presentation

Automatically Generating Tutorials to Enable Middle School Children to Learn Programming Independently Kyle Harms, Dennis Cosgrove, Shannon Gray, Caitlin Kelleher 1 Shortage of Programmers An estimated 1.4 million computing jobs will be added


slide-1
SLIDE 1

Automatically Generating Tutorials to Enable Middle School Children to Learn Programming Independently

Kyle Harms, Dennis Cosgrove, Shannon Gray, Caitlin Kelleher

1

slide-2
SLIDE 2

Shortage of Programmers

An estimated 1.4 million computing jobs will be added to the United States’ economy between 2008-2018.1 61% of these jobs can be filled based on current college graduation rates.1 Shortage of information communications technology workers across the European Union.2

2

1 Computing Education and Future Jobs: A Look at National, State, and Congressional District Data (2011) 2 IEEE Job Site: http://careers.ieee.org/article/European_Job_Outlook_0312.php

slide-3
SLIDE 3

Middle School Children & Computer Programming

Middle school is the time many children decide to opt-out of advanced math or science courses.1 By college these students are too far behind to realistically succeed in these majors.2 Maintain interest and develop programming skills through independent learning.

3

1 Shedding Some New Light on Old Truths: Student Attitudes to School in Terms of Year Level and Gender (1994) 2 Pryor, J.H. et al. 2010. The American Freshman: National Norms for Fall 2009.

slide-4
SLIDE 4

Contributions

Demonstrate a process for automatically generating programming tutorials from unfamiliar code. The tutorials improved independent learning of programming constructs in near transfer tasks by 64%.

4

slide-5
SLIDE 5

Looking Glass

5

slide-6
SLIDE 6

Independent Learning In Looking Glass

6

Talent Show Program

slide-7
SLIDE 7

Learning From Unfamiliar Code

7

Find Program Select Snippet Remix Snippet Code Snippet Remixed Code Snippet

slide-8
SLIDE 8

Snippet Copied Into Program

8

slide-9
SLIDE 9

Exposure to New Programming Concepts

9

slide-10
SLIDE 10

Independent Learning In Looking Glass

10

Find Program1 Select Snippet2 Remix Snippet2 Programming Tutorial

Existing Support for Independent Learning This Talk

1 Harms, K.J. et al. 2012. Designing a community to support long-term interest in programming for middle

school children. Proc. IDC.

2 Gross, P.A. et al. 2010. A code reuse interface for non-programmer middle school students. Proc. IUI.

slide-11
SLIDE 11

Automatic Tutorial Generation

11

Bergman, L. et al. 2005. DocWizards: a system for authoring follow-me documentation wizards. Proc. UIST. Grabler, F. et al. 2009. Generating photo manipulation tutorials by demonstration. ACM SIGGRAPH. Fernquist, J. et al. 2011. Sketch-sketch revolution: an engaging tutorial system for guided sketching and application learning. Proc. UIST.

slide-12
SLIDE 12

Current Generated Tutorial Systems

Users must adapt tutorial content to their contexts. Require explicit authoring phase. Users may skip steps or make mistakes.

12

slide-13
SLIDE 13

Walk-through Tutorial to Reconstruct the Snippet

13

slide-14
SLIDE 14

Interactive Stencils Tutorial Interface

14

Harms, K.J. et al. 2011. Improving learning transfer from stencils-based tutorials. Proc. IDC.

slide-15
SLIDE 15

Programming Tutorial

15

Find Program Select Snippet Remix Snippet Programming Tutorial

Code Snippet Remixed Code Snippet

slide-16
SLIDE 16

16

slide-17
SLIDE 17

Snippet Reconstructed Through Walkthrough Tutorial

17

slide-18
SLIDE 18

Generating Walkthrough Tutorials from Code Snippets

18

slide-19
SLIDE 19

Reconstructing a Code Snippet

1. Insert a Do Together statement. 2. Insert move statement into the Do Together. 3. Insert roll statement into the Do Together.

19

slide-20
SLIDE 20

Walkthrough Tutorial Steps

20

Code Snippet Tutorial Steps

slide-21
SLIDE 21

Model-Driven Architecture

21

Data – Code Statement Model On-screen Widget

slide-22
SLIDE 22

Translate Code Statements into Tutorial Steps

22

Code Statement Model Tutorial Step

slide-23
SLIDE 23

Draft Tutorial

23

Code Snippet Tutorial Steps

slide-24
SLIDE 24

What if the interface is in the wrong state to complete the current step?

24

slide-25
SLIDE 25

Insert Do Together

25

slide-26
SLIDE 26

Insert Do Together

26

slide-27
SLIDE 27

Insert Do Together

27

slide-28
SLIDE 28

Tutorial Step Dependencies

28

On-screen Widgets Dependent Tutorial Steps

slide-29
SLIDE 29

How can we present a valid tutorial to the user?

29

slide-30
SLIDE 30

Presenting the Draft Tutorial

Check if a step’s dependencies are satisfied. Correct unsatisfied dependencies. Initialize the tutorial interface for the step. Ensure user correctly completes the step. 30

Draft Tutorial

slide-31
SLIDE 31

Algorithm for Presenting Steps

31 For each draft tutorial step do: If step’s dependencies are satisfied Then: Present the step to the user. Validate the user’s progress. Advance to the next step. Else: Create and insert prerequisite step.

slide-32
SLIDE 32

Presenting the Tutorial

32

For each draft tutorial step do: If the step’s dependencies are satisfied Then: Present the step to the user. Validate the user’s progress. Advance to the next step. Else: Create and insert a prerequisite step.

slide-33
SLIDE 33

Check Dependencies

33

For each draft tutorial step do: If the step’s dependencies are satisfied Then: Present the step to the user. Validate the user’s progress. Advance to the next step. Else: Create and insert a prerequisite step.

slide-34
SLIDE 34

Is the interface in a state where we can present this step?

34

slide-35
SLIDE 35

Model-Driven Architecture + Dependencies

35

Models On-screen Widgets Dependency

slide-36
SLIDE 36

Check Dependencies

36

Models Current Interface State Dependency Tutorial Step

slide-37
SLIDE 37

Check Dependencies

37

Models Current Interface State Dependency Tutorial Step

slide-38
SLIDE 38

Check Dependencies

38

For each draft tutorial step do: If the step’s dependencies are satisfied Then: Present the step to the user. Validate the user’s progress. Advance to the next step. Else: Create and insert a prerequisite step.

slide-39
SLIDE 39

Insert Prerequisite Step

39

For each draft tutorial step do: If the step’s dependencies are satisfied Then: Present the step to the user. Validate the user’s progress. Advance to the next step. Else: Create and insert a prerequisite step.

slide-40
SLIDE 40

How do we adapt the tutorial to put the interface in the correct state?

40

slide-41
SLIDE 41

Model-Driven Architecture + Insert Prerequisite Step

41

Generate & Insert Models Dependency Tutorial Steps

slide-42
SLIDE 42

Present Prerequisite Step

42

For each draft tutorial step do: If the step’s dependencies are satisfied Then: Present the step to the user. Validate the user’s progress. Advance to the next step. Else: Create and insert a prerequisite step.

slide-43
SLIDE 43

Check Dependencies

43

For each draft tutorial step do: If the step’s dependencies are satisfied Then: Present the step to the user. Validate the user’s progress. Advance to the next step. Else: Create and insert a prerequisite step.

slide-44
SLIDE 44

Present Step

44

For each draft tutorial step do: If the step’s dependencies are satisfied Then: Present the step to the user. Validate the user’s progress. Advance to the next step. Else: Create and insert a prerequisite step.

slide-45
SLIDE 45

How do we present the step to the user?

45

slide-46
SLIDE 46

Model-Driven Architecture + Present Tutorial Step

46

Model Visible Widget Tutorial Step

slide-47
SLIDE 47

Present Step with Stencils

47

Stencils-Based Interface Tutorial Step Widget

slide-48
SLIDE 48

Validate User’s Progress

48

For each draft tutorial step do: If the step’s dependencies are satisfied Then: Present the step to the user. Validate the user’s progress. Advance to the next step. Else: Create and insert a prerequisite step.

slide-49
SLIDE 49

How do we prevent mistakes from derailing the tutorial?

49

slide-50
SLIDE 50

Model-Driven Architecture + Record User’s Actions

50

Model On-screen Widgets Transaction History

slide-51
SLIDE 51

Validating the User’s Progress

51

Equivalent Current Tutorial Step Latest Recorded Transaction

slide-52
SLIDE 52

Advance to Next Step

52

For each draft tutorial step do: If the step’s dependencies are satisfied Then: Present the step to the user. Validate the user’s progress. Advance to the next step. Else: Create and insert a prerequisite step.

slide-53
SLIDE 53

Advance to Next Step

53

For each draft tutorial step do: If the step’s dependencies are satisfied Then: Present the step to the user. Validate the user’s progress. Advance to the next step. Else: Create and insert a prerequisite step.

slide-54
SLIDE 54

Check Dependencies

54

For each draft tutorial step do: If the step’s dependencies are satisfied Then: Present the step to the user. Validate the user’s progress. Advance to the next step. Else: Create and insert a prerequisite step.

slide-55
SLIDE 55

Check Dependencies

55

For each draft tutorial step do: If the step’s dependencies are satisfied Then: Present the step to the user. Validate the user’s progress. Advance to the next step. Else: Create and insert a prerequisite step.

slide-56
SLIDE 56

Present Step

56

For each draft tutorial step do: If the step’s dependencies are satisfied Then: Present the step to the user. Validate the user’s progress. Advance to the next step. Else: Create and insert a prerequisite step.

slide-57
SLIDE 57

Automatically Generated Walkthrough Programming Tutorial

57

slide-58
SLIDE 58

Evaluation

40 Middle school aged (10–16 years) participants 1.5 hour sessions each with no more than 5 participants

58

Control Experimental

slide-59
SLIDE 59

Programming Constructs

59

Do Together Execute in Parallel Count Loop Loop n times For Each in Array Loop Iterate over array Easy Hard

slide-60
SLIDE 60

Training Phase

60

Control – Snippet Copied into Program Experimental – Reconstruct Snippet in Tutorial Remix Animation

slide-61
SLIDE 61

Transfer Phase

61

Initial Transfer Task Program Completed Transfer Task Program

slide-62
SLIDE 62

Grading Transfer Task Programs

Grading Criteria for the For Each Transfer Program: (5 points) 1. Program contains a For Each construct. If not, stop grading. (+1) 2. For Each contains at least one statement. If not, stop grading. (+1) 3. Array is defined correctly for the animation. (+1) 4. Programming statements use the loop iterator. (+1) 5. Animation is correct. (+1)

62

slide-63
SLIDE 63

Results

63

61.90% 40.00% 8.33% 86.67% 70.77% 18.75% Do Together Count For Each

Average Transfer Program Scores for Each Programming Construct Task

Control Experimental

Experimental condition performed 64% better. ANCOVA (F[2,37], p < 0.05).

Hard Easy

slide-64
SLIDE 64

Implications

Any code can be used as a learning resource. Users can learn while they follow their own interests. Personalize tutorials to the learner’s abilities.

64

slide-65
SLIDE 65

Thanks

65 Kyle J. Harms Washington University in St. Louis harmsk@seas.wustl.edu

slide-66
SLIDE 66

Why ANCOVA?

New Looking Glass users often have difficulty locating the Control Flow Tab. We provided a Control Flow Tab Hint Offered during the transfer program after 5 minutes Pointed to tab: “To complete this task, look here.” We used ANCOVA with the presence or absence of this hint as a covariate. The hint was not significant (p = 0.48)

66