A hacker's translation of engineering education graduate school.
How can we think about designing learning experiences? How do we understand ourselves as individual learners with distinct styles? How can we describe the way community interactions help us learn?
These questions -- and more -- are tackled and illustrated with examples from Python development (and occasional pictures of cats). If you're a hacker, you're already doing awesome learning stuff -- now learn a vocabulary you can use to talk about it!
PyCon Toronto 2013: EduPsych Theory for Python Hackers 2.0
1. edupsych theoryedupsych theory
for python hackersfor python hackers
v.2.0v.2.0
(mel chua, pycon toronto 2013)(mel chua, pycon toronto 2013)
follow along at bit.ly/pycon-toronto-edupsychfollow along at bit.ly/pycon-toronto-edupsych
9. Which comes first?
A. (vague) specification
B. (occasionally-functional) prototype
C. (rough) test(s)
10. Example: test-driven development
def factorial(n):
"""Return the factorial of n, an exact integer >= 0.
>>> [factorial(n) for n in range(6)]
[1, 1, 2, 6, 24, 120]"""
result = 1
factor = 2
while factor <= n: (shamelessly stolen from
result *= factor http://docs.python.org/2/library/doctest.html)
factor += 1
return result
11. Example: test-driven development
def factorial(n):
"""Return the factorial of n, an exact integer >= 0.
>>> [factorial(n) for n in range(6)]
[1, 1, 2, 6, 24, 120]"""
result = 1
factor = 2
while factor <= n: (shamelessly stolen from
result *= factor http://docs.python.org/2/library/doctest.html)
factor += 1
return result
what should it do?
how will I know if it works?
ok, now how do I make it work?
12. Example: test-driven development
def learn_tdd(student):
"""Students should be able to analyze the relationship between
a doctest, thefunction under test, and the test output.
>>> [learn_tdd(student) for student in class]
[True, True, True, True, True]"""
fun_activity_thing()
student.doctestability = True
return student.doctestability
13. Example: test-driven development
def learn_tdd(student):
"""Students should be able to analyze the relationship between
a doctest, thefunction under test, and the test output.
>>> [learn_tdd(student) for student in class]
[True, True, True, True, True]"""
fun_activity_thing()
student.doctestability = True
return student.doctestability
content (goal)
assessment
pedagogy (activity)
Further reading: Understanding By Design
15. Example: test-driven development
def curriculum(student):
"""Students should be able to analyze the relationship between
a doctest, thefunction under test, and the test output.
>>> [curriculum(student) for student in class]
[True, True, True, True, True]"""
fun_activity_thing()
student.doctestability = True
return student.doctestability
Bloom's taxonomy
17. Example: test-driven development
def curriculum(student):
"""Students should be able to analyze the relationship between
a doctest, thefunction under test, and the test output.
>>> [curriculum(student) for student in class]
[True, True, True, True, True]"""
fun_activity_thing()
student.doctestability = True
return student.doctestability
behaviorism
29. ACTIVE: Let's try it out!ACTIVE: Let's try it out!
REFLECTIVE: Let's think it through!REFLECTIVE: Let's think it through!
30. Example: test-driven development
def factorial(n):
"""Return the factorial of n, an exact integer >= 0.
>>> [factorial(n) for n in range(6)]
[1, 1, 2, 6, 24, 120]"""
result = 1
factor = 2
while factor <= n: (shamelessly stolen from
result *= factor http://docs.python.org/2/library/doctest.html)
factor += 1
return result
58. Motivation (Deci, Ryan)
1. amotivation
2. external regulation
3. identified regulation
4. intrinsic motivation
autonomy
relatedness
competence
(thanks to Jon Stolk, Rob Martello, Mark Somerville, and the Olin College I2E2 crew)
60. Self-efficacy (Bandura)
1. doing it
2. seeing people (like me) do it
3. social persuasion
4. your own body
(Bandura also did social learning, which is a lot of fun – look it up!)
71. accidental learning in cognitive
apprenticeships within authentic
communities of practice with
metacognition models and
formative feedback to develop
self-efficacy and self-
determination
79. In a cognitive apprenticeship within a
community of practice...
zone of proximal development
legitimate peripheral participation
80. Zone of proximal development:
learning to bike
1. watching
2. somebody pushes you
3. wheeeeeeeeeeeeeeeeeeeeeeee
81. Zone of proximal development:
learning to program
1. watching
2. somebody pushes you
3. wheeeeeeeeeeeeeeeeeeeeeeee
82. Zone of proximal development:
learning to program
1. watching
2. pair programming, code review, etc...
3. wheeeeeeeeeeeeeeeeeeeeeeee
83. MYTHS:
not skilled enoughnot skilled enough
not technical enoughnot technical enough
(perhaps later but surely not now)(perhaps later but surely not now)
86. accidental learning in cognitive
apprenticeships within authentic
communities of practice with
metacognition models and
formative feedback to develop
self-efficacy and self-
determination
88. ''...thefirst steps on this journey do not feel like progress....thefirst steps onthis journey do not feel like progress. TheThe
voice diminishes in volume; it lacks... even the derived authorityvoice diminishes in volume; it lacks... even the derived authority
of thosewho... can assume as theyparrot... they speak theofthosewho... can assume as theyparrot... they speak the
truth... The inner voice turns critical; it tells themtheir ideastruth... The inner voice turns critical; it tells themtheir ideas
may be stupid.Women at this position think before they speak;may be stupid.Women at this position think before they speak;
and, becausetheir ideas must measure up to certain objectiveand, becausetheir ideas must measure up to certain objective
standards, they speak in measured tones.standards, they speak in measured tones.
Often, theydo not speak at all.Often, theydo not speak at all.
But this is not a passive silence; on the other sideof this silence,But this is not a passive silence; on the other sideof this silence,
reason is stirringreason is stirring.' --Women's Ways ofKnowing.' --Women's Ways ofKnowing
89. '...confirmation and community are prerequisites rather than'...confirmation and community are prerequisites rather than
consequences ofdevelopment.'consequences ofdevelopment.'
--Women's Ways of Knowing--Women's Ways of Knowing
91. 1. learning is designable like code
2. our brains are snowflakes
3. we do not function standalone
3 big ideas
92. 1. learning is designable like code
2. our brains are snowflakes
3. we do not function standalone
process
empathy
vocabulary
3 big ideas
93. that's all, folks. questions?that's all, folks. questions?
this talkthis talk
myworkmywork
bit.ly/pycon-toronto-edupsychbit.ly/pycon-toronto-edupsych
melchua.com/contactmelchua.com/contact