WEBVTT 00:00:06.374 --> 00:00:11.812 NAOMI: Welcome. This will be EduPsych Theory for Python Hackers. 00:00:11.812 --> 00:00:14.123 This is a half-hour talk by Mel Chua, 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. 00:00:19.278 --> 00:00:27.097 Ok. Mel Chua! 00:00:27.097 --> 00:00:30.171 MEL: Hi. Hi, everyone. 00:00:30.171 --> 00:00:33.009 So, welcome to EduPsych Theory for Python Hackers. 00:00:33.009 --> 00:00:36.697 This is a very laptops-encouraged talk. The slides are on the web 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, 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. 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!" 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, 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, 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. 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. 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. 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, 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, 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. 00:02:07.394 --> 00:02:12.536 And when you design curriculum, you should do exactly the same thing. 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." 00:02:21.036 --> 00:02:28.518 So, pause, step back -- first figure out the content, the objectives you want. 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. 00:02:34.457 --> 00:02:38.294 Then figure out the pedagogy of what activity you want them to do to get there. 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. 00:02:43.466 --> 00:02:48.170 And if you're trying to figure out well, well, what's this content thing -- 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. 00:02:53.784 --> 00:02:58.482 Do you want students to memorize and remember things? Which is very easily dismissed, 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 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 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? 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?" 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" -- 00:03:29.032 --> 00:03:31.817 it's not necessarily "better." It takes more time. 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. 00:03:36.426 --> 00:03:40.491 So, back to the whole cultural gulf between these two... 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. 00:03:47.198 --> 00:03:50.743 And some people in school have a very hard time understanding this. 00:03:50.743 --> 00:03:52.445 But we already know that, because -- 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 -- 00:03:58.074 --> 00:03:59.939 well, uh, it kind of is [laughter] 00:03:59.939 --> 00:04:02.251 but they're called maintainers, and they're humans! 00:04:02.251 --> 00:04:04.200 And we can see them talking on the mailing lists! 00:04:04.200 --> 00:04:05.253 And you can see their commit messages! 00:04:05.253 --> 00:04:06.655 And you can see them going back and forth! 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. 00:04:15.764 --> 00:04:19.962 So. So here's the thing. 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 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 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?" 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," 00:04:44.693 --> 00:04:46.867 they're like "oh, you're just playing..." 00:04:46.867 --> 00:04:52.929 And so I needed to find ways to describe it in words they would understand. [laughter] 00:04:52.929 --> 00:04:58.037 And, uh... yeah. 00:04:58.037 --> 00:05:01.911 So, so let's go through some of this. 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? 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. 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. 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. 00:05:26.093 --> 00:05:30.300 And communities of practice. Python is a community of practice. 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 -- 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. 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. 00:05:51.722 --> 00:05:55.990 And so if you think of a community of practice, it's actually a learning entity, 00:05:55.990 --> 00:06:01.738 and cognitive apprenticeship is how learning happens inside communities of practice. 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, 00:06:09.906 --> 00:06:13.643 as an apprentice you see two different pathways. 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. 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, 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, 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, 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? 00:06:47.916 --> 00:06:52.049 What does it mean for me to have mastery in this domain?" 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, 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. 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. 00:07:14.937 --> 00:07:19.113 So modeling is doing the task yourself so the learner can see it, 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. 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. 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." 00:07:40.136 --> 00:07:42.870 The next time, you might scaffold that a little bit. 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? 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." 00:07:52.742 --> 00:07:55.379 And over time you give them more and more responsibility. 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. 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. 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. 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. 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 -- 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. 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, 00:08:41.778 --> 00:08:45.448 and you have no idea what it's like to be proficient, or an expert. 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. 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, 00:08:57.002 --> 00:09:01.377 an IRC channel might look like a place where you might get help faster, right? 00:09:01.377 --> 00:09:08.784 Find tasks faster -- these are all happy, happy tools for us. Alright? 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. 00:09:16.793 --> 00:09:18.996 Oh man. It'll be wonderful! 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? 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. 00:09:28.364 --> 00:09:30.807 Stop asking me what to do and go away. 00:09:30.807 --> 00:09:35.144 To a corner no one has touched for months." [laughter] 00:09:35.144 --> 00:09:41.419 And that's not really the impression we're trying to give them. 00:09:41.419 --> 00:09:43.383 But why do they think that? 00:09:43.383 --> 00:09:45.454 So: Piaget. 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, 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. 00:09:56.966 --> 00:10:00.970 So, Piaget has two ideas -- well, he has a lot more ideas, 00:10:00.970 --> 00:10:04.716 but the two I'm going to talk about here are assimilation and accomodation. 00:10:04.716 --> 00:10:09.785 Uh, assimilation is when you can add new information to the mental schemas you already have, 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, 00:10:15.484 --> 00:10:18.201 and we have a really great example over here. 00:10:18.201 --> 00:10:19.527 [laughter] 00:10:19.527 --> 00:10:20.557 Right? 00:10:20.557 --> 00:10:22.264 And so let's think about that, right? 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. 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, 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 00:10:45.787 --> 00:10:49.185 to make it more conscious that that's the process that they're going through. 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? 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. 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 00:11:09.105 --> 00:11:12.608 "this is a chicken. A chicken is a bird. [laughter] 00:11:12.608 --> 00:11:16.366 This is what you do with it. Turn on the oven. [laughter]" 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!" 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. 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. 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, 00:11:43.741 --> 00:11:48.878 and how much context they can handle so you can scaffold them appropriately. 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. 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. 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. 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. 00:12:12.168 --> 00:12:15.667 Formative assessment is the kind of assessment that happens in here. 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, 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?" 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 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. 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. 00:12:50.139 --> 00:12:55.312 There are still things that novices can do if they are scaffolded appropriately. 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 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. 00:13:07.556 --> 00:13:13.462 So, proximal development is -- so here's the things I can already do. 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. 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. 00:13:27.076 --> 00:13:29.412 That is the zone of proximal development. 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, 00:13:33.980 --> 00:13:37.353 if your brother is hanging on to keep you hanging. 00:13:37.353 --> 00:13:40.723 So what's the equivalent in the Python community? 00:13:40.723 --> 00:13:43.289 It might look like pair programming, it might look like code review, 00:13:43.289 --> 00:13:49.370 it might look like any sort of interaction between experienced people and less experienced people. 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 -- 00:13:55.072 --> 00:13:58.737 peers can create zones of proximal development for each other. 00:13:58.737 --> 00:14:05.203 But it's the enablement that an extra person beside you or with you online creates. 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. 00:14:14.323 --> 00:14:22.171 So there are mission critical tasks, and, you know, these things that nobody really cares about. 00:14:22.171 --> 00:14:26.470 And legitimate peripheral participation opportunities come with the jobs that -- 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. 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, 00:14:36.378 --> 00:14:39.820 a lot of good projects for students in classes fall into that category, 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, 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 00:14:52.734 --> 00:14:56.204 because this one student couldn't figure out how to write the code -- 00:14:56.204 --> 00:14:58.673 that's a great opportunity. 00:14:58.673 --> 00:15:02.912 And -- now, switching gears for a bit, 00:15:02.912 --> 00:15:06.309 going back to that first example of test-driven development, 00:15:06.309 --> 00:15:11.213 this is also a good example of behaviorist thinking. 00:15:11.213 --> 00:15:14.216 The fact that, you know, we've got that little function that says 00:15:14.216 --> 00:15:17.120 [robotic voice] we will test these students, they will produce an output, 00:15:17.120 --> 00:15:21.996 it will tell us the true and accurate mentality of how much they know -- 00:15:21.996 --> 00:15:24.493 [normal voice] That is a fair assumption to make, 00:15:24.493 --> 00:15:27.429 but it's an assumption you should know you're making. 00:15:27.429 --> 00:15:31.300 And so what I'm going to do, uh, for, for the grand finale of this -- 00:15:31.300 --> 00:15:33.633 well, semi-grand finale of this -- 00:15:33.633 --> 00:15:38.199 is to go through 50 years of cognitive paradigms in teaching and learning very, very quickly, 00:15:38.199 --> 00:15:43.812 and if you want the less-abridged version, um, there are resources there. So. 00:15:43.812 --> 00:15:50.653 This is 50 years of educational psychology history on one page. 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? 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! 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 00:16:05.035 --> 00:16:08.505 and wave a little carrot in front of them, and they'll give the correct answer! 00:16:08.505 --> 00:16:13.709 And sometimes we go "ah, behaviorism is bad, it's outmoded and outdated" 00:16:13.709 --> 00:16:16.345 -- but it's really useful. 00:16:16.345 --> 00:16:20.822 For instance. The Boston Python Workshop uses CodingBat to teach stuff. 00:16:20.822 --> 00:16:26.122 Anytime we talk about automating learning, automating experience, we're taking a behaviorist mentality, alright? 00:16:26.122 --> 00:16:29.959 So we say, write this code, type it in, press the button, 00:16:29.959 --> 00:16:32.259 did you get the right answer, yes/no. 00:16:32.259 --> 00:16:35.336 So it's not an evil thing, it's a very, very useful tool, 00:16:35.336 --> 00:16:40.677 but it's something to be conscious of. 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, 00:16:45.908 --> 00:16:49.578 but what goes inside there is actually important." 00:16:49.578 --> 00:16:51.705 And so how do we structure material? 00:16:51.705 --> 00:16:52.815 How do we store it in our memory? 00:16:52.815 --> 00:16:56.318 How do we organize things so they're easier for people to learn? 00:16:56.318 --> 00:16:59.828 And a really good example of that is actually you folks. 00:16:59.828 --> 00:17:03.793 Why do so many people like programming in Python, as opposed to other languages? 00:17:03.793 --> 00:17:06.562 It fits in your brain pretty nicely. 00:17:06.562 --> 00:17:09.131 You can read the code, it makes sense, as opposed to -- 00:17:09.131 --> 00:17:11.957 I had to program in assembly back in the day and that -- 00:17:11.957 --> 00:17:15.471 it didn't fit in my brain quite so well. 00:17:15.471 --> 00:17:19.286 And so using Python is already using cognitive schemas 00:17:19.286 --> 00:17:24.508 and working with people who value the use of good cognitive schemas. 00:17:24.508 --> 00:17:27.513 Then we move into the situative domain, people were like 00:17:27.513 --> 00:17:30.986 "alright, stuff is happening in your cranium, you're responding to input... 00:17:30.986 --> 00:17:33.453 but really, this stuff happens in a community. 00:17:33.453 --> 00:17:34.923 Learning happens in a context. 00:17:34.923 --> 00:17:39.423 Knowledge only really makes sense if other people know it too, and validate it." 00:17:39.423 --> 00:17:43.272 And that's a lot of what we were talking about with the cognitive apprenticeship earlier. 00:17:43.272 --> 00:17:46.742 But another good example of that is Sugar Labs. 00:17:46.742 --> 00:17:54.476 So this is a learning environment for kids, written in Python, where they can, um, play, 00:17:54.476 --> 00:17:58.914 play with different games for learning, but one of the cool things is -- 00:17:58.914 --> 00:18:01.547 we were talking about modeling, coaching, scaffolding, and fading -- 00:18:01.547 --> 00:18:05.120 that's also built into the design of the activity. So you can play the game, 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, 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, 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 00:18:18.624 --> 00:18:21.701 and share your code with others and that's getting out of the 00:18:21.701 --> 00:18:25.012 "I'm a person on my computer working alone" and into the 00:18:25.012 --> 00:18:28.477 "I'm a person working in a broader community connecting with other people" 00:18:28.477 --> 00:18:31.880 socially constructing a world with them. 00:18:31.880 --> 00:18:40.022 So, in a parallel thread to that timeline of behaviorist, um, 00:18:40.022 --> 00:18:44.326 cognitive thinking, and, um, situated learning, 00:18:44.326 --> 00:18:47.624 was the ideas of different theories of motivation. A 00:18:47.624 --> 00:18:49.903 nd I'm going to go through a few of them really quickly. 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. 00:18:55.772 --> 00:19:00.709 And that is, in rank order, the things they found affected self-efficacy the most. 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. 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. 00:19:11.086 --> 00:19:15.163 The second one is seeing people do it -- people that look like you. 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." 00:19:20.423 --> 00:19:23.999 And the third one, social persuasion, is other people coming up and saying 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, 00:19:26.502 --> 00:19:29.204 you should go to this tutorial, you should give another talk." 00:19:29.204 --> 00:19:33.208 And the interesting thing is that those three things override your physical body, 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, 00:19:37.586 --> 00:19:39.649 but the people beside you are going "yeah, you can do this!" 00:19:39.649 --> 00:19:42.217 and you're watching people around you succeeding, 00:19:42.217 --> 00:19:46.956 then you're really likely to believe you can you can take that leap. 00:19:46.956 --> 00:19:49.892 Attribution theory -- another thing. 00:19:49.892 --> 00:19:54.997 Do you walk into the room thinking that "my talent in coding is innate," 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, 00:19:59.205 --> 00:20:02.271 and if people are really good, they're good because they work really hard."? 00:20:02.271 --> 00:20:05.073 And so what attitude do your students come into the room with, 00:20:05.073 --> 00:20:09.622 and what attitude as a teacher do you project? 00:20:09.622 --> 00:20:11.680 And this is a really good example here, 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, 00:20:16.418 --> 00:20:19.457 because they know that it's not a magical talent we're born with, 00:20:19.457 --> 00:20:25.994 we gain those through exposure and working with others that are interested. 00:20:25.994 --> 00:20:30.043 Then there's motivation, 00:20:30.043 --> 00:20:32.941 and moving from amotivaton, which is "I don't care," to 00:20:32.941 --> 00:20:34.837 "other people make me do it," 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," 00:20:38.074 --> 00:20:40.126 into "this is really really cool" -- 00:20:40.126 --> 00:20:42.911 which is, for the most part where we want people to end up -- 00:20:42.911 --> 00:20:48.224 can be influenced by making, increasing autonomy, relatedness, and competence. 00:20:48.224 --> 00:20:51.820 So, autonomy is the freedom you have to decide what you're gonna do. 00:20:51.820 --> 00:20:55.891 Relatedness is how close your project is to someting I already care about, 00:20:55.891 --> 00:20:59.161 and competence is self-efficacy we talked about earlier. 00:20:59.161 --> 00:21:01.235 How good do I think I am at doing it, 00:21:01.235 --> 00:21:03.369 not how good I am at it really, 00:21:03.369 --> 00:21:05.965 but how good do I think I am. 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. 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. 00:21:22.651 --> 00:21:28.792 So... why do I do this? Why am I talking about these kinds of things? 00:21:28.792 --> 00:21:32.961 And the thing is, because we can only see a little bit of the world. 00:21:32.961 --> 00:21:36.044 We can only see a little bit of what students do and what they think. 00:21:36.044 --> 00:21:40.869 And as teachers we have a lot of privilege. 00:21:40.869 --> 00:21:44.339 And we don't necessarily see what our students are assuming about themselves, 00:21:44.339 --> 00:21:46.675 or about why things may not be working for them yet. 00:21:46.675 --> 00:21:49.411 We tend to teach the way we learn. A 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," 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." 00:21:59.688 --> 00:22:02.164 And that's just not necessarily true. 00:22:02.164 --> 00:22:06.094 For your students, the first couple steps do not feel like progress. 00:22:06.094 --> 00:22:09.232 You're guarding their thoughts, you're scared, and you might be quiet, 00:22:09.232 --> 00:22:12.801 but underneath the silence, stuff is happening inside. 00:22:12.801 --> 00:22:16.104 Reason is stirring in the background. 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 00:22:22.649 --> 00:22:24.710 rather than being an end goal you try to get. 00:22:24.710 --> 00:22:28.317 Once you take the first step, you already belong. 00:22:28.317 --> 00:22:34.661 And that's all I had. Time for questions? 00:22:34.661 --> 00:22:43.498 [applause] 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. 00:22:48.670 --> 00:22:51.807 AUDIENCE MEMBER: Yeah, um, can you go back a few slides? I missed the quote. 00:22:51.807 --> 00:23:00.582 MEL: Um, this one? Ok. 00:23:00.582 --> 00:23:05.426 AUDIENCE MEMBER: Um, yeah. First, I want to thank you, that was -- oh, go ahead. 00:23:05.426 --> 00:23:07.056 MEL: No, go ahead. 00:23:07.056 --> 00:23:08.827 AUDIENCE MEMBER: So I want to thank you, that was really interesting 00:23:08.827 --> 00:23:11.761 and not at all what I thought I would be learning when I came to PyCon 00:23:11.761 --> 00:23:13.825 so it was an accidental learning opportunity. 00:23:13.825 --> 00:23:16.098 [laughter] 00:23:16.098 --> 00:23:23.961 And then, um, could you recommend a book that we could... 00:23:23.961 --> 00:23:25.045 MEL: Come again? 00:23:25.045 --> 00:23:27.619 AUDIENCE MEMBER: Could you recommend a book, that, on this topic? 00:23:27.619 --> 00:23:32.086 Like, some kind of [indistinguishable] book? 00:23:32.086 --> 00:23:35.183 MEL: On which topic? 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] 00:23:41.396 --> 00:23:45.093 and it sounds quite big but I don't want to go to graduate school either. 00:23:45.093 --> 00:23:47.229 [laughter] 00:23:47.229 --> 00:23:51.500 MEL: Ah. So, uh, if I could only recommend one book, I would... 00:23:51.500 --> 00:23:54.636 um, I believe it's called "Theories of Development" by Crain, 00:23:54.636 --> 00:23:57.139 C-R-A-I-N, 00:23:57.139 --> 00:23:59.627 and I can write that down for you afterwards if you'd like. 00:23:59.627 --> 00:24:04.053 And what that is, is a snapshot of individual researchers that have developed -- 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, 00:24:07.520 --> 00:24:12.927 and it gives 5-page summaries of all the very complicated papers. 00:24:12.927 --> 00:24:17.708 And it's lovely. 00:24:17.708 --> 00:24:23.932 NAOMI: Ok, another question. 00:24:23.932 --> 00:24:25.267 AUDIENCE MEMBER: Thanks. 00:24:25.267 --> 00:24:26.435 Thanks again for doing this talk. 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, 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. 00:24:43.018 --> 00:24:46.488 MEL: Well, I'm interested in 2.5 things. 00:24:46.488 --> 00:24:48.462 [laughter] 00:24:48.462 --> 00:24:50.292 Well, one, one is -- 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, 00:24:56.871 --> 00:24:59.953 and I wanted to try and give you some language to explain what you're doing, 00:24:59.953 --> 00:25:03.605 to validate it in the world of professional schooling. 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, 00:25:07.175 --> 00:25:09.945 this is a great thing to have, you know, as part of the curriculum." 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, 00:25:15.051 --> 00:25:19.387 because putting it into more mainstream schooling will give more people access to it 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. 00:25:25.371 --> 00:25:27.122 And so that's one of the things -- 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 00:25:34.569 --> 00:25:36.506 I'd be really happy to help with that. 00:25:36.506 --> 00:25:38.979 Another thing I'm interested in is going in the opposite direction, 00:25:38.979 --> 00:25:43.124 working with teachers who are interested in working with folks like you. 00:25:43.124 --> 00:25:44.378 And doing things in their classroom. 00:25:44.378 --> 00:25:47.649 So Jeff and Steve up in the front row are brilliant examples. 00:25:47.649 --> 00:25:49.490 I wish I could clone them. 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 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. 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 00:26:07.736 --> 00:26:11.473 and I'm not sure if more than three people are actually interested in that 00:26:11.473 --> 00:26:17.813 but that might be something to do once I finish up my classes next semester. 00:26:17.813 --> 00:26:21.551 AUDIENCE MEMBER: Thank you. 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 00:26:27.856 --> 00:26:34.044 to change or stop doing or start doing, what would it be? 00:26:34.044 --> 00:26:47.742 MEL: It would be... mm, looking up... 00:26:47.742 --> 00:26:50.543 It would be working on the content. 00:26:50.543 --> 00:26:55.375 A lot of teachers, their learning objectives are filled with "we have to hit standard XYZ, 00:26:55.375 --> 00:26:56.887 and there's 20 learning objectives 00:26:56.887 --> 00:27:01.128 and we have to get through all the chapters of the textbook" and... 00:27:01.128 --> 00:27:03.859 where is it, there we go, 00:27:03.859 --> 00:27:07.429 and so it's a very linear thing because you need to have a predefined outcome, 00:27:07.429 --> 00:27:12.095 but loosening that up and changing things so that your goal is 00:27:12.095 --> 00:27:16.638 "let me have students become confident wandering in an unknown world" -- 00:27:16.638 --> 00:27:19.174 being comfortable being, um, 00:27:19.174 --> 00:27:22.811 "productively lost" is a phrase I like to use a lot. 00:27:22.811 --> 00:27:24.580 Having them be comfortable being productively lost. 00:27:24.580 --> 00:27:29.251 So even if they don't get specific bits of content or specific bits of material, 00:27:29.251 --> 00:27:32.212 that they're comfortable moving around and improvising, 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 00:27:36.255 --> 00:27:38.561 but it's a huge, huge, huge change 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. 00:27:48.070 --> 00:27:51.209 NAOMI: Ok. Any more questions? 00:27:51.209 --> 00:27:52.140 MEL: I think that's time. 00:27:52.140 --> 00:27:56.000 NAOMI: Thank you very much.