Skip to content

Great Ideas in Computer Science with Java

ISBN-10: 0262024977

ISBN-13: 9780262024976

Edition: 2001

Authors: Alan W. Biermann, Dietolf Ramm

List price: $50.00
Blue ribbon 30 day, 100% satisfaction guarantee!
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

Description:

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. For example, the reader learns about database systems by coding one in Java, about system architecture by reading and writing programs in assembly language, about compilation by hand-compiling Java statements into assembly language, and about noncomputability by studying a proof of noncomputability and learning to classify problems as either computable or noncomputable. The book covers an unusually broad range of material at a surprisingly deep level. It also includes chapters on networking and security. Even the reader who pursues computer science no further will acquire an understanding of the conceptual structure of computing and information technology that every well-informed citizen should have.
Customers also bought

Book details

List price: $50.00
Copyright year: 2001
Publisher: MIT Press
Publication date: 11/9/2001
Binding: Paperback
Pages: 554
Size: 7.75" wide x 9.25" long x 1.00" tall
Weight: 2.134
Language: English

Alan W. Biermann is Professor of Computer Science at Duke University. He is also the author of the first two editions of Great Ideas in Computer Science (MIT Press, 1990, 1997).

Dietolf Ramm Associate Professor of the Practice of Computer Science at Duke University. He is also Director of Undergraduate Studies.

Preface
Studying Academic Computer Science: An Introduction
The World Wide Web
World History and Where We Are
Let's Create Some Web Pages
More HTML
We Love HTML, But ...
Watch Out: Here Comes Java
Let's Put Some Action into Those Web Pages
The Big Deal: Computer Programming
Object-Oriented Programming
The Java Programming Language
Decision Trees
Getting Started in Programming
Program Form and Statement Details
Program Execution
Interactive Programs and Buttons
Reading and Storing Data
Programming Decision Trees
The Arrow Notation and Its Uses
A Set of Rules for Java
Numerical Computation and a Study of Functions
Let's Calculate Some Numbers
Simple Calculations
Functions
Looping and a Study of Functions
Searching for the Best Value
Storing Information in Arrays
Finding Sums, Minima, and Maxima
Putting Thins in a Row, and a Special Characteristic of Functions
Putting the Functions in a Row
Top-Down Programming, Subroutines, and a Database Applications
Let's Solve a Mystery
Top-Down Programming and the Database Program
Subroutines
Subroutines with Internal Variables
Subroutines with Array Parameters
Subroutine Communication Examples
Storing and Printing Facts for the Database
Representing Questions and Finding Their Answers
Assembling the Database Program and Adding Components
Recursion
Graphic, Classes, and Objects
Calling All Artists
Graphics Primitives
Let's Draw Some Pictures
Let's Create a Class Called House
Adding Features to the House Class
Creating a Village
Subclasses and the Java Class Hierarchy
Simulation
Predicting the Future
How Do You Win an Auto Race? A Simulation
Avoiding the Plague: A Simulation
Have You Ever Observed Evolution in Action? A Simulation
What Will It Look Like? A Simulation
Software Engineering
The Real World
Lessons Learned from Large-Scale Programming Projects
Software Engineering Methodologies
The Program Life Cycle
Machine Architecture
When You Buy a Computer
A Sample Architecture: The P88 Machine
Programming the P88 Machine
Language Translation
Enabling the Computer to Understand Java
Syntactic Production Rules
Attaching Semantics to the Rules
The Semantics of Java
The Translation of Looping Programs
Programming Languages
Virtual Environments for Computing
Use Your Imagination
Using an Operating System
Hardware Pragmatics
The Operating System
Files
Contention for Memory and Paging
Security, Privacy, and Wishful Thinking
What's Really Going on Here?
Good Passwords and Cracking
Encryption
Modern Encryption
Attacks
Computer Communications
Exploration
Layers and Local Area Networks (LANs)
Wide Are Networks
The Internet Protocol (IP) Layer and Above
More on Addressing
Networked Servers
More Network-Based Applications
The Changing Internet
Program Execution Time
On the Limitation of Computer Science
Program Execution Time
Tractable Computations
Intractable Computations
Some Practical Problems with Very Expensive Solutions
Diagnosing Tractable and Intractable Problems
Approximate Solutions to Intractable Problems
Parallel Computation
Using Many Processors Together
Parallel Computation
Communicating Processes
Parallel Computation on a Standard Machine
Variations on Architecture
Connectionist Architecture
Learning the Connectionist Weights
Noncomputability
Speed Is Not Enough
On the Existence of Noncomputable Functions
Programs That Read Programs
Solving the Halting Problem
Examples of Noncomputable Problems
Proving Noncomputability
Artificial Intelligence
The Dream
Representing Knowledge
Understanding
Learning
Frames
An Application: Natural Language Processing
Reasoning
Game Playing
Game Playing: Historical Remarks
Expert Systems
Perspective
The IntField and DoubleField Classes
Readings
Index