[Gllug] Logo as a first language

Russell Howe rhowe at wiss.co.uk
Fri Mar 4 02:11:24 UTC 2005


On Thu, Mar 03, 2005 at 06:44:29PM +0000, John Southern wrote:
> Does anyone remember logo? Not icons, but the programming language.

Yes! Loved playing around with it at primary school on the BBC micros
(as a taught lesson, no less). Was my first introduction to variables
and loop constructs, I guess...

> Having collected my youngest from school, I find that as a four year old, she 
> is being taught how to program a Roamer turtle 'bot in logo.

Hmm.. they had a physical turtle at school which could be hooked up to
the BBC and which you could program to carry out your commands for real.

I never remember seeing it actually work though - it broke so easily and
had to be repaired so often, they very rarely took it out of the box
(in the end, I think they gave up getting it repaired...)

> Also what would be the idea programming language you would learn if you had to 
> start all over again today?

Difficult!

Manchester uni used to start CS undergrads off with SML, which is a
functional (well, mostly...) language. I thought it a really interesting
way to teach programming fundamentals. It may not be a hugely practical
language for writing real-world applications in (although certainly
possible...), but the aim was more to teach data structures, algorithms
and computational constructs such as recursion (good to start with
recursion and do iterative stuff later, I thought).

For many problems, the recursive solution is the cleanest, most
clearly defined and provably correct method of solving them (not to
suggest there is only ever one solution to a problem, or that there is
only one solution which involves a recursive method). To get people so
used to developing recursive solutions that it becomes second nature -
the problem is presented, you instantly think about the various
recursive techniques you can use to solve it, and to *then* be
introduced to an imperative language such as C where recursion is no
longer the only method of iteration then makes it more likely that you
will take a more open view towards other languages.

At least that's what it did to me. I felt cheated that my first
programming language after logo was Locomotive BASIC on my Amstrad
CPC464, with forays into other BASIC variants (I always went back to
Locomotive BASIC - I found it nice and friendly) and even a little bit
of Z80 assembler.

I'd say that the ideal teaching language depends on how soon you want
your student(s) to be producing useful code in a language suited for
real-world applications.

If you're teaching them programming so they can be a developer, then
start them off with whatever language you're developing in if you can.
Otherwise, pick something that doesn't cloud the programming with
practicalities (like public class HelloWorld { public static void
main(String args[]) { System.out.println("Hello World!"); } },
followed by setting CLASSPATH appropriately and explaining why "java
HelloWorld.class" doesn't work. All useful for the beginning Java
developer, but when learning to program, it just gets in the way).

Oh, and it will come as no suprise to learn that Manchester now start
their undergrads off on... Java.

These days I don't really see a reason not to start people off on one of
the interpreted object oriented languages, although I haven't really
used any of them :)

python, ruby, someone already mentioned a smalltalk derivative...

python's quite neat in that you can bring in the concept of a
compiler pretty much whenever you like (including not at all :)

Or maybe a functional language.. (S)ML, lisp is probably a bit too
'pure', but I've never really used it, haskell, scheme, etc..

I saw something about GNU adopting scheme as their application scripting
language (so VBA for GNUstuff, I guess?). Gnucash uses it quite a lot
IIRC..

I don't think I'd recommend many of the popular languages as teaching
languages. C, C++, Java, VB, C#, etc. They are useful for producing
software, but with every Java course I've seen, either people haven't
produced anything rewarding by the 3rd lesson, or they haven't
understood what the classpath's for by the 3rd lesson :)

I would expect the method of teaching to have more of an effect than the
language taught, however...

-- 
Russell Howe       | Why be just another cog in the machine,
rhowe at siksai.co.uk | when you can be the spanner in the works?
-- 
Gllug mailing list  -  Gllug at gllug.org.uk
http://lists.gllug.org.uk/mailman/listinfo/gllug




More information about the GLLUG mailing list