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
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
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.
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%
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.
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?
HOW SOUND WORKS:
ACOUSTICS, THE PHYSICS OF SOUND
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.
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?
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.
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
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
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
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.
ORIGINAL VIDEO
WITH SUBGOALS
RESULTS: UNDERSTANDING
RESULTS: RETENTION
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
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.)
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
EXAMPLES + PRACTICE MODEL
OTHER TYPES OF PRACTICE PROBLEMS
Fill in the Blank
Multiple Choice with Multiple Feedback
PARSONS PROBLEMS
FINDINGS: WHAT DO USERS
DO IN AN EBOOK?
Ericson, Guzdial, &
Morrison, ICER 2015
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
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
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!

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

  • 1.
    USING LEARNING SCIENCES RESEARCHTO 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.
    Learning Computer Scienceis 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.
    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.
    RESULTS AT YALEIN 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.
    NOT AN ANOMALY ElliotSoloway 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.
    Three Examples fromDrawing 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.
    HOW SOUND WORKS: ACOUSTICS,THE PHYSICS OF SOUND
  • 8.
    DIGITIZING SOUND: HOWDO 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.
  • 11.
    Eric Mazur studyon 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?
  • 12.
    RESULTS FROM POST-TEST Studentswho 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.
  • 13.
    Students are oftenoverwhelmed 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
  • 14.
    Used subgoal labelingto 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
  • 15.
    Week 1: Watch thevideo. 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
  • 16.
    EXAMPLE OF WRITTENMATERIALS 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.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
    RESULTS: DEFINE VARIABLESTEP IN TRANSFER TASK 0 0.2 0.4 0.6 0.8 1 Define Variable Subgoal Conventional p < .001, f = .61
  • 22.
    Effect is twiceas 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.)
  • 23.
    One of thestrong 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
  • 24.
  • 25.
    OTHER TYPES OFPRACTICE PROBLEMS Fill in the Blank Multiple Choice with Multiple Feedback
  • 26.
  • 27.
    FINDINGS: WHAT DOUSERS DO IN AN EBOOK? Ericson, Guzdial, & Morrison, ICER 2015
  • 28.
    Use in ourstudies: 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
  • 29.
    Learning Computer Scienceis 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
  • 30.
    Barbara Ericson, MirandaParker, 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!