Basic I/O

Course Navigation

Introduction to Advanced Level of Computer Science
If you arrived at this level of the lessons, you may consider yourself a novice computer engineer.

The reason is because you now have a basic knowledge of the computer as hardware, a beginner level knowledge of algorithms and beginner level knowledge of programming.

Now you will be confronted more and more with making a choice on your studies: to get an advanced level of knowledge on hardware, on the theory of computer science, or getting more into the programming side.

This lesson will guide you on this choice. But whatever the choice is, you must have a general knowledge of computer science, because workers from every expertise are confronted with problems from other areas of computer science. For example, supposing you chose to become a programmer, you must acquire hardware knowledge to design and debug programs for specific hardware configurations.

What About Input/Output?
So now, how are these all related to input/output? The answer is, the input/output is the main aspect of the computer science. It defines the whole system. It is related to system theory of Bertalanffy. Every system in the world is an open system. An open system always has input and output. No system can live if it does not adhere to this rule; it will be destroyed. In contrast, a closed system can live without an input or output. It is a self sufficient system. No closed system has ever been discovered.

I recommend the lecture of Bertalanffy to gain further knowledge on this. So a computer is an open system that needs an input and makes an output. Input and output is not only related to personal computers but also other devices. About this I recommend a lecture on the theory of communication, especially Claude Shannon and Norbert Wiener. Input and output is abbreviated I/O. There are many levels of input on today's personal computers. To first understand I/O I will talk about the computer input and output. So here is the plan of our study: As you may see here all of these levels need special expertise. The further you go here, the more you will get special knowledge on the level you chose. And any level you choose here, the expertise is infinite, and you will arrive finally to the end of this knowledge where you can contribute to today's science.
 * Machine level I/O
 * Coding level I/O
 * And finally End user level I/O

Machine Input/Output
1 and 0 are the main aspects of machine level input/output. 1 means there is an electrical signal (or there is electricity) and 0 means there is no electrical signal (or there is no electricity). On this level you get more into the electronic level of the computer. I recommend you study electronics to get further expertise on this level.

The AC or DC electricity that feeds the computer is the first input of the computer. Then comes the printer, the screen, the audio/video (not in that order of course). These are some classical outputs that we know. But computers have countless other applications, including cars, washing machines, cellular phones, and stone cutting machines with laser output.

The mother of today's computer functioned without electricity. It was a textile machine converted to a machine that gets an input as paper with special holes combined with a special system. On receiving input, the textile machine could calculate based on the data and output the result.

The same principles hold within the computer as between the computer and its environment. Each part of the computer receives input and produces output. Hard disks, RAM, and chips all receive electric signals as input and produce them as output.

So as you can see here you can get smaller and study more and more of these electrical signals as input and output.

To analyze the electronic signals that constitute input and output, you must learn Boolean logic, mathematical logic calculation, and algorithms.

Input/Output on the Coding Level
On the coding level we can analyze the input and the output by the use of algorithms. On the coding level not all input produces output. There are five categories of inputted data:
 * Remarks. No action and no calculation by the computer is done here.
 * Declarations. These inputs are preliminary to a calculation. You say here to the computer "Get ready!"
 * Conditions. The computer is confronted with a choice. This is post-preliminary input.
 * Variables. The computer initializes a variable with a value of null and can receive additional values subsequently.
 * Calculations. Here the computer is confronted with a calculation. The computer got into this level as the result of declarations, choices, and variables with values. Now it is using these to prepare the output.

Output passes through several stages on the way from its origin as electric signals to human-readable data:
 * Electric signals. All calculations produce a result coded in electronic signals. These signals may be passed to RAM as input.
 * Zeros and ones. Electric signals readily transfer to values of 0 or 1 stored as bits: a signal means 1, a gap without signals means 0.
 * Binary numbers. Binary digits can be combined into eight- or sixteen-bit binary numbers, like 00000000, 11111111, or 10101000.
 * Machine language. These binary numbers can be interpreted as instructions to be executed by the CPU.
 *  Coder language. Through a compiler, machine code and its corresponding assembly language correlates to a language such as programmers write in.

Input/Output on End-User Level
From an end-user point of view, the initial electric signals may turn into a letter on the screen, motion of a robot arm, a laser shot, or a car engine start. One should consider here that we use disguised computers in our cellular phones, televisions, robots, toys, trains, airplanes, warheads, and missiles.


 * For example, a kitchen robot with knives to cut and extract juice from fruit receives the fruit as its input and produces the juice as its output.
 * In a personal computer, the input may be the age of school-children and the output their average age as displayed on the screen or directed to a printer or file.
 * The input for an iron cutting machine could be the iron cutting style designed and recorded in the memory of the machine, and the output could be the laser movement so as to cut iron according to the project.

An infinite number of examples of inputs exists. Inputs can be grouped as follows: With outputs there is also an infinite number of possibilities. For example:
 * numeric or alphanumeric input as record (e.g., names, birthrates, ages, census data) (See the previous lesson about record strings and arrays).)
 * graphic analog input (e.g., GIF, BMP, JPEG)
 * graphic numeric input (e.g., drawing programs, cameras)
 * mechanical input (non-electric computers, such as the paper-with-holes input for the textile machine.
 * biochemical input (e.g., the pill that is taken)
 * numeric or alphanumeric output (e.g., display of children's names on computer screen)
 * graphic analog output (e.g., JPEG picture)
 * graphic numeric output (e.g., CAD screen output of museum plan)
 * mechanical output (e.g., flower picture drawn on iron plate)
 * mind output (e.g., collaborative work)
 * biochemical output (e.g., pill-induced hormone control, destruction of AIDS virus by microscopic AI robots)



Summary
Input/output can be electric or non-electric signals. It can be mechanical, biological, or even abstract. After all, computers formerly operated without electricity, and their current application is nearly limitless. A computer scientist does not deal merely with electrical devices.




 * Go to Next Course
 * Previous Lesson
 * Course Home Page