George Mason University

Great Principles of Information Technology

CS 499 (Section 001)
Spring 2001
Mon 4:30-7:10 Robinson A205

Peter J. Denning, Instructor


Information Technology has proved to be extraordinarily influential. This remarkable technology integrates computers and networks across an enormous time range, 19 orders of magnitude, from the switching of logic gates in the microchip (10-12 second) to enduring Internet-wide computations (106 seconds). Notwithstanding enormous changes in computing technology over the years, the functions of these systems have been remarkably stable over the past fifty years and are likely to endure for the next fifty.

Most users of these systems sense that there is enormous complexity hiding behind the graphical interface. The usual answers to their questions about computers work involve explanations of binary numbers, Boolean algebra, electronic logic circuits, programming of algorithms, and translation of programs to computer chip instructions. These explanations do not resonate with them. They want to know how the computer works as they experience it as a system. Their questions concern the Internet, local networks, user interfaces, computing processes, storage hierarchies, file systems, naming objects, protection and authentication, intrusions, viruses, system crashes, email, and more.

Work of the Course. We will explore the great principles of information technology and the scientific insights behind them. We will work our way from the outside inwards, "peeling the onion one layer at a time." (The levels and the technologies are listed below.) Your work, for which you will receive a grade, will consist of two parts: solving a series of problems at each of the levels (breadth) and construction of Java applets that demonstrate or simulate one of the great principles (depth).

Enrolling. In addition to computer science students, I invite students from engineering, science, and management. You should have junior or senior standing, a passion for information technology, and experience in Java, C++, or web programming. If you are non-CS and wish to enroll under a course number in your major, I will work with you and your advisor to seek permission to register under your major's independent-study course number. Contact me: permission of instructor is needed. (, 703-993-1525)

Context. If you are interested in learning more about the emerging information technology profession, I have an essay called Computing the Profession. (Needs an Acrobat reader.)


Outline of topics

The Algorithmic Method

What Machines Can and Cannot Do
The Hard Part
Processes and Virtual Machines
Language and the Problem with Information

How Things Work

Survivable Networks
Hyperlinks and the Web
Commanding the Computer
Access and Authentication
Signed and Secret Communication
Virtual Machines
Cache Principle
Data Systems
Process and transaction control
Time Sharing
Interrupts and Polling