2008 East
DIAMOND SPONSOR:
Data Direct
Frontiers in Data Access: The Coming Wave in Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
Intel
Virtualization – Path to Predictive Enterprise
Green Hills
IT Security in a Hostile World
JBoss / freedom oss
Practical SOA Approach
GOLD SPONSORS:
Software AG
The Art & Science of SOA: How Governance Enables Adoption
PlateSpin
Effective Planning for Virtual Infrastructure Growth
Fujitsu
Automated Business Process Discovery & Virtualization Service
Ceedo
Workspace Virtualization
Click For 2007 West
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
I received an email stating that AOL finally aband...
TOP THREE LINKS YOU MUST CLICK ON
Teaching Kids Programming: Even Younger Kids Can Learn Java
One day my son Dave (10) showed up in my office with my rated 'R' Java tutorial in his hands. He asked me to teach him programming so he could create computer games. By that time I've already written a couple of Java books and have taught multiple classes on programming, but all of this was for grownups! A search on Amazon could not offer anything but books for dummies! After spending hours on the Internet, I could only find either some poor attempts to create Java courses for kids, or some reader-rabbit-style books on our friends computers.
Reader Feedback: Page 1 of 3

I'm in my third week of my Java class in college. I just could not understand how to call to a method. Yes, I was having programmer block. This was simple explain and the "real life" examples help visual the layout. Now lets see if I can get my assingment done.

Hi Yakov

You are way off in trying to teach kids proggramming by teaching them in Java. Or to be more accurate by teaching them in plain Java without some form of framework withh graphics and sound built in.

My suggestion is teach them in Smalltalk! To be more specific a smalltalk dialect named Squeak. Take a look at http://www.squeakland.org/.
I have been a Java addict for over 6 years, reading, learning, read blogs after blogs and have come across Smalltalk once in a while and just thought 'This is such an old language and must be really terrible compared to Java in terms of features and potential'.
Well now I know Java is a disabled version of Smalltalk with no new ideas and some evil twisting of others.
By no means is Smalltalk the best a language will ever get to but in my opinion it probably is in the top 3 if not right at the top.

Why teach kids how to compile? In Smalltalk as soon as you change the code IT IS COMPILED. Go take a look at Seaside web framework. Look at how you can change the code at runtime through the web interface and see your changes immediately. (By no means are these the best points of these products but just some that jump to mind, take a look at http://www.seaside.st/ http://www.opencroquet.org/index.html http://squeak.org/ http://www.whysmalltalk.com/ )

Kids don't need to see the complexity but should see a powerful tool in the form of a computer, and in my opinion Smalltalk (Squeak) opens up a childs imagination and potential.

I am hoping to leave Java and start some form of Smalltalk based consultation firm in South Africa.
All the best
Cheers
Smalltalk convert

Teaching Kids Programming: Even Younger Kids Can Learn Java. One day my son Dave (10) showed up in my office with my rated 'R' Java tutorial in his hands. He asked me to teach him programming so he could create computer games. By that time I've already written a couple of Java books and have taught multiple classes on programming, but all of this was for grownups! A search on Amazon could not offer anything but books for dummies! After spending hours on the Internet, I could only find either some poor attempts to create Java courses for kids, or some reader-rabbit-style books on our friends computers.

Teaching Kids Programming: Even Younger Kids Can Learn Java. One day my son Dave (10) showed up in my office with my rated 'R' Java tutorial in his hands. He asked me to teach him programming so he could create computer games. By that time I've already written a couple of Java books and have taught multiple classes on programming, but all of this was for grownups! A search on Amazon could not offer anything but books for dummies! After spending hours on the Internet, I could only find either some poor attempts to create Java courses for kids, or some reader-rabbit-style books on our friends computers.

Teaching Kids Programming: Even Younger Kids Can Learn Java. One day my son Dave (10) showed up in my office with my rated 'R' Java tutorial in his hands. He asked me to teach him programming so he could create computer games. By that time I've already written a couple of Java books and have taught multiple classes on programming, but all of this was for grownups! A search on Amazon could not offer anything but books for dummies! After spending hours on the Internet, I could only find either some poor attempts to create Java courses for kids, or some reader-rabbit-style books on our friends computers.

If you want to teach a child to use programming, I would seriously recommend you start them off with ActionScript, the language of Macromedia Flash. It's just about the easiest and most flexible language there is. I started using it when I was 9, and now have a complete understanding of the language. Most of the stuff I knew was self-taught, too. Because with Flash, you get the option of not typing out everything manually. The Actions panel can do most of the work for you - all you've got to do is drag in a script from a nearby list, and then specify the parameters it asks for. All the syntax you've missed out is done for you. Granted, Macromedia removed this feature in Flash MX 2004, due to the introduction of ActionScript 2.0, but if you pick up a copy of Flash MX from eBay or Amazon, you'll be able to learn the language with ease.

Flash is a lot simpler than most languages, since you can declare new variables whenever you want, you don't have to say how much data they store (int, long, double, etc.), a variable that started off as a value can be changed into a boolean, string, object, or any other data type, whenever you want. It's also VERY easy to produce results from a script quickly in Flash. Also, Flash is a vector art and animation program, so doing graphical stuff is a breeze.

I'm 13 now, and just starting to explore the realms of Java. Flash gave me a basic knowledge of classes, and I'm hoping to expand on that by learning a language that revolves around them a bit more. I'm trying to use Java to bridge the gap from ActionScript to C, and I've definitely learned something just from skimming your tutorial (what the 'extends' keyword does).

Teaching a child how to program is definitely possible, but if you use Flash to do it, there's a lot less for them to learn. Syntax highlighting can aid children such as myself immensely, even if it's just showing us when we've missed out a capital letter for a function name or something. Auto-indentation can't hurt, either, so make sure you've got a decent code editor.

I also agree that there are very few books out there for teaching kids programming and I commend the author for writing it.

One little secret is that if you write a book for kids, it will be adults that will read it. This is the best way to learn.

Excellent points on "programming readiness" and interesting examples.

That said, I feel Java syntax is a little cryptic for kids (and adults too, actually). I'm urging Java on my math-major son-in-law strictly as a professional recommendation. However, in the case of my 14-year-old son, I would really prefer he have a more readable language available to learn programming. Let's face it -- in Java, the closure of braces and parentheses frequently and invisibly zangs across forty lines of code.

I'll note my 14-year-old son sometimes doesn't know the difference between runtime environments. He will pop up a bash window on one of our Macs, and code 'cout {{ "Hello, World!"'. (Board won't allow regular less-than sign.) (Granted that's C++ but you get the idea.) He's actually pretty much into Flash right now.

The commentary on wife being a superclass is hysteric.

A couple of years ago I taught a programming elective in Java to 7th and 8th graders. I quickly found out that all the IDEs were too complex for them. They needed something really simple. They also needed some fun programming tasks.

I end up writing a simple IDE call Jurtle. It combined an editor with a graphics area where you could program a Turtle to move around as in the Logo language. It was a big enough success that I wrote a programming tutorial to go with it and turned it into a commercial product.

You can find out more about Jurtle at http://www.otherwise.com/Jurtle.html.

wow its gr8 well i was searching for a site that could teach me programming . ah well am new to java and have boards nest year .n itz really gud to begin it like a kid when u r using it for the dirst time .......thnx ur da best

I was searching for "Teaching kids programming" and came to this page. As a parent (with an 8 year old son) I'm beginning to look for software and languages that are appropriate for his age. Although I'm a multimedia and rich internet application developer, figuring out where to start my son on programming is a new challenge. We looked at Lego Mindstorms a few years ago and thought it's too difficult for him (box label says for age 12+), and I'm also looking at all the classical first programming languages such as Logo and Pascal, but I feel that perhaps something more visual and instant would generate more interest. On the other hand, I want my son to learn the concept of object-oriented programming, which is natural and applies real-life concepts.

Perhaps I'd start him off learning ActionScript (Macromedia Flash) because it is:

1) simpler than Java/C#...etc.
2) object-oriented with a syntax very similar to Java (ActionScript 2.0)
3) easy to create visual elements and animations
4) instant gratification (not sure if this is always a good thing!)
5) popular as a standard web format so he can reuse and show them easily

Thanks for the article. I think more such tutorials for kids are needed.

a fun read end-to-end. parenthetically,I got Legos Mindstorms for my birthday last month, and fretted about getting a "kids" toy that costs...etc, etc, until I saw my son (7)following the tutorials over my shoulder and when questioned, explaining concepts like variables,loops and conditionals to me. I thought about leaving the Legos language on there for his sake(the lego block metaphor for a 7 year-old is compelling), but after two weeks, updated the firmware to leJOS- My son loves making things out of legos and I am hoping that his interest in seeing these little robots do things (in java) will prompt him to learn more about how to make them do things he wants them to.

Great article. However, you are teaching a bad habit with this method:

public int dive(int howDeep)

This is a prime candidate for the "Separate Query From Modifier" refactoring:

http://www.refactoring.com/catalog/separateQueryFromModifier.html

You should have:

public void dive(int howDeep)
public int getDepth()

Small focused methods are good, and easier to understand - especially for beginners, I would think. Focus on one thing at a time (something many "good" programmers have a hard time with)!

Thanks,
Chad

Mark,

I''m not the one who prepared the HTML for this article :(
My e-book has the proper indentation - see the sample chapter over here: http://www.smartdataprocessing.com/java4kids.htm

Having taught Java at the Community College level in both "Computer Science 1" and "Intro to Java Programming" contexts, I applaud your efforts to bring an Object Oriented language to grade schoolers.

However, I only wish I had the words to express the HORROR I felt on seeing your white-space cramped, left-justified 1TBS code examples. Surely a properly indented Allman-style example would be a better, easier to read example.

Shouldn''t the first lesson of programming should be "Make it readable, because YOU are going to have to read it."

And yes, they should learn this early, just as they learn capitalization and punctuation and penmanship early.


Feedback Pages:


FEATURED WHITE PAPERS
YOUR FEEDBACK
udaykiran wrote: Really Excellent Information. But i have some doubts. initially i have some aversion towards annotations but after reading this article i develop some interest on it. later my R & D i want to create an annotation which is like @Singleton when ever i applied this annotation for a class then i want to...
Werner Keil wrote: Java 6 update 10. If I'd be running Apple, I'd probably really drop dead once Chrome comes out for MacOS?! Otherwise there won't ever be Applet or Java support on Mac for Chrome at all below Leopard 64 Bit.
Younis Alomoush wrote: Hi Duncan and Frank, Thanks for your great efforts. It is a job well done. In fact,I have installed the module and plugged it to my own application for evaluation purposes.However, I have found a scenario where a user can access into a unauthorized page, I don't know if I can call it as a bug or n...
James Nelson wrote: Thanks for the posting, which we are hoping will solve our software issue with two Turkish clients. This may be four years out of date, but please correct the code example, which has many nonsensical errors (two identical operations on anotherUserVisibleString, use of String tag without later reuse,...
Ambuj wrote: Hi Matt, I have some problem with retrieving the producer, when i am entering the wsdl of my service(https) which is in WSRP and hosted on IIS, then its saying unable to retrieve producer. And if i try the same in IE its getting the wsdl, now can you tell me where i am missing the configuration...
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS

SYS-CON FEATURED WHITEPAPERS

BREAKING JAVA NEWS
Ricoh Americas Corporation, a leading provider of digital office equipment, today announced the avai...
What could be a problem with logging in SOA in the presence of such wonderful tools like log4j, Java...
Aonix released PERC Ultra 5.1 cross development and target support on Sysgo's PikeOS 2.2 real-time o...
What's the key to team and individual developer productivity in maintaining and extending a large ap...
An applet, a Java program that runs in a browser, often has to access the client resources. However,...
Three-letter acronyms (TLAs) are hardly new in Information Technology: EAI, ESB, SOA, BPM, BAM, ETL,...
Furthering its dedication to providing Java developers productivity with choice, Oracle announced th...
Two of the biggest launches in Rich Internet Application history took place in 2007/2008 when Adobe ...
Red Hat CTO Brian Stevens, Citrix CTO Simon Crosby, Egenera CTO Pete Manca, Allen Stewart, Group Man...
Government intervention and direction has long been critical to the development of the computer indu...
Commercial systems are developed with a huge range of performance requirements and we are concerned ...
Genuitec announced the availability of MyEclipse Enterprise Workbench 7.0 milestone 1. This mileston...
Genuitec announced the availability of the first milestone release of MyEclipse 7.0 Blue Edition. Th...
Clear Toolkit 3.0 is a set of components, code generators, and plugins created by software engineers...
Mike Neil is general manager for virtualization strategy in the Windows Server Division at Microsoft...
The pressure is on to keep pace with Web 2.0 entrants into the marketplace. Rewriting is expensive; ...
Aerial and satellite imagery, topographic maps, and terrain data available from ESRI's ArcGIS Online...
"Advertising on Google.com is contextual, requires no personally identifiable information, is not pr...
In this session that no developer who uses JavaScript or ActionScript will want to miss, delegates w...
With the rapid evolution that Java and open source frameworks have made since the release of J2EE, e...
jQuery is a rapidly growing, popular JavaScript library. Its powerful and modular architecture, whic...
SPONSORED BY INFRAGISTICS
There are many forces that influence technological evolution. After a decade of building enterprise ...
2008 is going to be an important year for Rich Internet Applications. Most organizations are deliver...
The OpenAjax Alliance is developing an Ajax industry wishlist for future browsers, using a dedicated...
In every field of design one of the first things students do is learn from the work of others. They ...
Infragistics announced the availability of two Community Technology Preview (CTP) User Interface (UI...
The YUI development team has released version 2.5.2; you can download the new release from SourceFor...
ADS BY GOOGLE