Israel Endeshaw said
The item was a lot more better than I expected and also a fast shipping, I'm very satisfied.
Thank You
R. S. said
I've used this book to teach my CS1 course for two semesters. The authors implemented some handy classes to make it easy for students to manipulate images and sound, however the book is rough.
One of the authors (I presume Erikson) writes some really terrible code. Here's a sample of some of the worst:
//loop through the columns
for(int sourceX = 0, targetX = 0;
sourceX < sourcepicture.getheight();="" />
sourceX++, targetX++)
{
//loop through rows
for(int sourceY = 0, targetY = 0;
sourceY < sourcepicture.getheight();="" />
sourceY++, targetY++)
{
...
(for reference this does exactly the same thing without the extra two variables and the terrible comma operator:
for (int x = 0; x < sourcepicture.getwidth();="" x++)="" {="" />
for (int y = 0; y < sourcepicture.getheight();="" y++)="" {="" />
)
The images in the book are almost entirely amateur photographs taken by the authors. The subjects of those photos are almost entirely the authors (husband and wife) and their kids, as well as some shots they took on their vacations. This gives the book a very amateur feel.
The later chapters of the book are unpolished. Topics are rambling, some simple ideas with potentially elegant algorithms are explained poorly and implemented roughly (like the code example above).
I've decided to teach the course using the author's Java classes (which contain a few bugs) without using the book. I'd recommend the same; Guzdial makes the code freely available on his website.
I'd give the BOOK 1 star, but the Java classes themselves are worth 4.
S. Donaldson Jr. said
This is a GREAT ComputerScience resource for Java Beginners. It has really helped me connect everything that my Professor has taught in class with the actual java applications. There is a CD that comes with this book, that has all of the needed media files to work on the examples and problems.
D. W. Smith said
I used this book to teach a college-level course in Java Programming this year. 70% of the students had taken a 'CS1' level course in Java, and I didn't want to bore them with the same examples. At the same time, the students new to Java needed to get over the syntax and OO hurdles.
The author introduces DrJava early in the book (chapter 2), and provides a set of simple classes that students extend by adding their own methods. The use of Turtle graphics (Turtle class) really helped students 'see' what was happening, and the Picture class allowed them to view and manipulate graphic images as well as learn about arrays.
The Picture class is used extensively, which allowed students to build their own set of methods to manipulate pictures, and use them in a big project to build a collage. Pictures provide a way to get interesting data into a program without reverting to using random() or keyboard input. DrJava allowed students to write their new methods in the 'Definitions' pane, and then test them using the 'Interactions' pane.
Integrating web pages using the URL class as the basis for File I/O is also a great idea. It connects programming to 'real' pages that the students can see in their browser.
The only concerns I have about teaching Java using this book are:
1) Strings are covered quite late and not very deeply (chapter 12)
2) No Swing GUI coverage (students want to write GUIs)
3) Late coverage of 'main' method (p. 366)
-- Students became somewhat dependent on DrJava's interactions pane to test their apps
4) Dependency of book classes for Picture handling
-- Students had to use the getBufferedImage method to display pics on a swing container
I was able to supplement with other GUI material to help students over some of these instead of covering sounds chapters.
Overall, the students did very well. Two-thirds of the students new to Java were able to follow and did very well. All of the students with previous Java experience did well. A few students that had struggled to pass the 'CS1' course showed significant improvement in the ability to complete complex projects.
calvinnme said
This is the first of the books I've read that tries to teach computer science via Java to programming novices that I think actually does a good job. It is intended to introduce computing, including programming, to students with no prior programming experience.
This book is full of interesting projects and programs such as splicing words into sentences, reversing sounds to make interesting effects, removing red eye from images, and writing programs to generate web pages from data in databases. There are also lessons and projects that create animations and movies using special effects similar to those found in the movies. This book is not just about programming to manipulate media. Media manipulation programs are hard to write, and can behave in unexpected ways. Thus, answering questions about speed, writing for testability, and other issues of program efficiency and software engineering are handled in the last two chapters of the book.
When dealing with media, apparently the authors did a very good thing and did not have the student attempt to work with Sun's tragically abandoned Java Media Framework, which malfunctions to such a degree that it would discourage even an experienced programmer. Instead the author uses something called "MediaTools", which is in much better shape and is included on the CD along with the development environment, DrJava. With both the development and media-handling utilities already handled for the new programmer, he/she can concentrate on what is important - which is how to accomplish interesting tasks in Java while learning the basics of computer programming. I highly recommend this as a textbook for any introductory programming class. The reader won't be an expert Java programmer by the time they finish the book, but he/she will understand the basics of Java programming and know what questions need to be answered when embarking on the writing of a computer program in any language. The table of contents is as follows:
1 Introduction to Computer Science and Media Computation
2 Introduction to Java
3 Introduction to Programming
4 Modifying Pictures using Loops
5 Modifying Pixels in a Matrix
6 Conditionally Modifying Pixels
7 Drawing
8 Modifying all Samples in a Sound
9 Modifying Samples using Ranges
10 Combining and Creating Sounds
11 Creating Classes
12 Creating and Modifying Text
13 Making Text for the Web
14 Encoding, Manipulating, and Creating Movies
15 Speed
16 JavaScript
APPENDICES
A Quick Reference to Java
A.1 Variables
A.2 Method Declarations
A.3 Loops
A.4 Conditionals
A.5 Operators
A.6 String escapes
A.7 Classes
A.8 Fields
A.9 Constructors
A.10 Packages
Comments