# Short foundational lessons for 7-8 year olds

I have an opportunity to run four classes of about half an hour, with 7 to 8 year olds (my sons age). This is part of a program called STEM professionals in schools. All I am there to do really is help kids see themselves as potential scientists or mathematicians, and to see the subject as fun and interesting (with kids this young, just being a visitor in the classroom is already fun and interesting). I bring along a set of little cards I made up of my (very diverse in background) colleagues and talk about them in an introduction lesson.

These are my Computer Science lesson ideas:

1. Word unscrambling. This is already a familiar exercise from homework. Each child gets a worksheet with a words 3-12 characters long to quickly unscramble. We talk about why it was easy to unscramble 3-letter words and hard to unscramble 12-letter words. Then get ideas from the kids about instructions to solve the problem without knowing what the word is. [Algorithms, algorithmic complexity, optimisation tricks that work for computers and people alike (common letter sequences like '-ion').] This one is pretty well worked out, but happy to hear of anything I can do to make it cooler.

2. Substitution coding. Starts out as how to pass a secret message like a spy. My aim is to end up with something like a compiler or maybe zipf encoding - substitution rules that make the encoded message denser than the final form. Here, I'm a bit stuck for a solid example. Maybe a cipher system with a limited vocab? The principal concept is [substitution / naming / functions].

3. Logo. Basically a demo lesson using function definition in Logo to draw something recognizable (Captain America's shield, say), comparing how easy it is if I create my own substitution rules (functions). Also demo recursion, substitution inside the substitution rule with the Koch snowflake, maybe some other fractals. This is a demo of Logo, concept is mainly [functions].

4. Handwriting recognition deep learning. Set up a recognizer (this is easy enough, right?) and give the kids a chance to test their own handwriting (this will be hardest on my son, I reckon). Discuss how it works as lots of layers of functions which had to learn to work together. [machine learning]

• Welcome to Computer Science Educators! I'm going to put in a real answer tomorrow, but my instinct is that you're currently aimed at material that is far too dense for your time-frame, target age, and stated goals. I have some Finite State Machine games I can point you to when I do a more complete write-up.
– Ben I.
Commented Aug 30, 2018 at 4:39
• Is there a question here? I can't find one. Commented Aug 30, 2018 at 10:23
• I think that your second sentence is the focus for the Question ("... see the subject as fun and interesting") so if you edit to make this Question very clear, it will bring Answers geared toward exposure, rather than teaching. It sounds like you have some good ideas, so good luck on making them snap, crackle and pop! Commented Aug 30, 2018 at 15:38

If you are merely looking for feedback on this, let me point out, first, that according to Piaget's work, your students seem a bit young for this. They have only just entered the third stage of Piaget's Model. Moreover, since not all people advance in sync, some may still be in the second stage. In particular they are still very concrete thinkers. Anything that depends on abstract thinking won't be very comprehensible to them for a few more years.

For a small exercise, however, the above might not matter too much as you aren't expecting them to do much but think "WOW".

But there has actually been a lot of thought given to "computational thinking", through Jeannette Wing's work. This has mostly been directed at slightly older students, however, say secondary school.

There is a well developed effort to bring computational thinking down to this age level. CS Unplugged, provides a fairly comprehensive set of activities that are targeted at 5-10 year olds.

While there are a lot of things you can do, don't expect the kids to retain a lot of it, and certainly don't expect that they can then (or soon) abstract from it to actual computing. I find that Spiral education, in which ideas are introduced in a simple way early and then returned to (often), works well. So, for a first cycle, you give them a hint of things that might be and later reinforce that more formally.

I find that something as simple as the song There was an old lady that swallowed a fly is interesting and fun. It is also an introduction to recursion, but at that age, don't talk about base cases, etc.

A few more words about logo. While it is a fine language, you need to use it carefully for youngsters, so that what you do matches their cognitive level. Since they can't do much abstraction yet, there are a couple of possibilities. Since it is visual it matches their "concrete view" of the world, of course. One is to use only the language primitives. But another is to build a virtual world in logo with a set of its own "primitives" that they just use instead. These can be of a higher level than the built in commands, but are opaque to the students. Karel J Robot is like that actually. Robots obey five simple commands (move, turnLeft, etc) and students begin with only those. The robot language hides the underlying Java primitives completely.

• Can you expand on Pieget and Wing (the OP in not a teacher). I don't think you need much (for Pieget, what are the stages? What is the implication of this?). Commented Aug 30, 2018 at 12:12
• @ctrl-alt-delor. The links are there. Not enough? Commented Aug 30, 2018 at 12:27

See this resource from computer-science unplugged https://csunplugged.org/en/ (see also https://www.youtube.com/watch?v=VpDDPWVn5-Q) it is aimed at teaching this age group, and has some similarities to some of your ideas. The people that made it are very good teachers, so you will get an idea of how to teach this age group.

# Substitution

There is a substitution code exercise (cesar cypher).

# Logo

For the Logo, do it in the playground unplugged, I don't remember this in the un-plugged website. But if you look at the other ideas, then you should have an idea of how to do it (in small groups, one pupil takes on the role of the turtle, another takes on role of director, another takes on role of scribe (writes down program, when it is working). They can the use this program to blindly instruct a turtle(pupil), and see how it goes.

## Another idea is teacher robot

Pupils instruct teacher (you), to draw an image of a house on the white board. They can only give simple instructions (draw: line, vertical, horizontal, circle, square, etc. No house related words like door, or window). They won't get it first time. Just respond in robot voice ”I don't know the word …”, “I only know lines and shapes”, “I know square, circle, rectangle, line”. Follow there instructions literally. If there is two interpretations of what they say, then choose the wrong one. Pretend to be stupid (you are a robot). Real robots are stupid. Tell them this at the beginning, then reinforce it as you draw, then discuss at end, or as an interlude in the middle. You can also have a volunteer be the robot after you.

There is also “robot teacher jam sandwich”. It is like the above, but you will need an apron, some bread, some jam, a spreading knife, etc. see video https://www.youtube.com/watch?v=leBEFaVHllE.

# Unscramble

For word unscrambling I was thinking of having to many words, some short and some long. One point per word. You can then discuss strategy. Some pupils will choose short words (Why? optimum strategy for points). Some will do them in order (Why? unthinking). Some will do the longer words (Why? Optimum strategy for learning/fun. See https://www.ted.com/talks/carol_dweck_the_power_of_believing_that_you_can_improve ). You can discuss these strategies (That is, ask the kids).

My five year old had really fun with