Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / December 2005

Tip: Looking for answers? Try searching our database.

Help, where to start learning Java

Thread view: 
john - 23 Dec 2005 20:16 GMT
Hi, i have read 2 books( thinking java and how to program in java), and

have general understanding of the programming language.   But even
after reading 2 books, i still feel it is hard to apply what i've
learn,  is there a program out there that makes learning/programming
Java easier, such as dreamweaver for html?  I have spend a year in
learning how to program java, I've trying to memorize the syntax for me

to program, but doesn't seem to work, i tend to forget over time.  Any
advices?  

thanks
VisionSet - 23 Dec 2005 20:25 GMT
> Hi, i have read 2 books( thinking java and how to program in java), and
>
[quoted text clipped - 6 lines]
> to program, but doesn't seem to work, i tend to forget over time.  Any
> advices?

Write alot of code.  The syntax is the least of your problems.  Writing good
OO code takes time, is pretty much essential and is many times harder than
remembering syntax.
Don't mean to be discouraging, but if you keep writing code, the syntax will
be 2nd nature.
It's like anything you have to do the thing to get good at it, books are
good, classes are better, the internet is a valuable resource, but you have
to know when to take advantage of each, generally do a bit of all of them,
but above all write code! If possible get an expert to review it. (I'm still
looking for that expert).  comp.lang.java.* is a good resource though with a
good bunch of people, I've learnt more good Java here than anywhere else.

--
Mike W
Rhino - 23 Dec 2005 21:37 GMT
>> Hi, i have read 2 books( thinking java and how to program in java), and
>>
[quoted text clipped - 23 lines]
> a
> good bunch of people, I've learnt more good Java here than anywhere else.

I just want to agree with what Mike has said. The best way to get better at
programming is to WRITE PROGRAMS, not to read about it. There's nothing
wrong with reading programming books: you have to get the basic information
somewhere. But the way to progress is to _write code_.

If you were interested in being a football player but had only played a few
games, which approach do you think would make you a better football player:
A. reading lots of books about football strategy?
B. watching lots of football games on TV?
C. playing lots of football?

I think the answer is obviously "C". You might learn a few things from "A"
and "B" - but I think you're going to learn a lot more by playing than
reading books or watching other people play.

Programming is pretty much the same deal. Writing code - and compiling it
and testing it and debugging it - are where you really LEARN how to program
well.

If I were you, I'd find a project that interests you and then devote all the
time you can spare to it. For instance, if you're interested in the stock
market, write a program to track stocks and even buy them and sell them - or
at least make recommendation for what you should buy and sell. If you're
interested in music, write programs that will play your favourite music
files or organize those music files so that they are easily found when you
want to hear them. I find that working on an interesting project is one of
the things that makes me want to program; if I have to write a program about
something that doesn't interest me, it is harder to sustain my interest.

Memorizing syntax of statements is _not_ a very good use of your time, in my
opinion. While it might be handy sometimes to have everything memorized, I
feel that it is a better use of my limited brain cells to use them for the
creative and imaginative aspects of programming than to cram them full of
facts that I can easily find in a reference book or API.

Rhino
vmjava - 24 Dec 2005 13:57 GMT
Hi Rhino,

I am a software Engineer having seven years of work experience. I had a
break of fours years due to family reasons and now I am trying to get
into IT field. I have very good software development experience in the
client -server side. I have worked in c/c++ and have abundance interest
and knowledge in DBMS, (sqlserver, SYBASE and little oracle exposure).
This is just an introduction about me. I saw your reply and was so much
impressed by the why you have answered. It is a wonderful feedback. The
last two paragraphs are simply great and could steer the interest among
many people.

VMogana
Rhino - 24 Dec 2005 15:31 GMT
> Hi Rhino,
>
[quoted text clipped - 7 lines]
> last two paragraphs are simply great and could steer the interest among
> many people.

What can I say? I love programming, particularly Java programming!

I was just sharing something that helped me when I was starting out. I found
that working on my own little projects was an excellent way to maintain my
interest in programming. If it helps anyone else, that's great.

Good luck with your plan to get into the IT field!

Rhino
vmjava - 25 Dec 2005 01:02 GMT
Hi Rhino,

Thanks a lot.
Wishing You Merry Christmas and Happy Holidays.

Regards,
VMogana
Roedy Green - 23 Dec 2005 21:30 GMT
>to program, but doesn't seem to work, i tend to forget over time.  Any
>advices?  

You might try Eclipse. It won't memorise the syntax for you, but it
will slap you on the wrist very soon after you make a mistake so you
quickly learn what WON'T work.

Also try working with code examples and modifying them.   There are
hundreds of them in the Java glossary.  See if you can find one to
roughly suit your task. That way the general framework with already be
there even if you end up changing every line.
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

David Segall - 24 Dec 2005 04:29 GMT
>Hi, i have read 2 books( thinking java and how to program in java), and
>
>have general understanding of the programming language.   But even
>after reading 2 books, i still feel it is hard to apply what i've
>learn,  is there a program out there that makes learning/programming
>Java easier, such as dreamweaver for html?
The Java equivalent of Dreamweaver is a Java Integrated Development
Environment. I can recommend NetBeans 5 Beta 2 from here
<http://www.netbeans.org/community/releases/50/index.html> but I have
compiled a complete list here
<http://profectus.com.au/ee_JavaIDE.html>. These IDE's will create a
skeleton program for you, check your code as you go and suggest the
valid alternatives as you write including the documentation. Like
Dreamweaver, they allow you to visually design a form and modify the
generated code.

Rather than attempting to write a complete program I suggest you
locate a simple program, perhaps from one of your books, and change it
to add some extra features. I think the combination of reading and
writing Java code is the best way to learn.
>  I have spend a year in
>learning how to program java, I've trying to memorize the syntax for me
[quoted text clipped - 3 lines]
>
>thanks
Luc The Perverse - 24 Dec 2005 06:02 GMT
> have general understanding of the programming language.   But even
> after reading 2 books, i still feel it is hard to apply what i've
> learn,  is there a program out there that makes learning/programming
> Java easier, such as dreamweaver for html?  I have spend a year in
> learning how to program java, I've trying to memorize the syntax for me

You will never learn to program from reading - it will only serve to give
you a basis on which you can grow.

You must make many projects.

If you have been studying Java for a year and still don't know the syntax
then you must realize that you are doing something wrong.   Begin by writing
trivial programs.  As you encounter problems in your life see if you could
find a way to represent them with a Java program.   Set out to write (or put
substantial effort into) a Java program every day.

I do not believe a "do it for me" program is going to help you lean Java -
just as I don't feel Dreamweaver helps people to learn HTML.

> to program, but doesn't seem to work, i tend to forget over time.  Any
> advices?

Yes - code more.

Make simulation programs, calculators, english parsers, fun encodings/secret
codes (start with something familiar like Pig Latin and then make more
complicated and fun ones), or you could implement actual encryption
algorithms with Sun's included functions.  Make games, puzzles, solve
classic algorithms.

I prefer to think in this regard, thinking in terms of a project with a
purpose, and then setting out to make it.

However, you could turn the tables - create a list of "interesting" sounding
available classes from the Sun website and then set out to make a project
using every one of them.   (You can of course use more than one per project
if it suites you.)

If you study from the point of writing code - maybe 1-3 hours a day (more
when you feel like it) syntax should quickly become the least of your
problems.

If you do this for about a month, and complete somewhere aroud 20 projects
then you should be ready to start making more complicated programs.   On
Roedy's website www.mindprod.com he has a list of student projects.
Ultimately though you are going to need to code something that interests
you.  Programming in any language is like playing an instrument - you only
get better with practice.

Signature

LTP

:)
Stefan Ram - 24 Dec 2005 06:09 GMT
>You will never learn to program from reading - it will only
>serve to give you a basis on which you can grow.

 A professional programmer will spend more time maintaining
 programs than writing new programs from scratch or designing
 software. Maintainig programs often begins by reading code
 other programmers have written. So, one of the most important
 skills is the ability to /read/ source code.

 To learn to read source code, reading source code might help.

 The subject is "learning Java": "Learning Java" can not be
 interpret only by "Learning to write Java", it also means
 "Learning to read Java".
Luc The Perverse - 24 Dec 2005 06:18 GMT
>>You will never learn to program from reading - it will only
>>serve to give you a basis on which you can grow.
[quoted text clipped - 10 lines]
>  interpret only by "Learning to write Java", it also means
>  "Learning to read Java".

Learning to write Java is still an improvement over "learning how to read
books about Java".

Yes - modifying existing code is also an important step though - thanks for
pointing that out to me.

Signature

LTP

:)
David Segall - 24 Dec 2005 06:19 GMT
>I do not believe a "do it for me" program is going to help you lean Java -
>just as I don't feel Dreamweaver helps people to learn HTML.
David Segall - 24 Dec 2005 06:36 GMT
>I do not believe a "do it for me" program is going to help you lean Java -
>just as I don't feel Dreamweaver helps people to learn HTML.
Most people want to produce web pages or write computer programs. They
have no desire to learn HTML or Java. Dreamweaver helps to produce
attractive, maintainable web pages by exposing the look of the page
and the structure of the HTML and CSS. Java IDE's serve a similar
purpose. While it is probably not possible to avoid learning the
underlying language I don't think that should be the goal. After all,
anybody who has been programming for more than a few years has
"learned" several languages that they have since abandoned.
john - 24 Dec 2005 07:51 GMT
Thank you for all your inputs, they are very helpful.  I now have a
sense of direction on how to approach in learning to write java
program.  This news group is great!!!  I should have come here a year
earlier for advice. Anyway, merry Chistmas to everyone!!! and thank you
all.
Luc The Perverse - 24 Dec 2005 19:24 GMT
>>I do not believe a "do it for me" program is going to help you lean Java -
>>just as I don't feel Dreamweaver helps people to learn HTML.
[quoted text clipped - 6 lines]
> anybody who has been programming for more than a few years has
> "learned" several languages that they have since abandoned.

Hmmm.

I do agree that a suprising number of people seem to lack the innate desire
to learn the intricacies of the computer.  I can relate to a certain
extent - when I get into a car, I coudn't really care less how or why it
works, I just want it to take me to Taco Bell.

I would never reprimand someone for dabbling in programming - but like many
involved fields, typically one receives little enrichment from the type of
programming that an complete novice is capable of.    Making a webpage is a
little different as the effect can typically be completely represented
inside a WYSIWYG editor.

What I mean is that we don't have tools which allow dabbling engineers to
build bridges - or amateur mathmaticians to publish worthwhile research
papers.  IMHO, programming is generally the same.   Java itself is the
crutch that allows people to dabble - people no longer have to learn machine
code, interrupts etc just to get data from the user, display results,
perform simple calculations.   If people are interested in learning nothing
at all but still making the computer do what they want I expect them to be
disappointed/frustrated/give up.   Still though I would recommend them to
Visual Basic or Labview (depending on what they are tyring to do.)

--
LTP

:)
Roedy Green - 24 Dec 2005 08:53 GMT
On Fri, 23 Dec 2005 23:02:32 -0700, "Luc The Perverse"
<sll_noSpamlicious_z_XXX_m@cc.usu.edu> wrote, quoted or indirectly
quoted someone who said :

>If you do this for about a month, and complete somewhere aroud 20 projects
>then you should be ready to start making more complicated programs.   On
>Roedy's website www.mindprod.com he has a list of student projects.
>Ultimately though you are going to need to code something that interests
>you.  Programming in any language is like playing an instrument - you only
>get better with practice.

The most important thing is to pick a project that has heart for you.
It going to be tough slogging. You must CARE about succeeding in
getting it to work or you will be easily discouraged. Picking a
project too difficult is not nearly as big as error as picking a
project that is only mildly important to you.

My list of projects at http://mindprod.com/projects/projects.html
is just to give you some ideas, to spark your imagination.  Many of
the projects themselves could be taken in many directions.
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Roedy Green - 24 Dec 2005 08:59 GMT
On Sat, 24 Dec 2005 08:53:08 GMT, Roedy Green
<my_email_is_posted_on_my_website@munged.invalid> wrote, quoted or
indirectly quoted someone who said :

>The most important thing is to pick a project that has heart for you.
>It going to be tough slogging.

I was lead counselor at a computer summer camp.  I interviewed all the
kids and discovered most of them wanted more than anything to write
their own video games.  There were programming  novices. But within a
week nearly every kid had written a game or animation.  I was utterly
blown away how fast they learned. In the breaks they DEMANDED to learn
trigonometry, which blew the mind of a math prof who was watching the
production.

The other thing was the kids wrote nothing but commented/structured
code.  They never saw anything else, so it never occurred to them to
do other wise.
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Luc The Perverse - 24 Dec 2005 19:12 GMT
> I was lead counselor at a computer summer camp.  I interviewed all the
> kids and discovered most of them wanted more than anything to write
[quoted text clipped - 7 lines]
> code.  They never saw anything else, so it never occurred to them to
> do other wise.

Now this I didn't realize.

I had no idea you had experience in teaching children?    I have been
looking for ideas to teach and stimulate desire to learn logic and
mathmatics in younger children.   It is my belief that subjects which are
typically reserved for higher education such as trig, calculus, discrete
math, deductive logic could all be started before children ever leave
elementary.  The trick would only be to interest the children, and present
the material in a way that it could be absorbed.

Can you offer any insight into this matter?    Into teaching children how to
make games?  What engine did you use (I suppose you were using Java).

Signature

LTP

:)
Roedy Green - 25 Dec 2005 03:04 GMT
On Sat, 24 Dec 2005 12:12:36 -0700, "Luc The Perverse"
<sll_noSpamlicious_z_XXX_m@cc.usu.edu> wrote, quoted or indirectly
quoted someone who said :

>Can you offer any insight into this matter?    Into teaching children how to
>make games?  What engine did you use (I suppose you were using Java).

In the 90s I wrote a column for the Computer Paper on my theories
based on my experiences as head instructor at a computer camp where
the kids blew me away with how fast they learned.

The key tricks are these:

1. this is a kid's environment. Lots of noise, chaos, goofy stuff.

2. When I speak I demand absolute silence. In return I speak no more
than a couple of carefully planned sentences,  dramatic if possible. I
don't repeat myself publicly.  I want them hanging on my every word.
The last kid to stop talking I made run out of the room a block or so
away  to ring a bell then run back.  It was not that much of a
punishment, since the kid got the fun of making his classmates laugh
when they heard the bell. But I did get rapt attention.

3. Leaking.  I teach something to a small group of kids I don't teach
to the others. This becomes their secret weapon to use in their
programs.  The kids see the results, and either wheedle the
information out of the "privileged" kids, or chase me around to tell
them too.  You have never seen kids so motivated to learn trig!

4. example code.. This code does a simple version of what the kids
want to.  It is commented to death.  They can just type it in to try
it out.  In the process of getting the typos out the have it pretty
well understood and are well on their way to theme and variations.

5. Graduated bang for buck. On day one, all the student had to do was
his a function key and you would be rewarded with a randomly sized,
placed, and coloured helicopter. You got maximal reward for least
effort.  As time progressed the student had to work ever harder for
ever more subtle rewards in fine control.

6. Order of presentation. I taught methods first, iteration and random
numbers second, and arithmetic third.  It was absolutely natural in
drawing for kids to organize methods into hierarchies of reusable
components they could share.

7. Learn by experiment.  I presented the editor this way. These keys
do something.  See how many of them you can figure out what they do.
The emphasis is that computers are SUPPOSED to be mysterious and
undocumented. It is supposed to be puzzle to figure out. You are not
supposed to get it on your first try.

8. Let the kids teach each other. They have their own ways of
explaining things. They can do it in parallel much faster than I can.
All I have to do is give enough of a hint so that a few students
figure it out. It then ripples throughout the class by student to
student interaction.

9. On opening day I gave a little introductory speech where I said
something like. I have interviewed you all and it is clear you want
more than anything to learn to write your own computer games.  I
promise I will not teach you ANYTHING that is not necessary to write
computer games.  Unfortunately, sometimes it won't be clear why you
need to learn something, so you will just have to trust me.

10. Graph paper.  One of the very first exercise I did was hand out
graph paper and ask each kid to draw a Pac Man or similar simple
figure, with polygons, and label all the vertices with the absolute
co-ordinates.  As each kid (ages 7 to 15) completed the task they
brought it to me or one of my assistants for checking.  If they had it
right they went off to another room where the computers were.  There
they were shown how to type the polygon vertices into the computer
into a simple skeleton drawing program and see their creation
realised, usually in hideously garish colours.  The unconscious lesson
the kids learned was the planning was hard, but the computers were
easy.  The kids only had a few short sessions a day of computer
access. The rest of the time they were doing traditional summer camp
things.  But the kids would carry about sheafs of graph paper to plot
out their masterpieces in ever spare moment.

11. I remember my entire childhood quite vividly. I recall adults
being so patronising. I tried hard not to do that.

Caveat. This style of teaching is utterly exhausting. You could not do
it full time or without an incredibly good support staff as I had.
Some kids are freaked by the pandemonium, or the competitive pressure
that develops even when I don't consciously foster it.

At UBC, teaching people slightly older than I was, I used different,
but unconventional techniques. There the problem is keeping students
awake.

So I banned note taking. I had contests, often with two teams, with
points for answering questions, solving problems at the board (done
say 5 from a team at a time).  

The winning team would get chocolate bars (only a nickel back then),
or selections from the local bakery.

The idea here was even if the student did not care about the class he
did not want to let down his team.

On opening day I would say, "No student of mine has ever failed.  So
you can relax. However, you would probably find you will spend more
time on this course than any other."

The class was supposed to be an hour, but often student would hang
around for 6 hours before the last one went home.

I spent lots of time on theme and variation of the fundamentals, which
panicked the students because we were "behind". But my students
thoroughly got them so they could write code in their sleep (or under
exam pressure).  Then it was pretty easy to add the fancy stuff later
on that solid foundation.
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Luc The Perverse - 25 Dec 2005 06:09 GMT
>>Can you offer any insight into this matter?    Into teaching children how
>>to
[quoted text clipped - 3 lines]
> based on my experiences as head instructor at a computer camp where
> the kids blew me away with how fast they learned.
*snip*

I've always known children's potential is mostly untapped.

I too hope to some day teach - though I know not how or when

--
LTP

:)
Roedy Green - 25 Dec 2005 06:26 GMT
On Sat, 24 Dec 2005 23:09:46 -0700, "Luc The Perverse"
<sll_noSpamlicious_z_XXX_m@cc.usu.edu> wrote, quoted or indirectly
quoted someone who said :

>I've always known children's potential is mostly untapped.
>
>I too hope to some day teach - though I know not how or when

It was one of the most fun things I ever did.  To this day I run into
kids I taught then or at UBC who still remember those crazy times
fondly.

I am quite a ham and that sort of teaching is a great outlet for that.

The kids just lap it up after the grim regimentation that teachers
have to impose in order to teach classes of 40 single handed 5 hours a
day, week after week.

The assumption that many educators make is that kids don't want to
learn and you have to coerce them.  My assumption is that they are
naturally curious, and your job is not to squash that wide-ranging
curiosity and encourage them to remain curious in the event of
frustration..  You are there to facilitate them. They are not there to
perform for you.

Whereever a child's curiosity leads, THAT'S the curriculum for now. So
much energy for learning is blunted by trying to control what a child
should learn when.

I have great hope for Internet based learning where it will be much
more feasible for each kid to go off in different directions.
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

yakovfain@gmail.com - 26 Dec 2005 14:06 GMT
I was teaching my son Dave Java and these are some obsercarions:

Most of the programming tasks require minimal knowledge of arithmetic
and algebra skills. To start programming, a kid needs to understand
what x = y+2 means. Another important concept to understand is an if
statement.

Kids develop the abstract reasoning abilities by the fourth-fifth
grade, and they also easily perform such tasks as browsing the Web,
downloading and installing software. Dave have learned how to type,
compile and run Java programs in Eclipse IDE in no time.

Kids learn much faster than adults, but they do not have "previous
programming experience", which may actually be a good thing, because
they do not have to switch from a procedural to object-oriented way of
thinking. After learning about inheritance, Dave called my wife a
superclass.

Adults are responsible creatures, and they can keep doing boring
operations much longer that kids. Programming lessons with kids have to
be short. One or two 45-minute lessons per week is enough. High school
kids should be able to study more, but I do not have such experience
yet.

Anyway, I wrote an e-book on teaching kids Java. You can find a sample
chapter at
http://www.smartdataprocessing.com/java4kids.htm

One of the publishers is planning to release the  printed version of
the book next year. I want it to be in color, but it's lot more
expensive for a publisher so we are still negotiating...

Happy New Year,

Yakov Fain
Roedy Green - 26 Dec 2005 17:19 GMT
>One or two 45-minute lessons per week is enough.

That is important. I is also important to keep things interactive.
Don't expect a kid to sit there and listen to you like some college
prof droning on an on. I like to keep it down to 2 sentence before the
kid either says something or does something.
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Luc The Perverse - 26 Dec 2005 18:51 GMT
> One or two 45-minute lessons per week is enough.

??

This goes very much against my intuition.

Do you mean only limiting any kind of formal instruction?

As a kid when I became fascinated with something I would spend countless
hours on it - that is what I believed made me progress and learn.

The same as an adult.  When I want to learn a new foreign language (I have
not done so in a few years) I sit down for about eight 45 minute lessons a
day, alternating with exercise.    Its annoying after I work my a.s off to
hear someone who tried for 15 minutes to learn a foreign language to tell me
that I just have an aptitude for it.

I intend on teaching my daughter to start programming as soon as she learns
to read which should be in a few years.

Be sure and let me know when your book becomes available!

--
LTP

:)
Roedy Green - 26 Dec 2005 20:43 GMT
On Mon, 26 Dec 2005 11:51:31 -0700, "Luc The Perverse"
<sll_noSpamlicious_z_XXX_m@cc.usu.edu> wrote, quoted or indirectly
quoted someone who said :

>This goes very much against my intuition.
>
>Do you mean only limiting any kind of formal instruction?

The kids will go nuts on their own time. Ask Yakov about his
experience, but what I suggest limiting is formal class time.

I found that at summer camp, some kids would stalk me to pump me for
information outside of class hours.  That does not count.  The kid is
in control of when he wants to do that.

Kids around 10 to 12 love to build elaborate models with thousands of
parts, miniature cities, aircraft carriers etc. This instinct serves
them well to develop large computer programs. They have little trouble
keeping track of its many parts.  So focus right from day one on how
to write LARGE programs -- encapsulation, reuse, naming.
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Stefan Ram - 26 Dec 2005 21:03 GMT
>I found that at summer camp, some kids would stalk me to pump me for
>information outside of class hours.  That does not count.  The kid is
[quoted text clipped - 4 lines]
>keeping track of its many parts.  So focus right from day one on how
>to write LARGE programs -- encapsulation, reuse, naming.

 Sometimes one believes that it is easy for children to
 understand technology..

 The German researcher Martina Ziefle did an experiment with
 children and adults and found that this is not true. But there
 was a difference: The children wanted to learn and thus had
 much more patience than the adults.

 A small report in German about this experiment is here:

http://www.heise.de/newsticker/meldung/print/37449

 Alan Kay was teaching five-year old children how to
 program a circle: They were asked to walk in a circle
 and to report what they did. The children would answer
 "walk a little and turn a little." After that cognition
 they could write a program to draw a circle.

 Ten-year old children already knew what a circle is:
 "The set of all point, having the same distance to a
 center." So they startet to program individual points
 starting at a center, which was more complicated; and
 the result was non a connected circle but only single
 dots.

 Fifteen-year old children already knew the formula »r² = x² + y²«.
 They tried to draw a circle using that formula, but
 failed. (This formula is not a good starting point for such a
 program.) Just because of their additional knowledge, it was
 actually more difficult or impossible for them to write such a
 program. At least that is what Alan Kay said in a video.
Luc The Perverse - 27 Dec 2005 04:49 GMT
> The kids will go nuts on their own time. Ask Yakov about his
> experience, but what I suggest limiting is formal class time.

Ok - I was just misunderstanding - in that case then I would agree.

> Kids around 10 to 12 love to build elaborate models with thousands of
> parts, miniature cities, aircraft carriers etc. This instinct serves
> them well to develop large computer programs. They have little trouble
> keeping track of its many parts.  So focus right from day one on how
> to write LARGE programs -- encapsulation, reuse, naming.

Having been a kid of 10 to 12 - I recall quite vividly.  I had extensive
armies of different pieces.  The lego armies and some other construction set
I don't know the name of - I had to rebuild them at the end of every war
since the battles would cause significant . . .  disfigurement.

I wish I could find that construction set.  The basic set was "connectors"
which were cubical with round pegs that the building pieces (oblong
rectangular prisms) could snap into.  The basic set was grey pieces with
blue connectors, but I had several kits, so there were short pieces, long
pieces, some rounded pieces.   Eventually they came up with the idea of a
much flatter swinging piece would spin instead of being fastened in place
(it was long and flat like a popsickle stick with hooks on each end.)   My
grandma decided one day that I was too old for "toys" and threw away the
ship I'd had (although rebuilt many times) for over 12 years.  I'm not mad
at her anymore, but I feel bad for her - she doesn't believe in sentimental
value of posessions.

Signature

LTP

:)
yakovfain@gmail.com - 27 Dec 2005 12:21 GMT
Roedy, teaching in the summer camps is a great idea!

IMHO,  kids should be learning programming not  by solving some math
problems (booooooring...), but by implementing something they like.
Video games is a perfect example.  Kids should get the message  that
you do not have to be a nerd to become a computer programmer. So they
will not be afraid of selecting Computer science or Information Systems
as their college major in the future
Roedy Green - 27 Dec 2005 13:38 GMT
>IMHO,  kids should be learning programming not  by solving some math
>problems (booooooring...), but by implementing something they like.

Once they get into it, computer programming itself is interesting. At
least in the early days it was a key to let you in anywhere to satisfy
curiosity.  I could walk into  a bank who had hired me to write code,
and ask anyone anything and they would answer.  Then I might be out at
a university learning some advanced math to study movement of
pollutants in soils, or I might query engineers on the fine points of
high voltage tower construction. It is like passport to let you have a
number of mini careers.

Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

zero - 27 Dec 2005 18:18 GMT
yakovfain@gmail.com wrote in news:1135686063.972748.62340
@o13g2000cwo.googlegroups.com:

> IMHO,  kids should be learning programming not  by solving some math
> problems (booooooring...), but by implementing something they like.
> Video games is a perfect example

Great idea in theory, but it has a major drawback.  Game programming is one
of the hardest subfields of programming.  You could argue that there are
plenty of simple games that can be made (snake, tetris, ...) but those just
don't compare to the kind of games modern kids play on a daily basis.  
Creating a snake game that is visually sufficiently appealing for a 12 year
old is not that easy.  So more than anything, I think programming a game
may be a disappointment for many children.

I do think that they should be led to create interactive programs instead
of the traditional "hello world" or recursive combinations.  Examples could
be a simple puzzle or a visual representation of the towers of hanoi.  Also
a good idea is to tie the programs they make to other things they are
learning.  If for example a kid is learning a second language, have him
create a program to store and look up words in a dictionary.  If they are
learning basic summation, have them create a program that they can use to
check their exercises.

Signature

Beware the False Authority Syndrome

Mickey Segal - 27 Dec 2005 18:31 GMT
> Creating a snake game that is visually sufficiently appealing for a 12
> year
> old is not that easy.  So more than anything, I think programming a game
> may be a disappointment for many children.

Our kids are having a good time with the Game Maker environment
(http://gamemaker.nl/), which allows kids to create a visually-appealing
result with little fuss.  They are not disappointed.  The Game Maker
environment uses true object-oriented programming, but because the code is
in its own "Game Maker language" rather than C++ or Java the programming
experience does not allow an easy jump into standard programming.  Also,
because many basic features of mature programming languages such as double
precision calculation are missing the kids get frustrated when they stray
away from games.
Luc The Perverse - 27 Dec 2005 21:58 GMT
>> Creating a snake game that is visually sufficiently appealing for a 12
>> year
>> old is not that easy.  So more than anything, I think programming a game
>> may be a disappointment for many children.

A reply to "zero":

When teaching children to code, anything visual is going to be more
appealing than basic text.  Children may have aspirations of making Doom
III, but it's not going to happen.  I got excited about programming without
the prospect of making fun interactive games.   Pictures, GUIs, sounds,
animation etc is what is appealing to the eye, no matter what form it comes
in.

> Also, because many basic features of mature programming languages such as
> double precision calculation are missing the kids get frustrated when they
> stray away from games.

You . . . aren't implying that this is a good thing are you?

While programming of any sort is useful, forcing kids to stay with games can
also be a problem.

Signature

LTP

:)
Mickey Segal - 28 Dec 2005 00:22 GMT
> You . . . aren't implying that this is a good thing are you?

It is not a good thing to trap kids in programming only games.  It is
helpful to have them enticed into programming because of games but then they
should be able to discover all the useful features of a real language such
as double precision calculation and other features of real programming.
zero - 28 Dec 2005 16:42 GMT
> When teaching children to code, anything visual is going to be more
> appealing than basic text.  Children may have aspirations of making
> Doom III, but it's not going to happen.  I got excited about
> programming without the prospect of making fun interactive games.  
> Pictures, GUIs, sounds, animation etc is what is appealing to the eye,
> no matter what form it comes in.

Actually I think interaction is a lot more important than visually
appealing features.  Most visual stuff is, certainly in the early stages,
going to be disappointing imo.  However, if they can interact with programs
they made themselves, they'll find it more interesting.  They will want to
make changes to the code and see how that affects the interaction.  At
least that's what I found interesting.  I could never see an example or
exercise without wanting to "improve" it.

For example I believe a program showing a static picture and playing a
sound file less appealing - and a lot harder to make - than a text-only
"guess the number" game.  So interactivity is the key.  And of course games
are interactive, but they shouldn't be presented as "computer games",
because that brings up visions of Doom and The Sims.

Signature

Beware the False Authority Syndrome

Luc The Perverse - 29 Dec 2005 02:18 GMT
>> When teaching children to code, anything visual is going to be more
>> appealing than basic text.  Children may have aspirations of making
[quoted text clipped - 18 lines]
> are interactive, but they shouldn't be presented as "computer games",
> because that brings up visions of Doom and The Sims.

Perhaps you are right.

But there is a stigma attached to programs that run in the console window.

But it doesn't have to be one way or the other.   The user interaction could
already be coded by the professor, and the students need only write the
interactive part.   The coding part for the students would be approximately
the same difficulty, and may even be easier if the interaction function is
Play

But on the other hand - the instructor could provide a "guess the number
interface", and only require the students to provide the code which allows
them to make it run on the same order of complexity as if they had written a
text based game.

Signature

LTP

:)
Andrew Thompson - 29 Dec 2005 02:50 GMT
>>>When teaching children to code, anything visual is going to be more
>>>appealing than basic text.  Children may have aspirations of making
[quoted text clipped - 22 lines]
>
> But there is a stigma attached to programs that run in the console window.

For good reason.  That is *so* last millenium, and
to a younger person, appears as if it is 'some old installer'[1].

[1] On the basis that a command line interface is only likely to
have been seen by a younger computer user, during the installation
of software, and then only old (very old) software.

> But it doesn't have to be one way or the other.   The user interaction could
> already be coded by the professor, and the students need only write the
> interactive part.   The coding part for the students would be approximately
> the same difficulty, and may even be easier if the interaction function is
> Play

Was that not the concept of ..'logo'[2] or whatever it was/is?

[2] Quick Googling indicates..
"LOGO computer language created by Seymour Papert in 1967"

Has LOGO come up during this thread?  (Sorry, I've only
been 'half listenning').

> But on the other hand - the instructor could provide a "guess the number
> interface", and only require the students to provide the code which allows
> them to make it run on the same order of complexity as if they had written a
> text based game.

..of course.  I am fond of imploring people around these parts
to figure how to 'do it from the command line'.  But then, I
would not recommend usenet as a suitable forum for children
in any case ( mostly because they could observe just how
'child-like' - in the worst possible ways, adults can be ;).

Signature

Andrew Thompson
physci, javasaver, 1point1c, lensescapes - athompson.info/andrew

Luc The Perverse - 29 Dec 2005 04:56 GMT
>>>>When teaching children to code, anything visual is going to be more
>>>>appealing than basic text.  Children may have aspirations of making
[quoted text clipped - 27 lines]
> For good reason.  That is *so* last millenium, and
> to a younger person, appears as if it is 'some old installer'[1].

LOL.  I refused to run apache webserver on a windows machine once because I
couldn't close the window and remove it from the taskbar.   System tray is
ok for something like that, but not an open window!  Although I found one
worse - my dad's printer uses a driver which always has a window open in the
taskbar.  To me that would be just cause for returning it.   (I'm definitely
deviating from the conversation now.)

>> But it doesn't have to be one way or the other.   The user interaction
>> could already be coded by the professor, and the students need only write
[quoted text clipped - 6 lines]
> Has LOGO come up during this thread?  (Sorry, I've only
> been 'half listenning').

No it has not to the best of my knowledge.  Perhaps that was the point of
LOGO, but computers and languages have evolved greatly since the days of
LOGO.

>> But on the other hand - the instructor could provide a "guess the number
>> interface", and only require the students to provide the code which
[quoted text clipped - 6 lines]
> in any case ( mostly because they could observe just how
> 'child-like' - in the worst possible ways, adults can be ;).

I really don't have any idea what you are talking about in this last
sentence.

I think the command line is highly undervalued, but the point is to teach
programming however possible.  If you teach kids how to program, they will
be able to adapt to the command line, but if you lose them because they are
not interested, then it will be a pointless endevour.

What any of that has to do with usenet though . . I'm not sure ;)

Signature

LTP

:)
Chris Uppal - 31 Dec 2005 13:48 GMT
> I do think that they should be led to create interactive programs instead
> of the traditional "hello world" or recursive combinations.

If such matters interest you then you'd probably find it rewarding to look at
Squeak and Croquet (which are technically related, but used in different ways
for different things).

   -- chris
Mickey Segal - 27 Dec 2005 04:23 GMT
> Be sure and let me know when your book becomes available!

From the URL:
http://www.smartdataprocessing.com/java4kids.htm
it looks like it is available already as a $20 download.  I will see if I
can interest my kids in the book; they are currently focused on Game Maker:
http://gamemaker.nl/
I'd prefer for them to learn a general purpose language, perhaps with a
special purpose game addition such as:
http://goldenstudios.or.id/products/GTGE/index.php
When we wrote a calculator program in the Game Maker language we spent a lot
of effort on dealing with the missing things in the Game Maker language such
as double precision math and arrays of newly defined objects.  If the guts
of a game environment were Java it would be easier to help them and their
knowledge would be more generally useful.

What Roedy Green did in teaching kids about computers is the wave of the
future, but it is not likely to happen in many schools in the near future.
Camps, clubs, supplemental classes, home schooling and interested parents
will get kids to do terrific things before such approaches go mainstream in
most schools.
David Segall - 27 Dec 2005 06:07 GMT
>> I was lead counselor at a computer summer camp.  I interviewed all the
>> kids and discovered most of them wanted more than anything to write
[quoted text clipped - 20 lines]
>Can you offer any insight into this matter?    Into teaching children how to
>make games?  What engine did you use (I suppose you were using Java).
I think that the only "insight" is realizing that it all depends on
the teacher. Skilled teachers can teach anything using any technique
but they need to have similar talents to good actors or court room
lawyers. They must love playing to the audience and be sensitive to
it. The are thrilled when they have the audience in rapt attention and
are able to detect and react when they are losing their attention.

Technical teaching skills and the use of teaching aids can be learned
but, as in any other profession, they are no substitute for talent.
and there a
Roedy Green - 27 Dec 2005 09:46 GMT
>I think that the only "insight" is realizing that it all depends on
>the teacher. Skilled teachers can teach anything using any technique
>but they need to have similar talents to good actors or court room
>lawyers.

I am such a ham in front of a big audience. I have spoken in front of
audiences thousands of times.  There is no substitute for just doing
it over and over and learning what works with what sorts of audiences.

Once you get over the stage fright, it is one of the most fun things
you can do.  

A kid's audience is tougher at first. They won't be polite, but on the
other hand, they are a lot easier to get rolling and they get totally
carried away.
.
I am working on an essay at http://mindprod.com/jgloss/teaching.html
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

writeOnceDebugEverywhere() - 24 Dec 2005 12:50 GMT
> Hi, i have read 2 books( thinking java and how to program in java), and
>
> have general understanding of the programming language.   But even
> after reading 2 books, i still feel it is hard to apply what i've
> learn,  is there a program out there that makes learning/programming
> Java easier,

- you must decide what area of java programming you want to lear.
Then, try to find some application written by java proffesionals, with
source code; and study careful this code. By my opinion, this is the
best method...
Roedy Green - 24 Dec 2005 14:01 GMT
On Sat, 24 Dec 2005 13:15:30 -1200, "writeOnceDebugEverywhere()"
<cwele_n_spm@evnet.yu> wrote, quoted or indirectly quoted someone who
said :

>- you must decide what area of java programming you want to lear.
>Then, try to find some application written by java proffesionals, with
>source code; and study careful this code. By my opinion, this is the
>best method...

you need both. If you don't look at good code you will develop all
sorts of bad habits and goofy round about ways to solve things.

If you don't actually write code, you will imagine yourself an expert,
but you won't actually be able to create anything, like those people
who read books with cloud diagrams and imagine they are software
architects.
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Paulus de Boska - 24 Dec 2005 13:44 GMT
John, the best way to learn is by studying examples and adapt them,
experiment with them as much as possible, because you can read all you
want, but things will more often than not work just a tad different
from what you expect. My lessons are all based on examples, so feel
free to take a look at them. (Your browser will need Java support,
however, because I use applets.  A lot .)
---
Paul Hamaker, SEMM
http://javalessons.com


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.