Explaining programming to kids at great american teach-in
I got wonderful opportunity to volunteer for great american teach-in at Morgan woods elementary school, Tampa. I did presentation on explaining programming to 3rd to 5th grade students. In this post, I will share by experiences on talking to kids about programming and conversations I had with them.
Preparation
The invitation letter from school suggested “share with students something about your career, your experiences, your hobby, or yourself”.
Soon I learnt that, these talks should be informative but not too lecture-y and be something that hopefully will hold the kids interest for the 15 or 20 minutes.
They want to hear about what people do in real life and what sorts of talents and skills might be required to do that themselves.
People from all walks of life will present on teach-in from lawn maintenance workers to professional sportsmen.
So I decided that I should talk about my job and try to generate interest in software programming at least to some of the kids.
As usual I searched web to get some ideas and found very good tips from this stackoverflow answers. Then I put together these slides:
I wasn’t sure which grade students I will be talking to, so as a backup I included additional slides with highlights from The Five Elements of Effective Thinking Book and How children succeed? article I wrote previously. I thought If I get to meet with older students, they might already know some stuff about programming, so I can glance through programming slides quickly and talk about these additional stuff.
Presentation Day
Schedule
I was requested to come in between 12pm to 2pm on the day of the presentation. I was scheduled for three sessions 12-12:30pm, 1-1:30pm. 1:30-2pm with 5th grade, 3rd grade and 4th grade students respectively.
Presentation
Here is the rough transcript of actual talk I presented to students.
Greeting : Slide 1
I am Rajasekar Elango. How is everyone?
Introduction : Slide 2
I am a Software Developer at Salesforce.com. We deliver Customer Relationship Management (CRM) products on the cloud. CRM is a system for managing a company’s interactions with current and future customers.
We have laptop from HP here (that was the laptop I was using for presentation). If there is some problem with this laptop and you call support, they will use CRM software to track all the information. When you call them again, they can pull up history of all the conversations you had with them earlier. This will help them better support the customer.
Also, a sales or marketing agent meets lots of potential customers to demo their product; They will use a CRM software to save all the information about customers like their contact numbers, email etc. This will help them to easily follow up with customers to check if they are interested in purchasing the product.
CRM is also used to store existing customer information. For eg. by knowing customer’s date of birth, company can send a birthday wishes to their customer which can improve their relationship with customers.
Are Computers Smart? : Slide 3
I asked, How many of you think computers are smarts..? Many students raised their hands and I asked couple of them why they think computers are smart.
One student said “I can find anything from internet, it knows everything”, another said “It remembers all web sites used before”. One smart kid in 5th grade said “Computers are not smart, only humans are smart. we have to tell it everything to do”.
(I said, exactly and continued with next slide)
What is Computer Programming? : Slide 4
Computers are really stupid (this triggered huge laughter in 5th grade class). But it is very fast.
Humans is smart, but slow.
If I ask you to do multiplication of two four digit numbers, you might need more than two minutes, but computers can do in nano seconds.
Programming is the act of taking complicated human ideas and breaking them down into simple enough instructions that a computer can understand and follow.
Then the computer can perform your idea super-fast for you.
It can also repeat it many times. For eg. If I ask you to do multiplication all day long, you will be bored. But once you write a program to solve a problem, computers can repeat it over and over again.
Binary : Slide 5
I just said computers are stupid, but the actual hardware - the chips inside computers can actually understand only 0’s and 1’s - refered as binary. I asked, How many of you know what is GB or MB mean in iphone or computers? Few answered correctly. I continued,
1 Bit = Binary Digit
8 Bits = 1 Byte
1024 Bytes = 1 Kilobyte
1024 Kilobytes = 1 Megabyte
1024 Megabytes = 1 Gigabyte =102410241024*8 Bits or 8589934592 Bits
So all the videos, music and textual information you see in computers are store as just 0’s and 1’s in hardware. Bytes or Gigabytes is unit for measuring memory just like pounds for weight, ounces for liquid etc.
Software programs are written in language humans can understand and then they are converted into binary that computers can understand to execute them.
How many of you like pets? : Slide 6
I asked, How many of you like pets? Many raised their hands. I continued,
Yeah, one of the reason we like pets is that, Once we learn to communicate with pets, once they can understand us, we can make them do whatever we tell. So in some way computers are like pets. Once we learn computers language i.e programming we can make it do whatever we want (of course with some limitation).
Why I like programming? : Slide 7
I love making things for other people to use. - For eg. This powerpoint presentation was developed by some software engineer that is used by millions of people.
I like solving puzzles. - It’s like a puzzle before you have a solution. Once you find a solution, you will feel the pride of solving complex puzzle.
I like experimenting and research. - Software programming is like conducting experiments, you will try something, if it doesn’t work scratch that off and try different solution. It’s also like doing research, you have to search the web, read the documentation, refer the books to come up with a solution.
I enjoy continuous learning. - Software programming requires continuous learning of new technologies, programming language etc. There is always something exciting to learn.
Right mix of creativity (Arts) and logic (Engineering) - When choosing a career, some may be interested in Arts like becoming a Musician, Poet or an Artist, and some may be interested in engineering that requires math and science skills. Software programming utilizes right mix both skills. Writing a program is an art like writing a poem at the same time it needs applying logical skills to solve the problem.
No cost of raw materials - Unlike other professions, it doesn’t require any investment cost of raw materials. All you need is a computer and time to do programming.
Work from anywhere internet is available - I can pretty much work from anywhere internet is available like for eg. in starbucks. In our company we have flexibility to work from home every thursday. So I don’t have to commute to office and can simply work from home for one day every week.
Resources for learning programming : Slide 8
http://lightbot.com/ (Age 4-8 & 9 and up)
http://scratch.mit.edu/ (Age 5-15)
http://www.greenfoot.org/door/ (Age 10-15)
http://code.org/
Python-Kids-Playful-Introduction-Programming
Hello World!: Computer Programming for Kids and Other Beginners
Lego mind storms (Age 8-15)
https://www.khanacademy.org/ - Khan academy is great site to learn anything, not just programming
Q&A
I let them ask question at the end of presentation. There wasn’t much questions from 3rd graders. I guess it may have been too advanced for their age to get it. 4th and 5th graders asked lot of questions and some of the questions I can recollect are:
How long have you been doing this..?
Have you created your own website?
Do you build computers?
Is your job Fun?
When you are student, Did you imagine becoming a computer programmer?
Can I build games with programs?
Why does my video game always crashe?
Feedback
After couple of days, I received thank you letters from students along with a picture.
I didn’t really expect this and I was surprised. The students wrote themselves whatever they felt about the presentation. Some of them had also had drawn nice pictures. Most the students thanked for the presentation, wrote they liked it and wanted me to come again. Some of the them quoted the phrases I spoke and asked follow up questions. I was glad that many were able to grasp and remember the information I presented.
What could be done better?
When reflecting back on this, I can think of some changes I could do to make this presentation better for next time.
-
I could skip talking about CRM in introduction slide as it might not be interesting to kids.
-
I should come up with better reasons to say “Why programming in fun for kids?”. Although I managed to answer this question when a student asked me, the reasons I think it’s fun for me may not be fun for kids.
-
I should talk about “How learning in school is applied at work and How it will be useful to them”. I personally think
How we learn is more important than what we learn.
I should explore on this topic and come up with some key messages conveying why staying in school is important.