The Most Complex Machine:

A Survey of Computers and Computing

WELCOME to the home page for The Most Complex Machine: A Survey of Computers and Computing, by David Eck. (Published by A K Peters Ltd.)

The Most Complex Machine is an introductory computer science textbook that can also be read by anyone who wants to understand how computers work and what computer science is about. It is supplemented by software and lab worksheets based on that software. The software is provided as a set of Java applets that can be used over the World-Wide Web. Information about the course I teach using this text, including sample tests and quizzes, can be found at the bottom of this page. I can be reached by e-mail at:

The American Mathematical Monthly wrote in February '96 that The Most Complex Machine is "an up-to-date, conceptual introduction to ideas and principles of computing. Nicely balances historical development, algorithms and languages, modern applications. Appropriate for non-majors, but worth a look by anyone serious about CS."

A review of The Most Complex Machine in the April '96 issue of CHOICE magazine says that it is "Strongly recommended as a foundation for guided self-study for gifted high-school students, as well as noncomputing majors" and that it contains a "unique and refreshing introduction to the discipline." The January 1997 issue of CHOICE named The Most Complex Machine to its list of "Outstanding Academic Books of 1996." It was one of six titles listed in the field of Information and Computer Science.

About The Most Complex Machine

The Most Complex Machine offers an introductory survey of the field of computer science. It is meant for people who are genuinely curious about how computers work and how they can be programmed to perform so many different types of complex tasks. If you would like to know more about the book, you can read:

(And in case you are interested in purchasing it, you can order it through your local bookstore, or you can contact the publisher, A K Peters, Ltd., 289 Linden St., Wellesley, MA 02181. The publisher's Web site is at

Java Software and Labs

It's difficult to learn computer science just by reading about it. Students and other readers of The Most Complex Machine should have the opportunity to get some hands-on experience to help them over the conceptual hurdles. I have written a set of programs and lab worksheets that can help to provide that experience. The labs are based on a set of Java applets, and they can be used over the World Wide Web. You can access the labs on-line by visiting my TMCM Java page at

While these applets are coordinated with material from the book, all the information needed for using them is available on-line, and they can be used independently of the book. The applets deal with various aspects of computer science such as logic circuits, Turing machines, sorting algorithms, computer graphics, and programming.

Macintosh Software and Labs

The original versions of my software and labs were written for Macintosh computer. Although these were written for older versions of the Macintosh, they will still run on modern Macs (even on MacOS X, if you use the OS 9 subsystem). The Macintosh programs have essentially the same functionality as the Java applets, and most of the Macintosh labs are similar to the Web-based labs. However, the Macintosh labs can't be used over the World-Wide Web. You have to download them for use on your computer. Links for downloading can be found through the first of the following links. The other links contain more information about the programs and labs:

Information about Computer Science 120

Computer Science 120: "Principles of Computer Science" is the course in which I use The Most Complex Machine. You can find information about this course for Fall 2002 at

And here is a page from Spring 2002 that includes to the tests that I gave that term:

This course was previously numbered Computer Science 100 and was taught in a ten-week trimester term instead of a 14-week semester. Here is some information about Computer Science 100 from two previous terms:

From Fall 1997:

From Spring 1997:

Last modified July 22, 2002