Teach our kids to code? No, teach them how to think
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 234 | |
Author | ||
License | CC Attribution - ShareAlike 3.0 Germany: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this | |
Identifiers | 10.5446/33000 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
re:publica 2017125 / 234
1
5
7
10
12
13
18
19
20
22
31
32
37
42
43
44
48
51
65
72
74
78
79
88
89
101
104
106
107
108
109
115
127
138
142
150
152
156
159
160
166
167
172
175
181
183
185
186
188
191
197
201
204
206
208
210
213
214
215
217
220
221
223
224
226
234
00:00
Computer animationJSONXMLUMLLecture/Conference
00:32
CodeCASE <Informatik>Goodness of fitCausalityLecture/Conference
01:20
Computational physicsNeuroinformatikMachine codeCodeLecture/ConferenceMeeting/Interview
01:46
Parameter (computer programming)MereologyCodeSoftware developerBitSoftware industrySoftwareLecture/ConferenceMeeting/Interview
02:34
CodeUniverse (mathematics)Student's t-testLine (geometry)Extreme programmingSet (mathematics)Computer programmingLecture/Conference
02:59
Procedural programmingMultiplication signWritingCodeProgramming languageComputer programmingStudent's t-testLecture/Conference
03:44
Multiplication signTotal S.A.Turtle graphicsVirtualizationRight angleResultantProgrammschleifeLecture/Conference
04:08
Decision theoryRight angleHeat transferType theoryMultiplication signCASE <Informatik>Game controllerSoftware testingVideo gameLine (geometry)Presentation of a groupSquare numberLecture/Conference
05:22
TextsystemCartesian coordinate systemMobile appProjective planeSpreadsheetDatabaseWordEmailProduct (business)Integrated development environmentProcess (computing)DampingLine (geometry)NeuroinformatikFormal languageSingle-precision floating-point formatGame controllerProgramming languageCodeQuicksortLecture/Conference
07:00
CodeProjective planeQuicksortInstance (computer science)Integrated development environmentProgrammschleifeVariable (mathematics)Drop (liquid)WaveformAlgorithmStatement (computer science)Computer animation
07:54
CodeWordParameter (computer programming)Lecture/Conference
08:29
CodeCodeComputer scientistBitMachine codeImage resolutionFormal languageSeries (mathematics)Lecture/Conference
09:06
CodeCore dumpComputer programmingDifferent (Kate Ryan album)Formal languageLevel (video gaming)Programming paradigmComplex (psychology)JSONXML
09:31
CodeProduct (business)Process (computing)Core dumpPoint (geometry)CodeProduct (business)Process (computing)Computer programmingNeuroinformatikLecture/ConferenceJSONXML
10:00
Computer programmingMereologyCodeLogicDrop (liquid)Lecture/Conference
10:42
Machine codeArithmetic meanRight angleCodeComputer programmingWritingJSON
11:13
CodeLine (geometry)Revision controlDirection (geometry)CodeComputer programmingAdditionType theoryLine (geometry)Image resolutionMachine codeResultantProgrammer (hardware)Set (mathematics)WordPower (physics)Lecture/ConferenceJSONXML
12:08
MereologyRevision controlMachine codeMultiplication signLecture/ConferenceMeeting/Interview
12:34
Dependent and independent variablesMusical ensemblePositional notationPattern languageMusical ensembleMereologyMachine codeNeuroinformatikPattern languageDependent and independent variablesSoftware developerEuler anglesCodePositional notationAnalytic setStatisticsAdditionResponse time (technology)HypermediaCovering space
14:04
Computer scienceNeuroinformatikLine (geometry)Term (mathematics)Heat transferCodeLecture/ConferenceMeeting/Interview
14:41
ComputerComputational physicsFormal grammarKey (cryptography)MereologyComputer scienceNeuroinformatikLecture/ConferenceMeeting/InterviewJSONXML
15:12
NeuroinformatikKey (cryptography)AlgorithmVirtual machineBitLogicLecture/Conference
15:38
Pattern languagePerformance appraisalOrder (biology)Network topologyConnectivity (graph theory)1 (number)Task (computing)Point (geometry)TelecommunicationGreatest elementHelmholtz decompositionStrategy gameSeries (mathematics)Set (mathematics)Pattern languagePattern recognitionMereologyNeuroinformatikAbstractionMachine codeCodeElectronic signature
17:39
Goodness of fitAlgorithmInformation securityMultiplication signComputer programmingSqueeze theoremGame theoryAsynchronous Transfer ModeStudent's t-testLecture/Conference
18:26
Squeeze theoremRevision controlOpen setTable (information)Student's t-testDialectProcess (computing)NeuroinformatikComputer animationLecture/Conference
18:53
Program slicingWhiteboardStudent's t-testLengthRippingLecture/ConferenceMeeting/Interview
19:44
Computer multitaskingSqueeze theoremRevision controlOpen setPattern languageDifferent (Kate Ryan album)CodeLine (geometry)Pattern recognitionNeuroinformatik
20:09
Student's t-testSet (mathematics)Medical imagingMultiplicationNumberHelmholtz decompositionConnectivity (graph theory)MereologyCircleControl flowLecture/ConferenceMeeting/Interview
20:46
Pattern languageCircleSet (mathematics)AbstractionCartesian coordinate systemPattern recognitionHelmholtz decompositionBitComplex (psychology)Arc (geometry)CircleComputer animation
21:20
QuicksortConnectivity (graph theory)Line (geometry)Lecture/Conference
21:43
Line (geometry)Complex (psychology)Multiplication signArmMedical imagingLecture/Conference
22:12
AbstractionPredictabilityTerm (mathematics)NeuroinformatikKey (cryptography)Complex (psychology)Computer animationLecture/Conference
22:40
Revision controlLecture/Conference
23:04
NeuroinformatikProjective planeComputer scientistAbstractionJSONXMLComputer animationLecture/Conference
24:42
Different (Kate Ryan album)Field (computer science)Computer scienceQuicksortNeuroinformatikCartesian coordinate systemComputer scientistLogicEndliche ModelltheorieLecture/Conference
25:46
Computational physicsField (computer science)Variety (linguistics)Presentation of a groupGraph (mathematics)Lecture/ConferenceJSON
26:21
Server (computing)Lecture/Conference
27:11
Form (programming)NeuroinformatikResultantQuicksortLevel (video gaming)Key (cryptography)AlgorithmQuantumLecture/ConferenceMeeting/Interview
28:03
BitMoment (mathematics)CuboidDifferent (Kate Ryan album)Lecture/Conference
28:47
British Computer SocietyPoint (geometry)NeuroinformatikCasting (performing arts)Self-organizationLecture/ConferenceMeeting/Interview
29:15
NeuroinformatikCASE <Informatik>Goodness of fitExpert systemPhysical systemCasting (performing arts)Set (mathematics)State of matterWave packetLecture/ConferenceMeeting/Interview
30:36
Lecture/ConferenceComputer animation
Transcript: English(auto-generated)
00:19
Okay, thank you very much, I'm glad you could all make it.
00:22
This is my first talk at Republicus and so far I've only ever been a spectator at these talks. I'm glad to be with you and talking to you. So what am I here to talk about? So the talk of my title, possibly slightly provocative title, Teach our kids to code, no, first teach them how to think.
00:44
Basically I'm here to make a case. The case I want to make is that this phenomenon in IT education that we've seen in the last few years called Teach Kids to Code is worthwhile.
01:01
It's a noble cause, I think it's good. But I also think that something is missing and I want to make a case for what we should add to it to make it even better. So just quickly what I'll talk about.
01:24
I want to give you a brief overview of how we got here which is basically a history of how we tried to teach kids IT and computing in the past. So if you don't already know what Teach Kids to Code is all about, you'll find out. And then I'll go through some of the problems I think that there is with this approach Teach Kids to Code.
01:49
I'm mostly going to rely on other commentators in industry and academia to kind of make the arguments for me. I'll just quote them. I just happen to agree with these people. And then I'll come to the how to think part of the talk.
02:04
The how to think part is this thing called computational thinking which is an idea that aims to fill in what's missing with the Teach Kids to Code. So first of all, just a little bit about me. Just if you're wondering who am I and why should I listen to this guy.
02:21
So I'm a software developer. That's me in my early professional days surrounded by some of the latest technology. I've worked at software companies very big, very small, even co-founded my own a few years ago. I'm a teacher, so I had a stint in academia for a few years.
02:41
I was a researcher but also taught novice university students who had never written a line of code before, taught them how to program. I've also taught at the other end, the other extreme in corporate settings with very, very advanced people who probably knew more than me about the subject I was teaching them.
03:00
And also I'm a writer. I didn't have a picture of myself writing so I had to kind of make one up. But writing is something that takes up more and more of my time these days. I've just finished my second book which coincidentally is about computational thinking. Ask me more later if you want to know. Okay, so let's get to the meat of the talk, the story so far.
03:24
So perhaps the first or earliest attempts to teach coding to kids in schools was this idea that came from Seymour Papert who was a pioneer in education at the MIT Media Lab. The idea was a playful approach to learning programming using this thing called logo programming
03:43
which was a kind of programming language which allowed the student to control a pen, sometimes called the turtle because it was sometimes a physical turtle with a little pen in its stomach. Other times it was a virtual turtle but whatever. You gave it commands like move forward, move, turn right, pen down, pen up.
04:02
And as a result of giving it commands you could instruct it to make pictures. That included things like looping. So draw a line, turn right, draw a line, turn right and so on. And you've drawn a square for example. Make decisions. So if something is the case do that, otherwise do that and so on.
04:21
These are things which you should recognize maybe from coding if you know how to program. And the idea was that this would encourage children to become apprentice epistemologists. Give them problem solving skills which would serve them in life. Something that Papert sometimes called procedural thinking. However when the research looked into whether this actually worked,
04:44
whether the goals were actually met, control tests were kind of conflicted about the outcomes. Children didn't necessarily leave with transferable skills coming from this approach. And it kind of failed to become a linchpin in IT education.
05:02
I never encountered it for example throughout my time in schools in the UK. I should point out that I probably have an anglophone bias in this presentation. I'm familiar with UK and US education. Not so much other places in the world. So what happened after that? So we're up to the 1990s now, 2000s.
05:23
So we kind of dropped the idea of teaching logo. Pretty much dropped it. And the goal was now to teach children to use common applications. So they'd be learning typical apps like word processors, spreadsheets, databases. My final year IT project was to build a Microsoft Access database with mail merge in Word.
05:45
Not a single line of code. And later on I took the ECDL. Anybody take the ECDL? Now that's a European computer driving license. Yeah, always gets a laugh.
06:01
Which certified me that I could use Microsoft products. Woohoo, yeah, thank you. Lucky old me. But laughing aside, I guess it's kind of a noble intent. After all, children should be proficient in using these basic tools. And word processing and spreadsheets can be powerful.
06:23
But it has to be admitted that it makes children rather passive users of computers. And quite dependent on applications made by the wealthiest corporations on the planet. So we said, okay, let's not make our kids passive users. Let's make them empowered controllers of computers.
06:41
Let's teach them to code. Let's do things like teach them programming languages like Python. Python is a relatively friendly programming language. Let's give them fun environments like Scratch. Anybody heard of Scratch? Oh, that's good. So Scratch is a much more colorful, friendly sort of programming environment
07:03
where the kids can almost drag and drop and snap little pieces of algorithms together. And they learn things like what if statements are and while loops and variable assignments and things like that. And I like it.
07:21
In some respects, it goes back to the spirit of Seymour Papert. Project led, fun, dealing with concrete things rather than abstract ideas. But I also worry that it's not the whole story. And by itself, it's not going to help an awful lot.
07:41
It's not going to do an awful lot to educate children. For instance, how do we make sure we don't make the same mistakes as before where, okay, the kids may learn some cool stuff with four loops and if statements. But it doesn't really give them transferable skills. It doesn't give them inspiring new ways to think about the world.
08:02
So phrased in my own words, how to make sure it doesn't just teach but it also educates. And it turns out I'm not alone. When I look into this, I see a lot of writers, commentators from industry and education who I have to agree with who are making very similar arguments.
08:21
I should add a disclaimer here. I'm not advocating that we take away the code from the kids. I'm not saying that we stop teaching coding. I like that kids are being taught code. I'm a computer scientist. I like that. I just think there's a little bit missing.
08:41
And what's missing is connecting the coding with problem solving. So here are a series of things which other commentators have said and I'll kind of summarize here for you. One criticism which comes up again and again is is code really the best universal language? You know, the right language to discuss these ideas.
09:03
Kip Bradford, another MIT Media Lab research scientist, points out that the programming landscape is very broad, very varied, very complex. There are hundreds of languages of different levels of complexity, different paradigms, different ways of programming. Is it really the best approach to choose one particular one of these
09:24
and use that as the way into the ideas behind programming? Gottfried Zehringer, CEO of Mendix, points out that the code is actually the end product of this whole process.
09:42
There's a whole lot more to something like what I do, programming computers to coding. There's a lot more to it. Also, we are instinctually visual creatures. Is it really best to use code to express ideas?
10:02
Maybe perhaps, as Gottfried Zehringer says, we should teach them how to visually express these ideas, how to visually express logic, a kind of true drag-and-drop programming perhaps. Another thing that gets pointed out, who is really benefiting from this idea of how to teach kids to code?
10:26
Anil Dash, who is CEO of Fog Creek Software, argues that teaching kids to code is being pushed by policymakers who, for a large part, are quite ignorant of technology. Code is something they know about, so that's what they push.
10:45
However, as I just mentioned a minute ago, coding is not quite the same as coding. What I mean by coding on the right here is just writing the code. But coding, the thing we take to mean the entire activities of a programmer,
11:05
a very small proportion of that is to do with actually writing code. What perhaps policymakers don't realize is that coding, the actual activity of coding, of programming,
11:21
is less to do with coding than it is to do with problem solving. A whole lot of problem solving goes on before we write one line of code. In addition to that, Dash also argues that teaching coding results in really an assembly line of programmers
11:41
with a narrow set of skills, which satisfy maybe big tech companies, good for them, but not so good for the rest of society. In other words, we just end up creating code monkeys for some of the wealthiest, most powerful companies on earth, all paid for by you, the taxpayer.
12:05
And a couple more commentators here, this is probably the most important, I think, of the criticisms, to me, certainly, is that we're maybe doing the pop version of teaching coding. Teaching the tool is easy,
12:23
so teaching how to do the coding, that's the easy part. The difficult part is teaching the skills behind the tool. Edith Harrell, also at MIT Media Lab, where she worked with Seymour Papert,
12:41
has criticized the teaching how to code as a kind of a shallow response to the need for coders. She argues it's imparting no deep skill and she refers to it as pop computing. Attila Vago, software developer and writer,
13:01
says that coding has become pop culture, which underestimates how hard it actually is, although the hard part isn't learning to code, the hard part is learning the skills that come before the coding. He used a metaphor which kind of inspired my own,
13:20
which is if I learn musical notation, does that mean that I understand how to write my own music, or even understand how music works? I mean, I learned how to read music when I was in school, but believe me, I'm no musician, I can't hardly play a note. But there's a pattern in all these criticisms, which you keep seeing, and it's that
13:43
these commentators are calling for something additional, don't teach just the code, they say, teach the concepts and the problem-solving skills behind the coding. Again, so Attila Vago says that programming requires an analytical thinking and a problem-solving attitude.
14:01
Amil Dash, teach computational thinking. We need to ensure that young people can understand the way that human concerns are translated into problems that computers can help to solve, and we need to teach in a transferable way. Every line of work from farming to fashion to marketing can be improved by being deeply technologically literate.
14:23
It's possible to teach computer science in a way where it amplifies the interests and ambitions that young people have in any discipline. And Edie Terrell says that, yes, millions of coders are needed today, but it may be more valuable for any person to be literate in computational thinking.
14:40
Okay, so computational thinking, this term keeps coming up. So what is it? I'll start with the academic tradition with a definition. That is partly my background, I suppose. It's academic, so it's an approach to problem-solving. That's key, it's problem-solving.
15:01
It's a problem-solving method that uses key ideas from computer science for formulating solutions that could be executed by a computer, could be. These could also be executed by a person, but they can also be executed by a machine.
15:20
Go a little bit deeper and just discuss what the key ideas is. There are roughly half a dozen key ideas to computational thinking. A summary of concepts and skills. One is logic and algorithms. This teaches the correct way to communicate with a computer. You can't rely on human-style communication
15:42
because computers don't have common sense. You need common sense in order to understand human communication. Problem decomposition. This is a strategy for tackling a problem. What you do is you take a large problem
16:01
which by itself is difficult or impossible to solve. So you break it down into a series of smaller sub-problems. And some of those sub-problems may be broken down further into sub-sub-problems and so on and so on. Until at the end you have a kind of a tree of problems and sub-problems. And the ones at the very bottom are the sub-problems
16:23
that I think you can solve just in one go. So what you have is a kind of, almost like a task set of things you need to do in order to solve your original problem from the top of the tree. The next thing is pattern recognition.
16:40
This is what you do when you have broken down your problem into lots of component parts. And then you look for patterns among those parts and they help you to simplify the eventual solution. And they feed into the next part which is generalization abstractions. You turn those patterns into the vocabulary of your solution.
17:04
You may also make your solution applicable to other situations so you can reuse what you learn, what you work out. Or you might spot something that was already done in a previous problem and you can reuse that in your solution.
17:21
At this point you can start to model a solution in detail. And now you have something which you can code. Notice that only now at the end do we actually get to the coding. And once you've coded it you then need the skills to evaluate whether it is actually a good solution.
17:42
Does it actually work? Is it correct? Is it efficient? Is it easy to use? Is it secure? And so on. Now I don't have much time to go into detail of what any of these entail. You know, in a lot of detail. But I can go through a few examples just to give you a flavor. That's what I'll do now.
18:01
So one thing I do. Here's an example from algorithms which I've done before with people who have never programmed before and they're learning how to program. And it's to get into the mode of thinking for how to write algorithms. And it's the peanut butter and jam sandwich game. It's a peanut butter jelly sandwich if you're American.
18:21
But we use British English today. So what you do is you ask the students to write down instructions for how to make a peanut butter and jam sandwich. And so you have the ingredients all lined up on your table. A loaf of bread, two jars and a knife and a plate. And they write out some kind of solution.
18:41
Maybe it looks something like that. So open the bread, take it out, put the peanut butter on the bread and put the jam on the bread. And so on. And then you can kind of have fun with this because you've told them beforehand that this is for a computer. So you then take the solution and you behave. You get to have fun. You get to be really pedantic
19:01
and just follow the instructions really literally. So when they say things like open the bread, well just take the packet of bread and rip it apart or take a slice of bread and just rip it and open it like that. Or when they say put the peanut butter on the bread, I just take a slice of bread and take the jam, take the peanut butter jar and just put it on the bread like that.
19:23
I once had a student, I had a chopping board and a student said put the bread on the board and so I took the piece of bread and put it on the white board like that. You can just have some fun with this and get really pedantic. One of my favourite things to do is be pedantic.
19:40
And then you can kind of feed back and say okay, you've got to be a lot more precise, you've got to be much less ambiguous, you've got to be algorithmic. You start to learn the difference between talking to a human and instructing a computer. And then this can start to be translated into code
20:01
later on down the line. Another example is pattern recognition. So just to take an example, a fairly simple example, building up an image, let's say a smiley face, so you want the student to build up a set of instructions for drawing an image.
20:21
Well that's kind of, it's not trivial, there are multiple steps in this, so you have to break it down, you have to do the decomposition. And that breaks down into several parts. So you have some kind of smiley face here, and what you find is that okay, there's actually a very small number of components to this.
20:43
There's a large circle for the face, there's two sets of, pairs of circles, one for the eyes, a big one for the outside and a small one for the pupils. Notice there's a bit of looping in there, so do this twice. And then an arc for the mouth.
21:05
And that's an application of both decomposition and pattern recognition. And they can next then learn that they can build up some complexity from this. They can reuse the same abstractions to achieve similar goals.
21:21
So whether it's a sad face, they can just adjust the arc. A bemused face, they can start using straight lines. A face which looks suspiciously like a copyrighted character, if you're not too careful, you can use the same components. Now these become the components of not just smiley faces,
21:45
but any kinds of images, not just faces. Imagine the complexity that you could build up. And I think in the time that I've got, all I can really do is ask you to imagine. I haven't been able to tell you a lot of detail,
22:02
but I can kind of whet your appetite maybe. Get you to look at computational thinking, learn more about it and then imagine. Imagine now children armed with predictable, repeatable, problem solving approach, that enables our children to learn how to think of problems in general, abstract terms,
22:22
to be able to turn those into instructions that a computer can understand. To realize that the key to handling problems is to break them down into solvable pieces rather than be overwhelmed by complexity and just give up. To learn that this approach to problem solving is iterative. There are multiple successive versions of your attempts
22:43
to solve the problems. Not only that, but once they have a problem solving approach like that, it means that once they've come up with the solution, it's ready to be plugged into technology and executed automatically. It's like a plug and play solution.
23:03
So to close up, it's still a relatively young idea, computational thinking. It has inspirations that go back quite a long way, but certainly the idea has only been around for about a decade. And as recently as the beginning of this decade,
23:20
there were still conferences that were held to determine exactly what computational thinking was, what it meant. And so it's a fairly new approach. As such, I think we still need to gather evidence on its efficacy, whether it really actually has the outcomes it would like it to have.
23:42
We also need to make sure, I think, that it preserves the spirit of Seymour Papert. I think somebody rightly pointed out that maybe we are forgetting that, as Papert said, we should emphasise playfulness. We should make it project before problem, which is to say that the children should have some concrete thing they want to achieve
24:03
and not some problem imposed on them. And not a problem to do with abstract things, but more concrete things that they can really get to grips with. I think we also need to sell it a little better. It's been described by some people who have been pushing this idea
24:23
as how to think like a computer scientist. That's not really very appealing to me, I think. To non-computer scientists, maybe it's not very inviting if someone says, hey, you could think like a computer scientist.
24:40
No, thanks. If someone says to me, you could think like a lawyer. No, thanks. It's hard for me sometimes to be able to think like a lawyer, but yeah, sell it to me a different way. And also I think one last thing we should do is maybe quit being so grand and imperialistic about it. If you read what some people are trying to push the idea,
25:04
it gives the impression that all these ideas just originate with computer science. Well, they don't. A lot of these ideas come from outside computer science. Logic, modelling, abstractions, people have been doing that long before computer science. And people do that in other fields.
25:22
Scientists do that, engineers do that. All sorts of different fields use the ideas that are included in computational thinking. And that's kind of an important, it kind of feeds into this final thought, which is that it's this wide applicability
25:42
and this is a quote from Stephen Wolfram, who's another computer scientist, who says that if you pick any field X, from archaeology to zoology, there is now either a computational X or there soon will be. In other words, the ability to think computationally is going to infiltrate
26:01
a huge variety of professions in future. And so I think that teaching it to the kids is a good way to prepare them. This is something I'm very interested in. As I mentioned earlier, I've just finished a book about this. If anybody wants to talk to me about that, you can either grab me in person today
26:23
or you can find me out in the virtual world. I hang out in various places. Yeah, so if anyone wishes to know more, please grab me. I'm happy to take any questions, but for now, thank you very much for listening.
26:47
Three more minutes for questions. Any? Yes. Can we meet in the middle?
27:02
Hi, sorry, this is a very basic question, but from what age do you think it's best to start with computational thinking? I think there's no reason why it cannot start in some form in primary school. In fact, in the UK, it kind of does. Not computational thinking itself,
27:21
but if you just Google UK IT syllabus, something like that, curriculum, sorry, you should find the first or second result should be something like the government's breakdown of what's called in the UK key stages. Key stage one is, I think, children up to seven.
27:41
Key stage two is children up to 11. Key stage three is children up to 14, I think. Key stage one includes very basic things about algorithms. And some of these ideas are just intuitive. Some of them are not, but some of them are intuitive. And so I don't think there's any reason why we can start really quite young.
28:08
Yes. Maybe, is it something that should be taught in math and English and everywhere, or should it have its own course? That's a good question.
28:21
I would imagine, it's one of these funny subjects which it's a kind of a universal thing. So it's difficult to put it in its own box, if you like. It applies to so many things. My instinct at the moment would be to say it gets its own subject.
28:42
But maybe someone has a different idea about that. So one more minute, so I'll put my question on. You know the situation probably in Great Britain, in the UK, and I sometimes have the feeling that in Germany we point to the UK and say,
29:01
look, they're doing it in an excellent way. What's your inside view? I have worked with the British Computer Society for a while now. They have an organisation within the organisation called Computing at School, CAS, C-A-S. And that kind of pushes these ideas of computing
29:20
in schools in the UK. I started opening up hubs around the world, and I just opened one in Berlin last year, and I worked with them. And that's why I wanted to stress that I know the UK and the US best, but I know that Germany has its own problems with regards to IT education. I worked in setting up this hub.
29:42
Perhaps one person I could recommend to you, if you want to know more about this, is Anna Mika Ackerman. I hope I pronounced that right. She's in charge of the CAS Berlin hub. There are very good problems in Germany of IT education. I'm not an expert. In the UK, it's very centralised. The curriculum is set,
30:00
and it applies to the whole system, the whole country. That's the system that I went through. But in Germany, to my knowledge, it's the case that it's state by state, and it's sometimes school by school how they teach IT, which can get, on one hand, maybe a very, very good IT education, or you may get, or there may be schools with no IT teachers,
30:22
and if a school wants to teach IT, they have to, you know, one has to volunteer, and they train in some IT, and then they can teach the kids. So there are challenges of your own in Germany. Okay. So, thank you all for coming, and thank you, Carl Beecher.