1. The World Wide Web World History and Where We Are Let's Create Some Web Pages More HTML We Love HTML,But... Summary
2. 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 Summary
3. Numerical Computation and a Study of Functions Let's Calculate Some Numbers Simple Calculations Functions Looping and a Study of Fuctions Searching for the Best Value Storing Information in Arrays Finding Sums,Minima,and Maxima Putting Things in a Row,and a Special Characteristic of Functions *Putting the Functions in a Row Summary
4. Top-Down Programming, Subroutines, and a Database Application 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 Summary
5. Graphics, 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 Summary
6. 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 Summary
7. Software Engineering The Real World Lessons Learned from Large-Scale Programming Projects Software Engineering Methodologies The Program Life Cycle Summary
8. Machine Architecture When You Buy a Computer A Sample Architecture:The P88 Machine Programming the P88 Machine Summary
9. 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 Summary
10. Virtual Environments for Computing Use Your Imagination Using an Operating System Hardware Pragmatics The Operating System Files *Contention for Memory and Paging Summary
11. Security, Privacy, and Wishful Thinking What's Really Going on Here? Good Passwords and Cracking Encryption Modern Encryption Attacks Summary
12. Computer Communications Exploration Layers and Local Area Networks(LANs) Wide Area Networks The Internet Protocol(IP) Layer and Above *More on Addressing Networked Servers More Network-Based Applications The Changing Internet Summary
13. Program Execution Time On the Limitations 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 Summary
14. Parallel Computation Using Many Processors Together Parallel Computation Communicating Processes Parallel Computation on a Saturated Machine Variations on Architecture *Connectionist Architectures *Learning the Connectionist Weights Summary
15. 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 Summary
16. Artificial Intelligence The Dream Representing Knowledge Understanding Learning Frames An Application:Natural Language Processing Reasoning Game Playing *Game Playing:Historical Remarks Expert Systems Perspective Summary
Appendix:The IntField and DoubleField Classes Readings Index