Related Entries

Quick Start: Git for personal use
SVN client over SSH to remote Unix server from Windows
Quick Start Grinder - Part V
Quick Start Grinder - Part IV
Quick Start Grinder - Part III

« Quick script to log site hits
» Using XPath and XPointer

Teaching Java

An article explores proper ways to teach Java. Python should be used to teach the art and science of programming.

O'ReillyNet: Rethinking the Java Curriculum: Goodbye, HelloWorld! “How do we train students in the ways of object-oriented programming? Teaching them C first and then porting to Java is obviously the wrong thing to do. And HelloWorld gets very few OO points. In this series, Daniel Steinberg applies Extreme Programming concepts to the problem of teaching Java.”

The article talks about how to teach Java to new programmers. I think, at the moment, Python is a far better language for introducing newbies to computer programming, than Java.

I’m not a computer science graduate, so I’m not quite qualified to comment on this. But, I do program in several languages and have conducted programming language courses. With that in mind, I think Java is only slightly better than C when it is used as a language to teach newbies programming.

I think, since OO programming is only a paradigm, it should not be focussed upon first. For newbies, first they need to be taught what is programming. Do they realize that a computer does only what it is told to (Ok, theoretically at least. I’m not talking about Windoze machines here)? 90% of programming involves clear and logical thinking. With that in mind, what newbies need the most, is clear and logical programming language. Some thing they can read and easily understand.

Java
public class HelloWorld {
  public static void main( String [] args) { 
    System.out.println("Hello, world.");
  }
}
Python
print "Hello, world."

For a moment, assume you don’t know anything about computers and programming languages. Where as the Python code is very clear - it does what it says it will do; Java listing can possibly create following doubts:

In short, the only thing that makes sense is print, but that too doesn’t make much sense because the newbie hasn’t heard of a variation called println.

The point of this comparison is not to make fun of Java, a fine language. I think an elegant language that closely mimics logical and outlined thought process should be used to teach newbies. Here’s a slide from one of Guido’s presentations.

Easy to teach the principles
  • see trees through forest
  • structured programming
  • object-oriented programming
  • programming large systems
Interesting, realistic examples
  • connect to real applications
  1. I want to learn java graduately,
    please help me

    Posted by: baharak on July 27, 2003 03:25 AM
  2. I Want to learn Java

    Posted by: Ariful H. Molliq on September 23, 2003 02:46 PM
  3. I want to learn the computer language where you can make files that tell a computer to do something, but I don't know much about OS's, ports, and alot of other stuff.

    Posted by: bryner on June 24, 2004 08:24 PM
  4. hi,
    i am currently studing java but i m not able to understand so plz i help me to learn java. As well as i am an undergrad student.

    Posted by: nikhil handa on October 3, 2004 11:42 AM
  5. i need to learn java to pass this class please help me

    Posted by: Suzan on October 25, 2004 03:34 PM
//-->