edupsych theory for hacker school (hacker school w2014) follow along at bit.ly/hackerschool-w2014
edupsych theoryfor hacker school
(hacker school w2014)follow along at bit.ly/hackerschool-w2014
MEL CHUAacademic
hackeracademic
WAT
ProductivelyLost
Productively Lost: How to tell
1. Productively: test-driven learning2. Productively: fits your brain3. Productively: works with others4. Productively: pushes you, nicely5. Lost: (you can tell)
uredoin
itrite
uredoin
itrite
CC-BY-SA from http://www.flickr.com/photos/ykjc9/4143179870
Productively Lost: How to tell
1. Productively: test-driven learning2. Productively: fits your brain3. Productively: works with others4. Productively: pushes you, nicely5. Lost: (you can tell)
This talk's big ideas
1. Learning is designable like code2. Know your learning style3. We do not function standalone4. Mindset and motivation are key5. Be courageous!
1Design your learningthe same way
you design your code
Design your learningthe same way
you design your code
think-pair-share
Example 1: This project is a text editor, mail and news reader, debugger, project planner, calendar, and natural language processing
demo for simulating a human.
Example 2: This project is a distributed version control system designed to handle
everything from small to very large projects with speed and efficiency.
What is your hacker school learning story?
(I'm learning X because of Y. My next step is Z.)
Example: test-driven developmentdef 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
Example: test-driven developmentdef 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?
Example: test-driven learningdef learn_tdd(student):
"""Students should be able to analyze the relationship between a doctest, the function 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
Example: test-driven learningdef learn_tdd(student):
"""Students should be able to analyze the relationship between a doctest, the function 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, bit.ly/test-driven-learning
bit.ly/test-driven-learning
CC-BY http://www.flickr.com/photos/katrzyna/69324073
assessmentassessment
Formative: cookingFormative: cookingSummative: servingSummative: serving
This talk's big ideas
1. Learning is designable like code2. Know your learning style3. We do not function standalone4. Mindset and motivation are key5. Be courageous!
2Our brains arelike snowflakes.Everyone learns
differently.
ACTIVE
SENSING
VISUAL
SEQUENTIAL
REFLECTIVE
INTUITIVE
VERBAL
GLOBAL
We teach the way we learn.
teaser trailer:workshop tomorrow!bit.ly/hackerschool-learningstylestories
(Felder & Silverman)
This talk's big ideas
1. Learning is designable like code2. Know your learning style3. We do not function standalone4. Mindset and motivation are key5. Be courageous!
3We do not learnstandalone.Importing isimportant.
Community of practice.
domaindomaincommunitycommunitypracticepractice
Cognitive apprenticeship.
modelmodelcoachcoachscaffoldscaffoldfadefade bit.ly/pycon-cogapp
In a cognitive apprenticeship within a community of practice... zone of proximal development
legitimate peripheral participation
Zone of proximal development: learning to bike
1. watching2. somebody pushes you3. wheeeeeeeeeeeeeeeeeeeeeeee
Zone of proximal development: learning to program
1. watching2. somebody pushes you3. wheeeeeeeeeeeeeeeeeeeeeeee
Zone of proximal development: learning to program
1. watching2. pair programming, code review, etc...3. wheeeeeeeeeeeeeeeeeeeeeeee
MYTHS:
not skilled enoughnot skilled enoughnot technical enoughnot technical enough
(perhaps later but surely not now)(perhaps later but surely not now)
Legitimate Peripheral Participation Task Criteria
1. mission critical
3. nobody really cares
Legitimate Peripheral Participation Task Criteria
1. mission critical2. we have no time3. nobody really cares
CC-BY http://www.flickr.com/photos/pasukaru76/5060447506
Legitimate Peripheral Participation
these are the jobs you're looking for
Situative
more information:bit.ly/pycon-eduhistory
bit.ly/pycon-eduparadigms
bostonpythonworkshop.com
Cognitive
Dreyfus Model of Skill Acquisition
novice
advanced beginner
competent
proficient
expert
CC-BY-SA by woodleywonderworks (http://www.flickr.com/photos/wwworks/2985216277/)
CC-BY-SA by eschipul (http://www.flickr.com/photos/eschipul/278768722/)
clarityclarity constraintconstraint
freedomfreedom frustrationfrustrationCC-BY-SA by ginnerobot (http://www.flickr.com/photos/ginnerobot/4487647471/) CC-BY by NatalieMaynor (http://www.flickr.com/photos/nataliemaynor/2539937014/)
Why?
Because Piaget.
Piaget In One Slide
assimilation: adding another module
accommodation: REFACTOR EVERYTHING
assimilation------------accommodation------------------------------------------------
assimilation
+ =
novice
advanced beginner
competent
proficient
expert
assimilationaccommodation
assimilationaccommodation
SPIRALLEARNING
Learning Over Time (Fullan)unwind the spiral...
Motivation
This talk's big ideas
1. Learning is designable like code2. Know your learning style3. We do not function standalone4. Mindset and motivation are key5. Be courageous!
4mindset andmotivation
matter morefor mastery
Attribution theory (Dweck)
Fixed vs Growth mindsetsaka
Nature vs Nurture
FAIL #1: Assumption of privilege
If it's hard, something's wrong with mevs
If it's hard, something's wrong with it (I can fix that!)
Example: test-driven learningdef learn_tdd(student):
"""Students should be able to analyze the relationship between a doctest, the function 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
Do I have clear, small goals?Do I have clear, small goals?
ACTIVE
SENSING
VISUAL
SEQUENTIAL
REFLECTIVE
INTUITIVE
VERBAL
GLOBAL
Does this work for my style?Does this work for my style?
Am I learning inAm I learning incontext and community?context and community?
'...confirmation and community are prerequisites rather than '...confirmation and community are prerequisites rather than consequences of development.' --Women's Ways of Knowingconsequences of development.' --Women's Ways of Knowing
Do I (really) care?Motivation (Deci, Ryan)
1. amotivation2. external regulation3. identified regulation4. intrinsic motivation
autonomyrelatednesscompetence
(thanks to Jon Stolk, Rob Martello, Mark Somerville, and the Olin College I2E2 crew)
This talk's big ideas
1. Learning is designable like code2. Know your learning style3. We do not function standalone4. Mindset and motivation are key5. Be courageous!
5I want tosee yoube brave
(thank you, Sara Bareilles)
I (think I) canSelf-efficacy (Bandura)
1. doing it2. seeing people (like me) do it3. social persuasion4. your own body
(Bandura also did social learning, which is a lot of fun – look it up!)
uredoin
itrite
uredoin
itrite
CC-BY-SA from http://www.flickr.com/photos/ykjc9/4143179870
ProductivelyLost
that's all, folks. questions?that's all, folks. questions?
this talkthis talk
my workmy work
bit.ly/hackerschool-w2014bit.ly/hackerschool-w2014melchua.com/contactmelchua.com/contact