re: book: Head First Java
Jason writes -
This might make some of you cringe.. Judging from the online samples it looks like it might be a good book to hand to kids [us all] who are just getting into programming.
Would be cool if a Python version were available. I'd love to hear your reactions.
Have not looked much at the samples chapter, but did look at the author interviews at http://www.onjava.com/pub/a/onjava/2003/06/18/head_first.html I am sympathetic with much of it. Especially that there does seem to be a true effort is defy expectations about how this kind of thing might be done. And in emphasizing: """We've known forever (at least since Socrates anyway) that learning is at its weakest when the learner is a passive receiver of information. The learner has to be engaged and actively flexing some neurons""" I translate this into an objection to doing *too* much for the student. I don't want a GUI doing too much of the "thinking" - for example. It might help a student get to a satisfying end result that can be called a "program", but how much did they actually *learn* in getting there. I won't press this point as to programming, but will limit my point to to the GUI based dynamic geometry applications - where I am more confident about my point. But I admit I suspect the point translates somehow to programming education. On the other hand, I get a little queasy when the author go to: """Perhaps the worst of all assumptions a teacher or an author can make is to assume the learner is intrinsically motivated and intellectually curious about the content.""" I guess I am stubborn on this point, or arrogant, or something. In that I have the luxuxry of having no interest in presenting material to learners who have no intellectual curiosity about the subject matter I am presenting. One nice thing about the development of the Net (and which I associate with Open Source), is that one can contribute by making the exactly opposite assumption. That one's effort will be found by those motivated by a curiosity. And one can assume that curiosity as a starting point. I, at any rate, have learned much from resources that assumed that from the beginning,therefore forgoing the seduction, and getting on with it. "It", being the transfer of knowledge. An act of generosity, really. If one has something to teach, and is willing to teach it - one should hold one's ground, it seems to me. I like to think Socrates might agree. Art
Art writes
"""Perhaps the worst of all assumptions a teacher or an author can make is to assume the learner is intrinsically motivated and intellectually curious about the content."""
I guess I am stubborn on this point, or arrogant, or something. In that I have the luxuxry of having no interest in presenting material to learners who have no intellectual curiosity about the subject matter I am presenting.
One nice thing about the development of the Net (and which I associate with Open Source), is that one can contribute by making the exactly opposite assumption. That one's effort will be found by those motivated by a curiosity. And one can assume that curiosity as a starting point.
Hi. Art thanks for your comments.. The sun is shining - I'll happily quible with you --- Yes the Net is full of curious people, but not necessarily for whatever you or I may be doing or curious about. They may be curious about something else and in ways we'd never expect... I think the authors were perhaps just exercising a healthy reality check on their own enthusiasms and assumptions. Trying not to project onto the student. They'ev put a lot of effort into the book based firmly on its premise that learning by doing exploring play design etc is the way to go. But they go to creative lengths to avoid dogma and reach for the aha!! quality of programming. I say this becuase I've been browsing "Head First Java" in my local Barnes& Noble a few times since I first posted here.. The more I look at it, the more impressed I think I am ;-) I'll wager it's fast on its way to becoming a new 'classic' and a best seller . It's cartoony and witty, but benefits greatly from the facts that its own content is the result of the two authors' direct experience and collaboration. Java is scary and verbose, but powerful and ubiquitous. "Head First" really tries to tackle ideas first, and let the syntax follow. But it gets into some serious work soon enough. Reminds me of "Who is Fourier?" http://www.amazon.com/exec/obidos/tg/detail/-/0964350408/qid=1056493006/sr=1 -1/ref=sr_1_1/104-7010533-5291168?v=glance&s=books Jason
Jason writes -
The sun is shining
Finally.
- I'll happily quible with you ---
Always welcome a good quibble.
Yes the Net is full of curious people, but not necessarily >for whatever you or I may be doing or curious about.
Not sure what you mean. But, no, traffic on the PyGeo site, is not burdening the infrastructure - if that point is to the point.
They may be curious about something else and in ways >we'd never expect... I think the authors were perhaps >just exercising a healthy reality check on their own >enthusiasms and assumptions.
Reality checks are for sissies ;)
Trying not to project onto the student.
They'ev put a lot of effort into the book based firmly on >its premise
I say this becuase I've been browsing "Head First Java" in my local Barnes&Noble a few times since I first posted here.. >The more I look at it,
Why have they come to be students of Java? Are we assuming coercion of some sort? that learning by doing exploring play design >etc is the way to go. But they go to creative lengths to >avoid dogma and reach for the aha!! quality of >programming. That sounds right to me. I keep trying to say that learning to program was, to me, an experience. Not a particularly coherent one at that, really. I have a jock side. And the experience, amazingly, seems to have drawn on that part of my personality. That, of course, defies lots of expectations - most notably, my own. A book can either hope to be a reference source, or advice from the initiated. But in the end you can no more hope to learn how to program from a book as you can hope to learn to play - say golf - from a book. the more impressed >I think I am ;-) I'll wager it's fast on its way to becoming
a new 'classic' and a best seller . It's cartoony and witty, but benefits greatly from the facts that its own content is >the >result of the two authors' direct experience and collaboration. Java is scary and verbose, but powerful >and ubiquitous. >"Head First" really tries to tackle ideas first, and let the syntax follow. But it gets into some serious work soon
Not sure we are quibbling really. But I will bet that no one without a real healthy motivation to actually learn Java will take much away from the book - nonetheless and in any case. I guess I am quibbling, if at all, with the hyperbole that the authors have discovered a technique to teach the uninterested. I advocate being uninterested in the uninterested. Bastard that I am. What they *can* do,at best, is not harm an existing interest with formalities, and overemphasis on terminology and definitions of terms, and abstracting too far from the heart of the matter. Which is something I cannot attempt to define. But I know when I see. Art
At 06:30 PM 6/24/2003 -0400, Jason Cunliffe wrote:
I say this becuase I've been browsing "Head First Java" in my local Barnes& Noble a few times since I first posted here.. The more I look at it, the more impressed I think I am ;-) I'll wager it's fast on its way to becoming a new 'classic' and a best seller . It's cartoony and witty, but benefits greatly from the facts that its own content is the result of the two authors' direct experience and collaboration. Java is scary and verbose, but powerful and ubiquitous. "Head First" really tries to tackle ideas first, and let the syntax follow. But it gets into some serious work soon enough. Reminds me of "Who is Fourier?"
Yes, exactly. I was just browsing it in Borders this evening, remembering very well your praise way back in June. Indeed, the similarities to 'Who is Fourier?' are striking, and the playfulness is motivated by a similar rationale, "getting the brain to absorb a new language" (Java in one case, some higher math in the other). I'm impressed that O'Reilly would risk this foray into new territory -- certainly helps that the authors have good credentials and explain the "whys and wherefores" of their pedagogical methods up front. It's not a in the "for dummies" genre, but one might see some of the same techniques being employed -- a conversational versus a didactic style, sudden gear shifts, playfulness, graphics. But this book has more graphics, and better ones, than the average "for dummies" -- it's really a higher end product. Where I'd like to go is even further in this direction, but with multimedia -- Flash, voice, the rest of it, but with high level technical content crammed in. I think think these pedagogy pioneers are really on to something. Kirby PS: browsing in another bookstore, decades ago, I recall coming across something by Timothy Leary (perhaps collaborative) published in a tabloid style, with a similar rationale: tabloids look like that for a reason (the brain responds to those blaring headlines). One can harness the techniques for more serious purposes. Of course it's a risk to bring up Leary and tabloids when trying to underline the legitimacy of a genre, but I can't help myself: giving credit where I feel credit is due. Oh, and another one fit here: 'I Seem To Be a Verb' by Buckminster Fuller.
I noticed this book at OSCON, and spoke briefly with Tim O'Reilly about it. He was interested in doing a Python version if a good author (or more likely a good team of authors) would present itself. Any takers? --Guido van Rossum (home page: http://www.python.org/~guido/)
At 09:55 PM 9/4/2003 -0700, Guido van Rossum wrote:
I noticed this book at OSCON, and spoke briefly with Tim O'Reilly about it. He was interested in doing a Python version if a good author (or more likely a good team of authors) would present itself.
Any takers?
--Guido van Rossum (home page: http://www.python.org/~guido/)
I'd like to be involved in something like this. I like the whole approach. I'd also like to see it applied in the intersection between math and computer programming, the nexus which so interests me. Here's something I just wrote to math-teach @ The Math Forum about all this: ========= Given the realities of the job market, a lot of serious-minded adults shell out of computer books designed to give them more skills. There's a lot of pressure on publishers and authors alike to find out what makes technical subjects learnable. A recent contribution to the field is 'Head First Java', which I encourage math teachers to skim, especially the first sections, which are self-consciously about pedagogy. A first impression might be that this is another "for dummies" style book, and yes, there's some overlap (and why are *those* books so successful?). But this is an O'Reilly computer title, and the humor is in my opinion of higher caliber than the "or dummies" or "for complete idiot" series. The important thing is that the authors are making some claims about what helps people learn, and then following their own advice, demonstrating what they consider to be an effective way of imparting technical content. It's all about tricking your brain in to *caring* -- or so the authors argue. The brain is designed to filter out the low stim unimportant stuff, say the authors. It's a survival machine and evolved though eons of flight or fight in jungles and such. By keeping the trivia out, it makes sure the important stuff (like lurking wild animals) stay front and center. But our problem is we *need* to learn Java (just as our ancestors *needed* to learn how to keep out of a tiger's way). So we have to meet the brain half way and give it more of the stimulation it expects when things are important. More stim. More of that sticky stuff that'll help wire it all in. More graphics, more associations. The claim is that these techniques are in fact research based. The result reminds me a lot of 'Who is Fourier?', a book designed to impart the ins and outs of Fourier analysis to lay persons, using the techniques pioneered by a certain language institute to teach regular human languages (like French and Korean). That the human language teachers and computer language teachers would come to similar conclusions, regarding what works, is not entirely surprising. I encourage math teachers to look at 'Who is Fourier?' as well, preferably in conjunction with 'Head First Java'. Kirby
FYI (fer ya'll's information), I did a simple implementation of Pollard's rho method for factoring into primes at: http://www.mathforum.org/epigone/math-teach/blerlplerdghi (the 2nd post in that thread contains important bug fixes and enhancements). This includes a reimplementation of Miller-Rabin without eye balling my source of Dec 2000 which Tim Peters helped me speed up tremendously back then. Except just now I reread those old posts and decided to bring back another of Tim's suggestions: substitute 1L<<n for 2**n (included in the version below). Jumping to the end of that thread: http://mail.python.org/pipermail/edu-sig/2000-December/000827.html For continuity, I'm appending the newer source code here (the Miller-Rabin part). I'm pretty sure I'm using the same motherboard as in 2000 (1.2 Mhz) but now have more RAM (1 gig). Also, this is Python 2.3 and that was what? 2.0? These factors would likely contribute to speed gain. But I bet it's partly the way it's written that makes it somewhat faster. Note I'm not using any prime bases in a pre-test as per the thesis I was following on a web page long gone. Most implementations of Miller-Rabin just pick random integers for each trial (every time you pass a test, similar to a Fermat test, you're more likely to be prime) -- which is all I did here, using the library's random.randint(). from random import randint import time def millrab(n, max=30, timer=False): """ Miller-Rabin primality test as per the following source: http://www.wikipedia.org/wiki/Miller-Rabin_primality_test """ # returns probability p is prime: either p = 0 or ~1 if timer: start = time.clock() if not n%2: return 0 k = 0 z = n - 1 # compute m,k such that (2**k)*m = n-1 while not z % 2: k += 1 z //= 2 m = z ok = 1 trials = 0 p = 1 # try tests with max random integers between 2,n-1 while trials < max and ok: a = randint(2,n-1) trials += 1 test = pow(a,m,n) if (not test == 1) and not (test == n-1): # if 1st test fails, fall through ok = 0 for r in range(1,k): test = pow(a, (1L<<r)*m, n) if test == (n-1): ok = 1 # 2nd test ok break else: ok = 1 # 1st test ok if ok==1: p *= 0.25 if timer: print "Elapsed time: %s seconds" % (time.clock()-start) if ok: return 1 - p else: return 0 Testing:
from mathstuff.pollard2 import millrab bignum = 57*(1L<<502)+1 millrab(bignum,20,timer=True) Elapsed time: 105.602022883 seconds 0.99999999999909051
That's down from 508 seconds. Kirby
I'd love to work on such a book with the right team - at a project design level, and in particular to help design and develop the schematic, graphic, illustrative aspects. Both for print, and in Flash as Kirby suggests. A CDROM could run a could flash one-click executable for multimedia support but also connect to python installation, IDLE, web/html etc. Perhaps a couple of valuable dovetail chapters might be a Jython section - that could open up the broad topic of virtual machines, APIs, embedding, scripting and glue-ware. Then the pragmatics. Might be a nice way to help the two books to be sold on the same shelf, and hopefully also in the O'Reilly racks. I worked in publishing for 10 years before moving into multimedia and web, but boo building is close to my heart. - Jason ----- Original Message ----- From: "Guido van Rossum" <guido@python.org> To: "Kirby Urner" <urnerk@qwest.net> Cc: <edu-sig@python.org>; "Jason Cunliffe" <jason.cunliffe@verizon.net> Sent: Friday, September 05, 2003 12:55 AM Subject: Re: [Edu-sig] re: book: Head First Java
I noticed this book at OSCON, and spoke briefly with Tim O'Reilly about it. He was interested in doing a Python version if a good author (or more likely a good team of authors) would present itself.
Any takers?
--Guido van Rossum (home page: http://www.python.org/~guido/)
On Fri, Sep 05, 2003 at 08:51:14PM -0400, Jason Cunliffe wrote:
I'd love to work on such a book with the right team - at a project design level, and in particular to help design and develop the schematic, graphic, illustrative aspects. Both for print, and in Flash as Kirby suggests.
A CDROM could run a could flash one-click executable for multimedia support but also connect to python installation, IDLE, web/html etc.
Perhaps a couple of valuable dovetail chapters might be a Jython section - that could open up the broad topic of virtual machines, APIs, embedding, scripting and glue-ware. Then the pragmatics. Might be a nice way to help the two books to be sold on the same shelf, and hopefully also in the O'Reilly racks.
I worked in publishing for 10 years before moving into multimedia and web, but boo building is close to my heart.
In this important project it is possible to bring in some purity if we can get off from a proprietary format like flash. Shouldnt we explore the possibility of using SVG or even the excellent Blender library for education. In fact the latter option gives you 3D graphics in an open standard. See if you can consider this in this project. best Nagarjuna
At 10:21 AM 9/6/2003 +0530, you wrote:
In this important project it is possible to bring in some purity if we can get off from a proprietary format like flash. Shouldnt we explore the possibility of using SVG or even the excellent Blender library for education. In fact the latter option gives you 3D graphics in an open standard. See if you can consider this in this project.
best Nagarjuna
Probably something as ambitious as a CDROM-based learning tool is somewhat distant, at least as far as O'Reilly is concerned (Head First Java was already a significant innovation -- more in that "techno-comic" genre would be good before moving out of print media altogether, and it may not be a book publisher that wants to try media beyond print). But you bring up and interesting point in any case, about Flash vs. SVG. I recommend the following article to add grist for your mill (if you hadn't seen it already): http://www.oreillynet.com/pub/a/javascript/2002/05/24/swf_not_flash.html Kirby
participants (6)
-
ajsiegelīŧ optonline.net
-
Arthur
-
Guido van Rossum
-
Jason Cunliffe
-
Kirby Urner
-
Nagarjuna G.