This content is not currently approved and is visible here for review only.

Great Ideas in Computer Science with Java

Great Ideas in Computer Science with Java
Authors
Alan W. Biermann, Dietolf Ramm
ISBN
0262024977
Published
01 Nov 2001
Purchase online
amazon.com

This book presents the "great ideas" of computer science, condensing a large amount of complex material into a manageable, accessible form; it does so using the Java programming language. The book is based on the problem-oriented approach that has been so successful in traditional quantitative sciences.

Page 2 of 2
  1. Editorial Reviews
  2. Customer Reviews

Customer Reviews

T. DelVecchio said
It jumps from HTML to Java applets without even explaining what Java is, or anything about high-level languages. Then it skips to a chapter on mathematics, then databases... choosing strong passwords, buying computers... what is the author getting at? The only chapter I like is Chapter 16 - Artificial Intelligence. And don't plan on learning Java from this, they just throw a few code snippets at you with no info on the language or reference material of any kind.

This is a recommended text for Harvard CS1 but so far I haven't really used it once. Now I know why they gave an open-book exam...

kashifm said
This book should be renamed as "Learn Computer Science in a week". The majority of this book is for non computer science professionals who want to learn all about computer science. I would strongly recommend that this book only be read if you are a non computer science student or professional. However if you are a computer graduate or professional I recommend only reading the last 6 chapters (11 through 16). The author does have a relaxed and easy writing style and makes difficult concepts look easy. I specially enjoyed the Public/Private key and encryption description (chapter 11); except of the last few chapters I find the rest of the book boring; however this may be because the book was not written for readers like me (i.e. computer professionals). This book is best suited for a quick course in Computer Science for sophomore.

Dennis E. Hamilton said
The precursors to this book focused on providing a gentle introduction for anyone wanting to explore this important territory. The language used was Turbo Pascal. Much of the material was oriented to the manipulation of text, even as part of interactive operations, and object methodologies were not featured.

Moving to Java, today's highly-available and appealing language, this edition is "written for people who find themselves on the outside of a high-technology world and who want to find a way in." Times have changed.

The book focuses on hands-on creation of software that the reader can build, use and explore, experiencing the great ideas through their application. Savoring that approach, I found little help in getting started. For example, the early chapter on HTML seems out of place and disconnected from the remainder of the book. Diving from there into Java is too abrupt. This might work as a course text with a companion laboratory, but I was looking for something that would work away from the classroom for anyone with the interest and curiosity. I ended up going to other materials and tutorials to get myself started.

As I worked more carefully, I was surprised how much one must deal with Java's idiosyncratic approach to Object-Oriented Technology (OOT) so early. There seems to be no way to accomplish simple things with Java without contending with the OOT. Here the neophyte may never know, in a clear way, where and when using the OOT is actually following some principle of Object-Oriented Design and Programming. This shows up in the non-object-oriented illustrations with main(), using static libraries like java.lang.Math, and even initial use of applets. Many uses of Java's OOT are as idioms for non-object-oriented tasks, such as definition of functions and creation of subroutines as part of hierarchically decomposing a task. I have enough computer experience to notice. I wonder about beginners becoming lost trying to separate essentials from the many incidentals that must be dealt with.

In terms of key ideas around graphical user interfaces, for example, it is never explained what we are doing when we create an interactive display element by extending a graphical-component class. Key ideas of event loops and event handlers are applied (ActionListener implementations are used starting on p.86), but not explained or motivated anywhere that I could find. It is as if the results arise by magic. I am not sure what the lesson is.

Having said all of that, I strongly favor the hands-on, experience-it and demonstrate-it-yourself approach. There is much value here. Yet teasing the great ideas out of the constraints of Java's particular object technology seems needlessly difficult.

I have since extended my mastery of Java and found it a valuable instrument for many tasks, including some illustration of Object-Oriented principles. For the worthy ambitions of this book, I found the tool to be in the way.

Anonymous said
After spending the last couple of years buying and reading over a dozen different books on contemporary software technology, I've encountered my favorite book of the bunch in the title reviewed here.

"GIICS with Java" has struck the ideal balance for my purpose -- to get an intelligent hands-on overview of contemporary computer science. Although it's intended primarily as an introductory textbook for university students, I think it makes an enjoyable and substantive tutorial for any person working in the software and information technology industries, even product marketing types such as myself. Heck, if you believe the authors, the book makes valuable reading for any citizen of the modern world (e.g. the world being shaped by the Internet).

Unlike any other titles I've read in this domain, "GIICS with Java" gives a grand humanistic overview of modern information technology while helping the reader to understand these ideas with hands-on programming projects(in the Java language). Most other books I've read have either been overly general because they avoid asking the reader to learn to understand computer science in its native tongue (e.g. in a modern programming language), or they've been overly detailed, losing any reader who is not trying to pass some kind of software engineering certification exam.

The chapters are well-written, the programming examples are conceptually interesting and carefully constructed to help the reader/budding-programmer synthesize concepts, and the physical book is tastefully designed and produced.

To get the most out of this book, you need to pair it up with the freely downloadable Java SDK and a Java-enabled Web Browser.

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“An expert is a man who has made all the mistakes that can be made in a very narrow field” - Niels Bohr