Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #26950 > unrolled thread

Recommendations for an online Introduction to programming using Java

Started bycate3@panix.com (Henry Cate)
First post2013-12-16 17:11 -0500
Last post2013-12-21 05:00 -0800
Articles 11 on this page of 31 — 16 participants

Back to article view | Back to comp.lang.java.programmer


Contents

  Recommendations for an online Introduction to programming using Java cate3@panix.com (Henry Cate) - 2013-12-16 17:11 -0500
    Re: Recommendations for an online Introduction to programming using Java markspace <markspace@nospam.nospam> - 2013-12-16 14:23 -0800
      Re: Recommendations for an online Introduction to programming using Java Joerg Meier <joergmmeier@arcor.de> - 2013-12-17 00:06 +0100
      Re: Recommendations for an online Introduction to programming using Java cate3@panix.com (Henry Cate) - 2013-12-16 19:05 -0500
    Re: Recommendations for an online Introduction to programming using Java Jeff Higgins <jeff@invalid.invalid> - 2013-12-16 17:25 -0500
      Re: Recommendations for an online Introduction to programming using Java cate3@panix.com (Henry Cate) - 2013-12-16 19:01 -0500
        Re: Recommendations for an online Introduction to programming using Java Jeff Higgins <jeff@invalid.invalid> - 2013-12-16 22:42 -0500
          Re: Recommendations for an online Introduction to programming using Java Jeff Higgins <jeff@invalid.invalid> - 2013-12-16 23:36 -0500
            Re: Recommendations for an online Introduction to programming using Java cate3@panix.com (Henry Cate) - 2013-12-17 14:37 -0500
              Re: Recommendations for an online Introduction to programming using Java Martin Gregorie <martin@address-in-sig.invalid> - 2013-12-17 22:33 +0000
                Re: Recommendations for an online Introduction to programming using Java Arne Vajhøj <arne@vajhoej.dk> - 2013-12-17 18:02 -0500
                Re: Recommendations for an online Introduction to programming using Java cate3@panix.com (Henry Cate) - 2013-12-17 18:25 -0500
    Re: Recommendations for an online Introduction to programming using Java Arne Vajhøj <arne@vajhoej.dk> - 2013-12-16 21:58 -0500
    Re: Recommendations for an online Introduction to programming using Java "Charles Hottel" <chottel@earthlink.net> - 2013-12-17 00:28 -0500
      Re: Recommendations for an online Introduction to programming using Java cate3@panix.com (Henry Cate) - 2013-12-17 14:40 -0500
        Re: Recommendations for an online Introduction to programming using Java Jeff Higgins <jeff@invalid.invalid> - 2013-12-17 16:30 -0500
          Re: Recommendations for an online Introduction to programming using   Java Chris Riesbeck <Chris.Riesbeck@gmail.com> - 2013-12-18 12:50 -0600
            Re: Recommendations for an online Introduction to programming using Java Chris Riesbeck <Chris.Riesbeck@gmail.com> - 2013-12-19 12:09 -0600
              Re: Recommendations for an online Introduction to programming using Java Jukka Lahtinen <jtfjdehf@hotmail.com.invalid> - 2013-12-20 13:04 +0200
                Re: Recommendations for an online Introduction to programming using Java Lars Enderin <lars.enderin@telia.com> - 2013-12-20 16:54 +0100
                  Re: Recommendations for an online Introduction to programming using Java "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2013-12-21 13:02 +0000
            Re: Recommendations for an online Introduction to programming using Java Chris Riesbeck <Chris.Riesbeck@gmail.com> - 2013-12-19 12:22 -0600
            Re: Recommendations for an online Introduction to programming using Java Arne Vajhøj <arne@vajhoej.dk> - 2013-12-30 15:14 -0500
            Re: Recommendations for an online Introduction to programming using Java Arved Sandstrom <asandstrom2@eastlink.ca> - 2014-01-02 01:58 -0400
              Re: Recommendations for an online Introduction to programming using Java Arne Vajhøj <arne@vajhoej.dk> - 2014-01-02 20:26 -0500
        Re: Recommendations for an online Introduction to programming using Java Arne Vajhøj <arne@vajhoej.dk> - 2013-12-17 18:01 -0500
    Re: Recommendations for an online Introduction to programming using Java "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2013-12-17 08:09 +0000
    Re: Recommendations for an online Introduction to programming using Java Patricia Shanahan <pats@acm.org> - 2013-12-17 13:49 -0800
    Re: Recommendations for an online Introduction to programming using Java Ali Sh <ali.shahrivarian@gmail.com> - 2013-12-18 03:44 -0800
    Re: Recommendations for an online Introduction to programming using Java marianne.paradiso@gmail.com - 2013-12-19 12:02 -0800
    Re: Recommendations for an online Introduction to programming using Java Roedy Green <see_website@mindprod.com.invalid> - 2013-12-21 05:00 -0800

Page 2 of 2 — ← Prev page 1 [2]


#27012

From"Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org>
Date2013-12-21 13:02 +0000
Message-ID<5p6dnWnSJ8oYDyjPnZ2dnUVZ8vednZ2d@bt.com>
In reply to#27000
Lars Enderin wrote:

> Americans tend to put sentence delimiters before a closing ", but I
> thought that it did not apply to commas. Anyway, it's a confusing
> practice and certainly not applicable to program text.

    String aString = "Hello world;"

;-)

    -- chris 

[toc] | [prev] | [next] | [standalone]


#26994

FromChris Riesbeck <Chris.Riesbeck@gmail.com>
Date2013-12-19 12:22 -0600
Message-ID<bhgrq3Fbdb5U1@mid.individual.net>
In reply to#26989
On 12/18/2013 1:32 PM, Stefan Ram wrote:
> Chris Riesbeck <Chris.Riesbeck@gmail.com> writes:
>> I looked at a couple of the early videos. A sincere effort but along
>> with learning Java, you'll learn a lot of bad habits, especially in
>> naming things. E.g., his first example is a hello world program in a
>> class called "apples," thereby managing to make three mistakes in one
>> short name.
>
>        1st) the name is not related to the meaning of the class
>             (most severe)
>        2nd) it does not start with an upper-case letter
>        3rd) it contains a comma
>
>    The quality assessments of beginners and experts often
>    differ. A beginner senses whether the learning process
>    triggered by reading a book makes him feel good, and will
>    not always recognize it when he learns something that is
>    wrong. When the book tells the beginner: »You can name a
>    class any way you like as long as the name sounds really
>    cool, for example, try funny fruit names.«, a young beginner
>    might actually like this stance. Possibly, he will continue
>    to read this book, while he would have stopped reading a
>    more boring book even though it is more correct in technical
>    terms. So, the funny book with the mistakes might actually
>    make him learn more (some of which is wrong).

I certainly agree with the need to engage and not intimidate the 
beginner. Knowing when to lie to students is an important part of 
teaching. One of the things that led me into math and then computer 
science was when a high school teacher misled me about what was already 
known about the square root of -1.

But the part of me that reads college student code sees all these 
programmers who believe names don't matter, when they probably matter 
more than anything else. So somewhere down the line, before they release 
code into the wild, it'd be nice if someone told them you write code for 
people to read, not just computers.

[toc] | [prev] | [next] | [standalone]


#27133

FromArne Vajhøj <arne@vajhoej.dk>
Date2013-12-30 15:14 -0500
Message-ID<52c1d42b$0$295$14726298@news.sunsite.dk>
In reply to#26989
On 12/18/2013 2:32 PM, Stefan Ram wrote:
> Chris Riesbeck <Chris.Riesbeck@gmail.com> writes:
>> I looked at a couple of the early videos. A sincere effort but along
>> with learning Java, you'll learn a lot of bad habits, especially in
>> naming things. E.g., his first example is a hello world program in a
>> class called "apples," thereby managing to make three mistakes in one
>> short name.
>
>        1st) the name is not related to the meaning of the class
>             (most severe)
>        2nd) it does not start with an upper-case letter
>        3rd) it contains a comma
>
>    The quality assessments of beginners and experts often
>    differ. A beginner senses whether the learning process
>    triggered by reading a book makes him feel good, and will
>    not always recognize it when he learns something that is
>    wrong. When the book tells the beginner: »You can name a
>    class any way you like as long as the name sounds really
>    cool, for example, try funny fruit names.«, a young beginner
>    might actually like this stance. Possibly, he will continue
>    to read this book, while he would have stopped reading a
>    more boring book even though it is more correct in technical
>    terms. So, the funny book with the mistakes might actually
>    make him learn more (some of which is wrong).
>
>    There is a German Java programming book, whose name I
>    forgot, that uses class and variable names like »Jacob« and
>    «Sophia«. While experts criticise this, some readers
>    (beginners) say that it helps them to understand that these
>    are names the programmer can assign as he likes it,
>    setting them clearly apart from keywords like »return«,
>    marking them as /names/.

I completely agree.

And that is why I recommended a book by an author that is good at
writing introductory programming books over a book by an author
that is a true expert in Java.

That said then I would consider it best to stick to normal
convention case of names. It is not a subject that requires a
lot of knowledge to understand.

Arne

[toc] | [prev] | [next] | [standalone]


#27166

FromArved Sandstrom <asandstrom2@eastlink.ca>
Date2014-01-02 01:58 -0400
Message-ID<xe7xu.104465$5K4.24154@fx07.iad>
In reply to#26989
On 12/18/2013 03:32 PM, Stefan Ram wrote:
> Chris Riesbeck <Chris.Riesbeck@gmail.com> writes:
>> I looked at a couple of the early videos. A sincere effort but along
>> with learning Java, you'll learn a lot of bad habits, especially in
>> naming things. E.g., his first example is a hello world program in a
>> class called "apples," thereby managing to make three mistakes in one
>> short name.
>
>        1st) the name is not related to the meaning of the class
>             (most severe)
>        2nd) it does not start with an upper-case letter
>        3rd) it contains a comma
>
>    The quality assessments of beginners and experts often
>    differ. A beginner senses whether the learning process
>    triggered by reading a book makes him feel good, and will
>    not always recognize it when he learns something that is
>    wrong. When the book tells the beginner: »You can name a
>    class any way you like as long as the name sounds really
>    cool, for example, try funny fruit names.«, a young beginner
>    might actually like this stance. Possibly, he will continue
>    to read this book, while he would have stopped reading a
>    more boring book even though it is more correct in technical
>    terms. So, the funny book with the mistakes might actually
>    make him learn more (some of which is wrong).
>
>    There is a German Java programming book, whose name I
>    forgot, that uses class and variable names like »Jacob« and
>    «Sophia«. While experts criticise this, some readers
>    (beginners) say that it helps them to understand that these
>    are names the programmer can assign as he likes it,
>    setting them clearly apart from keywords like »return«,
>    marking them as /names/.
>
I'm not aware of great recent introductory Java programming books, 
except for advanced topics: you appreciate Bloch and Goetz when you've 
already learned Java. That Herb Schildt wrote a book about Java bothers 
me: his books on C and C++ were awful. But judging by the publishing 
press he is an authority on C, C++, C# and Java. I'll be less harsh 
about the Deitels: they are merely mediocre.

The original O'Reilly books about Java were the best. I've still got my 
'96 edition of "Java In a Nutshell" by Flanagan on my shelf.

AHS
-- 
When a true genius appears, you can know him by this sign:
that all the dunces are in a confederacy against him.
-- Jonathan Swift

[toc] | [prev] | [next] | [standalone]


#27179

FromArne Vajhøj <arne@vajhoej.dk>
Date2014-01-02 20:26 -0500
Message-ID<52c611d6$0$298$14726298@news.sunsite.dk>
In reply to#27166
On 1/2/2014 12:58 AM, Arved Sandstrom wrote:
> On 12/18/2013 03:32 PM, Stefan Ram wrote:
>> Chris Riesbeck <Chris.Riesbeck@gmail.com> writes:
>>> I looked at a couple of the early videos. A sincere effort but along
>>> with learning Java, you'll learn a lot of bad habits, especially in
>>> naming things. E.g., his first example is a hello world program in a
>>> class called "apples," thereby managing to make three mistakes in one
>>> short name.
>>
>>        1st) the name is not related to the meaning of the class
>>             (most severe)
>>        2nd) it does not start with an upper-case letter
>>        3rd) it contains a comma
>>
>>    The quality assessments of beginners and experts often
>>    differ. A beginner senses whether the learning process
>>    triggered by reading a book makes him feel good, and will
>>    not always recognize it when he learns something that is
>>    wrong. When the book tells the beginner: »You can name a
>>    class any way you like as long as the name sounds really
>>    cool, for example, try funny fruit names.«, a young beginner
>>    might actually like this stance. Possibly, he will continue
>>    to read this book, while he would have stopped reading a
>>    more boring book even though it is more correct in technical
>>    terms. So, the funny book with the mistakes might actually
>>    make him learn more (some of which is wrong).
>>
>>    There is a German Java programming book, whose name I
>>    forgot, that uses class and variable names like »Jacob« and
>>    «Sophia«. While experts criticise this, some readers
>>    (beginners) say that it helps them to understand that these
>>    are names the programmer can assign as he likes it,
>>    setting them clearly apart from keywords like »return«,
>>    marking them as /names/.
>>
> I'm not aware of great recent introductory Java programming books,
> except for advanced topics: you appreciate Bloch and Goetz when you've
> already learned Java. That Herb Schildt wrote a book about Java bothers
> me: his books on C and C++ were awful. But judging by the publishing
> press he is an authority on C, C++, C# and Java. I'll be less harsh
> about the Deitels: they are merely mediocre.

All the C and C++ experts agree that Schildt's books are awful.

But in most cases that just means that they are awful at teaching
beginners how to program.

A few quotes from Feather:

<quote>
A proper understanding of the terms "implementation-defined", 
"undefined", and "unspecified", and of the differences between them, is 
essential to understanding the limits that the standard puts on the 
programmer and the implementor.  Unfortunately, the differences are not 
explained at all, and the book leaves me wondering why the different 
terms are used at all.
</quote>

<quote>
      ##  An unsigned integer expression cannot overflow.  This is because
     ##  there is no way to represent such an overflow as an unsigned
     ##  quantity.

More nonsense.  An implementation either does or doesn't have a way to 
represent overflow - usually integers don't, while floating point may or 
may not (some systems have INFINITY values that effectively indicate 
overflow).  However, an unsigned integer expression cannot overflow 
because the standard says so - the choice was made that unsigned integer 
arithmetic is done modulo some base (UINT_MAX+1 for unsigned int, 
ULONG_MAX+1 for unsigned long).  There is no magic about this; it was an 
arbitrary decision by the authors of the standard.
</quote>

A few quote from Seebs:

<quote>
     As bits are shifted off one end, zeroes are brought in the other 
end. (In the case of a signed, negative integer, a right shift will 
cause a 1 to be brought in so that the sign bit is preserved.)

Clear, lucid, but not actually true. What happens when you right-shift a 
signed, negative number, is "implementation-defined" (C99, 6.5.7, 
paragraph 5); that is to say, the implementation has to document what 
happens. While the behavior Schildt describes is one of the common 
choices, other systems have been known to shift in zeroes. There may be 
other behaviors out there. This ties in somewhat with Schildt's comments 
about the use of two's complement representations, where the behavior he 
describes is common but not actually required.
</quote>

<quote>
     If stream is associated with a file opened for writing, a call to 
fflush() causes the contents of the output buffer to be physically 
written to the file. The file remains open.

There's a couple of questionable bits here, although they're arcane 
enough that you might reasonably call them nitpicks.

     Streams in C can be opened for reading, writing, or "update"—both 
reading and writing. You can safely use fflush() on an update stream 
only if the most recent operation on it was not a read (writes or seeks, 
for instance, are allowed). Schildt misses that distinction, although I 
simply can't tell whether he fails to point out that you can sometimes 
flush an update stream, or fails to point out that you sometimes can't 
flush an update stream.
     More perniciously, it's worth pointing out that fflush() does not 
cause the contents of the output buffer to be physically written to the 
file. It causes the contents of the output buffer to be delivered to the 
host operating environment, which may well have additional layers of 
buffering. On most modern systems, this could result in the file living 
in an operating-system level write cache for seconds or minutes, or for 
that matter, living in a cache on the disk drive's internal 
microcontroller for some time. (That "16MB cache!" you see advertised on 
hard drive packaging is, in many cases, not something the C 
implementation can force to be flushed out to the physical platters.)
</quote>

All very correct.

But absolutely non-suitable for a beginner that wants to learn C.

Arne






[toc] | [prev] | [next] | [standalone]


#26983

FromArne Vajhøj <arne@vajhoej.dk>
Date2013-12-17 18:01 -0500
Message-ID<52b0d7b4$0$295$14726298@news.sunsite.dk>
In reply to#26975
On 12/17/2013 2:40 PM, Henry Cate wrote:
> In article <gu2dna8uio1EfTLPnZ2dnUVZ_t-dnZ2d@earthlink.com>,
> Charles Hottel <chottel@earthlink.net> wrote:
>> I like the books published by Mike Murach:
>>
>> http://www.murach.com/books/java.htm
>
> 	Thanks.  I'll check them out.
>
> 	This kind of seems to be what I want:
>
> http://thenewboston.org/list.php?cat=31
>
> 	I'll check them out this weekend to see if the quality
> is pretty good and how engaging the videos are.

Videos has been hot for several years now.

But I must admit to be so old fashioned to prefer books.

Sure it is more difficult to read books than to watch videos. But
if reading books is a problem, then programming will be a big problem.

And nothing provides the same amount of information as a good book.

Arne



[toc] | [prev] | [next] | [standalone]


#26963

From"Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org>
Date2013-12-17 08:09 +0000
Message-ID<zMSdnWg7-JhYmy3PnZ2dnUVZ8gqdnZ2d@bt.com>
In reply to#26950
Henry Cate wrote:

> Does anyone have recommendations for an online
> forum which teaches the basics of programming, using Java?

You might find it worthwhile to look at the BlueJ stuff, both the learning 
environment itself and the material (including a book) that is associated with 
it.

Alternatively, and setting Java to one side (not a bad idea in itself), you 
might find the Raspberry Pi and /it's/ associated material worth checking.

    -- chris 

[toc] | [prev] | [next] | [standalone]


#26978

FromPatricia Shanahan <pats@acm.org>
Date2013-12-17 13:49 -0800
Message-ID<-dKdne20GvN6Wy3PnZ2dnUVZ_vudnZ2d@earthlink.com>
In reply to#26950
On 12/16/2013 2:11 PM, Henry Cate wrote:
> 	I have a young teenage daughter who is interested
> in programming.  She has been messing around with something
> on Kahn Academy's web site which uses Javascript.  A friend
> of mine has a teenage son who is also interested in learning
> how to program.  I would like to get them started with Java,
> but Google has 9.5 million hits for: "Introduction to
> programming in Java"
...
> Good introduction to real programming
> Teaches the basics - make no assumptions on what the student already knows
> Simple exercises to make sure they understand the concepts
> Online video would be nice
> Free would be nice
...

For some light relief, they may enjoy Codespells: 
https://sites.google.com/a/eng.ucsd.edu/codespells/home

It is a game in which wizards cast magic spells. "Levitate" is a typical 
spell:

======================================
import june.*;

public class Levitate extends Spell
{
   public void cast()
   {
     Enchanted target = getTarget();

     int counter = 0;

     while(counter < 10)
     {
       target.move(Direction.up(), 0.1);
       counter = counter + 1;
     }
   }
}
=======================================

Players combine and modify spells to achieve various quests.

Patricia

[toc] | [prev] | [next] | [standalone]


#26988

FromAli Sh <ali.shahrivarian@gmail.com>
Date2013-12-18 03:44 -0800
Message-ID<243cac1a-d31b-465c-9233-206edc84bc49@googlegroups.com>
In reply to#26950
Beginning Java 7
Jeff Friesen

[toc] | [prev] | [next] | [standalone]


#26995

Frommarianne.paradiso@gmail.com
Date2013-12-19 12:02 -0800
Message-ID<80edb238-e03b-4670-944f-f861342737f5@googlegroups.com>
In reply to#26950
There are tons of books here: http://it-ebooks.info/book/2595/

I'm sure you'll find something suitable for your daughter.

[toc] | [prev] | [next] | [standalone]


#27011

FromRoedy Green <see_website@mindprod.com.invalid>
Date2013-12-21 05:00 -0800
Message-ID<t14bb9dbrslm8o4ctrtpa2nlr5ntlpjktb@4ax.com>
In reply to#26950
On 16 Dec 2013 17:11:40 -0500, cate3@panix.com (Henry Cate) wrote,
quoted or indirectly quoted someone who said :

> I would like to get them started with Java,
>but Google has 9.5 million hits for: "Introduction to 
>programming in Java"

I would try the Oracle Java tutorials.

After that, he might find my site useful.

For example if he wanted to use a button, he could look
at http://mindprod.com/jgloss/jbutton.html

And he would see a short, complete program using it and "gotchas"
(tips of the unexpected). You can do that for all sorts of the common
classes.

Tutorials are great to get started, but are not good for reference.
The official docs are a bit daunting for novices.  My stuff fits in
the middle.
-- 
Roedy Green Canadian Mind Products http://mindprod.com
Unlike many machines, computers require no water once they are
manufactured.

[toc] | [prev] | [standalone]


Page 2 of 2 — ← Prev page 1 [2]

Back to top | Article view | comp.lang.java.programmer


csiph-web