Introduction to Computer Science
Computer Science is a very young subject, changing rapidly, and drastically changing the way we live. Some portions of the subject are very rigorous and and theoretical, drawing on the ancient traditions of mathematics and physics. Other portions of the subject are more empirical using the techniques of the experimental sciences and engineering, and major portions of the subject are based entirely on artistic inspiration and craftsmanship. Those who study and practice the subject of computer science may be mathematicians, computer scientists, engineers, programmers, business people, or just ordinary people with no special training, but we choose to become involved with computers.
In such a diverse field, it is hard to achieve agreement about what it is, much less what its history has been, and a full and fair review of the alternative views is beyond the scope of this course. To study the subject more fully, see the many journals and magazines on the subject, such as
What is Information?
Information consists of things we can tell one-another, of messages about the condition, the state of something, of a system. If a system can only be in one possible state, there is nothing to say about it. If we live at the artic and have only one phrase for snow, there really is much we can say. If a system might be in one of two possible states, it might be soft powder or packed ice, then there is one useful message we can send: soft powder. If we don't send that message then we must have packed ice. By counting possible labels of things and assigning a number to each one, we reduce information to numbers. (If you are interested in learning more about the issues involed in representing information as numbers, see van Lint, J. H., "Introduction to Coding Theory", Springer -Verlag, New York, Heidelberg, Berlin, 1982, 171 pp., ISBN 0-387-11284-7 or 3-540-11284-7).
One surprising result of this definition of information is that the more organized and clearly specified things are, the less information we have, and the more varied and chaotic a system is, the more information we have.
In working with computers, it is not always convenient to handle numbers using the conventional decimal notation. Sometimes is is easiest to work with numbers represented base 2, base 8 or base 16 instead of base 10.
What is a computer? A computer is a device to process information. All information can be represented as numbers, and a computer processes information as numbers; it performs calculations. The subject of computer science tends to focus on "stored program digital computers" which perform calculations upon number represented as string of digits, where the calculation is under the control of a program stored within the digital memory of the computer. The history of mechanical devices to aid in calculations is ancient. Here are some of the more modern milestones (see Richard C. Dorf, "Introduction to Computers and Computer Science", 2nd ed., Boyd and Fraser Publishing Company, San Francisco, CA, 1977, 650 pp.), and the web site of the Charles Babbage Institute of Computer History at the University of Minnesota (see http://www.cbi.umn.edu):
The classic von Neumann architecture for a computer consists of a digital memory to hold both programs and data, a control unit to obey the program instructions in memory, either in sequence or jumping to specified locations in memory, modifying the contents of memory according to those instructions, various arithmetic units to perform calculations required by the program as directed by the control unit, and input/output units.
Despite many serious efforts to come up with a better, "non-von-Neumann" computer architecture, and the vast increase in power and complexity of computers over the years, this is still be basic structure of modern computers.
From a modern user's point of view, a typical desk-top computer consists of a system unit, input devices, such as a keyboard and a pointing device (a mouse, trackball, trackpad, etc.), a display device (usually called a monitor) to show text and graphics, and additional perpiheral devices to store data, to print text or graphics and to transfer data to other computers.
A modern computer is likely to be controlled via a keyboard, and a pointing device to interact graphically with the images displayed on the monitor.
The keyboard: For personal computers and workstations, one of the two most important input devices is a typewriter-like keyboard. The most common format is a so-called "QWERTY" keyboard with a function keys and a numeric keypad. There are many variations of the layout of keys. For example, for some keypads, instead of having "(num lock) = / *", the top row might have "(num lock) / = -" with the size of the "+" key increased for more efficient summing. The entire main keyboard may restructured to conform to the Dvorak layout, , which attempts to lay out the leys in a more efficient ordering for typing. See Marcus Brooks web page, http://dvorak.mwbrooks.com/ for more information on Dvorak keyboards.
Great caution is needed when first using the keyboard on an unfamilar machine in order to establish which keys perform what actions. There are no commonly agreed standards which apply uniformly even among computers produced by a single manufacturer, much less across brands and types.
The ordinary typewriter-like keys usually produce lower case letters when pressed with no shift modifiers, and upper case letters either when a shift key is held down before pressing the appropriate letter, or when the "cap lock" key has been toggled.
The uses on the other keys vary from computer to computer and from program to program, but in general, the "ESC" (escape) key is used for special commands, the "tab" (tabulate) key is used to jump along a line or to switch among fields, the "CTRL" (control) key and "ALT" (alternate) or "OPT" (option) keys are used like a shift key to modify the behavior of ordinary keys to be used for special commands or control. The special functions keys "F1", "F2", etc. are used for various predefined commands, sometimes in combination with the special shift keys. For example "ATL-F4" is often use to terminate programs under Windows.
The mouse or trackball:The other critical input device is a pointing device which controls a cursor on the computer display device, acting as a laser pointer for a slide show or as a pen for drawing. The most commonly used pointing device is the mouse, a small devices designed to be hand-held and slid along a surface. The top surface of the mouse might have one, two or three buttons. The one-button mouse has been traditional for Apple MacIntosh computers, the two-button mouse for Microsoft Windows, and the three-button mouse for Unix-based graphics workstations, especially using X-Windows, but increasingly the lines among systems have blurred.
In a trackball, the ball that the mouse rolls around on in placed in the top of the device and is spun by hand, requiring less desk space. In a trackpad, a fingertip or pen is moved across a small surface to indicate relative motion. In a touch screen, the front of the display screen is made position sensitive.
All the devices mentioned thus far provide only two degrees of freedom. For management of some graphical displays, three or more degrees of freedom are useful. Glove, kites, spaceballs, and other devices can sense the position and orientation of a hand in space, giving three or more degrees of freedom.
There are many kinds of computer systems. Indeed, computers are now part of almost every aspect of modern life, having been adapted to provide flexible and efficient processing for all kinds of information, from bank accounts balances, to the state of automobile engines and brakes, to music and images for entertainment.
In a typical modern computer the keyboard, monitor and mouse are connected to a box, called the system unit, which contains the "rest" of the computer. Actually, everything we have discussed so far, and most of what is in the system unit are not parts of the computer proper, but are "peripheral" devices connected to the input/output system. The external connections from the system unit to external peripheral devices are done in many ways:
The system unit itself consists of:
Prepared by Herbert J. Bernstein firstname.lastname@example.org, revised 29 August 2010.