Suitable environment for a 7 year old

My 7 year old was learning how to program? (His idea is not mine, and he does things in the outside world. Thus, I am not too worried from this point of view. He has already gone so far as to release a game programming book from my office to read in bed.) The other day we sat down and wrote a very simple guessing number (you choose 8, and rightly so, something else is wrong).

Everything went well, but there were a few questions that he based on the syntax of the language. (I accidentally chose Java because the IDE was open at that time.) I teach the post-secondary introductory programming courses, so that was a little discovery for me (most high school students don't want to ask questions), because I really needed to figure out how explain the syntax to a 7 year old?

Obviously, any C-type language will have the same problems as most "languages". I looked at the squeak, but decided not to use it yet. I looked at Alice’s environment, but I didn’t like it either.

From a physical point of view, it is convenient with a keyboard / mouse and can easily assemble Lego sets (therefore, the following directions work for it with a funny result). I have access to Lego NXT, but it is still a little young for this (it takes too much time to see the results of work, even with the provided graphical environment).

Ideally, I would like experience to help him build confidence in mathematics and logic (if a 7-year-old has logic :-).

I remember how the turtle was a graphic / logo in childhood. I tend to do this, but wonder if there are any other ideas or can anyone recommend a good logo environment?

Change 1:

The logo works well. I need to teach him the concept of angles (90 degrees, 180 degrees). Unfortunately, they don’t actually do division at school, but so angles can be fun ...

First, cross out the square:

FORWARD 50 RIGHT 90 FORWARD 50 RIGHT 90 FORWARD 50 RIGHT 90 FORWARD 50 RIGHT 90 

At some point, I will go into loops:

 REPEAT 4 [ FORWARD 50 RIGHT 90 ] 

And then the variables:

 make "length 50 REPEAT 4 [ FORWARD :length RIGHT 90 ] 

It works very well. Virtually no syntax simple for a 7 year old to remember vocabulary and immediate feedback.

Edit 2:

Well, that was a success because he was able to write a simple program (not yet loops) while I was outside the room. This actually works very well - we went out and got graphic paper and a protractor, we guessed 90 degrees, and he made a bunch of squares, turned the square into a rectangle and saw where he didn’t do how to debug it. I would recommend this approach to anyone with a 7 year old who is interested in programming. I think I will recommend it to my students after graduating from high school (!)

+42
children
Feb 27 '09 at 19:09
source share
31 answers
  • one
  • 2

Javascript actually has a browser-based Logo interpreter.

http://logo.twentygototen.org/

+23
Feb 27 '09 at 19:14
source share

I strongly disagree with those who say that it will be difficult for seven-year-olds to learn the new syntax. It is completely back. Try to teach lead latin a seven-year-old child and up to thirty something non-native English speakers. Or try traveling in a foreign country with your children. Look who can talk freely with the natives in a month (hint: this is probably not you).

Children choose on arbitrary linguistic conventions much faster than we gray hair.

+23
Feb 27 '09 at 19:26
source share

I learned to program when I was 10 in the exact way you taught your son. My dad used the GW-Basic interpreter that came with our AT&T PC6300, and we wrote a game where the computer asked you a question and you had to answer A / B / C. The great advantage of syntax in GW-Basic was that you did not have multi-line statements. You might want to try something like this. Java, with curly braces, can be a little tight.

Code example:

 10 PRINT "What color is Big Bird?" 20 PRINT "A. Blue" 30 PRINT "B. Green" 40 PRINT "C. Yellow" 50 INPUT$ ANSWER$ 60 IF ANSWER$ = "C" THEN PRINT "Good Job!" ELSE PRINT "Oops, wrong answer!" 

I spent hours on hours using various permutations of this syntax and recording my own “games”. And that made me want to know more ... might help.

+12
Feb 27 '09 at 20:27
source share

Tell him about the parsers. You just need to add context and reason about why everything happens. Curly braces mean that the machine that reads the code knows where everything starts and stops.

I believe that most people, including children, pick things up easily while you explain the purpose to them. That's why school was a terrible failure for me, no one ever explained that half the material needed to be studied.

+9
Feb 27 '09 at 19:23
source share

I think Python can fit your needs. This is well known because it is easier to learn than many other languages, and an interactive interpreter allows programmers to immediately see what happens when a piece of code is executed. The IDLE gui that comes with it is easy to use. It also has a turtle module through TKinter.

https://docs.python.org/library/turtle.html

+6
Feb 27 '09 at 19:13
source share

Scratch is another one. Developed at MIT specifically for teaching children programming.

+6
Feb 27 '09 at 20:15
source share

In general, a seven-year-old is unlikely to catch the basics of syntax, even in his spoken language.

Whatever language or environment you use, I would recommend focusing on the idea of ​​programming as a game, and not on the ability to write real programs. To this end, you can run from the command line and see immediate results such as Python or, for a more graphical experience, Silverlight is likely to be better.

+5
Feb 27 '09 at 19:15
source share

Microsoft has some interesting efforts that seem enjoyable:

  • popfly: http://msdn.microsoft.com/en-us/devlabs/cc950523.aspx --- "Popfly includes an easy way to create and share games with friends. From the many built-in templates or start from scratch to create a game with scrolling, 2D shooting or many others. And most importantly, you can get started without writing a line of code "... I think this can really help motivate :)

+5
Feb 27 '09 at 19:20
source share

Try Small Basic , which has a mini-BASIC language and is simplified for a younger crowd.

+4
Feb 27 '09 at 19:27
source share

Run from Java! Try something for learning, like scratch , LOGO, or PLT .

+3
Feb 28 '09 at 3:50
source share

Why not go back to QBasic time? This is the first language I learned (actually it was GW-BASIC, but it is not).

The syntax is much easier to get around one (albeit inconsistent, and sometimes just frustrating). He doesn't teach OO anything, but probably above his head, as that would be mine.

This site may also be of interest.

+2
Feb 27 '09 at 19:21
source share

I would say using a visual base or something similar where you don't have to worry about syntax, curly braces, etc. I programmed in 7, but that was in LOGO and C64 Basic. I hated LOGOS ... it was so unpleasant for me that one of the “big” things you could do was move around a stupid turtle. However, C64 Basic (for me) was great ... as soon as I had it (a couple of years), I was in the know to learn C and even C64 assembler.

+2
Feb 27 '09 at 20:32
source share

Two thoughts come to mind:

  • My 3 year old son loves playing World of Goo with me. He still cannot solve the problems, but I see that he absorbs a lot of information.
  • Go with Alice . My son is too young to try this, but as soon as he gets older, we will yield to him if he is passionate. FWIW I found out about this program after watching The Last Snippet of Randy Pausch (RIP)
+2
Feb 27 '09 at 20:45
source share

Ask him to check out http://scratch.mit.edu . My seven year old learns this when we print ...

+2
Apr 15 '09 at 12:31
source share

Etoys is perhaps what you are looking for. This is partly a smalltalk graphic fragrance created just for kids. This is used by the olpc project.

+1
Feb 27 '09 at 19:21
source share

I participated in an entry-level computer course using Stagecast . It is a graphic programming language designed for children. I found it an ideal introductory language because it is graphic and interactive. It does not require reading or math, it works on Windows and Mac OS, and is ideal for simple games, so children are motivated to learn.

+1
Feb 27 '09 at 19:29
source share

As long as it seems to be redesigned, you can still get the old version of Hackety Hack , which is a ruby ​​programming kit developed by _why for teens and novice programmers.

+1
Feb 27 '09 at 20:55
source share

I'm a little torn about Alice.

On the one hand, it is good to have a structure in which you can program with direct visual satisfaction. This is a really good idea.

On the other hand, I think it’s really bad to have an idea for beginners solely using drag and drop. I am afraid that this may even lead to illiteracy when they cannot create correctly written code when deleting the drag and drop interface.

+1
Feb 27 '09 at 23:01
source share

Personally, I believe that the basics of arithmetic operations and logical logic are more important for teaching a child first. After they understand these concepts, I think that the transition to the basic constructions is appropriate. I just don’t understand how a child could understand conventions and a cycle without logical logic, but again, there are some pretty bright children :)

Assuming the previous statement is complete, I would have to cast my vote for python.

+1
Feb 28 '09 at 6:26
source share

I would look for one of the many arcade game engines and let him play with it. Choose the one where he will need to use cycles and conditions, as well as some procedures.

0
Feb 27 '09 at 19:24
source share

There is a book called "Teaching Programming from Pragmatics," which focuses on people who have never been programmed before and cannot be extremely technical.

He uses Ruby, which can be very easy for new people.

0
Feb 27 '09 at 23:07
source share

The Squeak Smalltalk system is a Smalltalk implementation that I have heard a lot about when it comes to teaching children how to program. The Etoys project is said to contain many resources to support fun and motivating learning.

0
Feb 27 '09 at 23:23
source share

I became interested in programming when I became acquainted with the Turing language in high school. At that time, Turing was used as an educational language in many schools, and it was very good for me to introduce programming concepts. Here is a description of Turing from WikiPedia

Turing is a Pascal-like programming language developed in 1982 by Rick Holt and James Cordy, then University of Toronto, Canada. Turing is a descendant of Euclid, Pascal, and SP / k, which has clean syntax and precise machine-independent semantics.

Named after the British computer scientist Alan Turing, Turing is mainly used as a teaching language at the high school and university levels. There are two other versions, the object-oriented models Turing and Turing Plus, and system programming options. In September 2001, Object Oriented Turing was renamed Turing, and the original Turing was renamed Classic Turing. Turing is available from Holt Software Associates in Toronto.

Versions for Microsoft Windows, Linux, and Apple Macintosh are available. Turing is still widely used in high school in Ontario as an introduction to programming.

In November 2007, Turing, previously a commercial programming language, became free. As of November 28, 2007, it was available for free download from the Holt Software website for personal, commercial, and educational use. one

0
Feb 28 '09 at 3:59
source share

You can also use the Commodore 64 emulator. It starts with BASIC.

0
Feb 28 '09 at 7:39
source share

You can also throw Lego ™ Mindstorms ™ as an opportunity. It uses a graphical programming language based on LabView.

0
Apr 15 '09 at 12:41
source share

I read this post earlier today, and then accidentally went to YUP.com and discovered

Teaching children how to hack (program) with Hackety Hack

I realized that I posted it as an additional resource for those who are looking at this question.

0
Jun 12 '09 at 20:36
source share

I recently answered a similar SO question with a pointer to kidbasic , which is open source cross-platform software.

0
Jun 12 '09 at 20:41
source share

The layout is nice and syntactically similar to the logo in terms of simplicity. Scheme also offers a very intuitive way to understand recursion and select such fundamental concepts in computer science that at an early stage it is nothing more than good with greater benefit.

UCB Scheme also offers many built-in functions for manipulating sentences, which may make more sense for 7 years of age than creating polygons and solving puzzles (not to mention the limit of the sky!).

0
Jun 12 '09 at 20:53
source share

I used to print programs from BASIC Fun when I was in 2nd grade.

I clearly remember that the concepts of infinite loops and INPUT A $ were like detecting gravity. Dizziness.

Tutorial, my progress was slow, but I reached the goal in the program, where I wanted GOSUB to accept variable arguments, which in retrospect meant that I understood pointers to functions.

My early goals included writing LONG programs. A long-term program is not a bad goal for a 7-year-old, because a program with a well-defined specification makes the risk of failure too high. Anyone can write a long program and feel good about it and learn a lot along the way.

There was a whole genre of programming books in BASIC in the 80s. This material is a great source of programming ideas. However, I would not recommend using BASIC even for a 7-year-old - lua has a simple BASIC feel, but it's not broken shit.

0
Jul 01 '09 at 4:17
source share

Look no further, in fact there is a whole training platform / OS designed for this purpose: Sugar .

The OLPC operating system (one laptop per child) called Sugar is now available to the general public, and you can run it as a virtual machine on all major operating systems such as Mac, Windows and Linux.

Download a copy at Sugar Labs .

One interesting activity includes TurtleArt, a 21st century version of the logo. There is also a child-friendly version of the Python IDE called Pippy. He actually teaches the children of Python!

See TurtleArt and Pippy and other activities found in Sugar.

Alan Kay was behind some of the new concepts in Sugar OS, which is actually the modern incarnation of his visionary DynaBook. Even as an adult (who is an engineer), I enjoy playing.

And if you love Sugar as a VM, you can even buy equipment and at the same time help a poor child elsewhere in the world.

Engadget explains: OLPC XO Buy-One program, Give-One program

OLPC OX

As a bonus for us adults, sugar comes from Fedora. So this is a real and complete Linux based OS. It should be fun to crack .; -)

0
Jul 17 '09 at 6:35
source share
  • one
  • 2