Classes and Presentations on CS and Technology for young children

When my son turned 5 years old I became curious - what does it take to teach the kinder garden kids technology and computer science in a way accessible to them? So I started giving presentation at my son's Montessori school, to a class of about 20 kids (mostly 4-5 y.o.). I then continued the classes in the first grade of my son's public school.
Here are the recordings of these presentations as well as the future ideas. 

- Misha Leder, Software Engineer at Google      

 Workshop 1: Google Earth

Fly over Earth, see the tallest buildings in the world, Street View for the school, explore various continents, climb Mount Everest and come back to the 3D model of Disney World in Florida
 Workshop 2: Google Sketch-up

Build a house with Google SketchUp. Upgrade your School building to be the tallest and the most colorful or weird looking in the world! Then place your buildings on Google Earth and fly over them with Google Earth to see what they look like.
 Workshop 3: Simulating a computer

Have kids play main computer components - CPU, mouse, IO controller. Have them simulate calculator application by moving a mouse, synchronizing it with the mouse pointer on the screen and sending request to the processor. Start with the sleeping mode :)
 Workshop 4: Simulating an iPad

Nowadays every kid is using iPad much more than a computer. Experience being a button on a touch screen, feel the power and control of an operating system, be as smart as a processor. As in workshop 3, kids simulate a calculator application. As an extension, kids also simulate alarm application that interrupts the calculator until buzzer is stopped.
 Workshop 5: Sorting

Look at what sorting is, what it is for, by what criteria can one sort things, and different sorting algorithms (selection, insertion and bubble sort). Have kids sort themselves and time them.

 Workshop 6: Concurrency and Synchronization

Can one child draw 10 circles or write 10 words? Easy. Can 4 kids write 10 words all together? Have kids see for themselves the pains of synchronization and find ways to synchronize with each other. This is also a great team building exercise and leadership training. Also, consider handling limited resources  - having limited number of crayons to do the job.
 Workshop 7: Privacy and Encryption

You need to send a secret message to your friend via Internet. But there are very curious guys who want to read your message. How can you deliver the message safely? How can you confuse the very curious guys?
 Workshop 8: Programming in Scratch

What is it like to be a computer programmer? Show kids programming a video game in real time using Scratch ( : Flying hippo throws bananas at a running rabbit.
 Workshop 9: CPU - registers and instructions

CPU may be really good at math, but it has extremely bad memory. It doesn't remember anything, it doesn't know what to do. So first, it needs very clear instructions. Second it needs boxes (registers) to help it keep track of what it is doing.
 Workshop 10: Binary system

How are the numbers stored in a computer? You can think of a binary as a set of bulbs with on and off states. We look at how many numbers can be represented with a limited set of bulbs.
 Workshop 11: Memory and Single Linked Lists

Processor doesn't have any memory, so it uses boxes outside to store numbers. What if it needs to remember a whole set of boxes? Linked list is a way to do it easily - just remember the head. Play trains with kids - with one wagon referencing the next one. Have kids remove and add wagons to the train, deal with loops and work in teams to have the train (linked list) be coherent.
 Workshop 12: Robots and Block Diagrams to represent instructions

What is it like to have a robot at home? A robot can execute very primitive commands, but it needs instructions to combine them. We are looking at 2 types of instructions: commands and conditionals ('questions'). Writing instructions for eating soup, getting a cup of water, going up the stairs, going around barriers. Kids have fun as well - they split into pairs and one becomes a robot while the other one gives her instructions.
 Workshop 13: Message routing

Internet works this way - computer networks are connected with each other via routers. Have kids sit at several tables, every child being a server. Have representatives for each tables act as routers. Kids write messages to each other and routers help routing these messages.
 Workshop 14: Functions

Function is like a car factory: you send wheels, doors, seats, it does something and you get a car back. We look at other examples of functions. Then we explore functions representing arithmetic operations. We then move to boolean and string types. Throughout the workshop children do various assignments calculating function result or drawing a function representation.
f(mom, dad)
Workshop 15: Web search simulation

Simulate web search by creating web pages (sheets with information about different animals), have crawlers collect them, have sorters (indexers) order the pages and searchers (servers) execute queries by asking searchers and retrieving search results 
 Workshop 16: Collaborative creative writing

Create a story together at the same time using Google shared document. This is great for 9+ y.o. kids who are good at typing.
 Workshop 17: Full development cycle: build a cube with Lego

Experience what it's like to work at google - take on something that you've never done before (make a cube of lego pieces, with letters G,O,O,G,L,E on each side), brainstorm, prototype, plan, implement, work in a team, coordinate between teams, learn from failures or enjoy a success.
 Workshop 18: Collaborative story with illustrations

Create an illustrated story as a team by using Google Presentation.

Ideas for future presentations

Super computer

A look into the modern Super Computer who knows everything and how it crawls the web to collect information

Use colors to simulate algorithms to exchange keys and authenticate users

Everything can be encoded. See how words, letters, music and images can be encoded and decoded 

World wide web
(Thanks Paul Chisholm for the idea). Show visual representation of world wide web in the example of Harry Potter characters. Each page simulates a web page and there are links between them shown with the threads.

binary search. 

how do you test something you make? How do you make something to be testable? Come up with a project that kids can do and then test that it does what is expected. Quality.

Create a physical stack and queue, find different applications

Using boxes in place of registers to store numbers. Writing and processing simple instructions. Out of boxes? Learn about memory access!

Show kids live videoconferencing. Pass compressed video packages and audio, recreate and simulate synchronizing video and audio on the receiving side.

Screen and windows
Introduce coordinates, window sizing, resizing, moving, z-order

Google Lively
Get an experience of 3D chat - create avatar, play hide and seek with your friend

Motion detection avatars
Replace your head with a cat's head and observe a cat talking and moving the same way you do

Wikipedia - the biggest book in the world
Talk about Wikipedia - the book written by thousands of people - create a new article real time. Who knows more - Wikipedia or Super Computer?