Tuesday 18 November 2008

Lucky Trip to the Local Book Store

As I got back from a business travel, I found my voucher in the mail box between utility bills and loads of junk. The following day I went to my local Waterstone’s to order the book, not without first heading to the computing section just to check the latest titles. To my amazement, there it was, on the shelf, a single copy of Greenberg’s Processing, waiting to be taken home! At the till, when the shop assistant politely asked “Would there be anything else?” I jokingly replied “Do you sell lottery tickets, by any chance?”

Friday 7 November 2008

Chunk #2 Specification

Following is the spec for chunk #2 copied from the book fragments blog (except the additions enclosed in parenthesis).

Title: Introduction to Java.

Description: Introduce Java concentrating on its history. Do not show any programs (maybe just a little one?). Best to describe a very simple program that draws a couple of lines. Remember the reader will not be a programmer (not yet anyway).

Outcomes:

* Understand how Java emerged from the programming language jungle (and a jungle it is!!).

* Describe the main features e.g. portability, of the language.

Reference: Use the Web.

Hint: Do not clutter the description with code, remember this is an introduction. No more than half a dozen lines.

Program: No program needed for this chunk.


Given the above spec, I have been pondering over the last few days how to structure this chunk. In the course of my thinking sessions the same tantalizing question kept cropping up over and over again: how do you introduce a programming language to a non-programmer? The best answer I could come up with so far is: you don’t. Well, at least not as a starting point anyway, not in the first 500 words.

I think a good way to introduce the subject is to provide the reader with an answer to the fundamental question: why do we need programming languages? Probably the fact that microprocessors only “understand” binary numbers has something to do with it. Clarifying these concepts in everyday language will make it much easier to explain things like platform-neutrality and garbage collection later on. I am tempted to use lots of metaphors here. This is going to be fun!

Once readers understand the fundamentals of programming in general, and have been convinced that the Java programming language is A Good Thing, then it will be a good time to show it in action by illustrating a simple program, just to get their feet wet, and get them prepared to the next chunk: an introduction to algorithms.

In one of the next postings I will try to come up with a more formal structure description for this chunk, and hopefully have some new ideas cropping up in the meantime.