History of computer is an interesting journey from making a device for addition and subtraction to making a machine with Input/Output, memory and CPU.
In 2400 BCE Abacus was invented.
Chinese modified abacus and created 'South Pointing Chariott' which was later used in Analog Computers.
Panini from India wrote a book 'Ashtadhyayi' which included recursion, transformation etc, which are used in Computer Science.
First digital computer by Inca was made using ropes and pulleys. The knots in rope represented binary digits. Inca computers held data bases on all of the resources of the Inca empire, allowing for efficient allocation of resources in response to local disasters (storms, drought, earthquakes, etc.). Spanish soldiers acting on orders of Roman Catholic priests destroyed all but one of the Inca computers in the mistaken belief that any device that could give accurate information about distant conditions must be a divination device powered by the Christian “Devil” (and many modern Luddites continue to view computers as Satanically possessed devices).
In 1800s, Programmable computers for controlling the weaving machines in factories were created by Charles Babbage. It used Punch cards as data storage.
Babbage started working on Analytical Engine with control, arithmetic and memory but the technology of the day couldn’t produce gears with enough precision or reliability to make his computer possible. The Analytical Engine would have been programmed with Jacquard’s punched cards.
George Boole introduced what is now called Boolean algebra in 1854.
In the 1900s, researchers started experimenting with both analog and digital computers using vacuum tubes. Some of the most successful early computers were analog computers, capable of performing advanced calculus problems rather quickly.
The first modern computer was the German Zuse computer (Z3) in 1941.
The first modern electronic computer was the ENIAC in 1946, using 18,000 vacuum tubes.
The first solid-state (or transistor) computer was the TRADIC, built at Bell Laboratories in 1954. The transistor had previously been invented at Bell Labs in 1948.
von Neumann architecture
John Louis von Neumann, mathematician proposed the stored program concept in which programs (code) are stored in the same memory as data. The computer knows the difference between code and data by which it is attempting to access at any given moment. When evaluating code, the binary numbers are decoded by some kind of physical logic circuits (later other methods, such as microprogramming, were introduced), and then the instructions are run in hardware. This design is called von Neumann architecture and has been used in almost every digital computer ever made.
Von Neumann architecture introduced flexibility to computers. Previous computers had their programming hard wired into the computer. A particular computer could only do one task (at the time, mostly building artillery tables) and had to be physically rewired to do any new task.
By using numeric codes, von Neumann computers could be reprogrammed for a wide variety of problems, with the decode logic remaining the same.
As processors (especially super computers) get ever faster, the von Neumann bottleneck is starting to become an issue. With data and code both being accessed over the same circuit lines, the processor has to wait for one while the other is being fetched (or written). Well designed data and code caches help, but only when the requested access is already loaded into cache.
Fact: The first computer programmer was Lady Ada, for whom the Ada programming language is named.
Do share your feedback, and information relevant to this blog in COMMENTS.