| |
| |
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 | |