Chapter Summaries

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Back

Chapter 1 The World Wide Web

Have you ever wondered what the World Wide Web really is?  There is no high tech here, just some simple facts and you will be glad when the mystery is gone.  First you should learn how the Hyper Text Markup Language works.  It takes about five minutes to figure it out.  Then you can create your own web page.  Next you create another web page and link them together so you can click on one page and see the other.  It turns out you have now created your own web.  It is small but it is a web.  Finally, it dawns on you that this is all there is to the World Wide Web.  People started doing these pages some years ago and suddenly we had universal communication system that we all enjoy today.

Top

 

Chapter 2 Watch Out: Here Comes JAVA

    If you thought web pages were fun, you ain't seen nothing yet!!!  This chapter will introduce you to the Java programming language which has a completely general computing capability.  You will be able to place buttons on your web page which can be clicked to activate almost any imaginable event on your screen.  You just must write the Java code to do it and you will learn how here.  This chapter shows you how to code a guessing game, programs to carry on little conversations, and many other examples.  Later chapters will show how to code numerical computations, database systems, and even picture drawing programs which you can animate if you wish.    

The Java code will look frightening at first but soon you will become comfortable with it.  Thousands of others have traveled this path and loved every moment.

Top

 

Chapter 3 Numerical Computation and a Study of Functions

If you would like to save a million dollars, here's how. You need to deposit just the right amount each month at just the right interest rate for the right number of years. And you will have it. Let's write a program that will fill in the blanks in this calculation. This chapter shows you how to do numerical calculations of this kind the easy way, by letting a computer do the work. You will study functions here that might represent any quantity that you might be interested in: space in your new house, profits from your yard sale, or the expected number of votes for your candidate in the next election. Then you will learn how to find optimize your decisions to get the best results.

Top

 

Chapter 4 Top-Down Programming, Subroutines, and a Database Application

Who murdered Lord Peter Dunsmore on a sunny afternoon at the famous Dunsmore Manor? You need to get all the facts and deduce the answer. The method for doing it will be to program a database to hold all of the facts and then to query the database to try to solve the mystery. You get to learn how to attack a sizeable programming problem and you get to use your skills to solve the mystery. This chapter discusses the main techniques in computer science for solving complex problems and illustrates the points in the solution to the database problem. You will also learn the fundamental principles of relational databases and how they work.

Top

 

Chapter 5 Graphics, Classes, and Objects

By now you have learned a lot about programming Java and this chapter gives you a chance to enjoy and explore those skills. You learn here how to draw a line or an arc on the computer screen and how to color things and suddenly you can draw any picture that you can imagine. You read this chapter and do the programming just for the fun of it.

Top

 

Chapter 6 Simulation

Suppose you want to observe something but you cannot because it is too expensive or too slow or just impossible to observe. You will be able to get your wish if you can successfully simulate that thing. This means you discover a model for that thing and then program it into a machine. Then you run the model and do your observation. If your model is good, you will be able to see what would have happened with the original problem if you had been able to observe it. In this chapter, we will study how to win a car race by working with a simulation of it. Then we will study disease contagion, evolution, and impossible-to-imagine shapes by using simulation.

Top

 

Chapter 7 Software Engineering

Now that you have experienced some programming, you may have the feeling that you can program anything. For example, you might decide to write a large program and then organize all of your friends to write parts of it. You could combine all of their assigned parts and put together a really ambitious project. It turns out that writing larger programs is much harder than writing small ones. In fact, even experienced professionals have been fooled on many occasions in estimating what they could do in writing large programs. So a field called "software engineering" evolved which addresses this surprisingly difficult problem.

Top

 

Chapter 8 Machine Architecture

When you bought your new machine at the computer store, what did you actually get? In fact, you received hardware that executes machine instructions in the "fetch-execute cycle" at a very high speed, some memory, and other devices. This chapter tells you what machine instructions are, how the fetch-execute cycle works, and how memory is used to enable the machine to do its job. You will learn the operation and mechanisms of the bare-bones computer and demystify a lot of computer talk that you could not otherwise ever understand.

Top

 

Chapter 9 Language Translation

But how can we type Java or other languages into our computer and expect them to work? The previous chapter taught us that the machine can only understand machine instructions, and we do not wish to use these primitive kinds of commands. Our solution is to build a translator that will translate the language that we prefer into a form that the machine can process. This chapter shows you a very powerful translation technology that can translate computer languages or portions of natural languages into a form that a computer can execute. You will learn in this chapter what people mean when they say they "compiled" a program and you will do some compiling yourself.

Top

Chapter 10 Virtual Environments for Computing

The "operating system" for a computer is the program that interfaces with you and enables you to access the many functions of the machine. The operating system may provide you with menus, a command line, a spoken language or direct manipulation capability, or many other kinds of input schemes. It also enables you to use those schemes to access the editor, a mail facility, a web browser, a programming environment, a file manager, and many other subsystems. The operating system thus provides the bridge between you and the many services offered by the machine. This chapter describes operating systems, what they are, and how they work.

Top

 

Chapter 11 Security, Privacy, and Wishful Thinking

While computers and networking are becoming important in our lives, they also can become vehicles of mischief. What if our personal secrets and/or our money are stolen via the Web? What if we become dependent on machines and suddenly they cease to work because of an electronic attack? We must have defenses against those who would misuse machines or who would undo our well-being via electronic means. This chapter explains many of the kinds of attacks that might be brought against you or your various organizations. And it explains some of the defenses that you can use including a well designed password system and various encryption methods.

Top

 

Chapter 12 Computer Communications

We started this book with the use of networks and now let's examine some of the technical details. Here you will learn what a Local Area Network (LAN) is and about shipping "packets" around. Then you will learn about Wide Area Networks, especially the Internet, what they are and how they work. You will learn some networking terminology (IP, TCP, TCP/IP) and you will learn about addressing schemes, network servers, and more.

Top

 

Chapter 13 Program Execution Time

This chapter begins a new section of the text on the limitations of computer science. It describes the main problems that prevent scientists from solving some of the most important problems. One of those problems is execution time. It may take a billion years of computation to solve some problems so we just cannot hope to do them. Even if machines get much faster, these problems will continue to be out of reach. This chapter will introduce the ideas of tractability, referring to problems that usually can be solved in practical situations, and intractability, referring to problems that tend to require too much execution time to solve. It will give you plenty of examples of both kinds of problems so you will gain some intuition for these phenomena.

Top

 

Chapter 14 Parallel Computation

The previous chapter leads one to wonder about parallel computation. If a problem requires too much time to solve with one computer, perhaps we could spread it across many machines, thousands or millions of them, and then solve the very time-consuming calculation. This chapter investigates this idea with both positive and negative results. Yes, many computations can be speeded up tremendously by putting them on parallel machines. But, no, one cannot always do this easily and sometimes the speedup is not enough. This chapter also introduces a very different kind of machine, the neural net, and investigates its properties. Its very special characteristics include the capability to do millions of computations simultaneously, and it does not have to be programmed. It learns to compute rather than being programmed.

Top

Chapter 15 Noncomputability

Here is a class of very strange problems that mathematicians have proven can never be solved by any computer within known computational paradigms. This mystical and elusive class of programs seems to place an impenetrable blockage to progress in computer science. You will certainly enjoy learning about this little understood but very important class of problems and their characteristics.

Top

 

Chapter 16 Artificial Intelligence

This chapter presents a theory of machine intelligence that has evolved over the decades. It first examines the idea of representing knowledge and then what it means to use that knowledge to understand. Then it examines the possibility of automatically learning knowledge. Next we study problem solving and how knowledge contributes to the ability to solve problems. Finally, we examine how to use this theory to build machines that seem to be intelligent. Some of the examples are a natural language understanding system, a game playing system, and a so-called expert system.

Top