Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Using Learning Sciences Research to Improve Computing Teaching: Predictions, Subgoals, and Parsons

2,648 views

Published on

Invited talk at Computing at School 2017.

Researchers still understand too little about the cognitive difficulties of learning programming, but we now have several new methods that draw on lessons from across learning sciences. In this talk, I describe three examples of ways to teach computing that are just starting to appear in computer science classes. We can use prediction to help students retain knowledge from in-class live coding. We can improve learning and transfer by using subgoal labeling. We can use Parsons Problems to provide more flexible and efficient ways to learn programming.

Links:

http://computinged.wordpress.com - Mark’s Blog
http://home.cc.gatech.edu/csl - Group web page

http://tinyurl.com/StudentCSP - link to ebook using Parsons Problems
Media Computation using Blocks-Based Language, GP: http://home.cc.gatech.edu/gpblocks

Published in: Education
  • Be the first to comment

Using Learning Sciences Research to Improve Computing Teaching: Predictions, Subgoals, and Parsons

  1. 1. USING LEARNING SCIENCES RESEARCH TO IMPROVE COMPUTING TEACHING: PREDICTIONS, SUBGOALS, AND PARSONS D R . M A R K G U Z D I A L P R O F E S S O R , S C H O O L O F I N T E R A C T I V E C O M P U T I N G
  2. 2. Learning Computer Science is Surprisingly Hard We can improve success by drawing on Learning Sciences. • We can use models of motivation to improve retention. • We can use subgoal labeling to promote learning and transfer. • We can teach programming with activities other than simply coding. STORY
  3. 3. THE RAINFALL PROBLEM Problem: Read in integers that represent daily rainfall, and printout the average daily rainfall. • If the input value of rainfall is less than zero is less than zero, prompt the user for a new rainfall. When you read in 99999, print out the average of the positive integers that were input other than 99999.
  4. 4. RESULTS AT YALE IN PASCAL IN 1983 % of Students who solve the problem correctly Novices (3/4 through first course) 14% Intermediates (3/4 through second course) 36% Advanced (Jrs and Srs in Systems Programming) 69%
  5. 5. NOT AN ANOMALY Elliot Soloway and his students replicated this study many times. Others have used this same problem with similar results in different programming languages (e.g., Venable, Tan, and Lister, 2009) Only recently (Kathi Fisler, ICER 2014) has anyone achieved student success on the Rainfall Problem, by switching the language to Scheme and teaching higher-level functions.
  6. 6. Three Examples from Drawing on Learning Sciences: #1: We can use prediction to help students retain knowledge from in-class live coding. #2: We can use subgoal labeling to dramatically improve learning and transfer. #3: We can use instructional design principles to teach programming more efficiently with less coding. Example: Parsons Problems HOW CAN WE IMPROVE LEARNING IN CS?
  7. 7. HOW SOUND WORKS: ACOUSTICS, THE PHYSICS OF SOUND
  8. 8. DIGITIZING SOUND: HOW DO WE GET THAT INTO BYTES? Remember in calculus, estimating the curve by creating rectangles? We can do the same to estimate the sound curve with samples.
  9. 9. Eric Mazur study on Physics Demonstrations Do Demonstrations in Physics classes help with learning? ERIC MAZUR ON DEMONSTRATIONS You can probably guess who did best. Who do you think did worst?
  10. 10. RESULTS FROM POST-TEST Students who did not see the demo did better than those who did. • Students who saw the demo mis-remembered it. Students who made predictions (with or without discussion) did best. Suggestion: Every time we run a program in class, it’s a demonstration.
  11. 11. Students are often overwhelmed when programming. “You’ve taught me so many details, I don’t know which ones to use.” (Clancy & Linn, 1990) How do we convey how to think about the purpose for the parts of the program? About why each part is there? Richard Catrambone (1994) invented a way to label the subgoals in examples provided to students. • Never tested before in Computer Science #2: SUBGOAL LABELING
  12. 12. Used subgoal labeling to teaching Andriod App Inventor (a blocks-based programming environment) to new Computer Science Students. Two groups of undergraduate students: • One group was shown a video for how to use the software to build an App and given text listing the steps in the instruction. • Another group was given the video and the steps with subgoal labels. EXPERIMENT WITH APP INVENTOR Lauren Margelieux, Mark Guzdial, and Richard Catrambone, ICER 2012
  13. 13. Week 1: Watch the video. Take a test to demonstrate understanding. Week 2: Take a test to demonstrate retention. Watch a new video. Take a test to demonstrate understanding of second video. Take a test where students must build a new app, transferring knowledge. STEPS IN EXPERIMENT
  14. 14. EXAMPLE OF WRITTEN MATERIALS Subgoal Define Variables from Built-in Click on "Built-In" and "Definition" and pull out a def variable. Click on the "variable" and replace it with "fortuneList". This creates a variable called "fortuneList". Click on "Lists" and drag out a call make a list Click on "Text" and drag out a text text block and drop it next to "item". Click on the rightmost "text" and replace it with your first fortune. Handle Events from My Blocks Click on "My Blocks" and "Button1". Drag out a when Button1.Click. Non-subgoal Click on "Built-In" and "Definition" and pull out a def variable. Click on the "variable" and replace it with "fortuneList". This creates a variable called "fortuneList". Click on "Lists" and drag out a call make a list Click on "Text" and drag out a text text block and drop it next to "item". Click on the rightmost "text" and replace it with your first fortune. Click on "My Blocks" and "Button1". Drag out a when Button1.Click.
  15. 15. ORIGINAL VIDEO
  16. 16. WITH SUBGOALS
  17. 17. RESULTS: UNDERSTANDING
  18. 18. RESULTS: RETENTION
  19. 19. RESULTS: DEFINE VARIABLE STEP IN TRANSFER TASK 0 0.2 0.4 0.6 0.8 1 Define Variable Subgoal Conventional p < .001, f = .61
  20. 20. Effect is twice as strong for high school teachers. Works in text-based languages, too! How I use it in my classes. REPLICATED IN OTHER SETTINGS (Work by Lauren Margeliux and Briana Morrison.)
  21. 21. One of the strong findings in Educational Psychology is that we often ask students to solve too many problems, when seeing more examples might lead to more learning (Clark, Nguyen, Sweller, 2006; Renkl, 2005). Could we teach Computer Science to teachers by asking them to look at examples and solve a variety of examples (with very little coding)? #3: TEACHING PROGRAMMING WITH LITTLE CODING
  22. 22. EXAMPLES + PRACTICE MODEL
  23. 23. OTHER TYPES OF PRACTICE PROBLEMS Fill in the Blank Multiple Choice with Multiple Feedback
  24. 24. PARSONS PROBLEMS
  25. 25. FINDINGS: WHAT DO USERS DO IN AN EBOOK? Ericson, Guzdial, & Morrison, ICER 2015
  26. 26. Use in our studies: 445 high-school teachers and 516 high-school students. (New ICER 2017 paper by Miranda Parker et al.) Teachers who use the ebook and engage with the activities (e.g., do more than half of the activities) gain in understanding of computer science (pre/post-tests) and confidence in their ability to teach. Teachers are learning successfully in short segments (~20 minute settings). FINDINGS: EBOOK USE
  27. 27. Learning Computer Science is surprisingly hard. We can improve learning in computer science by drawing on lessons from the Learning Sciences. 1. Live coding in classes is a form of demonstration. Ask students to predict results to improve learning. 2. We use subgoal labeling to promote learning and transfer, in both blocks-based and text-based languages. 3. We can teach programming successfully and efficiently with activities other than simply coding, such as Parsons Problems. SUMMARY
  28. 28. Barbara Ericson, Miranda Parker, Kathryn Cunningham, Amber Solomon, Kantwon Rogers Colleagues: Richard Catrambone, Lauren Margulieux, Betsy DiSalvo, Tom McKlin, Rick Adrion, Renee Fall, Brad Miller, Ria Galanos, & Briana Morrison Our Funders: US National Science Foundation http://computinged.wordpress.com http://home.cc.gatech.edu/csl http://tinyurl.com/StudentCSP COLLABORATORS ON THIS WORK Thank you!

×