learn programming independently
play

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


  1. Automatically Generating Tutorials to Enable Middle School Children to Learn Programming Independently Kyle Harms, Dennis Cosgrove, Shannon Gray, Caitlin Kelleher 1

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

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

  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

  5. Looking Glass 5

  6. Independent Learning In Looking Glass Talent Show Program 6

  7. Learning From Unfamiliar Code Find Select Remix Program Snippet Snippet Code Snippet Remixed Code Snippet 7

  8. Snippet Copied Into Program 8

  9. Exposure to New Programming Concepts 9

  10. Independent Learning In Looking Glass Select Remix Programming Find Program 1 Snippet 2 Snippet 2 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 . 10 2 Gross, P.A. et al. 2010. A code reuse interface for non-programmer middle school students. Proc. IUI .

  11. Automatic Tutorial Generation 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 11 application learning. Proc. UIST.

  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

  13. Walk-through Tutorial to Reconstruct the Snippet 13

  14. Interactive Stencils Tutorial Interface 14 Harms, K.J. et al. 2011. Improving learning transfer from stencils-based tutorials. Proc. IDC .

  15. Programming Tutorial Select Remix Programming Find Program Snippet Snippet Tutorial Code Snippet Remixed Code Snippet 15

  16. 16

  17. Snippet Reconstructed Through Walkthrough Tutorial 17

  18. Generating Walkthrough Tutorials from Code Snippets 18

  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

  20. Walkthrough Tutorial Steps Code Snippet Tutorial Steps 20

  21. Model-Driven Architecture On-screen Widget Model Data – Code Statement 21

  22. Translate Code Statements into Tutorial Steps Tutorial Step Model Code Statement 22

  23. Draft Tutorial Code Snippet Tutorial Steps 23

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

  25. Insert Do Together 25

  26. Insert Do Together 26

  27. Insert Do Together 27

  28. Tutorial Step Dependencies On-screen Widgets Dependent Tutorial Steps 28

  29. How can we present a valid tutorial to the user? 29

  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 Draft Tutorial completes the step. 30

  31. Algorithm for Presenting Steps 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. 31

  32. Presenting the Tutorial 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. 32

  33. Check Dependencies 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. 33

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

  35. Model-Driven Architecture + Dependencies Dependency On-screen Widgets Models 35

  36. Check Dependencies Dependency Tutorial Step Current Interface State Models 36

  37. Check Dependencies Dependency Tutorial Step Current Interface State Models 37

  38. Check Dependencies 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. 38

  39. Insert Prerequisite Step 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. 39

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

  41. Model-Driven Architecture + Insert Prerequisite Step Generate & Insert Dependency Models Tutorial Steps 41

  42. Present Prerequisite Step 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. 42

  43. Check Dependencies 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. 43

  44. Present Step 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. 44

  45. How do we present the step to the user? 45

  46. Model-Driven Architecture + Present Tutorial Step Tutorial Step Model Visible Widget 46

  47. Present Step with Stencils Widget Tutorial Step Stencils-Based Interface 47

  48. Validate User’s Progress 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. 48

  49. How do we prevent mistakes from derailing the tutorial? 49

  50. Model-Driven Architecture + Record User’s Actions On-screen Widgets Model Transaction History 50

  51. Validating the User’s Progress Equivalent Current Tutorial Step Latest Recorded Transaction 51

  52. Advance to Next Step 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. 52

  53. Advance to Next Step 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. 53

  54. Check Dependencies 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. 54

  55. Check Dependencies 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. 55

  56. Present Step 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. 56

  57. Automatically Generated Walkthrough Programming Tutorial 57

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

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

  60. Training Phase Control – Snippet Copied into Program Remix Animation Experimental – Reconstruct Snippet in Tutorial 60

  61. Transfer Phase Initial Transfer Task Program Completed Transfer Task Program 61

Recommend


More recommend