mihol
Posts: 23
Joined: Wed May 09, 2012 6:55 pm
Location: Germany

Teaching Java Programming to Kids, Parents and Grandparents

Tue Dec 30, 2014 12:41 pm

Hi,
just read an article about 'Teaching Java Programming to Kids' on http://www.infoq.com/articles/Teaching-Kids-Java with a free download for ebook on http://myflex.org/books/java4kids/java4kids.htm that I found useful.
Regards
Mike

richrarobi
Posts: 271
Joined: Sun Feb 08, 2015 1:13 pm

Re: Teaching Java Programming to Kids, Parents and Grandpare

Wed May 13, 2015 7:18 am

I read somewhere that java is 'past its prime', but the JVM is 'doing fine'. There are modern languages such as ruby ( jruby) and Scala that use the JVM, that arguably would be better candidates as languages to be taught (although Scala is, like java, a bit heavy duty).
Personally I would suggest jruby. This has all the power of JVM available, access to the java language, and is easier to start writing code.
RichR
P.S. The issue with jruby might be the scarsity of a step by step guide. Ruby itself is well documented, as is java. However, the ruby/java crossover badly needs better. An opening here for a new book?

User avatar
MarkHaysHarris777
Posts: 1820
Joined: Mon Mar 23, 2015 7:39 am
Location: Rochester, MN
Contact: Website

Re: Teaching Java Programming to Kids, Parents and Grandpare

Wed May 13, 2015 7:28 am

With all due respects, Java is a horrible language to teach to children; in fact, that might be considered child abuse.

Python is the language for kids... for everybody!

And I'll add one more thing about Java... if you really thought you wanted to use Java (which is a convoluted C++ without pointers and a really terrible library) you should just use C++ and have a language which is actually portable and isn't (how did we once joke back in the day...?) "Compile once, debug everywhere!"

Seriously, for kids Python is the new ubiquitous language for the 21st century; I mean, with Python kids can actually make real code do real world things in their first few lessons with a hand-full of lines / the kids are actually building a robot, or designing a web site, or working against a database while those poor Java students are still back in the lab trying to make their "hello, world!" class work!

... more caffeine please!
marcus
:ugeek:

User avatar
clicky
Posts: 383
Joined: Thu Oct 25, 2012 7:34 am

Re: Teaching Java Programming to Kids, Parents and Grandpare

Wed May 13, 2015 12:13 pm

MarkHaysHarris777 wrote:With all due respects, Java is a horrible language to teach to children; in fact, that might be considered child abuse.
You said that and gone to say:
MarkHaysHarris777 wrote:if you really thought you wanted to use Java (which is a convoluted C++ without pointers and a really terrible library) you should just use C++ and have a language which is actually portable and isn't (how did we once joke back in the day...?) "Compile once, debug everywhere!"
That's really something! ;)

Don't teach Java - teach C++! WOW... Luckily - many, many developers around the world didn't agree with you - for last 20 years.

Said all of that - I have to say that each language has its purpose and many have found its place in IT. Sorry - I am just sometimes irritated with people who throw statements as bad as yours and claim them being 'true' :(

Anyway:
MarkHaysHarris777 wrote:Python is the language for kids... for everybody! !
I can agree with - Python is easier language for kids to learn than going straight to Java or even worse C++. It is good language for beginners to be drawn in the world of programming - especially games kids love. I am helping in a club for 11 to 14 years children and we have quite a success - many kids grasped some of important concepts of making games (in Python + Pygame): reading player's input, placing sprites on screen, drawing background (tiled as well), detecting collisions, firing bullets and reusing objects, etc...

But, if I am to teach someone Object Orientated programming - I would certainly go for Java - not Python with its clunky bolted on classes nor C++ with many bad practices worming their way into mainstream...

And as for Raspberry Pi stuff - Java is not easily accessible due to lack of power to run modern IDEs - which you don't need with Python. On the other hand, for hobbyists that intent to run complex code, including server side web stuff, complex DB access and similar who won't mind setting up environment where they code and compile on a PC and then execute on RPi - Java is quite nice choice. Maybe even better than with C++...

User avatar
MarkHaysHarris777
Posts: 1820
Joined: Mon Mar 23, 2015 7:39 am
Location: Rochester, MN
Contact: Website

Re: Teaching Java Programming to Kids, Parents and Grandpare

Wed May 13, 2015 12:30 pm

clicky wrote: Don't teach Java - teach C++! WOW... Luckily - many, many developers around the world didn't agree with you - for last 20 years.
Please, don't pull an ad hominem... I'm not responsible for the words you put in my mouth... I didn't say teach C++ and I did not say don't teach Java... I SAID--> Don't teach Java to children. I did not say teach C++; I SAID paraphrased for you --> If you think Java is good for children (and its not) then you might as well teach children C++ because its easier and works better (for children)... and I know because I've done it!

Also, I'm one of the developers you're talking about (25 years, with IBM) I contributed to Java... and I used it. And we all hated it! Eventually I dumped Java professionally and moved my entire code base for my mission critical stuff to C|C++ using the gcc|g++ compiler (which is also mostly what I do today).

Java is not used by most developers today... Google's version of Java and their Dalvik virtual machine are what Android folks use ... the last real hold-outs for Java... Java has peaked and is on the way out. C|C++ and Python are the primary players with specialty interests still in Fortran yet, and smatterings of others... but not Java. By the by, ask Linus Torvalds what he thinks of Java sometime (be sure to duck).
marcus
:ugeek:

User avatar
clicky
Posts: 383
Joined: Thu Oct 25, 2012 7:34 am

Re: Teaching Java Programming to Kids, Parents and Grandpare

Wed May 13, 2015 12:51 pm

Fair enough - I got the point what you meant by teaching Java vs C++... But I still believe Java is far, far tamer than C++...
MarkHaysHarris777 wrote:Java is not used by most developers today... Google's version of Java and their Dalvik virtual machine are what Android folks use ... the last real hold-outs for Java... Java has peaked and is on the way out. C|C++ and Python are the primary players with specialty interests still in Fortran yet, and smatterings of others... but not Java. By the by, ask Linus Torvalds what he thinks of Java sometime (be sure to duck).
Huh - each time I read something like that I get afraid for my career (a Java developer), but so far I've not seen it being an issue. At all. There's plenty of jobs for my kind - still far more than C++ developers... Many companies still recognise that business code written in C++ is, generally speaking, less maintainable (and thus more expensive) than Java. Including IBM. Just count number of Java consultants they still send around the world... And one of the reasons (solely my opinion here) is that you can write far worse code in C++ (and people generally do) than in Java.

I do enjoy writing in Java as, opposite to you, I find libraries far more sane and sensible (and stable), frameworks more logical and code very similar wherever I go (I do work as an contractor and my job is usually to make sense of someone else's bad code) - unlike C++ where each company, each company's department has its own 'way' and completely different culture and approach to writing the same thing.

User avatar
MarkHaysHarris777
Posts: 1820
Joined: Mon Mar 23, 2015 7:39 am
Location: Rochester, MN
Contact: Website

Re: Teaching Java Programming to Kids, Parents and Grandpare

Wed May 13, 2015 1:00 pm

clicky wrote: There's plenty of jobs for my kind - still far more than C++ developers... Many companies still recognise that business code written in C++ is, generally speaking, less maintainable (and thus more expensive) than Java. Including IBM. Just count number of Java consultants they still send around the world... And one of the reasons (solely my opinion here) is that you can write far worse code in C++ (and people generally do) than in Java.
That point is fair too. There is quite a bit of code out there written in Java that must be maintained, true enough... about 25 years worth of it... don't worry about your job. But those are two horses of a different color (developers, vs maintainers)

Heck, there are still companies out there (believe it or not) who have some schmuck maintaining their COBOL; I kid you not! But we don't have COBOL developers today. Pull virtually *any* source you want down from Github whatever and tell me what its written in/ more likely that not it will be C|C++ using gcc and the gnu toolset. On the other hand (if its maths intensive it will have a Fortran component), codes written for Android will be written in Java (usually on Eclipse) running in Dalvik over an optimized linux kernel.

PS ... almost forgot, but what language is becoming ubiquitous (almost like BASIC back in the day) everywhere... mac, pc, Raspberry PIs, Intel Edisons, pyboards, and on and on... PYTHON
marcus
:ugeek:

User avatar
clicky
Posts: 383
Joined: Thu Oct 25, 2012 7:34 am

Re: Teaching Java Programming to Kids, Parents and Grandpare

Wed May 13, 2015 2:54 pm

MarkHaysHarris777 wrote: Pull virtually *any* source you want down from Github whatever and tell me what its written in/ more likely that not it will be C|C++ using gcc and the gnu toolset.
Interesting question. I did it and here are the results:
http://githut.info/

Java takes second place in number of active repositories (number of pushes), C++ holds first place in number of pushes per repository (and open issues ;), while JavaScript (no surprises there) is first... So, from that perspective - Java is all but dead.

Python did surprised me. I didn't expect to see it that high while some others I though I'll see in first 5 or 10 weren't that high...

So, even though your wishful thinking - I still have some mileage to go as Java orientated developer... Plus, I do like pi4j! :D
MarkHaysHarris777 wrote: PS ... almost forgot, but what language is becoming ubiquitous (almost like BASIC back in the day) everywhere... mac, pc, Raspberry PIs, Intel Edisons, pyboards, and on and on... PYTHON
Yes. You are not the first one to notice that. And it, kind of, makes sense.

thradtke
Posts: 492
Joined: Wed May 16, 2012 5:16 am
Location: Germany / EL

Re: Teaching Java Programming to Kids, Parents and Grandpare

Thu May 14, 2015 9:00 am

MarkHaysHarris777 wrote: Heck, there are still companies out there (believe it or not) who have some schmuck maintaining their COBOL; I kid you not! But we don't have COBOL developers today.
Java is not a yesterdays thing and won't be for a long time. Many of the software packages I used over the time are written in Java, and my own software from 15 years ago still runs on all significant platforms (and on the Pi, of course). Started with (and developed many plugins for) Image/J, and lately aquired Swordfish III, a professional TMS. In between are countless packages you wouldn't even know they're written in Java. For my XML-CMS I even use Jaxe (as applet) as its editor.

Development/debugging/maintaining is a breeze, and that's the force getting developers into it. Users profit from that, too. Can't see why teaching it to kids is any form of abuse. They'll love how easy it is to set up e.g. GUIs with Swing, without the need to read thick books or work through countless examples but with just the API Javadoc in a browser and the tiny Swing tutorial written by Sun.
Rocket Scientist.

richrarobi
Posts: 271
Joined: Sun Feb 08, 2015 1:13 pm

Re: Teaching Java Programming to Kids, Parents and Grandpare

Thu May 21, 2015 1:18 pm

As with the discussion over whether students should be taught about the existence of advanced subjects such as multi-tasking and parallel processing, I will probably get "flamed" for this :-
1) Every person is different. Some cannot even knit. Different languages suit different people. Some people like a puzzle, and enjoy the complexity of complex languages (Erlang vs (say) Ruby maybe). Others like a simple coding task to perform the task they want to do...Does anyone like all that preamble stuff in Java? Some like complex IDE's and some like to use text-editors....
2) There are (too) many different languages that suit many different purposes. ( Lisp vs Cobol?) Python looks to be very good for robotics beginners, but would it be as good for a worldwide distributed data system as might be needed for future robotics intercommunication?
3) Employers often specify the use of particular languages, even though they might never have written a line of code themselves, thus probably stifling progress.
Summary:-
Students should be made aware of the range of available languages, and introduced to different coding styles. Issues such as the different uses of # as in C and in Python, and the use of semicolon or indents for block delineation, and different sorts of brackets, etc. all should be explained, if not to exhaustive depths. Also the difference between high and low level languages, and where usage is applicable. The purposes of distributed computing and parallel programming need to be introduced, but, again, not to great depth. What about processor types? And LLVM/JVM?
Therefore it would seem sensible to me that students should be given a general grounding as above, and also a deeper introduction to maybe two carefully selected modern languages (I personally would choose Python and Ruby ).
RichR

thradtke
Posts: 492
Joined: Wed May 16, 2012 5:16 am
Location: Germany / EL

Re: Teaching Java Programming to Kids, Parents and Grandpare

Thu May 21, 2015 7:13 pm

richrarobi wrote:Therefore it would seem sensible to me that students should be given a general grounding as above, and also a deeper introduction to maybe two carefully selected modern languages (I personally would choose Python and Ruby ).
Or maybe leave it up to the kids to deceived whether to get into programming or not in the first place. When I was young we just had the home computer revolution, and with the ZX81 every child that was curious could learn how to program. Many had no problems to educate themselfs and to move from BASIC to Assembler to more elaborated languages and eventually to something OO - if programming was what they really wanted to do. This generation formed the modern world. I find this exciting.

Why forcing this generation into something not relevant to real life when those interested spend their free time on programming and electronics anyway? You will have a few getting an A and a lot getting an F. As someone looking for a technical writer with some minor IT-knowledge, I have a hard time finding candidates mastering the german language, but can grep IT-experts all around.

And now: Flame on! :lol:
Rocket Scientist.

richrarobi
Posts: 271
Joined: Sun Feb 08, 2015 1:13 pm

Re: Teaching Java Programming to Kids, Parents and Grandpare

Thu May 21, 2015 10:43 pm

I forgot the option in 1 where every person being different, some might prefer to stay away from the drafted things altogether! Why not? I hate those robot checkouts in shops, prefer people!
Some people don't drive, good for them, stay away from all the maniacs on the road.
No flame, your comment is totally true.
RichR

User avatar
clicky
Posts: 383
Joined: Thu Oct 25, 2012 7:34 am

Re: Teaching Java Programming to Kids, Parents and Grandpare

Fri May 22, 2015 12:35 pm

Without getting further Java or not Java - there must be some kind of pragmatic approach to it. You cannot say 'leave to kids to decide'. If you are going to teach a language on a platform - it is for teacher to choose the language and the platform. If selection of these two is good - students will love it and benefit of it. If they are bad, well...

On the club I am helping with original idea was Raspberry Pi + Python with Pygame. It simply didn't work! Amount of time and hardware needed for it to work (pairing up RPis with appropriate monitors (HDMI vs VGA), ensuring enough power supplies, connecting keyboard and mice and after the session sort out all back in order) just made it impossible. Installing IDLE on school computers has proven to be good choice as they (computer) could run them and all kids needed to do was to log in and start/continue they work.

Further, teaching those kids Java would be, again, bad idea - they were too young to benefit properly from it. Plus school computers couldn't run modern IDEs properly + we would need to teach them how to use IDE as well...

Next, we tried with older students (14+) and C++ and it was equally bad. Too much diversity, really high entry barrier/steep learning curve for using it for 3D. Setting them up with, hey, Java and LibGDX would have been far better approach and they'll benefit from the environment. (I am sure that equivalent C# framework would do, as might similar in JavaScript).

So, it is all matter of combinations. Some work - some don't. We don't know circumstances @mihol is in and can't easily judge. And, after all, Java is good learning language. If it wasn't - you wouldn't see so many universities teach it for introduction to programming/data structures/graphics, etc.. Nor would you see so many (academic!) conference papers submitted that used Java. (I am not declaring that there aren't other languages represented, too. On contrary.)

User avatar
DougieLawson
Posts: 36098
Joined: Sun Jun 16, 2013 11:19 pm
Location: Basingstoke, UK
Contact: Website Twitter

Re: Teaching Java Programming to Kids, Parents and Grandpare

Fri May 22, 2015 1:58 pm

clicky wrote:Without getting further Java or not Java - there must be some kind of pragmatic approach to it. You cannot say 'leave to kids to decide'. If you are going to teach a language on a platform - it is for teacher to choose the language and the platform. If selection of these two is good - students will love it and benefit of it. If they are bad, well...
In general most high level programming languages are identical. They have if...then...elif...else, for...do...end, foreach...do...end (array iterator), while condition...do...end, do...end...until conditition, select...case...otherwise constructions (although case is notably absent in python which annoys me). Kids with an interest in programming will learn all of that stuff no matter what language they're taught. Then the art of becoming a programming polyglot is transferring those logic components to the syntax anomalies and irregularities of the language they're writing. [I'm carefully ignoring RPN languages like Forth and PostScript. I'm also ignoring the mindblowing Erlang which is a law unto itself.]

The hardest part is grasping the difference between monolithic procedural programming and object orientation with/without polymorphism. That has been my largest challenge in the 35 years of doing this stuff. [COBOL & PL/I eventually got OO stuff bolted on to them.]

There's an awful lot of prescriptivism when it comes to real-world programming so knowing how to translate your logical thinking and program design from python to php or c or ruby (or whatever) or from c++ to Java (or another OO language) becomes the essential skill. The other #1 essential skill is SQL and it's intricacies. We can all write a trivial "select * from table where foo='bar';" not many of us can write complex and efficient SQL that maximises the capabilities of the SQL engine we're using.

There used to be a lot of teaching of pascal, but no use of that language anywhere in the wild (certainly not on mainframes). There's not a vast difference between that teaching language and most of the well-used languages.
Note: Having anything humorous in your signature is completely banned on this forum. Wear a tin-foil hat and you'll get a ban.

Any DMs sent on Twitter will be answered next month.

This is a doctor free zone.

raspdroid
Posts: 1603
Joined: Thu Nov 06, 2014 9:15 am
Location: Gran Canaria :: España

Re: Teaching Java Programming to Kids, Parents and Grandpare

Fri May 22, 2015 6:47 pm

Hello,

You have seen this topic?

http://www.oracle.com/technetwork/topic ... 36992.html

Regards

richrarobi
Posts: 271
Joined: Sun Feb 08, 2015 1:13 pm

Re: Teaching Java Programming to Kids, Parents and Grandpare

Tue Jun 23, 2015 6:47 am

Groovy looks to be a possible easy way into the java environment, especially now it has been adopted by the apache community. Groovy comes with a small gui console app like a mini ide.

RichR

User avatar
stephj
Posts: 80
Joined: Thu Jun 21, 2012 1:20 pm
Location: Lancashire, UK

Re: Teaching Java Programming to Kids, Parents and Grandpare

Fri Jun 26, 2015 9:30 am

I’ve got to agree with what Dougie posted above, (no point in quoting it all again).

Over the years the .NET framework and the java platform have increased in size to the point where there are thousands of objects from which to choose.

The problem now is which of these objects is able to do what you want, then which of its dozens of properties do you have to set to make it behave like you want, then which of its umpteen methods will make it actually do what you want. If that is not enough then which of the myriad of overloaded calls to this method actually matches what you have got to pass as parameters to it.

After you have got this far then a few lines of code will probably complete the required task, but it has been a marathon of a job to get here. If it wasn’t for the auto code completion in the IDE it would be a nightmare.

There are that many objects these days, that there are several ways of doing the same thing.

Which is the correct one? Answers on a post card……………

ejolson
Posts: 3546
Joined: Tue Mar 18, 2014 11:47 am

Re: Teaching Java Programming to Kids, Parents and Grandpare

Fri Jun 26, 2015 6:45 pm

mihol wrote:a free download for ebook on http://myflex.org/books/java4kids/java4kids.htm that I found useful.
I just looked at the free book. It starts with how to install the software and run hello world. After objects, control flow and user interfaces are introduced via working examples, two longer programs are developed in a step-by-step fashion: a graphical calculator and a pong game. Each chapter ends with a couple practice questions. In my idealized world, school children learn about complex numbers by age 14 when solving the quadratic equation in algebra class. Although complex data types were introduced into high-level programming languages with Fortran IV in 1962, Java does not include a standard complex data type. For this reason, Java does not support mathematics education past age 14 as well as Python, C99 or even Fortran. Forgetting the Java versus my-favorite-language debate, the book is well thought out, well written and appears suitable for children and adults who do not know how to read and write computer programs.

The Java/Eclipse installation instructions are a little dated and assume your operating system is Microsoft Windows XP. As the book appears otherwise solid, it may be worthwhile for someone to put together a few supplementary notes that allow a beginner to get started using the Raspberry Pi. Along these lines I have a couple questions:

Is the included pong game playable on the original Pi?

Does Java/Eclipse run in a satisfactory way on the Pi 2B or is the speed problem due to the sdcard?

adcooney
Posts: 23
Joined: Sat Jun 20, 2015 6:04 pm

Re: Teaching Java Programming to Kids, Parents and Grandpare

Sun Jul 05, 2015 12:46 pm

Im not sure which language youd use for teaching kids. You want to teach them basic concepts without over complicating things and something interesting. Im not sure java is suitable for the latter but its good for OO concepts i think. Python is a nice language as well. Ive spent the last few years also using groovy but although it simplifies a lot of java its not what id use for kids either.

Languages for kids though and languages to actually teach at uni arent going to be the same. Even an Ide may be too complex for kids to use early on but id never dream of coding without one

Return to “Java”