Java Forum / First Aid / February 2005
Java Object-Oriented Prgramming- Basics for High School Course ???
James - 26 Feb 2005 21:07 GMT I hope this is the right group within which to post this message. If I am off base, please tell me and I will try a more appropriate group. But, I do need help for my son, and this was the only place that I know where to turn for help.
My son is in high school, and is taking a basic Java course. The text book is called "Java Methods", An Introduction to Object-Oriented Programming. The authors are Maria and Gary Litvin.
It appears that his teacher is very well skilled in Java programming, but she doesn't have super teaching skills. My son works hard and is smart, but cannot for the life of him figure out how to actually write a simple program. He doesn't have a clue where to start, and cannot do most of the book assignments as he hasn't learned the very, very basic elements of writing a Java program. At the same time, he is very smart, works hard, and I know for a fact that he can and will learn Java if exposed to the right source.
Some of the book assignments simply say, "Write a program that will do the following..... etc, etc "
Here are my questions:
1. Is there a more appropriate user group to post this question ?
2. Is there a good website that might help him as a TOTAL NEWCOMER to the Java language?
3. Does anyone know of an outstanding book , that effectively teaches Java Object Oriented Programming, in a manner that a teenager could pick it up (without teacher assistance) if he were willing to work hard at it ??
4. Is there a Java software product that can be used as a teaching source for learning BASIC Java Object-Oriented Programming ?
------------------------------------------
In making responses, please keep in mind that my son is very much a beginner, and any source of materials would have to assume that the student was on his or her first day in a Java class, and needed to be able to write a simple program with a week or ten days.
Any help or advice would be greatly appreciated !!
--James--
Wiseguy - 26 Feb 2005 21:34 GMT "James" <jnipperxxx@nospamfdn.com> scribbled on the stall wall:
> It appears that his teacher is very well skilled in Java programming, but > she doesn't have super teaching skills. My son works hard and is smart, [quoted text clipped - 4 lines] > and I know for a fact that he can and will learn Java if exposed to the > right source. Being his parent, you're in no way biased, right?
> 1. Is there a more appropriate user group to post this question ? I don't see why it wouldn't be an adequate forum to ask.
> 2. Is there a good website that might help him as a TOTAL NEWCOMER to the > Java language? Yes, but not for the average highschool kid.
> 3. Does anyone know of an outstanding book , that effectively teaches Java > Object Oriented Programming, in a manner that a teenager could pick it up > (without teacher assistance) if he were willing to work hard at it ?? I suppose I'll take all kinds of flaming for this since many of us are/were self-taught in the golden age of computers (1970s-1980s) but I really don't think (effective) java programming can or should be taught to teenagers in highschool.
It goes back to a fundamental concept I've believed for over 20 years and I'm not about to change my mind. People really need to conceptually understand computer science principles as part of learning to program in ANY object oriented language. Teaching programming separate from theory has led to a slew of underqualified incapable programmers out there who produce substandard code but are attractive to industry because they work cheap.
I'll step off of my soap-box now...Asbestos coveralls are on, so flame at will.
> 4. Is there a Java software product that can be used as a teaching source > for learning BASIC Java Object-Oriented Programming ? I don't really think object oriented programming is BASIC...
There once was a language called BASIC and highschool kids should start by learning that since it is a useful tool for teaching algorithms and ways of thinking about problems without getting bogged down in higher level concepts.
> In making responses, please keep in mind that my son is very much a > beginner, and any source of materials would have to assume that the student > was on his or her first day in a Java class, and needed to be able to write > a simple program with a week or ten days. Even with my unwavering feelings about whether it is appropriate to teach java to a highschool kid, I have a hard time immagining a class where the first week of lectures does NOT include a blackboard example such that simply copying it would produce a working java program. Are you sure Jr. is REALLY taking notes and paying attention? OTOH, those who cannot DO, TEACH INSTEAD...so it is possible that his instructor is innept.
James - 26 Feb 2005 21:44 GMT Well, we can all fully understand why your chosen Newsgroup name is Wiseguy.
I didn't have to know anything about software to figure that one out.
Good Luck !!
--James--
--------------------------------
"James" <jnipperxxx@nospamfdn.com> scribbled on the stall wall:
> It appears that his teacher is very well skilled in Java programming, but > she doesn't have super teaching skills. My son works hard and is smart, [quoted text clipped - 4 lines] > and I know for a fact that he can and will learn Java if exposed to the > right source. Being his parent, you're in no way biased, right?
> 1. Is there a more appropriate user group to post this question ? I don't see why it wouldn't be an adequate forum to ask.
> 2. Is there a good website that might help him as a TOTAL NEWCOMER to the > Java language? Yes, but not for the average highschool kid.
> 3. Does anyone know of an outstanding book , that effectively teaches Java > Object Oriented Programming, in a manner that a teenager could pick it up > (without teacher assistance) if he were willing to work hard at it ?? I suppose I'll take all kinds of flaming for this since many of us are/were self-taught in the golden age of computers (1970s-1980s) but I really don't think (effective) java programming can or should be taught to teenagers in highschool.
It goes back to a fundamental concept I've believed for over 20 years and I'm not about to change my mind. People really need to conceptually understand computer science principles as part of learning to program in ANY object oriented language. Teaching programming separate from theory has led to a slew of underqualified incapable programmers out there who produce substandard code but are attractive to industry because they work cheap.
I'll step off of my soap-box now...Asbestos coveralls are on, so flame at will.
> 4. Is there a Java software product that can be used as a teaching source > for learning BASIC Java Object-Oriented Programming ? I don't really think object oriented programming is BASIC...
There once was a language called BASIC and highschool kids should start by learning that since it is a useful tool for teaching algorithms and ways of thinking about problems without getting bogged down in higher level concepts.
> In making responses, please keep in mind that my son is very much a > beginner, and any source of materials would have to assume that the student > was on his or her first day in a Java class, and needed to be able to write > a simple program with a week or ten days. Even with my unwavering feelings about whether it is appropriate to teach java to a highschool kid, I have a hard time immagining a class where the first week of lectures does NOT include a blackboard example such that simply copying it would produce a working java program. Are you sure Jr. is REALLY taking notes and paying attention? OTOH, those who cannot DO, TEACH INSTEAD...so it is possible that his instructor is innept.
emma wykes - 26 Feb 2005 21:50 GMT Hi There,
Wiseguy has some valid points !
I am speaking as a post grad student who learned Java without the first idea of computer science or programming I was an electrician ! Most people can learn OOP with a lot of application.
He could try Blue J book and IDE http://www.bluej.org/
David J. Barnes & Michael K?lling Objects First with Java A Practical Introduction using BlueJ, 2nd ed
Prentice Hall / Pearson Education, 2004 ISBN 0-13-124933-9
I think this is as good a manual as any .
regards
Jim Ascroft
> "James" <jnipperxxx@nospamfdn.com> scribbled on the stall wall: > > [quoted text clipped - 60 lines] > http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups > ----= East and West-Coast Server Farms - Total Privacy via Encryption =---- TechBookReport - 28 Feb 2005 10:39 GMT > Hi There, > [quoted text clipped - 140 lines] > > =---- A second vote for BlueJ. The book is reviewed here: http://www.techbookreport.com/tbr0096.html
Also the Sun tutorial is worth looking at.
pan ============================================================ TechBookReport Java http://www.techbookreport.com/JavaIndex.html
Fuddzy - 26 Feb 2005 21:48 GMT > 3. Does anyone know of an outstanding book , that effectively teaches Java > Object Oriented Programming, in a manner that a teenager could pick it up > (without teacher assistance) if he were willing to work hard at it ?? James:
I am a hobbyist Java programmer and as I was learning (it never ends) Java I stumbled across the following book in my local library
"Java Demystified" by Jim Keogh from McGraw-Hill-Osborne .
In Canada the book costs $28.95 and is worth every penny
Hope this helps your son
Fuddzie
Paul Chapman - 26 Feb 2005 22:04 GMT James,
I would echo some of what Wiseguy wrote, but not all.
I certainly agree that Java is inappropriate for a FIRST language. It worries me that your son's school does not appear to share this view. BASIC was and still is a far better idea. LOGO would be my choice today, even though its heyday is past, because the teaching materials were designed by teachers (very good teachers) and not programmers.
Beyond that, programming is not for everybody.
It's not like art, where anyone can follow the instruction "draw a horse". Ask me to draw a horse, and I will produce something the average eight-year-old could beat. It will be recognizable as a horse, but wouldn't be suitable for illustrating a book about horses. I cannot make money from drawing.
But ask someone to write a program to load a picture of a horse and render it on the screen upside down, and there will simply be people who can't do it. Programming is a discipline that at the first requires ABSOLUTE pedantry, and some people can't (and don't want to) function that way.
Beyond that, programming gets very hard very quickly. Being able to create a program to solve a problem from scratch again requires a very particular way of thinking. Being "bright" or "good at maths" or "well-trained" is sometimes simply not enough.
...
Constructive advice: not much to give. First off, get your son a BASIC or LOGO system with some introductory materials and start him off on that. If the school complains, tell 'em to go to hell. Do you want your son to be able to program, or to please the teachers?
Then find a parent who programs and who understands why Java is such a bad first language, and go see the principal together and ask him/her what the hell they think they're doing. Well, maybe be a bit more diplomatic. :) Say you'll offer to help them set up a world-beating introduction-to-programming course.
Cheers, Paul
Chris Smith - 26 Feb 2005 22:17 GMT > Constructive advice: not much to give. First off, get your son a BASIC or > LOGO system with some introductory materials and start him off on that. If > the school complains, tell 'em to go to hell. Do you want your son to be > able to program, or to please the teachers? That seems to me like an incredibly poor approach. Like it or not, this is about accomplishing the goal of learning Java. Java may not be the best language to learn it (although it's far better than some), but it's not a good choice to attempt to learn Java by first learning something else, and then learning Java. I might as well advise you that because French is a hard language to learn, you should learn Latin first and then move on to French.
So definitely check out BlueJ, and/or also look up the "Java Tutorial", which has an excellent step-by-step section on getting started with your first program. Then take Patricia's advice, and just have him start working a lot of simple example problems.
 Signature www.designacourse.com The Easiest Way To Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer MindIQ Corporation
Paul Chapman - 26 Feb 2005 23:32 GMT > > Constructive advice: not much to give. First off, get your son a BASIC or > > LOGO system with some introductory materials and start him off on that. If [quoted text clipped - 4 lines] > is about accomplishing the goal of learning Java. Java may not be the > best language to learn it (although it's far better than some), ... I would say that it's not much better than very few, but anyway...
> ... but it's > not a good choice to attempt to learn Java by first learning something > else, and then learning Java. I might as well advise you that because > French is a hard language to learn, you should learn Latin first and > then move on to French. Well, this has become a political debate, and people's politics vary radically. :)
I strongly believe that in any subject, that *if* one has ambitions beyond a superficial, lay understanding, *then* one should learn the fundamentals first.
Your Latin/French example is a good one. If you want to be able to order a beer on a two-week vacation in Britanny, then forget the Latin. If you want to be able to read and understand French philosophy, you need the Latin. I did two years of Latin, and it helped me not one jot in my French and German exams. But now I'm older, even my foggy recollections of those two years inform my understanding of two thousand years of European history, right up to political and social differences today, not to mention the history of British mathematics and science, and my lay interest in linguistics. I only wish I had some Ancient Greek as well!
(And in the absence of any formal education in English grammar -- my schools were both a little too progressive in that area -- I thank the stars that I was made aware of parts of speech in my Latin studies. Many PROFESSIONAL writers of English today obviously do not have a grasp of simple grammar -- few can identify a gerund, for example, and as a consequence pretty much every single news or feature article committed to the page uses an object pronoun somewhere where a possessive pronoun belongs. Latin is not the only route to such understanding, but it does a grand job in the absence of formal training in English.)
There are fundamentals in programming. OO is not one of them (and the world of computer programming did fine without it for 25 years). GUI is not one of them. Where to put and where not to put braces and semicolons is not one of them, nor are two-dimensional arrays which are actually vectors of vectors.
Compare:
class MyClass { public static void main(String[] args) { System.out.println("Hello World"); } }
with:
10 PRINT "HELLO WORLD" 20 END
and tell me which you think helps start someone off with the fundamentals of programming!
Cheers, Paul
Chris Smith - 27 Feb 2005 00:15 GMT > Well, this has become a political debate, and people's politics vary > radically. :) I don't know about that. I agree with pretty much everything you said. However, the fact remains that this kid is apparently in a semester class in programming that uses Java, and going off to learn Logo and BASIC is not going to help much with that class in a one-semester time frame, especially if it he's still sitting in class hearing about Java on a regular basis anyway, and BASIC takes away from the time he is spending learning Java.
It *is* possible to learn the basics of programming in Java, and it looks like that is what's called for here.
 Signature www.designacourse.com The Easiest Way To Train Anyone... Anywhere.
Chris Smith - Lead Software Developer/Technical Trainer MindIQ Corporation
iSyncLtd@hotmail.com - 27 Feb 2005 02:34 GMT i learned LTP BASIC and then java.
basic is helpful to learn the logic part of programing but i would just recommend "java 2 for dummies" :) that's how i learned it and it has less techno stuff others wouldn't know
Patricia Shanahan - 26 Feb 2005 22:06 GMT > I hope this is the right group within which to post this message. If I am > off base, please tell me and I will try a more appropriate group. But, I [quoted text clipped - 16 lines] > Some of the book assignments simply say, "Write a program that will do the > following..... etc, etc " You may need to look for another book that he prefers. While I'm not familiar with the course book, the amazon.com reviews are mixed. At least some students find it confusing.
Also, with two books he would have a better chance of finding an explanation he can understand for any difficult point.
Pick one where the first few pages make sense to him. The first exercises should be given in detail, and relate to worked examples. By the time he reaches "Write a program that will do...." he should have already written several programs and made them run.
Encourage him to attempt examples in order. Programming is a skill that needs to be developed through practice, not something most people can learn by just reading. He shouldn't be worrying at all about "most of the book examples", only the very earliest and easiest ones he has not already done. Later examples will require skills he will not have until he has done the earlier ones.
Patricia
James - 26 Feb 2005 22:17 GMT Thank you all for these nice responses.
--James--
Brian Hetrick - 27 Feb 2005 00:04 GMT > 3. Does anyone know of an outstanding book, that effectively teaches > Java Object Oriented Programming, in a manner that a teenager could > pick it up (without teacher assistance) if he were willing to work > hard at it ?? Firstly, I have to agree with several others here that Java is a poor choice for a first language. It has too many special cases in the syntax and semantics; and while someone with a good understanding of computer science can understand why the special cases are a 90% solution and extending the language to provide a 100% solution would turn it into C++, someone just starting out cannot. Pascal would be a much better first language: it was /designed/ to be a first language by someone who was both an expert educator and a world-class computer scientist, and succeeds admirably.
As we're already a month into the semester, "write a program to do <foo>," where "<foo>" is something fairly simple, is entirely reasonable. On the other hand, if the instructor did not spend the first month pounding the concepts and methods of procedural thinking into the students' heads, "write a program" at all is not reasonable.
A good book for the motivated novice is Bruce Eckel's /Thinking in Java/. This is freely downloadable in electron form, although you may prefer dead tree form. For electron form, see http://www.mindview.net/Books/TIJ/.
IchBin - 27 Feb 2005 05:09 GMT > I hope this is the right group within which to post this message. If I am > off base, please tell me and I will try a more appropriate group. But, I [quoted text clipped - 41 lines] > > --James-- Try this reference...
http://java.sun.com/docs/books/tutorial/reallybigindex.html
 Signature Thanks in Advance... IchBin __________________________________________________________________________
'The meeting of two personalities is like the contact of two chemical substances: if there is any reaction, both are transformed.' - Carl Gustav Jung, (1875-1961), psychiatrist and psychologist
Steve Horsley - 27 Feb 2005 09:42 GMT <snip>>
> Here are my questions: > > 1. Is there a more appropriate user group to post this question ? I think this is the right group
> 2. Is there a good website that might help him as a TOTAL NEWCOMER to the > Java language? Difficult. Suns web site java.sun.com has a java tutorial that tries to cover from the basics upwards. I's big but downloadable.
> 3. Does anyone know of an outstanding book , that effectively teaches Java > Object Oriented Programming, in a manner that a teenager could pick it up > (without teacher assistance) if he were willing to work hard at it ?? For Q 3 and 4, as others have said, try bluej (www.bluej.org). This is a small IDE designed for teaching. It will definitely help with object oriented thinking. It's a free download. It lets you get straight into writing code without all the polava of saving files and figuring out the compiler first. It also has an accompanying book (see the web site) that is written specially for teaching java using bluej.
HTH Steve
> 4. Is there a Java software product that can be used as a teaching source > for learning BASIC Java Object-Oriented Programming ? [quoted text clipped - 9 lines] > > --James-- Joerg Simon - 27 Feb 2005 11:44 GMT [snip]
> 3. Does anyone know of an outstanding book , that effectively teaches Java > Object Oriented Programming, in a manner that a teenager could pick it up > (without teacher assistance) if he were willing to work hard at it ?? [snip]
Hm, this may not be much helpful right noe, but after your son got the basics of programming, I would recomment "Head First Java" as a very good book. I think so because it makes learning the language a fun, the things you learn just stick better, and it keeps you motivated trying the complete crazy examples.
However, this book is for somewon who still knows the basics.
I pearsonally started learing Programming with one year BASIC at school and JavaScript ;), and moved to Java after 1 1/2 jears of beeing confronted with that stuff with O'Raillys book Learning Java.
Since Learning Java is a very good book, it is very technically written, but it may be of help.
However, my aim was to tell that your son may have fun with Head First Java, which too helped me a lot to "master" the language....
 Signature -------------------------------------------------------------- ---- ||oerg (das ist ein j!) \|| Simon ICQ: 49154322 \| email: j_simon@sbox.TUGraz.at
Free MagazinesGet 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 ...
|
|
|