ArticleslgStudy

computer science

History of software

History of software is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand History of software rather than just read about it. In short: Software is a set of programmed instructions stored in the memory of stored-program digital computers for execution by the processor. Software is a recent development in human history and is fundamental to the Information Age.

History of software — main illustration
History of software — illustration

Key takeaways

  • History of software belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect History of software to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of History of software from memory before moving on to harder problems.

Reference excerpt

Software is a set of programmed instructions stored in the memory of stored-program digital computers for execution by the processor. Software is a recent development in human history and is fundamental to the Information Age. Ada Lovelace's programs for Charles Babbage's analytical engine in the 19th century are often considered the founder of the discipline. However, the mathematician's efforts remained theoretical only, as the technology of Lovelace and Babbage's day proved insufficient to build his computer. Alan Turing is credited with being the first person to come up with a theory for software in 1935, which led to the two academic fields of computer science and software engineering. The first generation of software for early stored-program digital computers in the late 1940s had its instructions written directly in binary code, generally for mainframe computers. Later, the development of modern programming languages alongside the advancement of the home computer would greatly widen the scope and breadth of available software, beginning with assembly language, and continuing through functional programming and object-oriented programming paradigms.

Before stored-program digital computers

Origins of computer science

Computing as a concept goes back to ancient times, with devices such as the abacus, the Antikythera mechanism, astrolabes, mechanical astronomical clocks and mechanical calculators. The Antikythera mechanism is an example for a highly complex ancient mechanical astronomical device. However, these devices were pure hardware and had no software - their computing powers were directly tied to their specific form and engineering. Software requires the concept of a general-purpose processor - what is now described as a Turing machine - as well as computer memory in which reusable sets of routines and mathematical functions comprising programs can be stored, started, and stopped individually, and only appears recently in human history. The first known computer algorithm was written by Ada Lovelace in the 19th century for the analytical engine, to translate Luigi Menabrea's work on Bernoulli numbers for machine instruction. However, this remained theoretical only - the lesser state of engineering in the lifetime of these two mathematicians proved insufficient to construct the analytical engine. The first modern theory of software was proposed by Alan Turing in his 1935 essay Computable numbers with an application to the Entscheidungsproblem (decision problem). This eventually led to the creation of the twin academic fields of computer science and software engineering, which both study software and its creation. Computer science is more theoretical (Turing's essay is an example of computer science), whereas software engineering is focused on more practical concerns. However, prior to 1946, software as we now understand it – programs stored in the memory of stored-program digital computers – did not yet exist. The very first electronic computing devices were instead rewired in order to "reprogram" them. The ENIAC, one of the first electronic computers, was programmed largely by women who had been previously working as human computers. Engineers would give the programmers blueprints of the ENIAC wiring and expected them to figure out how to program the machine. The women who worked as programmers prepped the ENIAC for its first public reveal, wiring the patch panels together for the demonstrations. Kathleen Booth developed assembly language in 1950 to make it easier to program the computers she worked on at Birkbeck College.

Grace Hopper worked as one of the first programmers of the Harvard Mark I. She later created a 500-page manual for the computer. Hopper is often falsely credited with coining the terms "bug" and "debugging", when she found a moth in the Mark II, causing a malfunction; however, the term was in fact already in use when she found the moth. Hopper developed the first compiler and brought her idea from working on the Mark computers to working on UNIVAC in the 1950s. Hopper also developed the programming language FLOW-MATIC to program the UNIVAC. Frances E. Holberton, also working at UNIVAC, developed a code, C-10, which let programmers use keyboard inputs and created the Sort-Merge Generator in 1951. Adele Mildred Koss and Hopper also created the precursor to a report generator.

… excerpt ends here. Continue reading the full article.

Illustrations

History of software illustration
History of software: Grace Hopper and UNIVAC
Grace Hopper and UNIVAC
History of software: Margaret Hamilton next to a stack output of the code she and her team wrote for the Apollo Mission computers.
Margaret Hamilton next to a stack output of the code she and her team wrote for the Apollo Mission computers.
History of software: MS-DOS 6.2V floppy disks, 1993
MS-DOS 6.2V floppy disks, 1993
History of software: Mozilla Firefox 4 running on Ubuntu Linux, 2011
Mozilla Firefox 4 running on Ubuntu Linux, 2011

Worked examples

Example 1 — a first encounter with History of software

Start with the simplest possible case. Write down what History of software claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to History of software before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about History of software ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of History of software

In research
History of software appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses History of software in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
History of software is common in secondary-school and first-year university syllabi. It links to neighbouring topics History of computing, History of software, so understanding it makes those chapters shorter.
In everyday life
Look for History of software outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study History of software in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what History of software means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain History of software out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is History of software in simple terms?

Software is a set of programmed instructions stored in the memory of stored-program digital computers for execution by the processor. Software is a recent development in human history and is fundamental to the Information Age.

Why does History of software matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study History of software?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on History of software.

Tags

  • History of computing
  • History of software

Keep exploring