Explaining Computer Science to Kids
I've been invited to speak at some township schools in Pretoria during career days to speak about computer science.
If I remember well, during my high school years, although many people knew I was a computer wizz, there were lot of things that I was very clueless about. Like I thought JavaScript was Java, let alone wouldn't differentiate between scripting and programming, I thought adding up and subtracting a bunch of 1's and 0's was boolean algebra and thing like "mathematics of computer science(discrete math)" and "computer mathematics(digital logic)" were completely unknown to me.
Now things have changed, no one thinks of installing an operating system as programming anymore. So I've been watching the "hour of code videos" to see how I might approach the presentation. But well I think those videos are really confusing to kids because not anyone of those celebrities there really knows the difference between computer science and programming except only Bill and Mark.
I think it will be very hard to tell school kids that "computer science is the study of formalism of algorithms" and that people who created computer science didn't have computers. I know if I tell kids that Im a game programmer, that will create more confusion. Things like "game programming = math + gameAI + cg excluding art and game design" will get me into trouble because I know some CS students who didn't know the difference between academic AI and game AI. So because I'll be attacked all sorts of questions from teachers who ones told this kids that knowing how to use Microsoft access is some sort of programming, so Im looking for a very nice approach of explaining the subject without scaring them with things like "kleene theorem", "Markov chains" or "Turing machines".
And I don't want to use programming and CS interchangeably like Bill and Mark have been using. I just want them to have a clear understanding between the two when I live.
So can you guys please help me to help this kids? Thanks!
If I remember well, during my high school years, although many people knew I was a computer wizz, there were lot of things that I was very clueless about. Like I thought JavaScript was Java, let alone wouldn't differentiate between scripting and programming, I thought adding up and subtracting a bunch of 1's and 0's was boolean algebra and thing like "mathematics of computer science(discrete math)" and "computer mathematics(digital logic)" were completely unknown to me.
Now things have changed, no one thinks of installing an operating system as programming anymore. So I've been watching the "hour of code videos" to see how I might approach the presentation. But well I think those videos are really confusing to kids because not anyone of those celebrities there really knows the difference between computer science and programming except only Bill and Mark.
I think it will be very hard to tell school kids that "computer science is the study of formalism of algorithms" and that people who created computer science didn't have computers. I know if I tell kids that Im a game programmer, that will create more confusion. Things like "game programming = math + gameAI + cg excluding art and game design" will get me into trouble because I know some CS students who didn't know the difference between academic AI and game AI. So because I'll be attacked all sorts of questions from teachers who ones told this kids that knowing how to use Microsoft access is some sort of programming, so Im looking for a very nice approach of explaining the subject without scaring them with things like "kleene theorem", "Markov chains" or "Turing machines".
And I don't want to use programming and CS interchangeably like Bill and Mark have been using. I just want them to have a clear understanding between the two when I live.
So can you guys please help me to help this kids? Thanks!
Comments
http://simple.wikipedia.org/wiki/Computer_science
The bit about sorting playing cards is especially useful for you, because its something that most township kids can easily relate to.
Also, if you're giving the same talk at more than one school, read your first audience. Learn to spot the difference between confused looks (which are actually good, because it means they're thinking about what you've said), and blank stares (which are very very bad). Adapt the talk for the second school, and in the end your talk will be a billion times better.
Also try to focus on things you can do with computer science - how fuzzy logic makes washing machines smarter, Google building cars that drive themselves, etc.
Also, don't be afraid of using a word that's not quite correct. e.g Try to use words like "recipe" instead of "algorithm" and "stored information" instead of "database". If a teacher complains that you're feeding the kids the wrong information, just say you know, but you feel an accessible talk that's educational is better than a technically correct talk that everyone sleeps through.
Before you decide what you're talking about, tell us what you're trying to achieve. Are you trying to get these kids to become computer scientists? Or are you trying to get them to just finish their maths homework?
Either way, with kids you do need to show them what they can "become" or what the whole purpose is. Like the Google cars or smart washing machines, but also try and think of more accessible examples (that don't feel like they're out of their frame of reference). Consider that they might think even owning a car is a massive achievement for them - but you can find excellent examples of how kids just like them have changed their own worlds for the better through understanding programming in one way or another.