What to teach after Scratch? [closed]
Asked Answered
F

10

26

My son is enthusiastically programming simple games in Scratch. However Scratch is a very simple programming environment (no subroutines even), and I can see that soon he is going to need to move on to something else.

Does anyone know of a good learning language that makes graphics easy but provides "real" programming features like data structures, functions, arrays and lists?

Bonus points if it runs under Linux (Ubuntu). An answer of the form "language Foo with library Bar" is also an option.

Fervency answered 18/7, 2009 at 16:29 Comment(2)
8 years old, but seems to have inherited the programmer bit from me.Fervency
Sorry to hear that, but there is still a good chance he can go on to lead a productive life without obsessing about star trek.Oriane
L
18

How about lua?

There is nice graphic "engine" called LOVE which is fully programmable in lua. It has nice documentation and it's not very hard.

There are also several other similar engines using lua:

There was another 2d engine, but I can't find it at the moment, it was similar to LOVE, but with a little different approach to things.

I would recommend LOVE for starters as it's very easy, has nice tutorials and most importantly you can do nice stuff right away.

Also lua is commonly used as game scripting language. For example all addons for World of Warcraft are written in lua, in fact all of the interface is written in lua. It means that it's very easy to find answers to game related questions in lua. Also if you happen to own a game which uses lua as scripting language, you could easily add your own stuff to it.

I wrote this from game perspective, but there are quite a lot projects which use lua as scripting language.

You could also try python, but it doesn't have so good out of the box, ready to use and easy to learn/understand tools.


Also here's a link to lua manual.

Lavonda answered 18/7, 2009 at 17:1 Comment(3)
lua + LOVE looks likely. The single approach to data structures will make it easy to explain, and the control structures (apart from functions) are similar to Scratch. A definite possible.Fervency
Updated the list. You can/should also provide him a simple template and maybe some helper functions because some stuff in basic game programming isn't that "basic", like game states (intro, game, game over, etc) and animation. Lua is quite dynamic so you can customize it to make it easier and you can provide functions which simplify things which are hard to understand for him. I myself started with programming around his age with Zbasic and later Qbasic.Lavonda
So lua+LOVE gets the job. lua looks easier to learn than Ruby, and you can take the first demo program and use that as a skeleton for something more complex (which is as far as we've got today). Browsing through the docs I see its also got a simple physics engine for collision detection and related stuff, which is cool too.Fervency
B
11

If Scratch is starting to get a bit limiting, but they're not ready for the hardships of text-editor coding, take a look at Scratch-derivative "BYOB" (Build Your Own Blocks). Seriously, it turns Scratch into a grown-up programming environment with functions (and hence recursion), data-structures, multithreading and everything!

There's also Panther but I was less impressed by it (creating new blocks in Panther seems to require coding their function up directly in Squeak, while in BYOB you can just build them in the usual drag-n-drop Scratch style).

Buddhology answered 23/10, 2010 at 2:34 Comment(2)
It doesn't differs much from Sratch, and also is a beta. Not a good idea to let a child learning a not stable tool. The enthusiasm can be gamed away very quickly.Glossectomy
BYOB has been renamed to Snap, it is still in beta, the UI lacks a bit of polish, but appart from that, it is really like Scratch++. I would keep an eye on this toy for my kids (and me too ;)Wifehood
P
7

Take a look at Processing.

It's tour de force is graphics, animation, and visual manipulation. It runs under Linux, too.

Processing is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool.

Pill answered 18/7, 2009 at 16:39 Comment(0)
H
6

A nice review here suggests Alice and Shoes after Scratch -- I have no personal experience in the matter, but from the review they seem worth checking out.

Hostetler answered 18/7, 2009 at 16:41 Comment(1)
Alice only has Windows and Apple versions, and won't run under Wine (although in theory its Java, so it ought to work). Shoes is a definite possible.Fervency
A
6

It might be just a little bit larger of a jump, but Python with PyGame will allow your pupil to make many of the same sorts of programs as he or she is already used to with Scratch, but with very tight control over how the whole thing works.

  • Pros: It's python, which is a very easy language to read and write, and provides a very rich programming environment, without really any boilerplate required.
  • Cons: its SDL, which uses an event-loop that you get to write yourself. This might be a pretty large hurdle for a young programmer.
Alienism answered 20/7, 2009 at 0:33 Comment(1)
Yes, I think going to Python after a Kid's language like Scratch is the best idea and time-investment. It's my experience from teaching programming my nephew.Glossectomy
B
4

Scratch is written in Squeak (which runs on Linux, Windows and Mac) so I'll say step up to Smalltalk! The only problem is the lack of a very good beginners book on the language, which is strange when you consider its origins. However, the basic concepts are easy to learn (almost no syntax) and the environment encourages experimentation.

Belak answered 18/7, 2009 at 17:35 Comment(2)
I tried to play around with Squeak, but I couldn't see an obvious "start here" point for getting anything done. The tutorial spends a long time in a guided tour of the environment, which is no doubt necessary to get anything done, but a very steep learning curve for a child.Fervency
The fault of the tutorial, I'm afraid. But realistically, any full programming language with a moderately complex IDE is going to have a learning curve. The jump from an environment like Scratch is a big one.Belak
P
2

Here is an interesting microsoft project called Small Basic that is a good, simple, free programming environment for learning, based on BASIC.

No bonus points because of the lack of ubuntu, but a cool learning tool.

Pleomorphism answered 18/7, 2009 at 17:30 Comment(1)
+1: Interesting! Only 5 MB installer.Glossectomy
D
1

is QuickBasic still around? That's what I started with when I was like 7-8, and I was able to make full fledged games, etc. without any external libraries.

EDIT: check out this link about FreeBasic:

http://linux.about.com/b/2006/11/10/freebasic-open-source-alternative-to-quickbasic.htm

Deroo answered 18/7, 2009 at 16:35 Comment(0)
C
1

Well, there is venerable old Logo -- not sure about structures but you do get lists, functions with parameters, and graphics are very straightforward. There are plenty of good implementations, too. Logo has even been likened to 'lisp without all the parentheses'.

Crabtree answered 18/7, 2009 at 16:36 Comment(1)
Any open source Linux implementations? Last time I looked it was all commercial stuff. Also plain turtle graphics won't cut it anymore; it needs sprites and stuff. I like the idea of introducing FP early, but I know that lack of easy sprit-like graphics will kill it for my son.Fervency
K
1

I would suggest using CodingBat. Although CodingBat doesn't provide graphics, it does provide the "programming features" and straightforward practice involving strings, array, and logic. I think this website helps with developing the basic foundation behind programming.

Link: http://codingbat.com/

Kingpin answered 27/3, 2013 at 7:16 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.