We have a large engineering day that hundreds of kids (ages 6-12) and their parents will attend.

The setup is as follows: local engineering groups/societies will have stations and they will have short activities for these kids to introduce them to engineering concepts. We are looking for 1-2 activities for one of these stations. There will be internet connection and we have a small budget (~$100) for getting supplies. We can borrow computers/tablets. Ideally we will have two activities that build on each other and ideally the activities can be scaled so both younger crowds and older students can enjoy and get hooked. It would be a big plus to engage and educate parents as well. It would also be a plus if the activity did not require lots of hardware ($$$) so it is not too hard for students to continue learning at home.

I wanted to do something programming/CS related but I am having a hard time coming up with activities that introduce them to the subject in a couple of minutes. Are there such activities or should I focus on something else?

The help and ideas are much appreciated!

  • 1
    $\begingroup$ A very easy CTF question might be a lot of fun, though 6 is still a bit young. Human Resource Machine is a great game, and the first few levels are accessible to any age. A few questions: will you have internet there? Is there some sort of budget for devices (like Arduinos)? Is there some particular direction you're considering heading off in? $\endgroup$
    – Ben I.
    Commented Dec 19, 2017 at 14:01
  • 2
    $\begingroup$ This question is likely to generate a big list. Perhaps you should provide some criteria by which the suggestions can be assessed and judged. $\endgroup$
    – ItamarG3
    Commented Dec 19, 2017 at 14:05
  • $\begingroup$ Edited question :) $\endgroup$
    – c_maker
    Commented Dec 19, 2017 at 14:14
  • $\begingroup$ @BenI. No particular direction... we can do simple coding, robotics, circuits etc... anything that would get a kid hooked :) $\endgroup$
    – c_maker
    Commented Dec 19, 2017 at 14:19
  • $\begingroup$ You may also be gain some inspiration from this question: cseducators.stackexchange.com/questions/2540/… $\endgroup$
    – Ben I.
    Commented Dec 19, 2017 at 19:30

5 Answers 5


I created a couple of demo programs recently which can run unattended, be explained simply, are familiar, and one can be interacted with.

The first is a simple maze generation method, which draws a maze on the screen with character graphics. It does not produce ideal or optimal mazes, or use any of the recognized algorithms, just weighted random choice and forcing. Still, it is interesting to watch. I have not completed the part that displays the shortest path. It would be a good addition.

The other example is Tic-Tac-Toe. The game is set up so that two humans can play, or a human against one of five different strategies, or the strategies against each other. There is also a 'tournament' display, which shows the results of each strategy playing the others 10,000 times.

The five strategies are:

  • Idiot, picks a move at random
  • Naive, tries for center square, then corners, then sides
  • Blocker, chooses a move that prevents the opponent from winning
  • Winner, chooses a move that will win
  • (one superior to that, but I forget the details just now)

These strategies are implemented using inheritance, as a hierarchy, so you can explain that. The game board and turn-taking and scoring and so on are implemented using OOP principles, so that fits easily also. There is something here to engage children of varying ages and understanding. Just the idea of "playing against the computer" is interesting. The program is not very complex. I think it could be expanded easily to checkers. Chess would be more ambitious, and probably lose most of your audience anyway.

  • 1
    $\begingroup$ Perhaps you could share your code for these. Or at least a minimal framework. $\endgroup$
    – Buffy
    Commented Dec 20, 2017 at 14:21
  • 2
    $\begingroup$ I agree with @Buffy that a link would be helpful. But the ideas here are a nice contributions. Welcome to Computer Science Educators, and I hope we hear more from you! $\endgroup$
    – Ben I.
    Commented Dec 20, 2017 at 15:01

Since Logo was intended for this age group you might explore something there. My quick idea would require two or three screens with some sophisticated and time consuming simulation running on one and the kids/adults exploring simpler exercises that might (or not) build up to the one running. You can run, for example, a space filler (Sierpinski) program and have the students explore turning, etc. With lots of trial and mostly error.

In Karel J Robot, the recursive graphical solution to the Eight Queens problem takes a bit of time and is built up from only a few primitives that can be combined and extended. So that would do for the running demo and the students can explore simpler aspects, such as a robot backing up, for example. The advantage of Eight Queens is that it is easy to explain, unlike, say, sorting.

You can do this sort of thing in most languages - a complex graphic simulation built up from simple parts. The students explore only a bit of it. They can even modify some of the code of the running sim and run it to see what happens. It can lead to a lot of laughter, and some insight. If you sit with them you can suggest things that do something fun/weird/good/bad and ask why that happened. Lots of possibilities.

But the running sim gives an unattainable target in the time frame. Like playing on the beach after professional teams of sand-castle builders have shown their skill.

The suggestion is that if the simulation is built with something like Model-View-Controller that the students only modify parts of the model.


There is another model program that is designed for youngsters. CSUnplugged provides a collection of activities that don't involve actual computers but prepare young students for Computational Thinking and algorithmics.

Some of the examples are surprisingly sophisticated and collectively cover, if somewhat shallowly, the range of topics that would later be covered by in a college major in CS. Each of the (more than 30) activities they suggest are accompanied with teacher instructions. These activities have been successfully used in a number of elementary schools. In my opinion, they provide a great way to instill insight into youngsters in topics that they might study later in depth, but which they will also necessarily encounter throughout their lives.

For your Engineering Day you could prepare a few of these for the students to do. Some of the resources are also group activities, so that you might get a larger group engaged simultaneously.

The same materials, by the way, can be adapted for teaching the underlying concepts to adults, by providing a set of analogies and metaphors for the topics being studied. They might also provide ideas for programming exercises for beginning students in a CS program.

The main categories follow, with several activities available for each:

  1. Data: Representing Information
  2. Algorithms: Putting Computers to Work
  3. Procedures: Telling Computers What to Do
  4. Intractability: Really Hard Problems
  5. Cryptography: Sharing Secrets
  6. The Human Face of Computing: Interacting with Computers
  7. Community Activities

One of my doctoral students explored this area in her dissertation and found it to be valuable.



Read the question; these Educational Materials are for Children under age 16.

Do use overly sophisticated in overly-technical language when editing this particular wiki

The question was:

"What is Quick and easy intro to computer science for kids for an Engineering Field Day" It might be best to divide the kids into groups.

My packet of educational materials below is mostly only for teaching kids who can read big kid books (or even books for adults).

Instructions on how to print this packet of educational materials is provided at the end of this post.

A Packet for Kids & Adults on How to Write Code

In this packet, we will learn about a language used to write computer programs known as python

Installing an IDE

I recommend something called an IDE.

I recommend installing something called "PyCharm".

Google "PyCharm" to find it.

Your First Computer Program

print("hello world")

When I first installed pyCharm many years ago I could not figure out how to get it to run the program.

enter image description here

Click the green triangle-shaped button in the upper-right corner of PyCharm to run your program.

In my day, the green triangle shaped button was a lot smaller and more difficult to see.

What are Strings?

Computer scientists sometimes write code which translates English into Spanish.

For example, we might have:

INPUT: the English phrase Blue Fish.

OUTPUT: the Spanish phrase Pez Azul.

a picture of a blue fish with both Spanish and English words. I drew it in the GNU image manipulation program

If you want to write code, then you need to be familiar with something which computer scientists and programmers call "strings"

In order to store text and translate text from one language to another on a computer, then you need to store your text inside of a string.

Let us talk about three different types of strings:

  1. Binary Strings
  2. ASCII Strings
  3. Unicode Strings.

When a string contains only ones and zeros, it is known as a binary string. An example of a binary string is shown below:


Nothing but ones and zeros is difficult for people to understand.

Therefore, ASCII encoding was invented.

To oversimplify things, ASCII encoding is a set of rules for converting for converting letters, such as the letter A, into 1s and 0s.

If you use ASCII encoding to translate A into a binary string, the result is 01000001.

An ASCII string can store text written English, French, German, or other languages from Western Europe.

A lot of people use something called unicode to represent letters written in several of the worlds alphabets.

Greek Letters (Ελληνικά) Oriya Korean Letters (한글)
Russian Letters (ру́сский) Tamil Ethiopian Letters (ግዕዝ)
Armenian Letters (Հայոց գրեր) Telugu (తెలుగు) Cherokee Letters (ᏣᎳᎩ ᎦᏬᏂᎯᏍᏗ)
Kannada (ಕನ್ನಡ) Plains Cree (ᓀᐦᐃᔭᐍᐏᐣ)
Hebrew (אלפבית) Malayalam (മലയാളം) Khmer (ភាសាខ្មែរ / ខេមរភាសា)
Arabic (الْأَبْجَدِيَّة الْعَرَبِيَّة) Sinhala (සිංහල අක්ෂර මාලාව) Mongolian
Syriac (ܐܠܦ ܒܝܬ ܣܘܪܝܝܐ) Thai (อักษรไทย) Japanese Kanji and Kana (漢字仮名)
Thaana (ތާނަ ) Lao (ອັກສອນລາວ) Manderin Chinese ( 官话 )
Devanagari (नागरी) Tibetan (བོད་སྐད་) Korean ()
Bengali (বাংলা বর্ণমালা বা লিপি) Myanmar Japanese Hiragana (平仮名, ひらがな)
Gurmukhi (ਗੁਰਮੁਖੀ) Georgian Katakana (片仮名、カタカナ)

In this packet, we will show strings in ASCII instead of unicode because unicode is complicated for some Americans and Europeans.

If you want to, you can put only one or two words inside of a text string . If you want to, write two or three words in the space below:

A name for someone's favorite food might be an example of a text string.

A text string can also be the title of of a book, such a book you like.

A text string can also be the entire contents of a book, such as One fish, two fish, red fish, blue fish by Dr. Seuss.

One fish, Two fish, Red fish, Blue fish,
Black fish, Blue fish, Old fish, New fish.
This one has a little car.
This one has a little star.
Where do they come from? I can't say.
But I bet they have come a long, long way.
we see them come, we see them go.
Some are fast. Some are slow.
Some are high. Some are low.
Not one of them is like another.
Don't ask us why, go ask your mother. 

The Collected Works of William Shakespeare would be an example of a very long text string.

The simplest text strings contain only one letter.

The text string Containing the letter A


The text string Containing the letter B


The text string Containing the letter B


Most people want to have things inside of their text strings other than letters such as A and Z.

Most people like having space characters.

Otherwise, we have have:


As a second example we have The Little Car String :

The Little Car String with Spaces

This one has a little car.

The Little Car String without Spaces


In general, each of the things contained in a text string is known as a character.

Space-characters might not be letters, but they are characters

Without line-feed *characters everything would all be all be on one very long line going off to the right.

One fish Two fish Red fish Blue fish Black fish Blue fish Old fish New fish. This one has a little car. 

We can insert some line-feeds to have a text string appear on multiple lines

One fish
Two fish
Red fish
Blue fish
Black fish
Blue fish
Old fish
New fish.
This one
has a
little car. 

All of the letters and other things inside of an ASCII string are called "characters".

CAT.DOG is a text string.

The letter C in CAT.DOG is a character.

The period dot in CAT.DOG is also a character.

"characters" Otherwise, CAT DOG would be just CAT DOG

Additional Notes

How to Print This Stuff Out on Paper

  1. Select all of the text in this post.

  2. Copy the text

    • to copy text on Windows press the control-key Ctrl<\kbd> and C <\kbd> at the same time.
    • to copy text on Apple Mac/iOS press ⌘ Command <\kbd> and C <\kbd>
  3. Paste the text into a word processor such as Microsoft Word, office libre, or Pages on Apple Macintosh iOS

    • to past text on Windows press the control-key Ctrl<\kbd> and V <\kbd> at the same time.
    • to paste text on Apple Mac/iOS press ⌘ Command <\kbd> and V <\kbd>
  4. Print it as ink on a sheet of physical paper

Where to Get Cheap Used Laptop Computer

I recommend buying used laptops off of eBay for less than 30 USD each.

If you are worried about a used laptop being infected with a virus or having pornography on it, then google "how to install ubuntu os2".

If you re-install the operating system (OS), the viruses will be inert and the pornography will outside of the index for in-use hard-drive space.

Make sure that the laptop you buy has more than 16GB of RAM.

The number one reason a computer is too slow is not enough RAM (random access memory).


As a quick introduction to some programming lessons, I highly recommend CS Unplugged. They have a number of great lessons introducing many core programming ideas without needing a computer.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.