1 00:00:06,374 --> 00:00:11,812 NAOMI: Welcome. This will be EduPsych Theory for Python Hackers. 2 00:00:11,812 --> 00:00:14,123 This is a half-hour talk by Mel Chua, 3 00:00:14,123 --> 00:00:19,278 we're going to try to have about five to eight minutes at the end for questions. 4 00:00:19,278 --> 00:00:27,097 Ok. Mel Chua! 5 00:00:27,097 --> 00:00:30,171 MEL: Hi. Hi, everyone. 6 00:00:30,171 --> 00:00:33,009 So, welcome to EduPsych Theory for Python Hackers. 7 00:00:33,009 --> 00:00:36,697 This is a very laptops-encouraged talk. The slides are on the web 8 00:00:36,697 --> 00:00:42,579 and there'll be a lot of points where I'll say "It's Wikipedia time!" if you want to look up something up or follow a resource down, 9 00:00:42,579 --> 00:00:52,496 because what I'm about to do is try to cram about 2 years of graduate school education classes into approximately 20 minutes. 10 00:00:52,496 --> 00:00:58,128 So there's going to be a lot that we cover very very quickly and there's going to be a lot that we don't cover but I'll go "there's a link!" 11 00:00:58,128 --> 00:01:09,839 So, my name is Mel, and in between bouts of academia I've been spending a lot of time wandering around sort of the hacking world, 12 00:01:09,839 --> 00:01:16,364 the coding world, the open source world, the Python world. And the reason I went back to academia was because there was a bug I wanted to fix, 13 00:01:16,364 --> 00:01:26,022 it was classrooms looked like that and not like this, and not like the sorts of really cool hacking, messing-around-with-things communities we all know and love. 14 00:01:26,022 --> 00:01:33,330 And there's this giant cultural gulf between the academic world and the world we know here. 15 00:01:33,330 --> 00:01:45,080 And my belief is that you folks here at PyCon are doing it right. So, in particular -- so one example, like test-driven development. 16 00:01:45,080 --> 00:01:54,109 Many of us would probably be familiar with this, that's a doctest for a function that returns a factorial of a number, and there's a test for it, 17 00:01:54,109 --> 00:02:00,202 and I was taught when I started programming that when you're writing code, you figure out what you want the code to do first, 18 00:02:00,202 --> 00:02:07,394 then write a test to make sure that the code you're going to write is performing the function you want it to perform, then you write the code. 19 00:02:07,394 --> 00:02:12,536 And when you design curriculum, you should do exactly the same thing. 20 00:02:12,536 --> 00:02:21,036 So a lot of people make the mistake of starting with the pedagogy phase. As in "that would be a really cool activity to do with students." 21 00:02:21,036 --> 00:02:28,518 So, pause, step back -- first figure out the content, the objectives you want. 22 00:02:28,518 --> 00:02:34,457 Then write the test. How will you assess that students are able to achieve the objectives you want. 23 00:02:34,457 --> 00:02:38,294 Then figure out the pedagogy of what activity you want them to do to get there. 24 00:02:38,294 --> 00:02:43,466 Understanding By Design is a lovely book if you want to learn a bit more about that approach. 25 00:02:43,466 --> 00:02:48,170 And if you're trying to figure out well, well, what's this content thing -- 26 00:02:48,170 --> 00:02:53,784 Bloom's Taxonomy is a handy-dandy list of words that you can use. It goes up in a hierarchy. 27 00:02:53,784 --> 00:02:58,482 Do you want students to memorize and remember things? Which is very easily dismissed, 28 00:02:58,482 --> 00:03:01,746 and sometimes it's not a bad thing because there are only so many times you can say 29 00:03:01,746 --> 00:03:08,425 "the square brackets are lists, the curly ones are dictionaries" over and over again before you just want them to know it. D 30 00:03:08,425 --> 00:03:14,237 o you want them to be able to apply things in a step-by-step tutorial following instructions? 31 00:03:14,237 --> 00:03:20,136 Do you want them to be able to evaluate, like "here's two approaches, which one do you think is better? Why?" 32 00:03:20,136 --> 00:03:29,032 Do you want them to be able to create things? And the thing about the taxonomy is the stuff at the top, we usually think of as "better" -- 33 00:03:29,032 --> 00:03:31,817 it's not necessarily "better." It takes more time. 34 00:03:31,817 --> 00:03:36,426 It's really hard to do the things at the top unless you've done some things at the bottom first. 35 00:03:36,426 --> 00:03:40,491 So, back to the whole cultural gulf between these two... 36 00:03:40,491 --> 00:03:47,198 One of the things that again, as Pythonistas, you already know is the world is socially constructed. 37 00:03:47,198 --> 00:03:50,743 And some people in school have a very hard time understanding this. 38 00:03:50,743 --> 00:03:52,445 But we already know that, because -- 39 00:03:52,445 --> 00:03:58,074 well, why is the Python language the way it is? It's not because some higher power from above ordained it -- 40 00:03:58,074 --> 00:03:59,939 well, uh, it kind of is [laughter] 41 00:03:59,939 --> 00:04:02,251 but they're called maintainers, and they're humans! 42 00:04:02,251 --> 00:04:04,200 And we can see them talking on the mailing lists! 43 00:04:04,200 --> 00:04:05,253 And you can see their commit messages! 44 00:04:05,253 --> 00:04:06,655 And you can see them going back and forth! 45 00:04:06,655 --> 00:04:15,764 And so we have this idea that the world is just as hackable as our technologies are. And that's a very, very powerful viewpoint to have. 46 00:04:15,764 --> 00:04:19,962 So. So here's the thing. 47 00:04:19,962 --> 00:04:25,508 We need to come up with some sort of translation between the two worlds, because what happened when I went back to graduate school 48 00:04:25,508 --> 00:04:33,476 and I started teaching again, and I was talking about "oh my gosh, we're all in these communities of makers and the open source world and the Python community 49 00:04:33,476 --> 00:04:37,814 and we're learning and it's fun and it's wonderful -- can I do this in my classroom, please?" 50 00:04:37,814 --> 00:04:44,693 They went "well, well... what is it you do there?" and I went "uhhh... we... make things and it's fun," 51 00:04:44,693 --> 00:04:46,867 they're like "oh, you're just playing..." 52 00:04:46,867 --> 00:04:52,929 And so I needed to find ways to describe it in words they would understand. [laughter] 53 00:04:52,929 --> 00:04:58,037 And, uh... yeah. 54 00:04:58,037 --> 00:05:01,911 So, so let's go through some of this. 55 00:05:01,911 --> 00:05:07,176 Accidental learning. It's a fancy word for "we didn't plan it ahead of time." [laughter] All right? 56 00:05:07,176 --> 00:05:14,051 So say that you hang out in the IRC channel, people are talking, things are gonna come up, things you didn't expect to learn about that day. 57 00:05:14,051 --> 00:05:17,282 And this is the kind of hap- kind of thing that happens in our world all the time. 58 00:05:17,282 --> 00:05:26,093 You're in a conference, you're milling around, you meet people, so accidental learning or "authentic experiences" is another really useful phrase. 59 00:05:26,093 --> 00:05:30,300 And communities of practice. Python is a community of practice. 60 00:05:30,300 --> 00:05:38,647 Communities of Practice is another really big theoretical construct that a lot of education people use and it is within a domain, a community of people -- 61 00:05:38,647 --> 00:05:45,081 so we're in the domain of programming. We are a community of people who share the practice of programming in Python. 62 00:05:45,081 --> 00:05:51,722 Within the domain of Python web frameworks, the Django community is a community that shares the practice of using the Django framework. 63 00:05:51,722 --> 00:05:55,990 And so if you think of a community of practice, it's actually a learning entity, 64 00:05:55,990 --> 00:06:01,738 and cognitive apprenticeship is how learning happens inside communities of practice. 65 00:06:01,738 --> 00:06:09,906 And if you think about a shop floor, how like a traditional handcraft like wood, woodworking, or delivering babies, or what have you, 66 00:06:09,906 --> 00:06:13,643 as an apprentice you see two different pathways. 67 00:06:13,643 --> 00:06:23,537 One is that you see the pathway from raw product to finish product. But you also see the pathway from new apprentice to master. 68 00:06:23,537 --> 00:06:28,863 And it's not just one pathway, it's I see the more experienced apprentices ahead of me, 69 00:06:28,863 --> 00:06:35,785 I see the journeymen ahead of them, and I don't just see one master, I see 50, I see 20, I see a thousand masters, 70 00:06:35,785 --> 00:06:41,768 so I get the idea that there are many different kinds of mastery and many different kinds of people, it's not a linear route I'm on, 71 00:06:41,768 --> 00:06:47,916 it's not "I'm comparing myself to him or her," but it's "what kind of master will I become? 72 00:06:47,916 --> 00:06:52,049 What does it mean for me to have mastery in this domain?" 73 00:06:52,049 --> 00:07:00,162 And the modeling, coaching, scaffolding, and fading -- because these communities of practice and these sort of apprentice shops are in our head, 74 00:07:00,162 --> 00:07:07,954 when we're programming, it's not like you can see, like, you know, bugfixing in your brain is not quite as visible as let me saw this drawer in this wood. 75 00:07:07,954 --> 00:07:14,937 And so modeling, coaching, scaffolding, and fading are four things that, as people we teach, we can think about. 76 00:07:14,937 --> 00:07:19,113 So modeling is doing the task yourself so the learner can see it, 77 00:07:19,113 --> 00:07:25,287 coaching is standing on the sidelines and giving them realtime feedback as they're attempting that task themselves. 78 00:07:25,287 --> 00:07:31,952 Scaffolding is designing a task so that they take on a little bit and then successively more. 79 00:07:31,952 --> 00:07:40,136 So for instance, the first time someone is running a program and it crashes, you might model "this is how you submit a bug report." 80 00:07:40,136 --> 00:07:42,870 The next time, you might scaffold that a little bit. 81 00:07:42,870 --> 00:07:49,305 You open up bugzilla and then say "you watched me type the subject line before, why don't you come up with a subject line now? 82 00:07:49,305 --> 00:07:52,742 All right, now that you've come up with a subject line, let's type the body together." 83 00:07:52,742 --> 00:07:55,379 And over time you give them more and more responsibility. 84 00:07:55,379 --> 00:08:00,349 And after that you start to fade slowly until they're doing the entire task on their own. 85 00:08:00,349 --> 00:08:09,632 And that link at the bottom if you want to learn more way more about cognitive apprenticeship is a paper I wrote on cognitive apprenticeship case studies in open source communities. 86 00:08:09,632 --> 00:08:15,864 So what happens when you go through a cognitive apprenticeship is you progress from novice to expert. 87 00:08:15,864 --> 00:08:20,904 And the Dreyfus Model of Skill Acquisition is a framework you can use to think about that progression. 88 00:08:20,904 --> 00:08:27,340 And the insight here that the Dreyfus brothers have was not that people progress from novice to expert, which is kind of obvious, but -- 89 00:08:27,340 --> 00:08:37,200 uh, perhaps equally obvious -- is that when you are at any given state, it's very hard to tell and remember what the other stages are like. 90 00:08:37,200 --> 00:08:41,778 So if you are an advanced beginner, you've kinda forgotten what it's like to be a novice, 91 00:08:41,778 --> 00:08:45,448 and you have no idea what it's like to be proficient, or an expert. 92 00:08:45,448 --> 00:08:49,364 And so what that means is that the world looks very different to very different types of people. 93 00:08:49,364 --> 00:08:57,002 So for instance, if you are proficient or an expert or, you know, pretty comfortable with Python, working in communities remotely, 94 00:08:57,002 --> 00:09:01,377 an IRC channel might look like a place where you might get help faster, right? 95 00:09:01,377 --> 00:09:08,784 Find tasks faster -- these are all happy, happy tools for us. Alright? 96 00:09:08,784 --> 00:09:16,793 And we see them as things that can bring, like, the little green people on the outskirts into the little purple people on the inside of our community. 97 00:09:16,793 --> 00:09:18,996 Oh man. It'll be wonderful! 98 00:09:18,996 --> 00:09:24,133 And, um, but the green people on the outskirts don't necessarily see it that way, right? 99 00:09:24,133 --> 00:09:28,364 They might think this. "We will not talk to you until you use this strange new tool. 100 00:09:28,364 --> 00:09:30,807 Stop asking me what to do and go away. 101 00:09:30,807 --> 00:09:35,144 To a corner no one has touched for months." [laughter] 102 00:09:35,144 --> 00:09:41,419 And that's not really the impression we're trying to give them. 103 00:09:41,419 --> 00:09:43,383 But why do they think that? 104 00:09:43,383 --> 00:09:45,454 So: Piaget. 105 00:09:45,454 --> 00:09:52,461 One of the reason why -- this talk alone, if you can not read Piaget and get this, 106 00:09:52,461 --> 00:09:56,966 it's worth it because I had to read the original translations from the French, and ugh. 107 00:09:56,966 --> 00:10:00,970 So, Piaget has two ideas -- well, he has a lot more ideas, 108 00:10:00,970 --> 00:10:04,716 but the two I'm going to talk about here are assimilation and accomodation. 109 00:10:04,716 --> 00:10:09,785 Uh, assimilation is when you can add new information to the mental schemas you already have, 110 00:10:09,785 --> 00:10:15,484 and accommodation is when you have enough data that doesn't really kinda fit that you've got to refactor it, 111 00:10:15,484 --> 00:10:18,201 and we have a really great example over here. 112 00:10:18,201 --> 00:10:19,527 [laughter] 113 00:10:19,527 --> 00:10:20,557 Right? 114 00:10:20,557 --> 00:10:22,264 And so let's think about that, right? 115 00:10:22,264 --> 00:10:30,115 There are some people that, even as Python 3 was out, kept on using Python 2.5, 6, 7... and so you had two parallel streams. 116 00:10:30,115 --> 00:10:38,046 And so you have students -- some of them are going to keep on wanting to think the same way they've been thinking, until it really, really, really, really no longer works, 117 00:10:38,046 --> 00:10:45,787 and others are going to be early adopters, and telling them that is a switch that they're making in paradigms is something you can do 118 00:10:45,787 --> 00:10:49,185 to make it more conscious that that's the process that they're going through. 119 00:10:49,185 --> 00:10:56,325 And -- but, you know, back to that earlier image, right, to see things the wrong way can actually scare people, right? 120 00:10:56,325 --> 00:11:05,468 And the Dreyfus model talks about what, uh, context, what, what are novices missing? Novices are missing context. 121 00:11:05,468 --> 00:11:09,105 If you are just beginning to learn how to cook, you really want a cookbook that says 122 00:11:09,105 --> 00:11:12,608 "this is a chicken. A chicken is a bird. [laughter] 123 00:11:12,608 --> 00:11:16,366 This is what you do with it. Turn on the oven. [laughter]" 124 00:11:16,366 --> 00:11:23,259 And on the other hand if you're an experiened chef, you can go and you compete in Iron chef, and they say "SARDINES!" 125 00:11:23,259 --> 00:11:29,155 and you go "oh, wow!" [laughter] Because you have the context of how to improvise in that world. 126 00:11:29,155 --> 00:11:38,467 And so the resources that work for an expert or someone higher up in the Dreyfus scale -- acquisition scale -- aren't going to work for a novice. 127 00:11:38,467 --> 00:11:43,741 And so that's another thing. Looking at where your students are, what they need, where they feel they are, 128 00:11:43,741 --> 00:11:48,878 and how much context they can handle so you can scaffold them appropriately. 129 00:11:48,878 --> 00:11:57,219 So -- quick bit. Assessment -- because I was thinking about food, and formative versus summative assessment is a good aside to put in here. 130 00:11:57,219 --> 00:12:02,397 Formative assessment is like tasting food as you're cooking it to make sure it's going to turn out okay. 131 00:12:02,397 --> 00:12:06,329 Summative assessment is tasting the food at the end once you've served it and it's done. 132 00:12:06,329 --> 00:12:12,168 Summative assessment is the kind of assessment that usually happens in schools; you get a grade at the end of the semester. 133 00:12:12,168 --> 00:12:15,667 Formative assessment is the kind of assessment that happens in here. 134 00:12:15,667 --> 00:12:20,123 You have conversations on things on your blog, you get people's feedback, you review their code, 135 00:12:20,123 --> 00:12:27,422 and so when you talk to educators and they say "well, how are you going to assess your students?" 136 00:12:27,422 --> 00:12:30,319 and the answer is "well, I don't, I don't wanna grade them," you can say 137 00:12:30,319 --> 00:12:39,562 well, well, they have many opportunities for informal formative assessment with experienced members of the community, and it'll sound good. 138 00:12:39,562 --> 00:12:50,139 So, back to Dreyfus. One of the things that that dispels is the myth that you can't contribute until you're "good enough." Right. 139 00:12:50,139 --> 00:12:55,312 There are still things that novices can do if they are scaffolded appropriately. 140 00:12:55,312 --> 00:13:01,452 And two things that can help you think about that is -- in a cognitive apprenticeship within a community of practice 141 00:13:01,452 --> 00:13:07,556 there's the idea of the zone of proximal development and the idea of legitimate peripheral participation. And they're related. 142 00:13:07,556 --> 00:13:13,462 So, proximal development is -- so here's the things I can already do. 143 00:13:13,462 --> 00:13:21,075 And then are the things on the other end that I can never do no matter how much help I get -- at this point in time. 144 00:13:21,075 --> 00:13:27,076 And in the middle of that, there's the stuff that I can do if and only if someone else helps me. 145 00:13:27,076 --> 00:13:29,412 That is the zone of proximal development. 146 00:13:29,412 --> 00:13:33,980 And so -- bike riding, it's when you're at that stage where you can kinda wobble on the bike if your, 147 00:13:33,980 --> 00:13:37,353 if your brother is hanging on to keep you hanging. 148 00:13:37,353 --> 00:13:40,723 So what's the equivalent in the Python community? 149 00:13:40,723 --> 00:13:43,289 It might look like pair programming, it might look like code review, 150 00:13:43,289 --> 00:13:49,370 it might look like any sort of interaction between experienced people and less experienced people. 151 00:13:49,370 --> 00:13:55,072 And one of the cool things about the zone of proximal development is that you don't need experienced versus less experienced -- 152 00:13:55,072 --> 00:13:58,737 peers can create zones of proximal development for each other. 153 00:13:58,737 --> 00:14:05,203 But it's the enablement that an extra person beside you or with you online creates. 154 00:14:05,203 --> 00:14:14,323 Legitimate peripheral partipation is what -- the means for allowing people to contribute without being the core already. 155 00:14:14,323 --> 00:14:22,171 So there are mission critical tasks, and, you know, these things that nobody really cares about. 156 00:14:22,171 --> 00:14:26,470 And legitimate peripheral participation opportunities come with the jobs that -- 157 00:14:26,470 --> 00:14:31,173 it would be really, really cool if we could do this, but none of the core people have time for. 158 00:14:31,173 --> 00:14:36,378 And so that's a lot of where Google Summer of Code projects sorta fall into that category, 159 00:14:36,378 --> 00:14:39,820 a lot of good projects for students in classes fall into that category, 160 00:14:39,820 --> 00:14:48,289 if you have things that your core community would love to see fixed, so they'll actually help people who are coming in to fix it, 161 00:14:48,289 --> 00:14:52,734 but they're not so vital that if they don't fix it the build gets delayed 162 00:14:52,734 --> 00:14:56,204 because this one student couldn't figure out how to write the code -- 163 00:14:56,204 --> 00:14:58,673 that's a great opportunity. 164 00:14:58,673 --> 00:15:02,912 And -- now, switching gears for a bit, 165 00:15:02,912 --> 00:15:06,309 going back to that first example of test-driven development, 166 00:15:06,309 --> 00:15:11,213 this is also a good example of behaviorist thinking. 167 00:15:11,213 --> 00:15:14,216 The fact that, you know, we've got that little function that says 168 00:15:14,216 --> 00:15:17,120 [robotic voice] we will test these students, they will produce an output, 169 00:15:17,120 --> 00:15:21,996 it will tell us the true and accurate mentality of how much they know -- 170 00:15:21,996 --> 00:15:24,493 [normal voice] That is a fair assumption to make, 171 00:15:24,493 --> 00:15:27,429 but it's an assumption you should know you're making. 172 00:15:27,429 --> 00:15:31,300 And so what I'm going to do, uh, for, for the grand finale of this -- 173 00:15:31,300 --> 00:15:33,633 well, semi-grand finale of this -- 174 00:15:33,633 --> 00:15:38,199 is to go through 50 years of cognitive paradigms in teaching and learning very, very quickly, 175 00:15:38,199 --> 00:15:43,812 and if you want the less-abridged version, um, there are resources there. So. 176 00:15:43,812 --> 00:15:50,653 This is 50 years of educational psychology history on one page. 177 00:15:50,653 --> 00:15:56,488 In the beginning there was behaviorism, which is the carrot-and-stick stimulus-response thinking, all right? 178 00:15:56,488 --> 00:16:02,070 You have a student, they're a black box, you poke at them, there's an output, it will be the correct answer! 179 00:16:02,070 --> 00:16:05,035 We hope. If not, we'll poke at them more and kinda beat them with a stick 180 00:16:05,035 --> 00:16:08,505 and wave a little carrot in front of them, and they'll give the correct answer! 181 00:16:08,505 --> 00:16:13,709 And sometimes we go "ah, behaviorism is bad, it's outmoded and outdated" 182 00:16:13,709 --> 00:16:16,345 -- but it's really useful. 183 00:16:16,345 --> 00:16:20,822 For instance. The Boston Python Workshop uses CodingBat to teach stuff. 184 00:16:20,822 --> 00:16:26,122 Anytime we talk about automating learning, automating experience, we're taking a behaviorist mentality, alright? 185 00:16:26,122 --> 00:16:29,959 So we say, write this code, type it in, press the button, 186 00:16:29,959 --> 00:16:32,259 did you get the right answer, yes/no. 187 00:16:32,259 --> 00:16:35,336 So it's not an evil thing, it's a very, very useful tool, 188 00:16:35,336 --> 00:16:40,677 but it's something to be conscious of. 189 00:16:40,677 --> 00:16:45,908 Then there are people who went "well, the behaviorists think that inside the brain's a black box, 190 00:16:45,908 --> 00:16:49,578 but what goes inside there is actually important." 191 00:16:49,578 --> 00:16:51,705 And so how do we structure material? 192 00:16:51,705 --> 00:16:52,815 How do we store it in our memory? 193 00:16:52,815 --> 00:16:56,318 How do we organize things so they're easier for people to learn? 194 00:16:56,318 --> 00:16:59,828 And a really good example of that is actually you folks. 195 00:16:59,828 --> 00:17:03,793 Why do so many people like programming in Python, as opposed to other languages? 196 00:17:03,793 --> 00:17:06,562 It fits in your brain pretty nicely. 197 00:17:06,562 --> 00:17:09,131 You can read the code, it makes sense, as opposed to -- 198 00:17:09,131 --> 00:17:11,957 I had to program in assembly back in the day and that -- 199 00:17:11,957 --> 00:17:15,471 it didn't fit in my brain quite so well. 200 00:17:15,471 --> 00:17:19,286 And so using Python is already using cognitive schemas 201 00:17:19,286 --> 00:17:24,508 and working with people who value the use of good cognitive schemas. 202 00:17:24,508 --> 00:17:27,513 Then we move into the situative domain, people were like 203 00:17:27,513 --> 00:17:30,986 "alright, stuff is happening in your cranium, you're responding to input... 204 00:17:30,986 --> 00:17:33,453 but really, this stuff happens in a community. 205 00:17:33,453 --> 00:17:34,923 Learning happens in a context. 206 00:17:34,923 --> 00:17:39,423 Knowledge only really makes sense if other people know it too, and validate it." 207 00:17:39,423 --> 00:17:43,272 And that's a lot of what we were talking about with the cognitive apprenticeship earlier. 208 00:17:43,272 --> 00:17:46,742 But another good example of that is Sugar Labs. 209 00:17:46,742 --> 00:17:54,476 So this is a learning environment for kids, written in Python, where they can, um, play, 210 00:17:54,476 --> 00:17:58,914 play with different games for learning, but one of the cool things is -- 211 00:17:58,914 --> 00:18:01,547 we were talking about modeling, coaching, scaffolding, and fading -- 212 00:18:01,547 --> 00:18:05,120 that's also built into the design of the activity. So you can play the game, 213 00:18:05,120 --> 00:18:10,492 and at another level you can click on the little gear thing and make your own abacus, 214 00:18:10,492 --> 00:18:14,563 and on another level you can click on another button and see the Python code and work on it, 215 00:18:14,563 --> 00:18:18,624 and so there's different levels of scaffolding and you can see the work of multiple people 216 00:18:18,624 --> 00:18:21,701 and share your code with others and that's getting out of the 217 00:18:21,701 --> 00:18:25,012 "I'm a person on my computer working alone" and into the 218 00:18:25,012 --> 00:18:28,477 "I'm a person working in a broader community connecting with other people" 219 00:18:28,477 --> 00:18:31,880 socially constructing a world with them. 220 00:18:31,880 --> 00:18:40,022 So, in a parallel thread to that timeline of behaviorist, um, 221 00:18:40,022 --> 00:18:44,326 cognitive thinking, and, um, situated learning, 222 00:18:44,326 --> 00:18:47,624 was the ideas of different theories of motivation. A 223 00:18:47,624 --> 00:18:49,903 nd I'm going to go through a few of them really quickly. 224 00:18:49,903 --> 00:18:55,772 One of them is self-efficacy, which is the idea of how much you believe you can do this. 225 00:18:55,772 --> 00:19:00,709 And that is, in rank order, the things they found affected self-efficacy the most. 226 00:19:00,709 --> 00:19:06,248 If you care about making people believe they can do things, this is the list you want to pay attention to. 227 00:19:06,248 --> 00:19:11,086 So the most impactful thing is doing it, because if you did it before you can probably do it again. 228 00:19:11,086 --> 00:19:15,163 The second one is seeing people do it -- people that look like you. 229 00:19:15,163 --> 00:19:20,423 The converse of that is if you see people that look like you fail at it, then you start thinking "maybe I can't do it either." 230 00:19:20,423 --> 00:19:23,999 And the third one, social persuasion, is other people coming up and saying 231 00:19:23,999 --> 00:19:26,502 "you can do this, you can try this, you should come, you should come to this talk, 232 00:19:26,502 --> 00:19:29,204 you should go to this tutorial, you should give another talk." 233 00:19:29,204 --> 00:19:33,208 And the interesting thing is that those three things override your physical body, 234 00:19:33,208 --> 00:19:37,586 so if you have butterflies in your stomach, and you're really scared about hitting the Enter key, 235 00:19:37,586 --> 00:19:39,649 but the people beside you are going "yeah, you can do this!" 236 00:19:39,649 --> 00:19:42,217 and you're watching people around you succeeding, 237 00:19:42,217 --> 00:19:46,956 then you're really likely to believe you can you can take that leap. 238 00:19:46,956 --> 00:19:49,892 Attribution theory -- another thing. 239 00:19:49,892 --> 00:19:54,997 Do you walk into the room thinking that "my talent in coding is innate," 240 00:19:54,997 --> 00:19:59,205 or do you walk into the room thinking "it's a muscle, if I exercise it, I'll get better, 241 00:19:59,205 --> 00:20:02,271 and if people are really good, they're good because they work really hard."? 242 00:20:02,271 --> 00:20:05,073 And so what attitude do your students come into the room with, 243 00:20:05,073 --> 00:20:09,622 and what attitude as a teacher do you project? 244 00:20:09,622 --> 00:20:11,680 And this is a really good example here, 245 00:20:11,680 --> 00:20:16,418 because I think people who come to things like PyCon are coming because they want to learn things, 246 00:20:16,418 --> 00:20:19,457 because they know that it's not a magical talent we're born with, 247 00:20:19,457 --> 00:20:25,994 we gain those through exposure and working with others that are interested. 248 00:20:25,994 --> 00:20:30,043 Then there's motivation, 249 00:20:30,043 --> 00:20:32,941 and moving from amotivaton, which is "I don't care," to 250 00:20:32,941 --> 00:20:34,837 "other people make me do it," 251 00:20:34,837 --> 00:20:38,074 "I do it because it's good for me and it'll help me get a good job," 252 00:20:38,074 --> 00:20:40,126 into "this is really really cool" -- 253 00:20:40,126 --> 00:20:42,911 which is, for the most part where we want people to end up -- 254 00:20:42,911 --> 00:20:48,224 can be influenced by making, increasing autonomy, relatedness, and competence. 255 00:20:48,224 --> 00:20:51,820 So, autonomy is the freedom you have to decide what you're gonna do. 256 00:20:51,820 --> 00:20:55,891 Relatedness is how close your project is to someting I already care about, 257 00:20:55,891 --> 00:20:59,161 and competence is self-efficacy we talked about earlier. 258 00:20:59,161 --> 00:21:01,235 How good do I think I am at doing it, 259 00:21:01,235 --> 00:21:03,369 not how good I am at it really, 260 00:21:03,369 --> 00:21:05,965 but how good do I think I am. 261 00:21:05,965 --> 00:21:12,975 So if you want to increase the stuff on the left, turn the sliders up for the stuff on the right. 262 00:21:12,975 --> 00:21:22,651 And so now with that, this, this paragraph should now start making a little bit more sense. 263 00:21:22,651 --> 00:21:28,792 So... why do I do this? Why am I talking about these kinds of things? 264 00:21:28,792 --> 00:21:32,961 And the thing is, because we can only see a little bit of the world. 265 00:21:32,961 --> 00:21:36,044 We can only see a little bit of what students do and what they think. 266 00:21:36,044 --> 00:21:40,869 And as teachers we have a lot of privilege. 267 00:21:40,869 --> 00:21:44,339 And we don't necessarily see what our students are assuming about themselves, 268 00:21:44,339 --> 00:21:46,675 or about why things may not be working for them yet. 269 00:21:46,675 --> 00:21:49,411 We tend to teach the way we learn. A 270 00:21:49,411 --> 00:21:53,815 nd so sometimes we think "oh, well, the way I teach is the way it should be taught," 271 00:21:53,815 --> 00:21:59,688 or maybe "the way I teach is better than the way they teach in school, but clearly it's the way it should be taught." 272 00:21:59,688 --> 00:22:02,164 And that's just not necessarily true. 273 00:22:02,164 --> 00:22:06,094 For your students, the first couple steps do not feel like progress. 274 00:22:06,094 --> 00:22:09,232 You're guarding their thoughts, you're scared, and you might be quiet, 275 00:22:09,232 --> 00:22:12,801 but underneath the silence, stuff is happening inside. 276 00:22:12,801 --> 00:22:16,104 Reason is stirring in the background. 277 00:22:16,104 --> 00:22:22,649 And it's very important that confirmation that you belong to a community starts when you begin to try 278 00:22:22,649 --> 00:22:24,710 rather than being an end goal you try to get. 279 00:22:24,710 --> 00:22:28,317 Once you take the first step, you already belong. 280 00:22:28,317 --> 00:22:34,661 And that's all I had. Time for questions? 281 00:22:34,661 --> 00:22:43,498 [applause] 282 00:22:43,498 --> 00:22:48,670 NAOMI: Ok. If you have questions, we've got a microphone there and we've got a microphone here. 283 00:22:48,670 --> 00:22:51,807 AUDIENCE MEMBER: Yeah, um, can you go back a few slides? I missed the quote. 284 00:22:51,807 --> 00:23:00,582 MEL: Um, this one? Ok. 285 00:23:00,582 --> 00:23:05,426 AUDIENCE MEMBER: Um, yeah. First, I want to thank you, that was -- oh, go ahead. 286 00:23:05,426 --> 00:23:07,056 MEL: No, go ahead. 287 00:23:07,056 --> 00:23:08,827 AUDIENCE MEMBER: So I want to thank you, that was really interesting 288 00:23:08,827 --> 00:23:11,761 and not at all what I thought I would be learning when I came to PyCon 289 00:23:11,761 --> 00:23:13,825 so it was an accidental learning opportunity. 290 00:23:13,825 --> 00:23:16,098 [laughter] 291 00:23:16,098 --> 00:23:23,961 And then, um, could you recommend a book that we could... 292 00:23:23,961 --> 00:23:25,045 MEL: Come again? 293 00:23:25,045 --> 00:23:27,619 AUDIENCE MEMBER: Could you recommend a book, that, on this topic? 294 00:23:27,619 --> 00:23:32,086 Like, some kind of [indistinguishable] book? 295 00:23:32,086 --> 00:23:35,183 MEL: On which topic? 296 00:23:35,183 --> 00:23:41,396 AUDIENCE MEMBER: On educational psychology, it's an interesting field which I know nothing about except, um, this [laughter] 297 00:23:41,396 --> 00:23:45,093 and it sounds quite big but I don't want to go to graduate school either. 298 00:23:45,093 --> 00:23:47,229 [laughter] 299 00:23:47,229 --> 00:23:51,500 MEL: Ah. So, uh, if I could only recommend one book, I would... 300 00:23:51,500 --> 00:23:54,636 um, I believe it's called "Theories of Development" by Crain, 301 00:23:54,636 --> 00:23:57,139 C-R-A-I-N, 302 00:23:57,139 --> 00:23:59,627 and I can write that down for you afterwards if you'd like. 303 00:23:59,627 --> 00:24:04,053 And what that is, is a snapshot of individual researchers that have developed -- 304 00:24:04,053 --> 00:24:07,520 so Bandura's in there, Dweck is in there, a couple of the things we went through are in there, 305 00:24:07,520 --> 00:24:12,927 and it gives 5-page summaries of all the very complicated papers. 306 00:24:12,927 --> 00:24:17,708 And it's lovely. 307 00:24:17,708 --> 00:24:23,932 NAOMI: Ok, another question. 308 00:24:23,932 --> 00:24:25,267 AUDIENCE MEMBER: Thanks. 309 00:24:25,267 --> 00:24:26,435 Thanks again for doing this talk. 310 00:24:26,435 --> 00:24:31,914 I was just curious what are some of the next steps for you, what do you think, 311 00:24:31,914 --> 00:24:43,018 do you think you can make engineering, this kind of teaching methodology based on our open source movement is really interesting. 312 00:24:43,018 --> 00:24:46,488 MEL: Well, I'm interested in 2.5 things. 313 00:24:46,488 --> 00:24:48,462 [laughter] 314 00:24:48,462 --> 00:24:50,292 Well, one, one is -- 315 00:24:50,292 --> 00:24:56,871 so the reason I'm giving this talk is I'm assuming y'all are all people who do Python things and care about teaching, 316 00:24:56,871 --> 00:24:59,953 and I wanted to try and give you some language to explain what you're doing, 317 00:24:59,953 --> 00:25:03,605 to validate it in the world of professional schooling. 318 00:25:03,605 --> 00:25:07,175 And to go and be able to say "this is a great thing to have your class do, 319 00:25:07,175 --> 00:25:09,945 this is a great thing to have, you know, as part of the curriculum." 320 00:25:09,945 --> 00:25:15,051 It's not something should be relegated to just after-school clubs that are just playing around, 321 00:25:15,051 --> 00:25:19,387 because putting it into more mainstream schooling will give more people access to it 322 00:25:19,387 --> 00:25:25,371 instead of just the people that have the resources in both time and equipment to play around with it on the side. 323 00:25:25,371 --> 00:25:27,122 And so that's one of the things -- 324 00:25:27,122 --> 00:25:34,569 and so if you are interested in, um, trying to help explain the project that you're doing to educational institutions 325 00:25:34,569 --> 00:25:36,506 I'd be really happy to help with that. 326 00:25:36,506 --> 00:25:38,979 Another thing I'm interested in is going in the opposite direction, 327 00:25:38,979 --> 00:25:43,124 working with teachers who are interested in working with folks like you. 328 00:25:43,124 --> 00:25:44,378 And doing things in their classroom. 329 00:25:44,378 --> 00:25:47,649 So Jeff and Steve up in the front row are brilliant examples. 330 00:25:47,649 --> 00:25:49,490 I wish I could clone them. 331 00:25:49,490 --> 00:25:54,870 Jeff is K-12 and Steve does college, and how do they move in the opposite direction 332 00:25:54,870 --> 00:25:58,461 and get to know what it's like to work in these sorts of projects and communities. 333 00:25:58,461 --> 00:26:07,736 And the point-five is that a number of people have been trying to bug me to write this up in longer form as a bidirectional translation for both sides 334 00:26:07,736 --> 00:26:11,473 and I'm not sure if more than three people are actually interested in that 335 00:26:11,473 --> 00:26:17,813 but that might be something to do once I finish up my classes next semester. 336 00:26:17,813 --> 00:26:21,551 AUDIENCE MEMBER: Thank you. 337 00:26:21,551 --> 00:26:27,856 AUDIENCE MEMBER: So if there was one thing that you could get the average computer science teacher 338 00:26:27,856 --> 00:26:34,044 to change or stop doing or start doing, what would it be? 339 00:26:34,044 --> 00:26:47,742 MEL: It would be... mm, looking up... 340 00:26:47,742 --> 00:26:50,543 It would be working on the content. 341 00:26:50,543 --> 00:26:55,375 A lot of teachers, their learning objectives are filled with "we have to hit standard XYZ, 342 00:26:55,375 --> 00:26:56,887 and there's 20 learning objectives 343 00:26:56,887 --> 00:27:01,128 and we have to get through all the chapters of the textbook" and... 344 00:27:01,128 --> 00:27:03,859 where is it, there we go, 345 00:27:03,859 --> 00:27:07,429 and so it's a very linear thing because you need to have a predefined outcome, 346 00:27:07,429 --> 00:27:12,095 but loosening that up and changing things so that your goal is 347 00:27:12,095 --> 00:27:16,638 "let me have students become confident wandering in an unknown world" -- 348 00:27:16,638 --> 00:27:19,174 being comfortable being, um, 349 00:27:19,174 --> 00:27:22,811 "productively lost" is a phrase I like to use a lot. 350 00:27:22,811 --> 00:27:24,580 Having them be comfortable being productively lost. 351 00:27:24,580 --> 00:27:29,251 So even if they don't get specific bits of content or specific bits of material, 352 00:27:29,251 --> 00:27:32,212 that they're comfortable moving around and improvising, 353 00:27:32,212 --> 00:27:36,255 and that's the learning objective -- that's the one thing I'd like to see changed 354 00:27:36,255 --> 00:27:38,561 but it's a huge, huge, huge change 355 00:27:38,561 --> 00:27:48,070 and it's a very risky change for a lot of people, so it's a hard one. 356 00:27:48,070 --> 00:27:51,209 NAOMI: Ok. Any more questions? 357 00:27:51,209 --> 00:27:52,140 MEL: I think that's time. 358 00:27:52,140 --> 00:27:56,000 NAOMI: Thank you very much.