Monitor performance issues & errors in your code

#27: Four Years of Python for High Schoolers Transcript

Recorded on Monday, Sep 14, 2015.

00:00 Often people complain about the lack of developer skills in western countries like the United States and that problem is amplified when you consider typically under represented groups such as women and minorities. This week you'll meet Laura Blankenship who is doing more than her share to widen the appeal of programming to women in general and to Python in particular. This is episode number 27 of Talk Python To Me, recorded Monday, September 14th 2015.

00:00 [music]

00:00 Welcome to Talk Python to Me. A weekly podcast on Python- the language, the libraries, the ecosystem, and the personalities.

00:00 This is your host, Michael Kennedy. Follow me on twitter where I'm @mkennedy

00:00 Keep up with the show and listen to past episodes at talkpython.fm and follow the show on twitter via @talkpython.

00:00 This episode is brought to you by Hired and Codeship. Thank them for supporting the show on twitter via @hired_hq and @codeship.

00:00 Congrats to Justin Alexander who won the copy of the book Full Stack Python's Guide to Deployment last week. Do you want to be in the running for free stuff? Just visit talkpython.fm and become a "friend of the show" like Justin did.

00:00 Now let's get right to the show...

00:00 Let me introduce Laura. Laura is the Chair of Computer Science and Interim Dean of Academic Affairs at The Baldwin School, an all-girls K-12 school in Philadelphia, PA.

01:47 Laura, welcome to the show.

01:49 Thank you.

01:50 Yeah, I'm really excited to talk about teaching kids and especially girls, programming today.

01:54 Great, me too.

01:55 Yeah, I bet, that's definitely your passion, isn't it?

01:58 Yes.

02:00 So, we are going to talk about what you are doing at the Baldwin School, but before we get into specifically work there, let's just take a step back and start with when you started with programming in Python and all that?

02:12 Ok, well it's a rather long, circuitous path that I took to get here. I actually don't have a degree in computer science, it didn't exist at my college when I graduated. So I did take computer science in seventh grade myself, and then again in college, in Basic of all things, so yey!

02:34 Wow, that's pretty impressive, usually it's either Java or C++. My first course was in Scheme.

02:41 Oh yeah, mhm. Yeah, I haven't done a lot with Scheme, but I've seen it. My husband keeps trying to talk me into it, but I haven't gone there yet. So, after college, I graduated with the degree in creative writing of all things, and went to grad school for that, and then ended up basically paying for grad school by working either on the technology side in departments or specifically in IT departments. It pays better than poetry. So, I just figured a lot of stuff out on my own, I mean at the time this was the really 1990's, nobody knew what computers could do or what they were capable of.

03:26 So I knew only how they worked, so I would just take a manual and figure it out and, so I mean, most of the people that worked in those departments at the time were still using like IBM selector typewriters so I had a little bit of advantage over them. And basically I them kind of got into basically web development and design, and worked across the street from a Baldwin School, at Bryn Mawr College, in their IT department developing educational technology tools.

03:59 You know, you started before the World Wide Web, when people learned through books. Definitely an interesting time to get into programming.

04:08 Yes.

04:09 Cool, so that's how you got into programming; what about Python, what got you interested in that?

04:13 Well, so, in our web development shop we are mostly PHP, a little bit of Javascript. And I taught a summer program using mostly PHP and Javascript and occasionally Flash actionscript, I just pretty were wherever the students wanted to go. And then when I came over to Baldwin, just the thought of teaching them PHP sort of scared me, Javascript similarly. So I started looking for a language that would be a little bit easier for high school students- actually, at the time middle school students, to tackle. So I just Bryn Mawr’s computer science department actually used PyPy and a little bit of Java but they were shifting at the time to Python. So I just decided to go through- I went through a couple of Python books and it was easy for me and I thought it would be easy for the kids too...

05:11 Yeah, that's cool. And I think your intuition there is good, because that is what the Universities are switching to as well, right?

05:18 Yeah, pretty much.

05:20 Ok, so that brings us to the Baldwin School. And the Baldwin School looks really interesting and let me actually read what you guys have for your little Twitter subtitle introduction or whatever that part on Twitter is called. It says "Baldwin is independent school for thinking girls who know the power of their own mind and use them to better the community and the world". That's a pretty awesome mission statement.

05:42 It is. Pretty awesome, yeah.

05:44 Cool, so tell us about it.

05:46 So, we are pre k through 12 school, all girls and have been since our founding in 1888, and the girls here are pretty amazing and really do start at young age wanting to change the world which is kind of cool, that you have a seven year old running around thinking that they can do something that will make a big impact. And of course, as they get older, they can realize some of those goals and dreams and some of them do start their own companies, and got many of them do a ton of community service, I think that's probably the biggest impact that they have as a lot of them work with, a variety of organizations, to do whatever that those organizations need and often provide expertise that maybe those organizations do not have.

06:44 It's really neat that you are teaching computer science, at a deep level to these girls, I think so much of the idea that you express that hey, I can change the world regardless if you are man or woman, is sort of the surrounding 7:01 right? You know, the magical places like Silicon Valley and those kinds of things, partly that's just a mentality and people are drawn to that mentality, so you are around all these other people that have this mission to change the world too and hey, if everyone else is doing it why can't I do it? Right?

07:17 Exactly.

07:20 Cool, so that seems to be working really well for you.

07:23 Yeah, so far. I mean we've only had computer science here for 5 years going on 6, so it is my sixth year that I started the program, and so you know, my student that graduated that first year I used to boast that 100% of computer science majors. Because I had one student who was involved in a computer science program. So they haven't yet quite made it out of college and into the realm where they can maybe have a larger impact but I think it's another give me another 5 years or so and I think you'll start to see some of our students end up in Silicon Valley or wherever they may end up making an impact on the technology world.

08:15 I went to grad school in math and so it was probably in the same building actually. I think when people hear high school, and it is really important to emphasize, this is not like a private college, this is high school like you said, computer science, a lot of states are struggling to even allow a single programming course of some sort, it's usually some kind of after school curriculum or activity. Maybe we could talk about the classes that you guys have, because I was really impressed with like how much you are offering to your high school girls.

08:50 Yeah. So, interestingly we start teaching computer science at the pre K level, it's very basic as you might imagine. My department and I are actually, I have four people in my department, we're in the middle of kind of deciding what our mission statement is, I think we're all on the same page that just kind of, you know, coming up of what it is we do based on what we are kind of already doing, so in the elementary school and the middle school we have a program called "The Dream Lab", which is a combination of computer science and engineering, with sort of heavy load of design thinking process in there.

09:30 So they do a little bit of everything but we still think of the central thread about this computer science concepts, and then once you get to high school it becomes inelective, it's required through eighth grade, which is great; and, then it becomes inelective. And we start with an intro course a year-long intro course and that's all in Python. And it's been a great course, the students end up doing a lot of different things, we work with robots and we do some graphic projects and some game programming and things like that.

10:03 That's really cool, and you do all that work with Python, right?

10:05 Yeah, all of it is with Python.

10:08 So maybe, before we move on, maybe we could talk a little bit about like some of the libraries and stuff that you are using, like are you using something like RosPy for the robots, or what kind of stuff are you doing there?

10:19 Yeah, that's a good question. So, I've been using an IDE called "Calico" for about 4 or 5 years, and it has a lot of those libraries built into it which is one of the things as you know with Python or any language. Any time you are trying to do special things like game development or graphics or robots you need different libraries for that. The nice thing about Calico is I don't have to go find them, they are already there, so the robot libraries are built in, the graphics libraries are built in, so it's an easy to use- it was built for education specifically, for that very reason.

10:59 Cool, is it kind of like what the scientific data science folks- is there like continuum with Anaconda where it comes pre build but this is for education and teaching?

11:09 Yeah, exactly.

11:11 Ok, and is it free?

11:12 It is completely free, free and open source.

11:15 Awesome. Ok, so you guys use that, that's cool.

11:17 Yeah. So that makes it really easy, we do expand that with some other IDE later, in CS2 which is the next level where we do focus mostly on object oriented programming, with using PyCharm and again, because it's easy to install libraries via PyCharm. It's all about installing things and making that process easy. I think that's what a lot of teachers in middle and high school struggle with. I am lucky and my IT department isn't locked down at all but a lot of places it is. So the idea of installing something that's going to actually write code is a little scary to a lot of IT places.

12:02 Yeah so that's really cool that you are using PyCharm, I've said that I'm a huge fan of PyCharm on the show before, and I think actually the concept of using an IDE is very much sort of dividing concept for folks in the Python community. A lot of people are using Vim and Emacs and they are like, "we don't need that heavy weight stuff, leave us alone", and then some people love their IDEs. I'm more in that group. You know, it really is nice in that you can just type, import like I could type import request and if request isn't there it's like a hotkey to download and install that.

12:38 Yeah. It is very nice.

12:40 Yeah, so that's very helpful.

12:42 I do teach a little bit of Vim or Emacs or whatever, to my students, because I had a student who went and did internship at a university down the street and she was really m ad at me for not teaching her Vim or Emacs, So I was like, "Do you see how hard it is?" So, I do introduce it to them, and explain to them that there are a lot of professional programmers that use this instead of an IDE but you know, it's too hard for high school students to wrap their heads around most of the time.

13:16 Installing those requirements and all that kind of stuff is just, it's things in the way, it's not something you want to learn when you are new. You just want to learn how to get something on the screen, make a turtle move, make a web page come up and you've got to have all these complex sort of sys admin conversations and if you can get that out of the way and push that down the road until you are like ready to have that, sort of learning, I think that's way more valuable.

13:42 Yeah. You start with this introduction of computer science is that mostly freshman?

13:48 It's a range and it is mostly freshman. Usually ninth and tenth graders. And then I always get a couple of seniors, who need to fill out their course load and it's great, because it's one of the few classes we have here that is across all the great levels so they get to know students in that out great levels which I really like and they often end up working together on projects too.

14:10 Yeah, that's cool. And you said that with these classes they are very project focused. Do you maybe want to talk about that a little bit?

14:17 You know, probably a lot of us learn computer science in our classes or however we learn them via lecture, primarily. And it was kind of painful, you get the lecture, you go do the problem sets, turn them in and hope for the best. And you didn't get to do a lot of projects, maybe at the very end or midterm kind of things but you don't really get a lot of practice doing your projects along the way, you are just doing these exercises.

14:44 So I specifically structure my classes so that's pretty much all projects. We do little ones and then big ones and they just kind of build on each other, so we do few things, I kind of treat it like a science class, where I teach a concept like loops for example and then I do a little lab with a lot of different ways of experimenting with loops. So that will just be the class period and the lab is done, so it's like during the science lab and you have to have the equipment. And then, they might do another concept, so we might do 2 or 3 concepts in a row, and then we'll have them do a project where they are going to have to implement those concepts in some way.

15:22 So it may be a graphics project, it may be a games project, it might be working with the robots like I may have a robot dance project where if you are going to make a dance step you are going to do it over and over again and that is going to have to be in a loop. So, that's the way I've structured all my classes and it is interesting because sometimes the students get frustrated that I'm not specifically telling them all the stuff, and having them just regurgitate it to me on a test, I make them figure out what they need to know as they're working on their projects.

15:56 Yeah. Well, I was on the other side of that, when I was in college my computer science courses, my first one, all the tests were on paper, and this is not a better way, to learn even though it might be easier to fill out some sort of multiple choice or something. They will be thankful in the end, that's cool.

16:17 I have gotten those notes that they are thankful in the end, so... I know it's working.

16:23 That's really cool. Ok, so in your first, you probably covered things like loops and declaring variables, and input and output, and you know maybe importing some modules so that you can do your robots and so on. And then the second one, you move on to like more modeling type stuff, right, with object oriented programming and that kind of stuff?

16:42 Yeah, so object oriented programming mostly and of course they have been using objects the whole time, and it's always a shock to them when they realize that they have been using objects the whole time. And then we of course learn how to create our own classes, in the second course. And we do, I do a really short project so they can just learn the basics of what a class structure is, and how it works. And then, we do two bigger projects, I do a data analyses project where they have to gather some data from the internet, in some way, shape or form, and then analyze it and visualize it.

17:25 So it is kind of a three-step process, just getting stuff of the internet is a challenge and then of course pulling it into some sort of form that they can work with like a csv file or something, is another challenge. And then, taking the raw data and turning it into something that we might want to look at is the third challenge. So that always takes longer than I think it is going to, but I'm always hopeful. And then we do a simulation together sort of as a class where everybody creates their own objects that create their own classes, we sort of decide what the simulation is going to be; we did an aquarium. Last year, we did the North Pole so we had Santa and we had reindeer objects, and Santa objects, and elf objects, and candy cane objects and, yeah, it was kind of fun.

18:22 Yeah, I bet that was fun.

18:24 It was, it was. So everybody has to create their own object, and they have different methods and eventually they all interact with each other and, it's kind of a fun little project that we have, and it sort of simulates as best as I can do you know, what it might be like to work on a team developing a product together.

18:41 That's cool. Do you teach them any like source control, like GitHub or anything like this?

18:47 No, I don't. I haven't gotten there yet, it's sort of on my list of things to figure out how to work in. So yeah, some of them have been to summer camps and what not where they learned that, it is kind of a hard thing to explain to them, but yeah, it's on my list to get to at some point.

19:05 Yeah, of course, well there is always the challenge of like you want to show them everything but if you do that, they will learn nothing, right?

19:11 Right, right. They will just get overwhelmed and freak out.

19:15 Nice. And so it's really cool that you started with Python, and it seems like they get basically two years of Python-

19:24 Yeah and a half- ish-

19:25 Year and a half, ok, year and a half. The second one is a semester right?

19:28 Yeah.

19:28 Yeah cool, so they get a year and a half of Python, and then they move on to other topics. And are those still in Python- not all of them, right?

19:36 Not all of them. I am teaching this year for the first time Web design and development class, which is kind of funny since that's my background, it took me five years to get to teach that course, so it's happening this year. Which obviously they could use Python for. I am going to teach them Javascript but I've already told them that if they prefer working in Python they want to go in that direction, I'll make sure everything is set up for them so that they can do that. And I've had some students do some things in Python just for the hack of it. It's just always kind of fun. But yeah, so that's that course. And then, I also have a physical computing course, and a mobile computing course, which I don't do Python for either of those, those are C based courses.

20:29 Ok, yeah, that's sort of the senior level type things right?

20:32 Exactly. They actually have advanced topics in front of them, so, yeah.

20:38 Yeah, they are ready for compilers, semi colons and curly braces I guess.

20:40 Exactly, exactly.

20:43 And pointers, that's more the hard part.

20:46 Right, right.

20:46 [music]

20:46 This episode is brought to you by Hired. Hired is a two-sided, curated marketplace that connects the world's knowledge workers to the best opportunities.

20:46 Each offer you receive has salary and equity presented right up front and you can view the offers to accept or reject them before you even talk to the company. Typically, candidates receive 5 or more offers in just the first week and there are no obligations, ever.

20:46 Sounds pretty awesome, doesn't it? Well did I mention the signing bonus? Everyone who accepts a job from Hired gets a $2,000 signing bonus. And, as Talk Python listeners, it get's way sweeter! Use the link hired.com/talkpythontome and Hired will double the signing bonus to $4,000!

20:46 Opportunity is knocking, visit hired.com/talkpythontome and answer the call.

20:46 [music]

21:57 Ok, so in the physical computing one, this is like sort of the internet thing, is that right?

22:03 Yeah, exactly.

22:02 What you guys do with the girls there?

22:05 So we mostly are doing 22:09 , so I have a collection of 22:14 and accessories, and we also have a fully stocked all of our- at least this happened over the summer, my classroom is fully stocked with anything they might want to build, I have laser cutter and a CNC machine, and two 3D printers, so the idea is that they would come up with a project that requires some sort of programming, and then create the thing that the- our doing is going to live in, using all that other equipment.

22:42 Oh, that is so cool.

22:44 Yeah. It's been pretty fun, I didn't get to teach last year, because there weren't enough of me to go around, so I had to hire somebody else this year so that worked out well. So last year I had one of my favorite projects that didn't quite get completed, and that's the other thing that happens in the physical computing class especially, it's that we just sometimes do not finish. They are too ambitious. So one student wanted to make a pet lock, that had its own Twitter account and it would take tweets and then decide what the mood of those tweets were and then display on a little LED matrix happy face or a frowny face or something like that. So-

23:34 That's pretty awesome.

23:35 Yeah, it's pretty awesome, the hard part of that is working with Twitter, so that was a big challenge. You've got the LED matrix that changes its face and she got on occasion the Twitter thing to work but she couldn't get them to work together, so... It was a little challenging.

23:52 Yeah, that's a pretty ambitious project, especially if it's done in C.

23:57 Yeah, exactly.

23:59 I think it's really cool that you have these 3D printers and laser cutters and so on to actually make the things, because the internet 24:08 so much of it, when people get started it seems like ok, well here you 24:12 with kind of this like board with wires coming out of it.

24:15 Right.

24:15 And, how does that feel like I really built that thing, that's not a thing, that's a board with wires coming out of it, right?

24:22 Yeah, and yeah, so my goal is for them to make it look pretty by the end, or at least not like a board with wires coming out of it. And most of them got there, they all created some sort of housing for their project, some of them made it out of cardboard, I didn't have a laser cutter at the time but I did have a 3D printer so we 3D printed like a music box thing, that turned out really well. Yeah, so they do make that part. It's nice because they can actually when they get frustrated with the coding, they can say all right, I just going to you know, start working on the housing, because that's you know, it gives a little bit of a break.

25:01 Yeah, let's focus on different things, it's really cool. By the way, I have a movie recommendation if you want to inspire them for 3D printing, there is a documentary that just came out called "Print The Legend" which is actually super dramatic about the history about how Maker Bot got formed and the other, check that out, I think it will be helpful.

25:22 Yeah, that's great.

25:24 Yeah, surprisingly dramatic. Ok, and the other thing that you teach these girls is iPhone and Android development.

25:33 Yeah. We just, that's the hardest thing for me, because of course, there was no internet when I went to school, and there was definitely no mobile phones when I went to school, so there was, so I'm constantly changing the language for that. We are mostly, I mean, I personally have an Android, but most of my students mostly have iPhones, you know, Apple basically owns my student population, for whatever reason. So I could use Objective C but it just- it's hard.

26:04 It's super hard, yeah.

26:07 Yeah, and a lot of times I will get students who've only had the intro and so throwing them into something like that is a challenge. So, I'm still thinking about what I'm going to, what language I'm going to use or what framework really I'm going to use for that. We cannot possibly using touch develop because it is browser based and it's cross platform and that's another challenge I have for the students who are Python people, when they want to put there new game on their phone. It use any of Apple developments things are stuck with just the iPhone.

26:44 Right, and if you want to say, "well we are going to teach you Apple" and then teach you Android, that's all of a sudden like way too much material to cover because there is not a whole lot of similarities.

26:54 Right. Java, C, I know, so...

26:58 Yeah, and there is other stuff like Xamarin and 27:02 and they are all ok but it would be nice if Python had an answer there, and there is something that could be for Android but not really on Apple like you said and that's where the majority students are, so...

27:13 Yeah, it is a challenge and it's one of those- the other thing that's a challenge about it is that because actually Python and some of the other stuff we work with has come in instant gratification, the mobile development, it doesn't have that instant gratification and it feels painful to them. So they have been good supports about it but it is not as instantly gratifying as animating something in Python for example.

27:41 Yeah, definitely not as developer friendly. I guess the counterbalance there to keep them going is that all have phones and I have teenage daughters myself and they love phones and so you know, if they can program that thing that would be perfect for them, right?

27:54 Yeah, yeah. Well that's part of why I wanted to look at touchdevelop, is that you can program right on your phone in addition to browser or any other way that you might program, so that's kind of cool.

28:05 One thing I wanted to ask you about is, well it's more of a general question, is it seems like you guys are treating computer science really well actually, as a core skill that you think at least recommend all the girls have. Do you think computer science and programming is a core skill, I mean, you hear a lot of like, "Everybody should learn to code", sort of like the main way I hear it. But what are your thoughts?

28:33 Yeah, so I'm also on the board of the computer science teacher association, so I definitely think that you know, computer science should be part of our core curriculum, in some way, it's hard to figure out how to get that into school, schools' budgets are super tight, there are computer science teachers walking around looking for jobs, it's not like there is a glut of them. And that we can just say oh there is such whole pool of teachers let's just hire them and have them teach our computer science courses. They are all going to work at startups.

29:11 That's right, these guys are tired of making 6 figures at these exciting places, they want to come and whatever, it's got to be hard place to hire people.

29:19 It is, it's a very much chicken and egg problem, like if we have the courses could we fill those courses with teachers and we don't have the courses, so there is not a demand created for the teachers, so it's this like really complicated problem but I think we are getting there, a lot of states are starting to make allow computer science to count as a math or science credit, which is nice. It's Pennsylvania where I am has not done that yet, and even though I'm in the private school I'm surrounded by these fantastic public schools and so I can guarantee as soon our state flips to say that computer science is required we would be right behind them and requiring computer science course for all of our students. Or allowing it to count for math or science whichever way it goes.

30:15 Right, you guys already have the infrastructure there they just say, "hey it's required now", right, because you've been teaching it it's not like a school where they have maybe an html class, maybe.

30:26 Right, or Photoshop or robotics elected, those some of the common they use. And it's hard, because I think computer science is such a broad field. If you are in it you know that, if you are not in it you think it's just one thing, it's just coding, and maybe even in a specific language as oppose to the- I don't know how many languages there are now, there is probably several hundred. So you know, most people have no clue that that's the case, so they defining what would be that required course I think is kind of the hard thing for people who have no idea what computer science is.

31:05 Right, if you could convince them that this is the thing they need, then they will be like, "Jesus, where do we start, it's so overwhelming" right?

31:10 Yes, it is. Yeah, and I do even though the core of my courses is coding and programming, we take a lot of time to also just kind of talk about some of the theory of computer science as much as I think that they can get, as 14 year olds, we talk about algorithms and we talk about different kinds of algorithms, and we spend a lot of time talking about how it touches their lives, I mean, it's great when you can talk about an algorithm and connect it to Facebook's algorithm for showing and hiding different parts of your news feed. And then, there is all the fun hacking that happens, that always comes up, so you know, it's pretty easy to connect it to the real world and then talk about the things that they have already learned, that are somewhat related to what's going on. You know, if you've done an encryption project, then you sort of know how does hacking things happen.

32:09 I think there is some sort of not barrier, some preconceptions, or misconceptions rather that a lot of population has, that if we could break them...

32:20 Yeah.

32:22 You know, this will really change. Like, for example, "computer programming is boring and not creative". Like, "it's a non social thing you go do in the basement in the dark like other people". And it's completely the opposite of that in today's world. And if everybody saw that and they could think, "maybe should we be doing geometry?", or maybe we should be teaching programming in the geometry about logical thinking through axioms. It would be so much better I think to do some sort of computer thinking there.

32:22 [music]

32:22 This episode is brought to you by Codeship. Codeship has launched organizations, create teams, set permissions for specific team members and improved collaboration in your continuous delivery workflow. Maintains centralized control over your organization's projects and teams with Codeship's new organization's plan.

32:22 And as Talk Python listeners, you can save 20% off any premium plan for the next 3 months. Just use the code TALKPYTHON.

32:22 Check them out at codeship.com and tell them "thanks" for supporting the show on Twitter where they are at @codeship.

32:22 [music]

33:49 I agree. Yeah, I mean, that's funny because I mentioned that my major was creative writing and I swear programming is a much more creative endeavor than writing poetry. In a lot of ways. It sounds weird, and poetry is very isolating, you know, you are writing poems and maybe eventually someone reads them or you read them to someone, but you know, when you are making a website, everyone is going to see it. You put it up on the web and you make it public and you can Tweet it and put it on Facebook, and everyone can see it. And that's pretty cool.

34:24 Yeah, there's very few other places in the world that 5 people can get together for 6 months and build something and share with a 100 million people. Where else does that happen?

34:37 Yeah, nowhere.

34:39 Nowhere. So it's really amazing, so I think what you are doing there with having that much exposure over time, should I ask you do you feel like your students are coming out with better conceptions?

34:52 I do, I think that they definitely feel like it's not isolating and it is not lonely and they are making really creative and interesting things. Hopefully they are carrying that to their classmates and beyond. Certainly I've seen an increase in enrolment so that probably tells me that they are telling their friends that it's really cool and fun. And not boring and awful the way that TV and film tends to make it look. So yeah, I think, my hope is that when they graduate and go on, not all of them, you know, just like math teachers don't expect all of their students to become mathematicians, I don't expect all of my students to necessarily become computer scientists, but I think having that deeper understanding of technology that goes beyond being able to post to Facebook, is really important, because I have yet to find a job or area or field that doesn't benefit from having that deeper understanding of technology, of how things really work, under the hood. You know, I keep getting pulled into things just here locally at school, because I'm one of 2 people on campus that has that deeper understanding of how database works and how it connects to the web and how that gets pulled in different places and I can't think of a single field or job that technology isn't important. It's how businesses operate, you know.

36:31 It absolutely is. And if, you know, if somebody wants to become a biologist, they are way more likely to be successful if they can do a little programming to automate their data analyses. Or, if they want to become, I don't know, social scientist, like sociologist, psychiatrist, again, the programming will just-

36:54 Yeah, they've got to crunch the data-

36:53 Exactly. And I think CS probably is a core skill, at least as much as geometry and those things are, so...

37:04 Yeah, absolutely.

37:06 That's my thought.

37:08 Me too, I'm with you. Let's change the world.

37:10 Let's do it. Let's do it. So, one event that I wanted to ask you about that's about changing the world that is making a small dent is Hour Of Code. Are you guys doing anything with that?

37:19 Yeah. We are, I just bought off of Ebay about 400 or 500 punch cards to use as invitations for our Hour Of Code. We have done different things in the past, we have done an evening event and invited people, and we have them come learn how to code and we actually have the students do the teaching. We are going to do a little bit differently this time, we are going to have it be a whole day event on a weekend when more people can make it. It's a terrible time of the year to have it, because it's December, and up here in the North anyway, the weather can interfere with anything you might not planned.

38:00 But we are going to run a 3 hour workshop, we have a partnership with "Tech girls", which is a local organization that provides free workshops for middle school girls to learn programming, primarily. So we have taught a few of those ourselves we offer our space as a resource for them and we are going to partner with them specifically for CS education week, and have them running a workshop for their population, and we are going to have a show case afterwards of both of projects that get created in that workshop and the projects that our students have created and we are hoping to have the speaker and food and a lot of good stuff, so...

38:44 That's really awesome. Are you looking for volunteers?

38:46 Probably, yeah.

38:48 Yeah, cool. SO if you are in the Boston area, maybe thing about turning your name out there. You know, I live in Portland Oregon, even though I'm spending a year in Germany right, so I've been helping out my- I have three daughters I've been helping their school during the Hour Of Code. And it was just so successful, the teachers, and the principal, were just blown away with what the kids could do. Even first graders were just amazing. And when you are working with first grade, second grade, third grade, those levels there is no difference in the way that the girls or the boys perceive it, something happens later, but if we can drive that interest early then I think it can make a big difference, so... I guess regardless of where you are, think about helping out to Hour Of Code, there is Hour Of Code which is December 8th, there is so many resources out there that you don't have to put much effort into it, right, you can go over to the Hour Of Code find some sort of pre built like teaching thing for the right level and just help kids through, really. All people got to do it right?

39:57 Yeah, I mean it's just- yeah, running them through and letting them see what they can do, like you said, there is so many resources online now which is great.

40:06 Yeah, it's definitely easier then when we were learning back in the day.

40:09 Yes. We had to drag the book out, look stuff up.

40:15 Laura, is there anything else you want to cover before we kind of wrap things up?

40:21 I don't think so, this has been great, I mean if we can get Python to come up with the mobile computing platform that will solve all of my problems, I can just stay in Python forever.

40:30 That would be fantastic. You know, it's not completely insane, right, we've got things like PyPy which are git compiled Python, if we could switch the git compiler to an ahead of time compiler, and get it to compile towards the right thing right, maybe we could have. You know model what the Xamarin guys are doing with CSharp which isn't natively allowed on iPhone but they found a way to compile it for it so, we can help, right?

40:54 We can help. I don't have time to work on that, but I'm going to put that out there, somebody else can do it.

41:00 Awesome. So let me ask you 2 quick questions before you go. For Python what's your favorite editor?

41:08 I have to say I kind of like PyCharm. It's been nice, although I tend to work on the web a lot, so I'm using just a basic text editor for that.

41:21 Right, some kind of like Web IDE or sort of smart text editor rather, yeah.

41:25 Exactly. I like color coding, it's kind of my favorite.

41:28 Awesome. And then, is there like PyPi packages that you guys use that are really awesome that you want to point out or raise awareness of, what are you guys doing at your classes that's really cool and well received?

41:42 We use NumPy. Students went a little nuts with libraries last year and they are just downloading crazy stuff, they really were, they probably downloader ten or so random libraries just to try to get stuff of the internet. We used and I can't remember what it was, we used a couple of different Twitter packages, that worked pretty well, which was nice considering our twitter packages didn't work. So PyPy wins in that regard, it worked great, we were able to pull tweets really easily. I think there is a tweet.py I think that was the one we ended up using.

42:26 Ok, cool, people should check that up, if they want to integrate Twitter. Yet Twitter can be tricky if you don't have all that stuff, it's way more complicated than it sort of seems it should be.

42:37 Yeah. With this we get running it in like 5 minutes. So that was pretty easy.

42:40 Yeah, that's the way to do it. Laura, this has been really interesting, so I think you guys have a great mission and it seems like you are making great progress. There is almost no other high school I've seen that has 4 years of really interesting modern computer science classes.

42:57 Thank you.

42:57 Thanks for putting that out there, and leading the way.

42:59 Yeah. Thanks a lot.

43:01 Yeah, thanks for being on the show. Talk to you later.

43:03 All right, bye.

43:03 This has been another episode of Talk Python To Me.

43:03 Today's guest was Laura Blankenship and this episode has been sponsored by Hired and CodeShip. Thank you guys for supporting the show!

43:03 Hired wants to help you find your next big thing. Visit hired.com/talkpythontome to get 5 or more offers with salary and equity right up front and a special listener signing bonus of $4,000 USD.

43:03 Codeship wants you to ALWAYS KEEP SHIPPING. Check them out at codeship.com and thank them on twitter via @codeship. Don't forget the discount code for listeners, it's easy: TALKPYTHON

43:03 You can find the links from the show at talkpython.fm/episodes/show/27

43:03 Be sure to subscribe to the show. Open your favorite podcatcher and search for Python. We should be right at the top. You can also find the iTunes and direct RSS feeds in the footer on the website.

43:03 Our theme music is Developers Developers Developers by Cory Smith, who goes by Smixx. You can hear the entire song on our website.

43:03 This is your host, Michael Kennedy. Thanks for listening!

43:03 Smixx, take us out of here.

Back to show page
Talk Python's Mastodon Michael Kennedy's Mastodon