Programming taught to children
Roadmap
Fundamental skills for computer interaction
- Computers
- User interface (keyboard, screen, mouse)
- Keyboard, special buttons
- Mouse, tricks with clicks
- Internal components
- Disassemble and put it all back
- Safety measures
- User interface (keyboard, screen, mouse)
- Software
- GUI elements (window, menu, button, etc)
- Files and directories as persistent storage of data
Thinking as an engineer
- Problem solving
- Formalize
- Algorithmic thinking
- re-factor repetitions into loops
- Sample challenges
- Make a sandwich
- Brush teeth
Basics of graphics
- Fundamental concepts
- System of coordinates
- Transformations
- Scaling
- Translation
- Degrees
- Rotation
Programming
- The Blockly turtle
- Turtle in Python 3.x
- Python basics
- Variables
- Functions, how to pass arguments to them
- Python basics
- Nodebox via a GUI
- Customize behaviour using Python
Practical activities
Disassembly
- Give a child a hard drive and a screwdriver kit and let them disassemble it.
- Use two hard drives: 2.5" and 3.25"
At the next meeting they will discuss their findings and explain the differences they have revealed. Then they will try to assemble it back.
Photo experiments
- Give a child a camera and let them document the disassembly process of the HDDs
- and take pictures of the camp and their peers
These materials could then be used on the web-site
Note: give them the camera without explaining how to use it.
Alternative ideas
- Disassemble a computer and explain what the components do
- Python via code.org
Tools
- http://pythontutor.com/ - visualizes the execution of Python code, step by step
- http://interactivepython.org/runestone/static/thinkcspy/PythonTurtle/helloturtle.html - very nice tutorial, super comprehensive
- http://shoebot.github.io/shoebot
- http://labs.ideo.com/2014/06/04/painting-with-code/
Art inspiration
- http://labs.ideo.com/2014/06/04/painting-with-code/
- http://www.dam-gallery.de/index.php?id=9
- http://www.uncontext.com/
Things to have
Teacher
- Computer connected to the Internet (for looking things up)
- Big screen or projector (for sharing sketches and code snippets)
- Lens (for RGB explanations), though a drop of water will do fine too
Children
- Pen, pencil, eraser
- Graph paper notepads (preferably spiral bound)
References to make
- Rene Descartes and how the Cartesian system came to be
- Geometric art in Islam, other aniconic cultures
- Optical illusions, how they work
One
Objectives
- Provide an overview of computers throughout history.
- Compare old technology with modern systems.
- Become aware of the internals of a computer.
- Learn how to correctly attach cables to a system.
As a result, children will have an idea about the computers of the past and how they changed until they got their current form.
Required gear
Kids will not need computers for this activity.
- Just one machine is needed, it will be disassembled and then put back together. It has to be a desktop system, as laptops are much harder to disassemble
- A projector will be handy, as it can be used to show images of people standing next to old computers that filled entire rooms.
Flow
- History
- Computers used to be a name for people who would do math, i.e. compute.
- The first computers were of a mechanical nature. Besides being huge, they were noisy and not very fast.
- If they ask who did it, it was Charles Babbage in 18xx, in England. In fact, he did not really build a complete system like he envisioned, it was a partially implemented model.
- Emphasize the fact that computers are based on the work of many people, not just one person. For example Alan Turing or George Boole also made a difference.
- Don't just give names, briefly explain what their contributions were and be prepared to answer questions about them.
- Electronic computers were faster, but still were much more massive than modern technology.
- Use
- Computers were and are used for a very wide range of problems, such as ...
- In fact, the possibilities are endless, so the children should be asked about what they think computers are used for. They need to reach the conclusion that computers can be applied in any field and for any purpose. In case they are not doing their best to come up with answers:
- Controlling aircraft and space probes
- Storing and searching information
- Medicine
- Looking for aliens
- Remotely controlling robots to explore other planets, etc.
- Provide examples of processes or appliances that they did not expect were computerized
- television sets
- fridges
- cars, etc.
- Computers were and are used for a very wide range of problems, such as ...
- Comparison - this is the part where the coolness factor can "go to eleven", as children can be impressed by the stark contrast between then and now
- Size - show photographs of computers that occupy a floor or a room, compare them to the computer that we're about to disassemble
- Memory - compare the capacity of a hard drive with that of a USB flash drive or a phone in one's pocket.
- Draw analogies by expressing the
- amount of books that can "fit" on a hard drive (assume they're plain-text files)
- if this HDD was a book, it would have N pages and weigh X tons and Y trees would be sacrificed in the process
- the number of audio cassettes or vinyl disks (assume they're encoded as MP3)
- the number of film rolls or VHS tapes
- if this HDD were transformed into a roll of film, it would be X meters long
- if we printed all the photos that can fit on a HDD, we'd have an album with N pages
- amount of books that can "fit" on a hard drive (assume they're plain-text files)
- Draw analogies by expressing the
- Performance
- a modern mobile phone is X times faster than the computer used to put a man on the moon
- Cost and availability
- Structure - disassemble a computer and then connect everything back, while explaining what is going on and what the role of each component is.
- Safety measures
- Always unplug it from the power socket before doing anything of this sort
- Shape and colour coding
- each connector, socket or plug is designed in such a way that it usually fits in only one place
- unless you are very very strong ;-)
- so it is not super-necessary to remember everything by heart, the system gives you hints when you pay attention
- Standards and interfaces - parts are interchangeable if they adhere to a set of conventions
- this is why you can build your own computer and tweak it as you see fit
- Safety measures
Activities
- Disassemble a computer
- Put it back together
- Connect all the cables and turn it on
Homework challenge
This task will be delegated to the most active children who provided answers or asked questions during the first class.
- Provide a set of screwdrivers
- A laptop hard-drive (2.5") and one from a desktop (3.5")
- Give them to someone for disassembly
- The child will then talk about their findings
- are the units similar?
- how are they different?
- Were there any "spare parts" left when you attempted to put everything back together?
Freebies
- Give someone an old processor, perhaps they can make an amulet out of it
- Remember to emphasize that it is N times more powerful than a machine that was used to put a man on the moon
- Whatever nice and shiny things they scavenged from the hard drive
- one or more platters
- magnets
Questions
These are questions that might come from the audience, so you need to prepare for them. If they are not asked, and you see that there's some time left - you ask them and see what the children think about it.
- is there a "most important" part in a computer? (something similar to the idea that "the heart is the most important organ")
- is there something a computer cannot do?
- who invented the computer?
- how does a computer know what to do?
- how come a modern computer is faster, even though it is much smaller? Is bigger = faster?
- you showed us a video card inside a desktop computer, where is the video card inside a smartphone?
Conclusions
- There is no need to be afraid of computers, they are systems designed by humans and can therefore be understood. (unlike unexplained supernatural phenomena, computers contain no secrets)
- Computers can be used for so many purposes, that anyone can benefit from using one.
- Technology changes, so computers of tomorrow might be very different from the ones we use nowadays.