Learn Python with Talk Python's 270 hours of courses

#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,

00:04 and that problem is amplified when you consider typically underrepresented groups such as women and minorities.

00:09 This week, you'll meet Laura Blankenship, who's doing more than her share to widen the appeal of programming to women in general and to Python in particular.

00:17 This is episode number 27 of Talk Python to Me, recorded Monday, September 14th, 2015.

00:23 Developers, developers, developers, developers.

00:27 I'm a developer in many senses of the word, because I make these applications, but I also use these verbs to make this music.

00:34 I construct it line by line, just like when I'm coding another software design.

00:39 In both cases, it's about design patterns.

00:42 Anyone can get the job done. It's the execution that matters.

00:45 I have many interests. Sometimes I can flex.

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

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

00:59 Keep up with the show and listen to past episodes at talkpython.fm, and follow the show on Twitter via at talkpython.

01:06 This episode is brought to you by Hired and Codeship.

01:11 Thank them for supporting the show on Twitter via at Hired underscore HQ and at Codeship.

01:17 Hello, everyone. Congratulations to Justin Alexander, who won the copy of the book, Full Stack Python's Guide to Deployment last week.

01:25 Do you want to be in the running for free stuff?

01:27 Just visit talkpython.fm and become a friend of the show like Justin did.

01:31 Now, let's get right to the interview.

01:33 Let me introduce Laura.

01:35 Laura Blankenship is the chair of the computer science department and intern dean of academic affairs at the Baldwin School,

01:42 an all-girls K-12 school in Philadelphia, Pennsylvania.

01:46 Laura, welcome to the show.

01:48 Thank you.

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

01:53 Great. Me too.

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

01:57 Yes.

01:59 So we're going to talk about what you're doing at the Baldwin School.

02:02 But before we get into specifically your work there, let's just take a step back and start where you started with programming and Python and all that.

02:11 Okay. Well, it's a rather long, circuitous path that I took to get here.

02:16 I actually don't have a degree in computer science.

02:19 It didn't exist at my college when I graduated.

02:23 So I did take computer science in seventh grade myself and then again in college, both in basic of all things.

02:31 So, yay.

02:33 Wow. That's pretty impressive.

02:35 Usually it's either Java or C++.

02:36 I know.

02:37 My first course was in Scheme.

02:40 Oh, yeah.

02:41 Yeah, I haven't done a lot with Scheme, but I've seen it.

02:46 My husband keeps trying to talk me into it, but I haven't gone there yet.

02:51 So after college, I graduated with a degree in creative writing, of all things, and went to grad school for that.

03:00 And then ended up basically paying for grad school by working either on the technology side in departments or specifically in IT departments.

03:12 It pays better than poetry.

03:15 So I just figured a lot of stuff out on my own.

03:18 I mean, at the time, this was the early 90s.

03:21 You know, nobody knew what computers could do or, you know, what they were capable of.

03:27 So, and no one knew how they worked.

03:29 So I would just take a manual and figure it out.

03:31 And, yeah.

03:33 So, I mean, most of the people that worked in those departments at the time were still using, like, IBM Selectric typewriters.

03:41 So I had a little bit of an advantage over them.

03:44 And basically, I then kind of got into mostly web development and design and worked across the street from the Baldwin School at Bryn Mawr College in their IT department developing educational technology tools.

03:58 You know, you started before the World Wide Web.

04:01 Yeah.

04:02 And when people learn through books still, right?

04:04 So definitely an interesting time to get into programming.

04:08 Yep.

04:08 Cool.

04:09 So that's how you got into programming.

04:10 What about Python?

04:11 Like, what got you interested in that?

04:13 Well, so in our web development shop, we were mostly PHP, a little bit of JavaScript.

04:19 And then when I, and I taught a summer program using mostly PHP and JavaScript and occasionally Flash, ActionScript.

04:30 I just pretty much went wherever the students wanted to go.

04:32 And then when I came over to Baldwin, I just, the thought of teaching them PHP sort of scared me.

04:40 JavaScript, similarly.

04:42 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.

04:51 So I just, Bryn Mawr's computer science department actually used Python and a little bit of Java, but they were shifting at the time to Python.

05:01 So I just decided to go through, I went through a couple of Python books and it was easy for me.

05:08 So I thought it would be easy for the kids too.

05:10 Yeah, that's cool.

05:11 And, you know, I think your intuition there is good because that's what the universities are switching to as well, right?

05:17 Yeah, pretty much.

05:18 Pretty much.

05:20 Okay.

05:20 So that brings us to the Baldwin School.

05:22 And the Baldwin School looks really interesting.

05:23 And let me actually read what you guys have for your little Twitter subtitle introduction or whatever that part on Twitter is called.

05:31 Right.

05:31 It says, Baldwin is an independent school for thinking girls who know the power of their own mind and use them to better the community and the world.

05:39 That's a pretty awesome mission statement.

05:41 It is pretty awesome.

05:42 Yes.

05:43 Cool.

05:44 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.

05:55 And, you know, the girls here are pretty amazing and, you know, really do start at a young age wanting to change the world, which is kind of cool that, you know, you'll have a seven-year-old running around thinking that they can do something that will make a big impact.

06:14 And, of course, as they get older, they can realize some of those goals and dreams.

06:20 And some of them do, you know, many of them do, you know, many of them do a ton of community service.

06:28 So I think that's probably the biggest impact that they have is a lot of them work with a variety of organizations to do whatever, you know, those organizations need and often, you know, provide expertise that maybe those organizations don't have.

06:44 It's really neat that you're teaching computer science at a deep level to these girls.

06:49 I think so much of the idea or the opinion that you express that, hey, I can change the world, regardless if you're a man or a woman, is sort of the surroundings that you're in, right?

07:01 Yeah.

07:02 You know, the magic of places like Silicon Valley and those kinds of things.

07:07 Partly, that's just a mentality, and people are drawn to that mentality.

07:11 So you're around all these other people that have this mission to change the world, too.

07:15 And, hey, if everyone else is doing it, why can't I do it, right?

07:17 Exactly.

07:18 Cool.

07:19 So that seems to be working really well for you.

07:22 Yeah, so far.

07:23 I mean, we've only had computer science here for five years, going on six.

07:29 This is my sixth year here.

07:31 I started the program.

07:33 And so, you know, the student that graduated that first year, I used to boast a 100% rate of computer science majors because I had one student who enrolled in a computer science program at Purdue.

07:51 So they haven't yet quite made it out of college and into the realm where they can, you know, maybe have a larger impact.

07:58 But I think it's, you know, give me another five years or so, and I think you'll start to see some of our students, you know, end up in Silicon Valley or wherever they might end up, you know, making an impact on the technology world.

08:13 I went to grad school at Purdue in math.

08:16 And so I was probably in the same building, actually.

08:17 Probably.

08:18 Yeah, good luck to her.

08:20 That's awesome.

08:20 I think when people hear high school, and it's really important to emphasize this is not like a private college.

08:26 This is high school, like you said, and below.

08:28 Yeah.

08:29 Yeah.

08:29 Computer science, you know, a lot of states are struggling to even just allow a single programming course of some sort.

08:38 And it's usually some kind of after school curriculum or activity.

08:41 Maybe we could talk about the classes that you guys have, because I was really impressed with, like, how much you're offering to your high school girls.

08:49 Yeah.

08:50 So, interestingly, we start teaching computer science at the pre-K level.

08:56 It's very basic, as you might imagine.

09:00 My department and I are actually in the – I have four people in my department.

09:04 We're in the middle of kind of deciding what our mission statement is.

09:08 I think we're all on the same page, but just kind of, you know, coming up with what it is we do based on what we're kind of already doing.

09:15 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,

09:27 the sort of heavy load of design thinking process in there.

09:30 So, they do a little bit of everything.

09:32 But we still think of the central thread of that as computer science concepts.

09:36 And then once they get to high school, it becomes an elective.

09:39 It's required through eighth grade, which is great.

09:42 And then it becomes an elective.

09:45 And we start with an intro course, a year-long intro course, and that's all in Python.

09:50 And it's been a great course.

09:53 The students end up doing a lot of different things.

09:55 We work with robots, and we do some graphics projects and some game programming and things like that.

10:01 That's really cool.

10:02 And you do all that work with Python, right?

10:04 Yeah, all of it's with Python.

10:06 Yeah.

10:07 So, maybe we could talk, before we move on, maybe we could talk a little bit about, like, some of the libraries and stuff that you're using.

10:14 Like, are you using something like Rosspy for the robots?

10:16 Or what kind of stuff are you doing there?

10:19 Yeah, that's a good question.

10:20 So, I've been using an IDE called Calico for about four or five years.

10:25 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,

10:32 anytime you're trying to do, you know, special things like game development or graphics or robots, you need different libraries for that.

10:40 And the nice thing about Calico is I don't have to go find them.

10:43 They're already there.

10:44 So, the robot libraries are built in.

10:47 The graphics libraries are built in.

10:49 So, it's been, you know, it's an easy-to-use system.

10:54 And it was built for education specifically for that very reason.

10:58 Cool.

10:59 Is it kind of like what the scientific data science folks, say, like Continuum are doing with Anaconda, where it comes pre-built, but this is for education and teaching?

11:09 Yeah, exactly.

11:10 Okay.

11:11 And is it free?

11:11 It is completely free.

11:13 Free and open source.

11:14 Yeah, awesome.

11:15 Okay, so you guys use that.

11:16 That's cool.

11:17 Yeah.

11:17 Yeah, so that makes it really easy.

11:19 We do experiment with some other IDs later.

11:23 We, in CS2, which is the next level where we do focus mostly on object-oriented programming, I've been using PyCharm.

11:32 And, you know, that's, again, because it's easy to install libraries via PyCharm.

11:39 Right.

11:39 It's all about installing things and making that process easy.

11:43 I think that's what a lot of teachers in, you know, middle and high school struggle with is I'm lucky in that my IT department isn't locked down at all, but a lot of places it is.

11:55 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're using PyCharm.

12:04 You know, 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,

12:12 it's very much a sort of dividing concept for the folks in the Python community.

12:18 A lot of people are using Vim and Emacs, and they're like, we don't need that heavyweight stuff.

12:22 Leave us alone.

12:23 And then some people love their IDEs.

12:26 I'm more in that group.

12:27 You know, it really is nice in that you can just type import.

12:32 Like, I could type import requests, and if request isn't there, it's like a hotkey to download and install that.

12:37 Yeah, it is very nice.

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

12:41 I do teach a little bit of Vim or Emacs or whatever to my students, because I had a student a while back who went and did an internship at a university down the street,

12:54 and she was really mad at me for not teaching her terminal and Emacs.

12:57 And I was like, do you see how hard it is?

12:59 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.

13:09 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, you know, it's things in the way.

13:21 It's not something you want to learn when you're new.

13:23 Right.

13:24 You just want to learn how to get something on the screen, make a turtle move, make a web page come up,

13:29 and you've got to have all these complex sort of sysadmin conversations.

13:33 And if you can get that out of the way and push that down the road until you're like ready to have that sort of learning, I think that's way more valuable.

13:41 Yeah.

13:43 You start with this introduction to computer science, and is that mostly freshmen?

13:46 It's a range.

13:48 It is mostly freshmen, usually ninth and tenth graders.

13:52 And then I always get a couple seniors who need to fill out their, you know, course load.

13:57 And it's great because it's one of the few classes we have here that is across all the grade levels.

14:03 So they get to know students in the other grade levels, which I really like.

14:06 And they often end up working together on projects, too.

14:09 Yeah, that's cool.

14:11 And you said that with these classes, they're very project-focused.

14:15 Do you maybe want to talk about that a little bit?

14:17 You know, I probably a lot of us learned computer science in our classes or however we learned them via lecture primarily.

14:25 And it was kind of painful.

14:27 You know, you would get the lecture.

14:28 You'd go do the problem sets, turn them in, and hope for the best.

14:32 And you didn't get to do a lot of projects, maybe at the very end or, you know, midterm kind of things.

14:38 But you don't really get a lot of practice doing the projects along the way.

14:41 You're just doing these exercises.

14:43 So I specifically structure my classes so that it's pretty much all projects.

14:48 We do little ones and then big ones, and they just kind of build on each other.

14:52 So we'll do a few things where I kind of treat it like a science class where I teach a concept like loops, for example.

15:00 And then we'll do a little lab with a lot of different ways of experimenting with loops.

15:05 And that'll just be the class period, and the lab is done.

15:08 So it's like you're in a science lab and you have to have the equipment.

15:10 And then they might do, you know, another concept.

15:14 So we might do two or three concepts in a row.

15:16 And then I'll have them do a project where they're going to have to implement those concepts in some way.

15:22 So it might be a graphics project.

15:23 It might be a game project.

15:26 It might be, you know, working with the robots.

15:29 So, like, we have a robot dance project where, you know, if you're going to make a dance step, you're going to do it over and over again.

15:35 And it's going to have to be in a loop.

15:36 So that's the way I've structured all of my classes.

15:40 And it's interesting because sometimes the students get frustrated that I'm not, you know, specifically telling them all this stuff and having them just regurgitate it to me on a test.

15:51 You know, they figure out what they need to know as they're working on the projects.

15:55 Yeah.

15:56 Well, I was on the other side of that when I was in college.

16:00 My computer science courses, my first one, all the tests were on paper.

16:05 And, you know, this is not a better way to learn, you know, even though it might be easier to, like, fill out some sort of multiple choice or something.

16:13 Yeah.

16:13 Right.

16:14 Yeah.

16:14 They'll be thankful in the end.

16:16 That's cool.

16:16 I have gotten those notes that they're thankful in the end.

16:19 So I know it's working.

16:22 That's really cool.

16:23 Okay.

16:23 So in your first one, you probably cover things like loops and declaring variables and input and output and, you know, maybe importing some modules so that you can, you know, do your robots and so on.

16:35 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:41 Yeah.

16:42 So object-oriented programming mostly.

16:45 And, of course, they've been using objects the whole time.

16:48 And it's always a shock to them when they realize that they've been using objects the whole time.

16:52 And then we, of course, learn how to create our own classes in the second course.

17:00 And we do – I do a really short project so they can just learn the basics of what a, you know, class structure is and how it works.

17:10 And then we do two bigger projects.

17:12 I do a data analysis 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's kind of a three-step process.

17:28 So just getting stuff off the Internet is a challenge.

17:31 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.

17:39 And then, you know, taking the raw data and turning it into something that we might want to look at is the third challenge.

17:47 So that always takes longer than I think it's going to, but I'm always hopeful.

17:51 And then we do a simulation together sort of as a class where everybody creates their own objects.

18:01 They create their own classes.

18:02 We sort of decide what the simulation is going to be.

18:06 We did an aquarium one year.

18:09 Last year we did the North Pole.

18:11 So we had Santa land and we had, you know, reindeer objects and Santa objects and elf objects and candy cane objects.

18:19 And, yeah, it was kind of fun.

18:21 Yeah, I bet that was a big hit.

18:23 It was.

18:24 It was.

18:24 So everybody has to create their own object and they have different methods and eventually they all interact with each other.

18:29 And, you know, it's kind of a fun little project that we have.

18:32 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.

18:42 Do you teach them any, like, source control, like GitHub or anything like this?

18:46 No, I don't.

18:47 I haven't gone there yet.

18:49 It's sort of on my list of things to figure out how to work in.

18:52 So, yeah.

18:53 Some of them have been to summer camps and whatnot where they've learned that.

18:57 It is kind of a hard thing to explain to them.

19:00 But, yeah, it's on my list to get to at some point.

19:05 Yeah, of course.

19:06 Well, there's always the challenge of, like, you want to show them everything.

19:08 But if you do that, then they'll learn nothing, right?

19:11 Right, right.

19:11 They just get overwhelmed and freak out.

19:13 Nice.

19:15 And so, you know, it's really cool that you start with Python.

19:18 And it seems like they get basically two years of Python.

19:21 Year and a half-ish.

19:24 Year and a half.

19:24 Okay, year and a half.

19:25 The second one is a semester, right?

19:27 Yeah.

19:27 Yeah, cool.

19:28 So they get a year and a half of Python.

19:30 And then they move on to other topics.

19:32 And are those still in Python?

19:34 Not all of them, right?

19:35 Not all of them.

19:37 I am teaching this year for the first time a web design and development class, which is kind of funny since that's my background.

19:43 It took me five years to get to teach that course.

19:46 So it's happening this year, which obviously they could use Python for.

19:52 I am going to teach them JavaScript.

19:54 But I've already told them that, you know, if they prefer working in Python and want to go in that direction, I'll make sure everything's set up for them so that they can do that.

20:04 And I've had some students do some things in Python just for the heck of it, which is always kind of fun.

20:13 But yeah, so that's that course.

20:17 And then I also have a physical computing course and a mobile computing course, which I don't do Python for either of those.

20:26 Those are C-based courses.

20:28 Okay.

20:29 Yeah.

20:30 That's sort of the senior level type things, right?

20:32 Exactly.

20:32 Yep.

20:33 Yep.

20:33 They actually have advanced topics in front of them.

20:36 So, yeah.

20:37 Yeah.

20:38 They're ready for compilers, semicolons, and curly braces, I guess.

20:40 Exactly.

20:41 Exactly.

20:42 And pointers.

20:43 Maybe that's more the hard part.

20:45 Right.

20:45 Right.

20:46 This episode is brought to you by Hired.

20:59 Hired is a two-sided, curated marketplace that connects the world's knowledge workers to the best opportunities.

21:06 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.

21:15 Typically, candidates receive five or more offers in just the first week, and there are no obligations.

21:20 Ever.

21:21 Sounds pretty awesome, doesn't it?

21:23 Well, did I mention there's a signing bonus?

21:25 Everyone who accepts a job from Hired gets a $2,000 signing bonus.

21:29 And as Talk Python listeners, it gets way sweeter.

21:34 Use the link Hired.com slash Talk Python to me, and Hired will double the signing bonus to $4,000.

21:41 Opportunity's knocking.

21:43 Visit Hired.com slash Talk Python to me and answer the call.

21:56 Okay.

21:57 So, in the physical computing one, this is like sort of the Internet of Things.

22:01 Is that right?

22:02 Yep.

22:02 Exactly.

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

22:05 So, we, it's mostly Arduino based.

22:08 So, I have, you know, a collection of Arduinos and accessories.

22:14 And we also have a fully stocked, all of our, this just happened over the summer.

22:20 My classroom is now fully stocked with anything they might want to build.

22:24 I have a laser cutter and a CNC machine and two 3D printers.

22:28 So, the idea is that they would, you know, come up with a project that requires some sort of programming.

22:35 And then create the thing that the Arduino is going to live in using all that other equipment.

22:41 Oh, that is so cool.

22:43 Yeah.

22:43 Yeah.

22:44 It's been pretty fun.

22:45 I didn't get to teach it last year because there weren't enough of me to go around.

22:50 So, I had to hire somebody else this year.

22:53 So, that worked out well.

22:55 So, last year, I had one of my favorite projects that didn't quite get completed.

23:01 And that's the other thing that happens in the physical computing class especially is that we just sometimes don't finish.

23:08 They're too ambitious.

23:10 So, one student made, wanted to make a pet rock that took, that had its own Twitter account.

23:18 And it would take tweets and then decide what the mood of those tweets were.

23:24 And then display on a little LED matrix, you know, a happy face or a frowny face or something like that.

23:32 So, that's pretty awesome.

23:34 Yeah.

23:34 It was pretty awesome.

23:35 The hard part about that is working with Twitter.

23:38 So, that was a big challenge.

23:40 She got the LED matrix to change its face.

23:44 And she got, on occasion, the Twitter thing to work, but she couldn't get them to work together.

23:49 So, it was a little challenging.

23:51 Yeah.

23:52 That's a pretty ambitious project.

23:53 It was.

23:54 Especially if it's done in C.

23:55 Yeah.

23:57 Exactly.

23:58 I think it's really cool that you have these 3D printers and laser cutters and so on to actually make the things.

24:06 Because the Internet of Things, so much of it, when people get started, it seems like, okay, well, here you're left with kind of this, like, board with wires coming out of it.

24:14 Right.

24:15 Right.

24:15 And how does that feel like I really built a thing?

24:18 That's not a thing.

24:19 That's a board with wires coming out of it, right?

24:20 Right.

24:20 Yeah.

24:21 Yeah.

24:21 And, yeah, so, my goal is for them to make it look pretty by the end.

24:25 Or at least, you know, not like a board with wires coming out of it.

24:28 And most of them got there.

24:30 They all created, you know, some sort of housing for their project.

24:36 Some of them made it out of cardboard.

24:38 I didn't have a laser cutter at the time, but I did have a 3D printer.

24:41 So, I had a 3D printed, like, music box thing that turned out really well.

24:47 Yeah.

24:48 So, they do make that part.

24:50 It's nice because they can actually, when they get frustrated with the coding, they can say, all right, I'm just going to, you know, start working on the housing.

24:58 Because that's, you know, it gives them a little bit of a break.

25:01 Yeah.

25:01 Let's them focus on different things.

25:03 That's really cool.

25:03 Yeah.

25:03 Yeah.

25:04 By the way, I have a movie recommendation if you want to inspire them for 3D printing.

25:08 There's a documentary that just came out called Print the Legend, which is actually super dramatic about the history of, like, how MakerBot got formed and the other competitive ones.

25:18 So, let's check that out.

25:19 If you're the listeners, I think it would be helpful.

25:22 Yeah, that's great.

25:23 Yeah, surprisingly dramatic.

25:25 Okay.

25:25 And the other thing that you teach these girls is iPhone and Android development.

25:32 Yeah.

25:33 Which is, that's the hardest thing for me.

25:35 Because, of course, there was no internet when I went to school.

25:38 And there was definitely no mobile phones when I went to school.

25:41 Sure.

25:42 So, yeah, there was, so I'm constantly changing the language for that.

25:46 We're mostly, I mean, I personally have an Android, but most of my students mostly have iPhones.

25:52 You know, Apple basically owns my student population for whatever reason.

25:56 So, I could use, you know, Objective-C, but it just, it's hard.

26:04 It's super hard, yeah.

26:05 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.

26:12 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.

26:20 And I'm looking at possibly using TouchDevelop as, because it's browser-based, it's cross-platform, and that's another challenge I have is, you know, for the students who aren't iPhone people, what if they want to put their, you know, new create game on their phone?

26:39 And if you use any of Apple's development things, you're stuck with just the iPhone.

26:45 Right, and if you want to say, well, we're going to teach you Apple and then teach you Android, that's all of a sudden, like, way too much material to cover.

26:50 Exactly.

26:51 Because there's not a whole lot of similarities.

26:52 No, right.

26:54 I mean, yeah, Java, C, I know, so.

26:57 Yeah, I mean, there's other stuff like Xamarin and PhoneGap, and they're all okay, but it would be nice if Python had an answer there.

27:05 There's something, like, Kivy for Android, but not really on Apple, like you said, and that's where the majority of the students are, so.

27:12 Yeah, 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 kind of instant gratification,

27:24 the mobile development doesn't have that instant gratification, and it feels painful to them.

27:31 So, they have been good sports about it, but it is, it's not as, yeah, instantly gratifying as animating something in Python, for example.

27:40 Yeah, definitely not as developer-friendly.

27:41 Yeah.

27:42 I guess the counterbalance there to keep them going is they all have phones, and I have, you know, teenage daughters myself, and they love phones, and so, you know, if they could program that thing, that would be perfect for them, right?

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

28:06 One thing I wanted to ask you about as well as sort of a more general question is it seems like you guys are treating computer science, you know, really well, actually, as a core skill that you think at least recommend all the girls have.

28:21 Yeah.

28:21 Do you think computer science and programming is a core skill?

28:24 I mean, you hear a lot of, like, hype in the news, 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 Teachers Association, so I definitely think that, you know, computer science should be part of our core curriculum in some way.

28:45 It's hard to figure out how to get that into schools.

28:50 I mean, schools' budgets are super tight.

28:52 You know, there aren't computer science teachers walking around looking for jobs.

28:58 It's not like there's a glut of them and that we can just say, oh, there's a whole pool of teachers.

29:05 Let's just hire them and have them teach our computer science courses.

29:07 They're all going to work at, you know, startups.

29:10 That's right.

29:11 These guys are tired of making six figures at these exciting places.

29:14 They want to come in, you know, whatever.

29:16 It has got to be a hard place to hire people.

29:19 It is.

29:19 It's very much a chicken and egg problem.

29:21 It's like if we have the courses, could we fill those courses with teachers?

29:27 And, you know, we don't have the courses, so there's not demand created for the teachers.

29:34 So it's just like a really complicated problem.

29:37 But I think we're getting there in that a lot of states are starting, you know, to make, allow computer science to count as a math or science credit, which is nice.

29:49 It's Pennsylvania, where I am, has not done that yet.

29:53 And even though I'm in a private school, I'm surrounded by these fantastic public schools.

29:59 And so I can guarantee as soon as our state flips to say that computer science is required, we would be right behind them in requiring a computer science course for all of our students.

30:10 Or allowing it to count for math or science, whichever way it goes.

30:14 Right.

30:15 You guys already have the infrastructure there to just say, hey, it's required now, right?

30:19 Right.

30:19 Because you've been teaching it.

30:20 It's not like a school where they have, you know, maybe an HTML class, maybe.

30:26 Right.

30:26 Or Photoshop or, you know, a robotics elective.

30:29 Those are some of the common things they're done.

30:32 And it's hard because I think computer science is such a broad field.

30:36 If you're in it, you know that.

30:38 If you're not in it, you think it's just one thing.

30:41 It's just coding.

30:42 And maybe even in a specific language as opposed to the, I don't know how many languages there are now.

30:47 There are probably several hundred programming languages.

30:51 So, you know, most people have no clue that that's the case.

30:55 So they, you know, 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:04 Right.

31:05 If you could convince them that this is a thing they need, then they'd be like, well, geez, where do we start?

31:08 It's so overwhelming, right?

31:09 Right.

31:10 It is.

31:11 Yeah.

31:12 Yeah.

31:12 And I think, you know, and I do, even though the core of my courses is coding and programming, we take an awful 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.

31:28 You know, we talk about algorithms and we talk about, you know, different kinds of algorithms.

31:32 And we spend a lot of time talking about how it touches their lives.

31:37 I mean, it's great when you can talk about an algorithm and connect it to Facebook's algorithm for, you know, showing and hiding different parts of your news feed.

31:47 And then there's all the fun, you know, hacking that happens that always comes up.

31:52 So, you know, it's pretty easy to connect it to the real world and then talk about the things that they've already learned that are somewhat related to what's going on.

32:01 You know, if you've done an encryption project, then you sort of know how those hacking things happen.

32:08 I think there's some sort of, not barriers, some preconceptions or misconceptions rather that a lot of the population has that if we could break them, this would really change.

32:22 Like, for example, computer programming is boring and not creative.

32:27 Right.

32:27 It's a non-social thing you go do in the basement by the dark because you don't like other people.

32:33 I mean, you know, it's completely the opposite of that in today's world, right?

32:37 And if everybody saw that and they could, I don't know, you could think, well, maybe should we be doing geometry?

32:43 Right, right.

32:44 Or should, maybe we should be teaching programming in this slot where geometry about logical thinking through, like, axioms was the goal, right?

32:53 It would be so much better, I think, to do some sort of computer thinking there.

32:57 This episode is brought to you by Codeship.

33:15 Codeship has launched organizations, create teams, set permissions for specific team members, and improve collaboration in your continuous delivery workflow.

33:23 Maintain centralized control of your organization's projects and teams with Codeship's new organizations plan.

33:29 And as Talk Python listeners, you can save 20% off any premium plan for the next three months.

33:34 Just use the code TALKPYTHON, all caps, no spaces.

33:38 Check them out at Codeship.com and tell them thanks for supporting the show on Twitter where they're at, Codeship.

33:43 I agree.

33:50 Yeah.

33:50 I mean, it's funny because, you know, I mentioned that my major was creative writing.

33:54 And I swear, programming is a much more creative endeavor than writing poetry in a lot of ways.

34:01 It sounds weird.

34:02 And poetry is very isolating.

34:04 You know, you're in a room, you're writing poems, and maybe eventually someone reads them or you read them to someone.

34:10 But, you know, when you're making a website, everyone's going to see it.

34:16 You know, 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.

34:22 And that's pretty cool.

34:24 Yeah.

34:25 It's very, there's very few other places in the world that five people can get together for six months and build something and share it with 100 million people.

34:34 Right.

34:35 Yeah.

34:35 Where else does that happen?

34:37 Yeah.

34:37 Nowhere.

34:38 Nowhere.

34:38 So it's really amazing.

34:40 So I think what you're doing there with having, you know, that much exposure over time, do you, I should ask you, do you feel like your students are coming out with better conceptions?

34:52 I do.

34:52 I think that they definitely feel like it's not isolating and it's not lonely and that they're making really creative and interesting things.

35:04 Hopefully they're carrying that on to their classmates and beyond.

35:09 Certainly I've seen an increase in enrollment.

35:11 So that probably tells me that they're telling their friends that it's really cool and fun and not, you know, boring and awful the way that, you know, TV and film tends to make it look.

35:23 So, yeah, I think my hope is that when they graduate and go on and not all of them, you know, just like math teachers don't expect all their students to become mathematicians.

35:37 I don't expect all my students to necessarily become computer scientists.

35:40 But I think having that deeper understanding of technology that goes beyond, you know, 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.

36:05 You know, I keep getting pulled into things just here locally at school because I'm one of, you know, two people on campus that has that deeper understanding of, you know, how a database works and how it connects to the web and how, you know, that gets pulled in different places.

36:21 And I can't think of a single field or job that technology isn't important.

36:28 It's how businesses operate, you know.

36:30 It absolutely is.

36:32 And if, you know, if somebody wants to become a biologist, they're way more likely to be successful if they can do a little programming to automate their data analysis.

36:41 Exactly.

36:42 Or if they want to become, I don't know, a social scientist, right?

36:48 Like a sociologist, psychiatrist, something like, again, the programming.

36:52 Yeah, you've got to crunch the data.

36:54 Exactly.

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

37:03 Yeah.

37:03 Absolutely.

37:05 That's my thought.

37:06 Me too.

37:07 I'm with you.

37:08 Let's change the world.

37:09 Let's do it.

37:10 Let's do it.

37:10 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.

37:16 Are you guys doing anything with that?

37:18 Yeah, we are.

37:19 I just bought off of eBay about 400 or 500 punch cards to use as invitations for our Hour of Code.

37:30 We have done different things in the past.

37:34 We've done an evening event and invited people and we have them kind of learn how to code and we actually have the students do the teaching.

37:41 We're going to do it a little bit differently this time.

37:44 We're going to have it be a whole day event on a weekend when more people can make it.

37:51 It's a terrible time of year to have it because it's December and up here in the north anyway, the weather can interfere with anything you might have planned.

38:00 But we're going to run a three-hour workshop.

38:03 We have a partnership with Tech Girls, which is a local organization that provides free workshops for middle school girls to learn programming primarily.

38:15 So we have taught a few of those ourselves.

38:18 We offer our space as a resource for them.

38:21 And we're going to partner with them specifically for CS Education Week and have them.

38:28 We're running a workshop for their population.

38:31 And then we're going to have a showcase afterwards of both the projects that get created in that workshop and the projects that our students have created.

38:39 And we're hoping to have a speaker and food and all that good stuff.

38:42 That's really awesome.

38:44 Are you looking for volunteers?

38:45 Probably, yeah.

38:48 Yeah, cool.

38:49 So if you're in the Boston area, maybe think about throwing your name out there.

38:53 You know, I live in Portland, Oregon, even though I'm spending a year in Germany, right?

38:58 And so I've been helping out my – I have three daughters.

39:01 I've been helping out their school during the Hour of Code.

39:03 Oh, cool.

39:04 And it was just so successful.

39:07 I think the teachers and the principals were just blown away with what the kids could do.

39:11 Even first graders were just amazing.

39:14 And when you're working at first grade, second grade, third grade, those levels, there's no difference in the way that the girls or the boys perceive it in terms of excitement or energy or whatever.

39:26 Like something happens later, but if we can, you know, drive that interest early, then, you know, I think that could make a big difference.

39:33 I agree, yeah.

39:34 I guess regardless of where you are, you know, think about helping out the Hour of Code.

39:37 There's Hour of Code, which is December 8th, around then.

39:41 You know, there's so many resources out there that you don't have to put much effort into it, right?

39:46 You can go over to the Hour, you know, code.org, find some sort of pre-built, like, you know, teaching thing for the right level and just help kids through it is really all people got to do, right?

39:56 Yeah.

39:57 I mean, it's just, yeah, running them through it, letting them see what they can do.

40:01 And there's, yeah, like you said, there's so many resources online now, which is great.

40:05 Yeah.

40:05 It's definitely easier than when we were learning back in the day.

40:08 Yes.

40:09 Yeah.

40:09 Yeah.

40:10 You don't have to drag the book out.

40:11 That's right.

40:12 Look stuff up.

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

40:19 I don't think so.

40:21 This has been great.

40:22 I mean, if we can get Python to come up with a mobile computing platform, that'll solve all my problems.

40:27 I can just stay in Python forever.

40:29 That would be fantastic.

40:30 You know, it's not completely insane, right?

40:32 We've got things like PyPy, which are JIT compiled Python.

40:36 If we could switch the JIT compiler to an ahead-of-time compiler and get it to compile towards the right thing, right?

40:43 Maybe we could have us a model what the Xamarin guys are doing with C#, right?

40:48 Yeah, exactly.

40:49 Which isn't natively allowed on iPhone, but they've found a way to compile it for it.

40:52 So we can hope, right?

40:53 We can hope.

40:54 I don't have time to work on that, but I'm going to put that out there.

40:58 Somebody else can do it.

40:59 Yeah, so we'll throw the idea out.

41:01 How's that?

41:01 That sounds good.

41:02 Awesome.

41:02 So let me ask you two quick questions before you go.

41:05 For Python, what's your favorite editor?

41:07 I have to say, I kind of like PyCharm.

41:12 It's been nice.

41:14 Although I tend to work on the web a lot, so I'm using just your basic text editor for that.

41:20 Right, some kind of web IDE or a sort of smart text editor, rather.

41:25 Exactly.

41:25 I like color coding.

41:27 It's kind of my favorite thing.

41:28 At least in syntax highlighting.

41:29 Awesome.

41:30 And then are there like PyPI packages that you guys use that are really awesome you want to point out or raise awareness of?

41:37 What do you guys do in your classes that's really cool and well-received?

41:41 We've used NumPy a little bit or NumPy, depending on how you want to say it.

41:46 I like NumPy myself.

41:47 It just sounds like it's a soft, fuzzy, like, you know, Barney creature.

41:52 Students went a little nuts with the libraries last year, and they're just downloading crazy stuff.

41:58 They really were.

42:00 They probably downloaded 10 or so random libraries just to try to get stuff off the Internet.

42:05 We used, and I can't remember what it was, we used a couple of different Twitter packages that worked pretty well,

42:11 which was nice considering our Arduino Twitter packages didn't work.

42:16 So Python wins in that regard.

42:19 They worked great.

42:20 We were able to pull tweets really easily.

42:22 I think there's a tweet.

42:23 Is it Tweepy?

42:24 I think that was the one we ended up using.

42:26 Okay, cool.

42:26 Yeah, people should check that out if they want to integrate with Twitter.

42:29 Yeah, Twitter can be tricky if you don't have, you know, all that OAuth stuff.

42:32 It's way more complicated than it sort of seems like it should be at first.

42:35 Yeah.

42:36 Well, this we got running in like five minutes, so it was pretty easy.

42:39 Yeah, that's the way to do it.

42:41 Laura, this has been really interesting.

42:43 So I think you guys have a great mission, and it seems like you're making great progress.

42:47 There's almost no other high school I've seen that has, you know, four years of really interesting, modern-feeling computer science classes.

42:55 Well, thank you.

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

42:58 Yeah, thanks a lot.

43:00 Yeah, thanks for being on the show.

43:01 Talk to you later.

43:02 All right.

43:03 Bye.

43:06 This has been another episode of Talk Python to Me.

43:09 Today's guest was Laura Blankenship, and this episode has been sponsored by Hired and CodeShip.

43:13 Thank you guys for supporting the show.

43:16 Hired wants to help you find your next big thing.

43:18 Visit Hired.com slash Talk Python to me to get five or more offers with salary and equity presented right up front and a special listener signing bonus of $4,000.

43:27 CodeShip wants you to always keep shipping.

43:31 Check them out at CodeShip.com and thank them on Twitter via at CodeShip.

43:35 Don't forget the discount code for listeners.

43:37 It's easy.

43:37 Talk Python.

43:38 All caps.

43:39 No spaces.

43:40 You can find the links from today's show at talkpython.fm/episodes slash show slash 27.

43:46 Be sure to subscribe to the show.

43:49 Open your favorite podcatcher and search for Python.

43:51 We should be right at the top.

43:53 You can also find the iTunes and direct RSS feeds in the footer of the website.

43:58 Our theme music is Developers, Developers, Developers by Corey Smith, who goes by Smix.

44:03 You can hear the entire song at talkpython.fm.

44:06 This is your host, Michael Kennedy.

44:09 Thanks for listening.

44:10 Smix, take us out of here.

44:25 Developers, Developers, Developers, Developers, Developers, Developers, Developers, Developers,

44:33 Bye.

44:33 .

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