The word “computer” was first used in 1613 to describe a human who performed calculations or computations. The definition remained the same until the end of the 19th century when the tech industry gave rise to machines whose primary task was calculating.
There is no easy answer to “when was the first computer invented?” because of many different classifications of computers. The first mechanical computing machine was invented by Charles Babbage in 1822. However, it doesn’t really resemble what most people would consider a computer at present.
There are a lot of things that we don’t know about the rapid progress of computer development, plus the contributions of many scientists that haven’t been mentioned in our textbooks.
To fill you in with all necessary computer knowledge we have gathered a few notable inventions in computer science, from the first machine to microchip era.
25. First Computer: “Difference Engine” – 1821
Image source: Wikimedia
Charles Babbage (also known as Father of Computer) started working on Difference Engine, which is based on the principle of finite differences. It uses only arithmetic addition and removes the need for multiplication and division which are more difficult to implement mechanically. It was strictly designed to calculate and tabulate polynomial function.
The project was commissioned by the British government, but due to its high production cost, the funding was stopped in the middle and the machine was never completed.
24. First General Purpose Computer: Analytical Engine – 1834
Image source: Wikimedia
Charles Babbage conceived a more ambitious machine, the first general-purpose programmable computing engine, later called Analytical Engine. It has many essential features found in the modern digital computer.
The machine was programmable using punched cards, the engine had a “Store” where numbers and intermediate results could be held and a separate “Mill” where the arithmetic operations were performed.
The engine was also capable of performing direct multiplication and division, parallel processing, microprogramming, iteration, latching, conditional branching, plus-shaping, though Babbage never used these terms. Unfortunately, like Difference Engine, this machine was also not completed.
23. First Computer Program – 1841
Image source: Wikimedia
World’s first computer programmer Ada Lovelace began translating Luigi Menabrea’s (Italian Mathematician) records on Babbage’s analytical engine in 1841. She understood how to make it do the things computers do, and she suggested the data input that would program the machine to calculate Bernoulli numbers.
Ada was a visionary mathematician – she knew numbers could be used to represent more than just quantities. She predicted that machines like Analytical Engine could be used to produce graphics, compose music, and be useful to science.
22. Tabulating Machine – 1884
Herman Hollerith worked on his idea of a machine punch and count cards in the late 19th century. He came up with a machine that can record statistics by electrically reading and sorting punched cards.
Hollerith developed the Tabulating Machine Company in 1896 in New York, which later grew into the IBM. The machine was a success in the US but drew even more attention in Europe, where it was widely adopted for various statistical purposes.
21. First Analog Computer: Differential Analyzer – 1930
Image credit: Wikimedia
The first modern analog computer was developed by an MIT engineer Vannevar Bush. Actually, it was an analog calculator that could solve some specific set of differential equations, which are most commonly used in physics and engineering applications. The machine produced approximate, albeit practical solutions.
In this machine, shaft motion represented variables, and multiplication and addition were done by feeding values into gears. A knife-edge wheel rotating at different radii on a circular table performed the integration part. And to solve differential equations, different mechanical integrators were interlinked.
20. First Working Programmable Computer: Z3 – 1941
Konrad Zuse (inventor and computer pioneer) designed the first serious of Z computers in 1936. Z1 was completely mechanical and only worked for a few minutes at a time at most. It works on Boolean operations and flip-flops on the basis of vacuum tubes. The use of different technology in the coming decades led to Z2 and eventually Z3.
The Z3 was built with 2000 relays, implementing a 22-bit length. Constant data and program code were stored on punched film, thus no rewiring was necessary to change programs.
Z3 was a secret project of the German government, put to use by the German Aircraft Research Institute in order to perform statistical analyses of wing flutter. The original machine was destroyed in 1943 during an Allied bombardment of Berlin.
19. First Electronic Computer: ABC – 1942
Atanasoff-Berry Computer (ABC) was designed and built by John Vincent Atanasoff and his assistant, Clifford E. Berry. It was the first machine to use capacitors for storage (as in current RAM) and was capable of performing 30 simultaneous operations.
ABC was designed to solve systems of linear equations and was capable of solving systems with up to 29 unknowns. The computer was not programmable, however, it pioneered some important elements of modern computing, including binary arithmetic and electronic switching elements.
18. First Programmable Computer: Colossus – 1943
Colossus was the world’s first electronic, programmable computer created by Tommy Flowers. It was used by the British to read secret German messages (encrypted by the Lorenz cipher) during World War II.
The Colossus was not supposed to decrypt all of a message. It just found close settings for the Lorenz machines. The idea was that the frequencies of letters and numerals in German message would give a start to translating the message itself.
Until the 1970s, these computers were very secret. After the war, all Colossus were broken into bits and designs were destroyed. No one knew the first people to make Colossus. In 2007, engineers made a working prototype of Colossus.
17. The First Computer Network – 1940
Between 1940 and 1946 George Stibitz and his team developed a series of machines with telephone technologies – employing electromechanical relays. These machines served more than one user. Soon they became obsolete because they were based on slow mechanical relays rather than electronic switches.
Today, the dominant basis of data communication is Packet Switching: the ARPANET (Advanced Research Projects Agency Network) was an early packet switching network and the first network to implement the protocol suite TCP/IP (in 1982). Both became the technical foundation of the Internet.
16. First Trackball – 1941/1952
A related pointed device called trackball was invented in 1941 by Ralph Benjamin for fire-control radar plotting system named Comprehensive Display System(CDS). Benjamin’s previous project used analog computers to measure the future position of target aircraft based on various input points entered by a user with a joystick.
He realized that a more efficient input device was needed, so he invented what they called a rollerball for this purpose. This new device had a ball to control the X-Y coordinates of a cursor on the screen. It was patented in 1947 and was kept as a military secret.
Another early trackball, DATAR was built in 1952 by British electrical engineer Kenyon Taylor along with his coworkers Fred Longstaff and Tom Cranston. It was similar in concept to Benjamin’s device.
The trackball used 4 disks to pick up motion, 2 each for the X and Y coordinates. A digital computer calculated the tracks and transferred the resulting data to other ships in a task force using pulse-code modulation radio signals. The design was not patented, as it was a secret military project as well.
15. First General Purpose Programmable Electronic Computer: ENIAC – 1946
Electronic Numerical Integrator And Computer (ENIAC) was Turing-complete, digital machine that could solve a wide range of numerical problems through reprogramming. It was primarily used to calculate artillery firing tables and helped with computations for the feasibility of the thermonuclear weapon.
By the end of its operation (1955), ENIAC contained 7200 crystal diodes, 17468 vacuum tubes, 10000 capacitors, 70,000 resistors, and over 5 million hand-soldered joints. It was roughly 8x3x100 feet in size, weighed 30 tons, and consumed 150 kW of electricity.
It used card readers for input and card punch for output. The computer had speed on the order of one thousand times faster than that of electro-mechanical machines.
14. First Complete High-Level Language: Plankalkül – 1948
The German computer scientist Konrad Zuse, the creator of the first relay computer, started working on the high-level programming language in 1941. He developed ideas as to how his machines (Z4 computer) could be programmed in a powerful way.
The Plankalkül is a typed high-level imperative programming language with a wide range of features like non-recursive functions, local variables, assignment operation, conditional statement, WHILE construct for iteration, logical operation, fundamental data types and more. Plankalkül was eventually comprehensively published in a 1972 paper, while the first compiler for it was built as late as in 1998.
13. First Stored-Program Computer Electronic Digital: SSEM -1948
SSEM (Manchester Small-Scale Experimental Machine), nicknamed Baby, executed its first program on 21st June 1948. The program was written by Tom Kilburn, who actually built this computer, and designed by his mentor Frederic Williams. It was the first working machine to contain all the modules essential to a modern computer.
SSEM contained a 32-bit word length, single address format order code, a memory of 32 words, and computing speed of around 1.2 milliseconds per instruction. The bit was stored in the form of a charge on the CRT phosphor that could be controlled by an electron beam to write 1 or 0. All arithmetic operations were implemented in the software except subtraction and negation.
12. First Assembler: Initial Orders – 1949
Assembler interprets software programs written in assembly language into machine code and instructions that could be executed by a computer. The first assembler was designed for EDSAC (Electronic Delay Storage Automatic Calculator).
Initial orders (written by David Wheeler) had 31 instructions, which were hard-wired on uniselectors, a mechanical read-only memory. The second version of initial orders occupied the full 41 words of read-only memory and included facilities for relocation (or coordination) to facilitate the use of subroutines.
11. First Personal Computer: Simon – 1950
Edmund Berkeley’s Simon was a relay-based computer, designed for the educational purpose of demonstrating the concept of digital computer. Users entered data via punched paper, or by 5 keys on the front panel, and the program ran from a standard paper tape. The ALU and registers stored only 2 bits and that’s the reason it could not be used for any significant practical computation.
Along with the data entry, punched tape served for memory storage. All instructions were executed in sequence, as the machine read them from the tape. It could perform 4 operations: addition, greater than, negation, and selection. The output was provided by five lamps.
10. First Real-Time Graphics Display Computer: AN/FSQ-7 – 1951
The AN/FSQ-7, developed by IBM, was by far the largest computer ever built. It consisted of 2 Whirlwind II computer installed in a 4-story building.
It was a control and command system used in the air defense network. It calculated one or more predicted interception points for assigning aircraft or CIM-10 Bomarc missiles to intercept an intruder using the ATABE (Automatic Target and Battery Evaluation) algorithm.
It had more than 60,000 vacuum tubes, used 3000 kilowatts of electricity, performing 74,000 instructions/second for networking regional radars. Each machine supported more than 100 users. IBM used to keep one unit operating and one on hot standby, which resulted in better uptime (about 99%).
9. First Compiler for Electronic Computer: A-0 System – 1951
A compiler is a special program that converts high-level language into machine code. Grace Hopper wrote the arithmetic language version 0 (or A-0 system) for UNIVAC I, which aims to convert a sequence of subroutines and arguments into machine code.
The subroutines were identified via a numeric code and the arguments were integrated directly after each subroutine code. The A-0 turned these specifications into machine language that could be fed into the computer a second time to execute the said program.
8. First Open Source Software: A-2 System – 1953
Grace Murray Hopper at the UNIVAC keyboard
The A-0 system later evolved into A-2, released as ARITH-MATIC. It was developed at the UNIVAC division of Remington Rand and released to customers by the end of 1953. Users were provided the source code for A-2 and invited to send their enhancements back to UNIVAC.
7. First Autocode: Glennie’s Autocode – 1952
In the 1960s, the term ‘autocode’ was used more generically as to refer to any high-level programming language using a compiler. Alick Glennie developed the first autocode for the Mark 1 computer at the University of Manchester. It is considered to be the first compiled programming language.
Glennie’s primary goal was to make the abstruse code of Mark 1 machine comprehensible. Although the resulting language was much organized and clearer than the machine code, it was still very much machine-dependent.
The second autocode for the Mark 1 was developed by R.A Brooker in 1955. Unlike the first one, it was almost machine-independent and had floating-point arithmetic. However, it allowed only one operation per line, and it had no way to define user subroutines.
6. First Popular High-Level Language: FORTRAN – 1957
FORTRAN code on a punched card
FORTRAN (FORmula TRANslator) was created by a team led by John Backus at IBM. It came to dominate the area of programming early on and had been in use for over half a century in scientific and engineering area such as computational fluid dynamics, finite element analysis, computational chemistry, and computational physics.
The objective during Fortran’s design was to build a language that would be easy to learn, machine-independent, suitable for various applications and would allow complex mathematical expressions to be stated just like regular algebraic notation.
Since it was easier to code, programmers were able to write code 5 times faster than before, however, the execution efficiency was decreased by 20 percent.
5. First Computer Mouse – 1964
The computer mouse as we know today is was invented by Douglas Engelbart with the assistance of Bill English, and was patented on 17th November 1970. It was just a tiny piece of a much larger project, aimed at augmenting human intellect.
Engelbart required the ability to interact with information display using some sort of machine to move a cursor on the screen. There were already different devices then in use, including lightpen and joysticks. He was, however, looking for the most efficient device.
The first prototype of the mouse was made to use with a GUI, windows. It was referred to as “X-Y Position Indicator for a Display System” and was first used with the Xerox Alto computer system in 1973.
It is quite strange that the inventor of one of the most popular computer interface devices didn’t receive any royalties for his mouse invention. He got the patent as an assignor of SRI, and SRI licensed it to Apple for around $40,000, which was ridiculous. Douglas received nothing!
4. First Touchscreen – 1965
E.A Johnson described his work on the capacitive touchscreen (with no pressure sensitivity) in an article – “Touch display – a novel input/output device for computers”. In that article, there was a diagram that described a touchscreen concept that is still in use today.
A couple of years later, Johnson detailed the concepts even further with photos and more diagrams in “Touch Displays: A Programmed Man-Machine Interface”, which was published in Ergonomics journal in 1967.
The idea was adopted for use by air traffic controllers in the United Kingdom until the 1990s. Furthermore, the first resistive touchscreen was developed by George Samuel Hurst (American innovator), who got US patent #3911215 in 1975.
3. First Commercial Personal Computer: Programma 101 – 1965
Programma 101 could perform basic four arithmetic function (addition, subtraction, multiplication division), calculate the absolute value, square root, and fractional part. It consisted of memory registers and featured 16 conditional jump instruction, an alphanumeric programming language, and internal memory.
Magnetic cards and routines could be used without programming knowledge. The machine printed programs and results onto a roll of paper tape, similar to cash register paper and calculator.
Earlier computers were expensive and could only be used by experts. However, P101 was economical as well as easy. It was priced at $32,000 and managed to sell over 44,000 units.
2. First Object-Oriented Programming Language: Simula – 1967
Simula is developed by Ole-Johan Dahl and Kristen Nygaard at the Norwegian Computing Center. It retains the spirit of ALGOL 60 programming language. Simula is the name of two simulation languages – Simula I and Simula 67.
Simula 67 introduced objects, classes, subclasses, inheritance, virtual procedures, coroutines, and garbage collection feature. It had been used in a wide range of applications, including process modeling, algorithms, VLSI design, and computer graphics. The concept of Simula 67 is reimplemented in C++, C#, Pascal, Java and more.
1. First Microprocessor: Intel 4004 – 1971
The chip design was started in April 1970, and it was completed under the leadership of Federico Faggin in January 1971. Smaller than a human thumbnail, the 4-bit register with a clock speed of 740 kHz, had 2300 transistors with 10-micron spacing, capable of performing 60,000 operations per seconds, and costs $200, while having as much computing power as the ENIAC computer. Busicom calculator 141-PF was the first commercial product to use a microprocessor.
The Intel 4004 uses separate program and data storage (contrary to Harvard architecture designs), single multiplexed 4-bit bus for transferring 12-bit address, 8-bit instruction and 4-bit data words. It is able to directly address 5120 bits of RAM, 32768 bits of ROM and supports 3-level deep internal subroutine stack.