Learning to be a good programmer is about learning and understanding fundamentals (conditionals, loops, functions... ) and about learning to solve problems. People on introductory programming courses should be using a language that lets them think clearly about these things without having to worry about syntax or complex issues. This is where teaching languages are important.
However, teaching languages are not used in the "real world". The language which will get you a job at the moment is Java (in my experience), so students want to learn Java. Writing the Hello World program in Java shows why it doesn't make a good language for beginners. What's a pulbic static void main? the students cry. Beginners shouldn't have to know about things like this.
For my masters thesis I have been designing a language called Kenya. Kenya shares syntax with Java where appropriate but presents a procedural language which (and here's the good bit) can be automatically translated into the Java code which would be written to solve the same problem. This means students can easily move on to Java when they've learned the basics.
Learning to be a good programmer is about learning and understanding fundamentals (conditionals, loops, functions ... ) and about learning to solve problems. People on introductory programming courses should be using a language that lets them think clearly about these things without having to worry about syntax or complex issues. This is where teaching languages are important.
However, teaching languages are not used in the "real world". The language which will get you a job at the moment is Java (in my experience), so students want to learn Java. Writing the Hello World program in Java shows why it doesn't make a good language for beginners. What's a pulbic static void main? the students cry. Beginners shouldn't have to know about things like this.
For my masters thesis I have been designing a language called Kenya. Kenya shares syntax with Java where appropriate but presents a procedural language which (and here's the good bit) can be automatically translated into the Java code which would be written to solve the same problem. This means students can easily move on to Java when they've learned the basics.
For more on Kenya see http://www.doc.ic.ac.uk/~rbc97/Project