|
|
Rick and Stu's Books
|
|
|
Over the past eight years we've written between six and twenty-four
books, depending on how you count. There have been six major
titles, but each has a collection of instructor's manuals (which
are given away, in spite of all the time it
takes us to write them), lab manuals, and disks, which bring
the total to at least twenty-four, if one wants to inflate one's
publication list by counting all the different ISBNs. By the way,
our average ISBN is 0-534-42355-3.
All of the books below are published by
Brooks/Cole Publishing Co.,
a division of International Thomson Publishing Company. The Brooks/Cole folks
are just about as nice a bunch as one can find, in or out of the
publishing biz. If you have any questions, coments, suggestions,
or complaints
about anything we've written, please don't hesitate to let us know,
or you can go over our heads and talk to Kallie Swanson, our editor.
If you want to communicate with us electronically, here's how:
Rick Decker:
rdecker@hamilton.edu
Stuart Hirshfield:
shirshfi@hamilton.edu
Kallie Swanson:
Kallie.Swanson@BrooksCole.com
Our books cover all of our CS curriculum for the
first two years. This is less from a desire on our parts to
keep our students from seeing texts by anyone else than it is
from our continuing search to find just the right text for the
courses we teach. More often than not, we simply haven't found
a text that suited us perfectly and so decided to
write our own.
Below, we present a chronological list of our books (at least the
ones that are still in print--don't get us started on that
subject!)
|
programming.java |
The Analytical Engine Online |
Working Classes |
The Object Concept
Coming Soon!
|
programming.java
|
|
|
C++ is steadily gaining popularity in high schools, colleges, and
universities, matching the increasing demand we see outside of
academia. If the
truth be told, though, C++ is not everyone's cup of tea. Without
doubt, C++ is a big, complicated, and potentially dangerous
language, requiring a considerable amount of care to teach well.
Java is a brand-new language, designed for producing
"applets"--programs that run within suitable Web browsers.
While Java is very
similar to C++ in many respects (it's an object-oriented language
with much of its syntax in common with C++), it has the advantage
of being much simpler than its "big brother." For instructors
who find C++ is too large a pill to swallow in CS 1, we provide
a CS 1 text in a "kindler, gentler" language. Used in a stand-alone
Introductory Programming course or as a prerequisite to a CS 2 course
in C++, programming.java will introduce students to
good programming practices and give them the ability to make Web
pages come alive.
Contents
- Background
- Applets
- Widgets
- Visual Design
- Java Language Basics
- Events and Actions
- Methodical Programming
- Collections
- Exceptions
- Input/Output
- Threads
- Applets in Cyberspace
|
The Analytical Engine Online
|
|
|
In the brief period since the release of the second edition of
The Analytical Engine we experienced the explosive
growth of the Internet, along with its associated application
programs and ever-increasing effects on society. The latest
version of the text includes substantial additions to
introduce students to the Net, to get them started designing
their own Worldwide Web pages, and to think about issues of
censorship versus free speech, intellectual property, the
society of cyberspace and many of the other issues that
accompany this new and growing aspect of computers.
The most exciting part of this new text, though, doesn't even appear
between its covers. We've built a complete collection of new and
updated labs which are available on our Web server, to be downloaded
and run through any Java-aware web browser. To whet your
appetite, take a look at our
lab site.
Contents
- Social and Technological History
- Local Applications
- Global Applications
- Designing for Use
- Programming
- Program Translation
- Hardware
- Theory of Computation
- Artificial Intelligence
- Computers and Society
|
Working Classes
|
|
|
The CS 1 and CS 2 curricula are so closely related that it would
be appropriate to think of them as a single year-long course.
With this in mind, we knew that
The Object Concept would need a companion text
for CS 2. Whatever questions CS educators may have had about
the appropriateness of OOP in CS 1, there was almost no
argument with the thesis that
An object-oriented approach is a natural for
a data structures course.
This text covers the "canonical" data structures and the algorithms
associated with them. We make heavy use throughout of
templates, believing that this feature is one of the most powerful
and useful aspects of C++.
Contents
- Preliminaries: ADTs and Verification
- Lists
- Strings
- Other Linear Structures: Stacks and Queues
- Recursion
- Trees
- Specialized Trees
- Graphs and Digraphs
- Unordered Collections: Sets,Dictionaries, and Hashing
- Travesty: Putting it All Together
|
The Object Concept
|
|
|
Pascal was designed from the start to be a teaching language.
It was simple, elegant, and powerful. In 1992 it was also
nearly twenty years old and we had learned quite a lot about
how to program efficiently in that time.
Object-oriented programming had been around about as long as
Pascal and there was a growing consensus that OOP was an efficient
paradigm for designing large programs. At the time, most schools
that taught OOP began with an imperative language like C or Pascal
and waited until the second or third year to introduce object-oriented
programming in Smalltalk or C++. We
thought that for a novice, every program was a large program and
so decided
Object-oriented programming is an appropriate
paradigm for a first programming course
We settled on C++ as our vehicle and produced a lab-based
introduction to programming, introducing classes from
the very beginning.
Contents
- Designing With Classes
- The Ingredients of Classes
- Class Actions I: Selection Statements
- Class Actions II: Repetition Statements
- Compound Data
- Pointers and References
- Process I: Organizing and Controlling Classes
- Inheritance
- Process II; Working With Classes
- Class Actions III: Algorithms
- Classes in the Abstract
|
Coming Soon!
|
|
|
Writing texts, especially in an area that changes as fast as
computer science, is a lot like having children: the real work
only starts once they arrive. Our own experiences in class
and the comments of our colleagues point the way to a seemingly
endless string of modifications and new ideas.
programming.java2
In writing programming.java, we were the
victims of timing, since version 1.1 of Java came out just as
we were finishing. The result wasn't a disaster, since the
original version of the language was supposed to be "upward
compatible" with v1.1--in other words, a 1.0 program should run
just fine in a 1.1 environment.
The problem was that there were some features of v1.1 (and, now,
Java 2) that were
just too useful to leave out, forcing us to make brief mention
of the new features in what was largely a 1.0 text. To remedy
this, we're in the process of preparing a second edition of
p.j. Until that project is completed,
we've tried to satisfy readers hungry for the latest version
of Java by providing a suite of
online labs, completely
revised and up-to-the-minute. Watch this space for details on
when p.j2 will be released (probably available
in December 1999).
|
programming.java |
The Analytical Engine Online |
Working Classes |
The Object Concept
Hamilton Home |
Computer Science |
Rick's FAQ |
Schedule
|