Learn Python with Talk Python's 270 hours of courses

#8: Teaching Python at Grok Learning and Classrooms Transcript

Recorded on Monday, Apr 27, 2015.

00:00 Talk Python to Me, episode number eight, with guest James Curran, recorded Monday, April 27th, 2015.

00:08 Hello and welcome to Talk Python to Me.

00:39 A weekly podcast on Python, the language, the libraries, the ecosystem, and the personalities.

00:44 This is your host, Michael Kennedy.

00:46 Follow me on Twitter where I'm @mkennedy.

00:49 And keep up with the show and listen to past episodes at talkpythontome.com.

00:54 This episode, we'll be talking to James Curran about Grok learning and teaching Python.

00:59 Before we get to the interview, I want to tell you that this episode is brought to you by Codeship.

01:05 Codeship is a platform for powerful continuous integration and continuous delivery as a service.

01:11 I'll talk more about them later in the show.

01:13 Please take a moment to check them out at codeship.com or follow them on Twitter where they're at Codeship.

01:19 And if you love this podcast, please send Codeship a message and say thank you.

01:24 Next, I want to highlight something that I think is pretty cool.

01:27 Abraham Smith, who is a professor at Fordham University in New York, sent us a message on Twitter.

01:33 He just wrapped up his course on scientific programming by encouraging his students to listen to a few key podcasts as they continue their learning.

01:43 That's awesome, Abe. Thank you.

01:54 You can follow Abe on Twitter where he's Abraham D. Smith.

01:58 Finally, remember, many of our shows now have full text searchable transcripts.

02:04 Look for the full transcripts button on the show page.

02:06 Now, let's get on to the interview with James.

02:08 Let me introduce James.

02:10 James Curran is an associate professor in computer science at the University of Sydney

02:15 and co-founder of Grok Learning, which you can find at groklearning.com.

02:20 That's G-R-O-K learning.com.

02:22 James has been teaching computer science to students and teachers for over a decade.

02:28 In 2010, he was named one of Sydney Magazine's top 100 influential people for his work in computer science education.

02:36 James is an expert in high school IT education and is currently a digital technologies writer for the Australian curriculum.

02:43 Follow him on Twitter where he's at DrJames Curran, C-U-R-R-A-N.

02:49 James, welcome to the show.

02:51 Hi, great to be here.

02:53 I'm really glad you could come on and talk about teaching Python, especially teaching the younger generation Python.

02:59 Well, Python is a great language to be teaching to kids, and we love using it, and it's great fun to teach it to the kids as well.

03:06 That's fantastic.

03:07 You have a couple of areas, one through Grok Learning and one through the university, as well as working with high school and lower grades.

03:15 So I think there's a lot of stuff to cover here.

03:18 But before we get into the sort of teaching programming, how did you yourself get it started?

03:22 So I started using Python, I guess, in about 1998 myself.

03:31 So Bob Kummerfeld, another associate professor in the school here, was a keen Python fan himself.

03:40 And in fact, some of our other staff had previously been contributors to some of the Python modules.

03:47 So Python was kind of a thing here at the University of Sydney from quite early on.

03:52 And so I just started using Python.

03:55 It was a great language to do lots of day-to-day data manipulation in.

04:01 And then we also kind of found it increasingly a good language to teach students.

04:07 And because it's so accessible, we found that we could just teach younger and younger students to code in Python.

04:13 And so much of it started from there.

04:14 That's fantastic.

04:16 Yeah, I think through some of your Grok Learning stuff, you could reasonably reach middle school kids, you know, sixth, seventh, eighth graders with no problem, possibly younger than that.

04:26 Absolutely.

04:28 So we've done a lot of work with teaching students in around the year seven, eighth grade.

04:35 I think that that's the ideal zone.

04:37 And in fact, the Australian curriculum that I was just involved in writing has mandated that kids will learn a text-based programming language as opposed to something like a visual language like Scratch.

04:49 So text-based programming is mandated for year seven and eight.

04:53 And Python, I think, is the ideal language to be teaching there.

04:57 You can go younger.

04:59 And I think that the interesting question is, how do you do the transition from a visual language to Python?

05:04 And one of the things that we've been doing with Grok Learning is to have a visual environment where you see the corresponding Python code and the blocks in that visual environment are as close as possible to Python constructs.

05:17 So that that mapping from a visual language like Scratch through to a text-based language like Python is as smooth as possible.

05:25 So if you do something like that, then I see no reason why you're not down in the year five, six kids or potentially even earlier if kids have had more experience themselves beforehand.

05:34 Yeah, that's fantastic.

05:36 So before we get too far in the details, I suspect a fair number of people have heard about Grok Learning.

05:42 I learned about you guys through working with a couple of local schools here in Portland, Oregon around the Hour of Code, which we can talk about in a little bit.

05:50 But before we do that, let's talk about Grok Learning.

05:53 What is it?

05:53 So Grok Learning was basically started with the primary mission of getting kids in school learning to programming in an authentic and engaging way.

06:04 So we've found in Australia, and we've found this is a problem in the UK and the US as well, is that many teachers don't have the necessary skills themselves to teach coding in school confidently.

06:19 And we wanted to find a scalable way of actually injecting our experience and enthusiasm into the classroom to help teachers teach programming.

06:29 And of course, not just programming, but kind of wider computer science and other technologies like, you know, web development, HTML, CSS, and so on eventually.

06:38 But definitely starting with programming is the core thing.

06:41 And we've been running an online programming competition in Australia through the University of Sydney and a thing called the National Computer Science School, which I'm a director of.

06:51 And we'd had a programming comp, which essentially wasn't a programming comp.

06:55 It was actually a five-week learning activity pretending to be a competition.

06:59 So there was a competitive element there.

07:01 You had questions that you needed to solve.

07:03 But unlike pretty much every other programming comp in the world, you actually learnt to program by doing the competition as opposed to it assuming that you already know how to code.

07:12 So we had the competitive element.

07:14 We had a new set of notes and questions were released every Monday morning, and the submissions needed to be put in by 5 p.m.

07:21 Or, sorry, 9 p.m. on Sunday night.

07:25 And that competition started out many years ago with about 150 kids and then got to the point where we had about 4,500 students in Australia doing the competition, where it was too big to do as a side activity in the university.

07:38 So we then got to the point where our success was kind of making it hard to do as a side job, and so we decided to take it out and start the company, Croc Learning.

07:51 And we'd done a lot of work previously with sponsors to help fund programs like NCSS, and I really wanted this to be something that was a self-sustaining entity.

08:01 So I wanted to set up a model whereby we could find a reasonable price point that teachers could afford to pay for their students to do this, offer them great value for money, but it'd actually be sustainable into the long term.

08:13 And so that's kind of where it was born.

08:15 I looked through the Hour of Code stuff and the Grok Learning site when I was trying to do some research for a local high school, looking for something more than the visual programming, you know, Scratch or some of the other visual programming languages seemed inappropriate for, you know, high school kids, right?

08:35 14, 15, 16, 17 years old.

08:38 That was definitely not where they should be, I don't think.

08:41 Yeah, well, I think that that partly comes down to what existing experience they've had.

08:46 So quite a lot of schools will actually teach some Scratch into the beginnings of high school or the end of middle school, so year 7, 8, say.

08:54 But that's if they haven't done programming before.

08:57 If they've done some visual programming earlier, then getting stuck into Python by that age is definitely the way to go.

09:03 Right, and I think one of the problems that many students will get hung up on, not the really committed ones who are going to plow through the errors until they get it to work no matter what, but, you know, the average kid will get hung up with weird compiler errors or runtime errors or syntax errors, just that kind of stuff.

09:22 And so what I really liked about what you guys do, at least the part that I've been exposed to, which is the hour of code stuff, is you have a really nice kind of walkthrough interactive environment in the browser that runs your Python and then verifies it.

09:37 And it really helps you and gives you hints and stuff.

09:40 Right, absolutely.

09:41 I mean, I think programming is one of the hardest things to learn entirely on your own because getting that feedback and support when you get a mysterious syntax error or when you get a runtime error or I think the other cases where you think your program is right, but actually there's some error that you haven't even noticed.

10:01 If you're not pulled up in any way by someone else who knows programming better or a system to say, hey, what about this case or you haven't thought about this or there's various other details that aren't quite right about your program, then you're not really learning all of those skills you need to count yourself as a programmer.

10:19 So that's what I meant before about where we really wanted to inject our expertise in a scalable way by having a system that gives you lots of feedback.

10:28 And the other thing we wanted to do with all of those little interactive snippets is really encourage students to mess around.

10:35 And I think possibly I actually learned to do this as a way of teaching from Python because the interactive interpreter was such a great way to experiment with and a great way to teach.

10:45 I mean, when I'm teaching Python in a university context, I usually just open a terminal window with a Python interpreter and just start typing stuff in.

10:55 So getting kids to see that they can mess around with little snippets of code to understand how they work and modify them in interesting ways.

11:03 We wanted to make sure that our online platform really encouraged that same kind of behavior.

11:17 Now let me take a minute and tell you about our sponsor for the show, CodeShip.

11:21 CodeShip is a hosted continuous delivery service focused on speed, security, and customizability.

11:28 You can set up continuous integration in a matter of seconds and automatically deploy when your tests have passed.

11:34 CodeShip supports your GitHub and Bitbucket projects.

11:37 You can get started with CodeShip's free plan today.

11:41 Should you decide to go with a premium plan, Talk Python listeners can save 20% off any plan for the next three months by using the code TALKPYTHON.

11:50 That's T-A-L-K-P-Y-T-H-O-N, all caps, no spaces.

11:56 Thanks to CodeShip for sponsoring the show.

11:59 And I encourage you to check them out right now at CodeShip.com and thank them on Twitter where they're at CodeShip.

12:05 CodeShip.com and thank them for the time.

12:35 Really designed to fit in an hour or realistically probably a couple of hours depending on your student.

12:40 Right.

12:41 Okay.

12:41 I really thought these were interesting.

12:43 You have some that seem like they would appeal a lot to girls, which I think is sometimes a hard problem with a lot of the examples people come up with.

12:52 They'll come up with like robots that smash each other or, you know, like that's not necessarily appealing to young girls.

12:58 And so I really thought your is Eliza human where you create kind of an artificial chatbot, a really interesting example.

13:06 Yeah.

13:06 Well, I mean, Eliza is a lot of fun.

13:08 And my area of research in the university is computational linguistics.

13:13 So I'm very interested in language and the ways in which language can be – and language skill can essentially be faked by a fairly simple bit of software.

13:21 And Eliza is definitely the most famous example of that.

13:24 I mean, I wish in some sense it was called a week of code rather than an hour of code because there's a lot more exciting backstory about artificial intelligence and the Turing test and all kinds of things you'd really love to bring into Eliza that make it come alive a lot more than just saying, hey, we're writing a program that reads some input and echoes some output in slightly different ways.

13:48 So it is a great one.

13:49 And we've got quite a diverse team and we just come up with questions and things that we would have liked to solve at school.

13:57 I mean, I don't really think of Eliza as being especially targeting towards girls.

14:04 I just think it's a great example that involves language.

14:06 And we try to have a range of language problems, maths problems, science problems, sport, popular culture.

14:13 When we run our competitions, we try to have a range each week of the kind of questions so that there's something in there for everyone.

14:19 Right.

14:20 I think your disease epidemic is really nice because it's a good tie into science and biology.

14:26 Right, exactly.

14:27 I think maybe my favorite might be the dark tunnel, which is a mud.

14:32 I don't know how many people remember muds, but boy, I played those a lot when I was in high school and college.

14:37 They're pretty awesome.

14:38 They are.

14:38 They're a lot of fun.

14:40 What I think is great about a mud is that you can actually get quite a long way without having to use many advanced programming concepts.

14:51 And you can actually build it up in quite a graduated fashion.

14:54 So the thing can just start out as a massive sequence of if statements if necessary.

14:58 And then you can slowly build a more general framework for your mud as you need new features in the system.

15:06 And so you can start all of the way from input and print in Python through to OO just by expanding on the various bits of functionality you'd like to have in your mud.

15:17 So we've had a lot of success teaching muds to students and to school teachers as a way of motivating programming and giving the keen students a huge amount of scope to expand it in ways that interest them.

15:33 I mean, that's another thing that I think is quite critical when you're teaching programming is showing that, you know, this is not a question where you just get the right answer and that's all there is to it.

15:42 If you really want to go to town with something, you can build almost anything you can think of.

15:46 And that's pretty special about programming.

15:48 It doesn't apply to many other jobs in life.

15:50 No, if you can dream it, it almost can be done, right?

15:54 Right, exactly.

15:55 I mean, if you happen to be the kid that thinks of NP complete problem as the thing that you want to solve, well, you're out of luck there.

16:02 But most of what you can think to do, you can do, which is, you know, is just amazing.

16:07 Yeah, it really is something special, I think.

16:09 And, you know, you're really exposing these young people to that.

16:13 And I think if they get a taste of that magic, you know, they're like, wow, I really did this.

16:19 I really built this.

16:20 That can really spark a fire that can last a long time.

16:25 Right, absolutely.

16:25 And I think another thing about programming, and this is, I think, a more general thing about schools around the world,

16:33 is that we often don't actually push our kids hard enough to achieve things.

16:37 And I don't mean push them and pressure them.

16:40 I mean set them a goal that is challenging for them, to give them something that they really find a bit of a challenge to do,

16:46 but then give them the support to actually be able to achieve that and come out with a sense of accomplishment at the end.

16:52 And some of the feedback that we've got from our Hour of Code activities, but even more so from our much longer five-week competitions,

16:59 is that kids really do get a strong sense of reward and achievement of having conquered these programming problems.

17:08 And that's actually the same mentality that drives most people that I know in the IT industry,

17:13 is that there's, you know, the joy of solving a problem, and especially a problem that you don't really have a good sense of how to solve when you start,

17:22 is one of the things that makes working in IT and being a programmer exciting.

17:28 And we really wanted to have that sense conveyed to the kids, and also for that to be a driver of learning.

17:34 I mean, if you've got a problem that you want to solve, and you accidentally learn things in the process, I feel like there's no better way to learn.

17:41 Yeah, absolutely.

17:42 You know, I think a lot of adults who are in charge of education of younger people, you know, teachers, principals, and so on,

17:49 they find computers harder, they have found computers hard, and they think of programming as something there's just no way they can do.

17:55 So I think they're a little uncomfortable introducing it to their classes.

18:01 And, you know, during the Hour of Code last year, I was really lucky.

18:04 I got to work with my daughter who's six years old, and I got to work with her principal at her school.

18:09 And luckily, the principal actually worked at Microsoft before coming over.

18:15 So I had some experience, right, which was really great.

18:19 And we were talking about how do we bring Hour of Code to this elementary school, first grade through fifth grade, you know.

18:24 And it was like, well, maybe we can do it for fifth grade, possibly we can do it for fourth grade.

18:29 And we ended up introducing it for first, second, third, fourth, and fifth.

18:32 And even the first graders, like, blew the teachers away.

18:35 It was just amazing.

18:36 And at the beginning of the conversation, it was like, well, maybe fifth graders can do this.

18:40 At the end, it was like, wow, look what the, you know, the six-year-olds did who can't even read hardly, you know.

18:44 So it was really nice.

18:46 And some of those Hour of Code activities like the Frozen activity, for example, just bang on what younger kids are interested in and just really engaging stuff and a great place to start thinking about some of the underlying concepts of programming.

19:01 So I think the Code.org gang really have done an amazing job with that.

19:09 And it really is, as you said, finding a teacher that either has the confidence or finding ways to give teachers the confidence and skills to deliver this stuff.

19:19 And to be fair to teachers, I mean, computing is one of the few disciplines where the things that you've learned can be thrown away every few years as the technology changes.

19:30 If you think about, for example, being a secondary maths teacher, what you learned at university or college to become a maths teacher will probably set you up your entire career.

19:39 But if you're a computing teacher, typically you haven't actually got an undergraduate computer science degree as you're backing anyway that you've usually started in some other discipline.

19:49 And you need to learn a constantly changing set of technologies and skills to teach your students.

19:57 So it's actually quite a special subject in the scheme of teaching at school that it is changing fairly frequently.

20:06 And teachers rarely get given enough time and support to actually continue their own professional development to keep up.

20:12 I mean, even if you're in the IT industry full time as a professional, spending enough time on your own professional development is one of the challenges.

20:21 So teachers have that, you know, 10 times as bad.

20:24 Yeah, at least 10 times.

20:26 So, you know, one thing we could do is encourage everyone out there listening, because almost everyone listening to this show would be fairly qualified to do this, is get involved with your local schools and teachers and just volunteer a little bit, right?

20:38 Absolutely.

20:39 Absolutely.

20:39 And we've actually had quite a lot of IT professionals, usually who have, you know, a son or daughter at a local school that want to do some programming in school that don't quite know what's the right way to approach it.

20:52 They may not have a good understanding of the pedagogical approaches in school or how it would fit in with the curriculum and so on.

20:59 That's exactly the kind of thing that our platform helps with as well, because we've got activities that we know are age appropriate for certain groups and so on.

21:08 And so it kind of, I mean, it helps you from either direction.

21:12 If you're a teacher looking for the more technical element, then using our system in class is a great way to provide, say, a five-week learning activity to your students.

21:21 And if you're an industry professional looking to help out in your local school, then using our activities as a starting point for that engagement with the local teachers and students is a good way to ensure that what you're doing is relevant and age appropriate.

21:35 Yeah.

21:36 I think using a platform like yours makes it dramatically more approachable.

21:40 So that's great.

21:40 It seems like you guys are doing specific stuff to help train teachers as well.

21:46 Can you speak to that a little?

21:48 Yeah.

21:48 So, I mean, some of that work isn't actually within Grok Learning specifically.

21:52 It's more within my broader university role that we've done a lot of teacher training over the years.

21:58 But we do have quite a lot of teachers that actually use the Grok Learning courses themselves for their professional development.

22:05 For example, they might do one of our competitions the year before they teach it to their students themselves.

22:11 If you've got a student – sorry, if you've got a teacher that's brave enough to actually say to the kids, look, I don't know all of this stuff myself now, but we're going to learn it together, then I think that that's an amazing situation.

22:24 And the teachers and students get a lot out of the fact that they're learning together.

22:29 Then what you actually see is rather than a teacher just being at the front teaching, what the teacher is doing is modelling ideal learner behaviour.

22:36 And that's a very powerful thing to do and quite a joyous thing for a teacher to be able to learn stuff alongside the student and kind of change the classroom dynamic entirely.

22:46 But it does take a certain amount of bravery to say that I'm going to change the paradigm and the student's expectation that the teacher knows everything in advance.

22:54 But we have a lot of teachers that, for example, essentially compete with their kids in a fun way to solve the questions in our various courses and competitions.

23:03 So a lot of teachers use it in professional development that way.

23:07 And it's also a very efficient way of doing professional development because you're actually teaching at the same time.

23:13 Yeah, that's really great.

23:14 And I think it does model very good learning behaviour because if you're going to be in the software industry, you're going to be doing this forever, right?

23:22 And there'll be many times you don't know the answer.

23:24 You're like, first time, I need to talk to a database.

23:27 Well, I have no idea how to do that, but let's get started.

23:29 We'll figure this out, right?

23:31 And that's a really valuable skill to be able to approach a problem you don't know how to solve already or you're not given a formula to.

23:37 Right.

23:38 And if you think about the way much of school is structured in most countries around the world, it's very much not that model of learning.

23:48 It's very much here's up front the things you need to know and here are the problems that you can then solve using that knowledge rather than flipping it on its head and saying, well, look, here's a problem.

23:59 You don't know everything you need to know to solve this problem.

24:02 Go out and find it.

24:04 And so that's where the problem-driven learning and the challenges really are quite an important part of our model and giving kids a different way of thinking and a confidence to say, you know what?

24:16 I can solve a problem that at first glance I don't know how to solve.

24:20 That's right.

24:21 And I really like your platform that it really guides them in the very early stages so they don't get frustrated when they're kind of presented with the unknown, which is just the natural state of this programming world.

24:32 It kind of helps them get over the hump and then they might have the persistence or the interest to actually do the hard work to keep learning.

24:41 Right.

24:42 And I mean another dimension that we haven't talked about yet is that programming really requires a precision that isn't required in many other parts of a student's or teacher's life.

24:55 So, you know, when you have a specification that says that your program will produce output in exactly this format where everything from punctuation, capitalization, spacing, and so on could be the difference between you successfully interacting with an API or not, that really isn't a natural state of thinking for most people and definitely not something that they're exposed to that often in the rest of their classwork.

25:21 So, if you have an auto marker, I mean all auto markers demand a level of precision in the things that they're marking.

25:29 But if you don't actually educate the users into that way of thinking and how the auto marker works, then it's an incredibly frustrating process to think, you know, I've written this program, I've sweated blood to get it to work, and then your system says, but the punctuation is wrong, or even worse, and it's very common to actually give you no real information about how your program is wrong except for you to stare at it for ages and ages and realize that you've made a comma into a full stop or something like that when you shouldn't have.

25:59 So, having those walking people through using the marker for the first few questions as a way of learning to be precise and reading the question very carefully, but at the same time, how the auto marker will give feedback is really an important part of the recipe.

26:17 Yeah, I think you're absolutely right there.

26:19 You know, that is an unnatural way to think, especially for children, but even for, you know, adults in high school and college kids.

26:27 The closest analogy I can think of it in my experience is it's almost like a mathematical proof with no forgiveness.

26:33 You know, it's… Right, absolutely.

26:36 Not only do you have to have all the steps right, but they have to be exactly right.

26:39 It's not like, I know what you mean.

26:40 It's got to be right.

26:41 Yes.

26:41 Yeah, exactly.

26:43 I mean, that analogy is perfect.

26:45 The thing is, with a math's proof, you can kind of do the beginning and kind of do the end and kind of muddle your way through the middle and get most of the marks.

26:53 But when you're programming, the computer is incredibly unforgiving and it's one of those few things where you hand in something that you know is wrong and you really know is wrong because the program just isn't doing what it's meant to be doing.

27:07 So, I think that adds a lot of frustration.

27:10 The other thing is that is a general skill about this precision is reading a question carefully and working out exactly what it requires of you is a very general life skill.

27:22 And that kind of precision thinking is something that we don't really have that many other opportunities apart from in maths to encourage students to acquire these skills.

27:33 So, I think when you do something like the Grok Learning Activities, you're getting a lot more than being able to say you can write a program at the end.

27:40 You're actually developing some more generic skills that are very useful.

27:44 Right.

27:45 It might even be more important to learn those skills than to learn programming.

27:48 Well, absolutely.

27:48 Because most people won't actually become programmers and that's perfectly fine.

27:52 We just want them to have a genuine experience of it and learn some more useful general problem-solving techniques along the way.

28:00 Right.

28:01 And I think something like this is way more realistic or approachable to kids than here we're going to do some geometry proofs or we're going to do advanced algebra work.

28:13 Right.

28:14 That just doesn't feel real to them.

28:15 But if they see creatures running on the screen and, you know, that's something they can connect with.

28:19 But they're learning basically the same skills.

28:21 Right.

28:22 Yeah.

28:22 Yeah.

28:22 That's excellent.

28:23 So, what's your long-term goals for coding in school?

28:26 Well, in Australia, our national curriculum will require students from year three through to year eight to do visual programming and then text-based programming.

28:40 And so, our first goal is really to be able to support students and teachers in actually satisfying what are pretty massive ambitions in terms of getting kids to be coding at school.

28:52 The UK has recently started, last September, a new curriculum that has very similar goals and expectations of teachers.

28:59 And I believe we've got a short window, let's say three to five years, of really getting teachers up to speed and delivering this stuff before people get a bit blasé about the whole computing in schools thing and it just becomes another idea that didn't work.

29:15 So, at the moment, we're really racing to get the teachers supported who are delivering the new curriculum.

29:22 In the US, the situation is a bit more complex as each state has its own and sometimes even down to a lower level than the state, its own curriculum.

29:34 So, it's a bit more of a fragmented market, but essentially getting kids to have that genuine experience right across their school career is what we're interested in.

29:44 So, that every student can say somewhere along the line they've been exposed to computer programming in a genuine and inspiring way.

29:52 And if they decide not to do it later on, having done that, that's fine.

29:56 I feel like our job was to expose them to it as it really is.

30:02 And if they decide then that it's not for them, that's fine.

30:05 But for many others, it will be something that they can actually be quite passionate about.

30:11 And then we want to be able to offer further courses to extend people far beyond the kind of hour of code starting point.

30:19 So, I think one of the ways you can think about Grok learning is hour of code was great.

30:24 You enjoyed doing an hour of Python.

30:26 What next?

30:26 And what's the sequence that gets you from there to Guido, right?

30:30 That's right.

30:31 In the long term, it would be fantastic to have the entire sequence of courses that could start with you learning the very basics and then going the way through to quite sophisticated programming, computer science, and then all of the surrounding technologies as well.

30:47 So, as I said, web development, databases, courses, we'd eventually like to, and when I say eventually, within the next 12 months, have the full web development stack where you could start out learning Python, learn about databases, learn HTML and CSS and JavaScript, and then actually deploy a full Django project or something like that on Heroku as a kind of endpoint of all of those things.

31:14 And that's achievable for kids that want to commit the time.

31:19 And, I mean, our focus right now is students, but there's no reason why professionals and anyone else that's, you know, scientists, engineers that want to further develop their programming skills, why Grok shouldn't become the go-to place for them as well.

31:33 Right.

31:33 Absolutely.

31:34 And Skype cut out just for a minute, so I apologize if you just mentioned this, but you have some more advanced classes coming up, right, that you're working on?

31:41 Right.

31:42 So, the way that our competitions run, for example, at the moment is that we actually have four levels of our competition, so they already go to reasonably advanced Python materials.

31:54 So, the advanced course currently has things like regular expressions, object-oriented programming, some recursion and some parsing, and then various bits of computer science, sometimes some computational geometry or other algorithms and things that they implement.

32:11 So, we've already got a bit of a range, but we also want to start branching out to courses that cover specific technologies as well.

32:20 So, you know, we use Django as the back end for our system.

32:23 I'd love to have a Django course.

32:25 We also use Tornado.

32:27 It'd be great to have a Tornado course as well.

32:29 And to bring that same power of auto marking that we have with the core programming courses, bring that to bear on all of these other technologies as well.

32:40 Yeah, that's really great.

32:41 I think, you know, these kinds of courses, you go through them and, you know, putting your final exam or your final project out on some cloud system using continuous delivery through GitHub or something.

32:52 Like, that's a really amazing place to be in.

32:55 I think that's a nice idea.

32:59 Yeah, well, I think one of the things that's difficult at school for students that are really keen is getting started on a project can be difficult.

33:07 So, you've got some vision for a website you want to build.

33:11 What are the kind of core bits of that website and how do you get those things going?

33:14 I think a lot of students that have a vision for something they'd like to produce don't necessarily know how to go from, okay, I can write some Python code to how do I actually build and deploy a site with users and profiles and various other things at the core.

33:30 I'd like to be the platform or have the platform that allows them to get to that first stage where then their creativity can take off and do the thing that they actually want to by building on top of that framework.

33:44 Yeah, I think that's really great.

33:46 You know, there was some article that I saw a while ago, I think from a guy at Google, that basically said computers and programming are fractals.

33:56 And every time you think you see the picture, you get a little closer and there's a whole bunch more pieces.

34:00 And that can be really challenging.

34:01 So, what I'm thinking is, oh, I learned to program Python.

34:04 Now, maybe I'll write a game.

34:05 Oh, wait.

34:06 Now, I've got to learn about files and the file system.

34:08 Now, I've got to learn about databases.

34:09 And now, I've got my web app.

34:10 I'm ready to put it out.

34:11 Oh, now, I've got to learn about web servers and HTTP.

34:15 And there's just layer after layer as you dig into it.

34:18 So, the more we can give people help in the beginning, the better.

34:21 Absolutely.

34:22 All right, James.

34:24 I think that might be a show.

34:26 This sounds like some really interesting stuff.

34:28 And I just want to second the call for everybody to go out there, get involved, check out Grok Learning next year when Hour of Code comes out.

34:36 You know, volunteer with some local school.

34:38 It's really easy with things like the Grok Learning walkthroughs and the Hour of Codes or Code.orgs tutorials and so on.

34:47 So, James, is there anything you want to – that we haven't already spoken about, call the listeners' attention to or give a shout-out to?

34:54 Well, look, I think if there's anyone that's interested in learning Python that you're thinking what's the resource to send people off to, then I'd like to think we're a great place to start for any age, not just the school kids that we've been talking about.

35:10 But I think let me just reiterate your call to arms for all Python programmers to get themselves into a local school.

35:18 Contact the teachers, say, hey, how can we help you teach some programming in schools?

35:23 I think what you'll find is that there's a huge amount of interest from teachers, but they just don't have the skills themselves.

35:29 And I really believe there's no greater joy of programming than sharing that with someone else.

35:34 Absolutely.

35:35 Well, this has been a great conversation.

35:38 Thanks for being on the show, James.

35:39 Thanks very much.

35:40 You bet.

35:42 This has been another episode of Talk Python to Me.

35:45 Today's guest was James Curran, and this episode has been sponsored by Codeship.

35:50 Please check them out at Codeship.com and thank them on Twitter where they're at Codeship.

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

35:57 It's easy.

35:58 It's Talk Python, all caps, no spaces.

36:01 You can find the links from today's show at Talk Python To Me.com slash episodes slash show slash eight.

36:09 And if you're feeling generous, please check out our Patreon campaign at Patreon.com slash mkennedy.

36:14 Be sure to subscribe to the show.

36:16 Visit the website and choose subscribe in iTunes or grab the episode RSS feed and drop it into your favorite podcatcher.

36:23 You'll find both of these in the footer of every page.

36:26 This is your host, Michael Kennedy.

36:28 Thanks for listening.

36:29 Stating with my voice, there's no norm that I can feel within.

36:33 Haven't been sleeping, I've been using lots of rest.

36:36 I'll pass the mic back to who rocked his best.

36:39 Talk Python To Me is created by PDX Web Properties LLC in Portland, Oregon.

36:57 This show is copyrighted and all rights reserved.

37:00 Thanks again for listening and see you next time.

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