Skip to main content
ReferenceComputing historyBeginner

ENIAC: building and programming an electronic giant

How ENIAC became a general-purpose electronic computer: Eckert, Mauchly, six women programmers, decimal arithmetic and the changes to programming in 1948.

Published 31 October 2026Reading : 10 minBy Yann Bastien
Show contents
  1. A military need beyond the available calculating equipment
  2. Building an electronic machine on a large scale
  3. What ENIAC could store and calculate
  4. Electronic calculation did not have to be binary
  5. Speed did not remove the limits of working memory
  6. The six women at the heart of programming ENIAC
  7. From human computers to machine programmers
  8. Turning a method into an executable calculation
  9. Configuring connections and checking the result
  10. A workflow, not a miniature modern computer architecture
  11. Uses beyond firing tables
  12. 1948: encoded instructions change the way ENIAC is programmed
  13. A collective transformation
  14. Instruction storage unlike the Manchester Baby’s
  15. ENIAC, EDVAC and Colossus: distinct points of reference
  16. Recognition must include programming
  17. Frequently asked questions
  18. Was ENIAC binary?
  19. Did the six programmers have to move cables for every operation?
  20. Why not give one calculation time for a trajectory?
  21. Was ENIAC already working during the fighting of the Second World War?
  22. Did the 1948 conversion turn ENIAC into EDVAC?

In February 1946, ENIAC became one of the great public demonstrations of electronic computing at the University of Pennsylvania. Its panels and thousands of valves drew attention. Yet switching it on did not solve a problem: someone had to work out the operations, prepare the data, arrange the connections and check the results.

Engineers J. Presper Eckert and John Mauchly played major roles in its design. The six women who made its calculations possible did equally essential work. They turned a mathematical method into a sequence this equipment could actually execute.

ENIAC’s story brings together two challenges: building a large, reliable electronic calculator, and programming it precisely enough to produce something more useful than an impressive succession of pulses.

A military need beyond the available calculating equipment

During the Second World War, the US Army needed firing tables. These indicated how to set an artillery piece for particular conditions and a required range. Preparing them involved calculating many trajectories: initial velocity alone was not enough, because gravity and air resistance also affected the flight.

The word computers then referred to people employed to calculate. These men and women worked on trajectories using calculating instruments. Equipment such as the differential analyser was also used. The difficulty lay in the number of cases and the time needed to work through them.

Mauchly advocated much faster electronic processing, and Eckert made a decisive contribution to its technical implementation. The project was undertaken at the Moore School of Electrical Engineering, with Army funding for the Ballistic Research Laboratory. Military agreement in spring 1943 preceded the formal contract W-670-ORD-4926, dated 5 June 1943, listed in the University of Pennsylvania’s archival inventory as exhibit Ptf 1531. Approval of the project and its formal contractual arrangements were separate stages; construction began that year.

The name Electronic Numerical Integrator and Computer expressed the ambition to perform numerical calculations, including the integration needed for trajectories. Ballistics remained closely associated with ENIAC, but its organisation allowed other numerical problems to be prepared for it.

Building an electronic machine on a large scale

Electronic valves, also called vacuum tubes, could switch signals without waiting for a mechanical contact to move. Replacing a slow operation with a fast one was not enough, however. The whole installation had to operate consistently, with correctly formed signals delivered at the right time.

The War Department’s 1946 technical description lists about 18,000 valves in an installation made up of large panels. This was a collective achievement. Circuit design, wiring, power supplies, assembly, testing and maintenance involved far more people than the two names most often associated with the project.

Engineering also meant devising ways to test the machine. In his interview preserved by the Smithsonian, Eckert explains how his team developed suitable test equipment, including oscilloscopes and pulse generators. Being able to observe a fault was part of building a usable machine.

ENIAC was not completed in time to fulfil its purpose during the fighting of the Second World War. Calculations were performed in late 1945, followed by a public unveiling in February 1946. The circumstances of its funding, its first uses and its public announcement therefore need to be distinguished.

What ENIAC could store and calculate

Electronic calculation did not have to be binary

ENIAC worked with decimal numbers. Electronic does not necessarily mean binary: a digit can be represented by the state of a circuit designed to distinguish ten values.

Its twenty accumulators could each hold a signed ten-digit decimal number. An accumulator did more than store a value: it also performed addition and subtraction. Additional units handled multiplication, division and square roots.

Component Role in the calculation
Accumulators Hold numbers and perform operations including addition and subtraction.
Additional arithmetic units Perform other operations, such as multiplication and division.
Function tables Supply values set up with switches; their role later extended to instructions.
Control and programming equipment Organise the triggering and repetition of operations.
Card equipment Introduce data and collect results.

The 1946 document held by the Smithsonian distinguishes arithmetic, memory and control functions. These were distributed throughout the installation. There was no single modern-style processor hidden behind the panels.

Speed did not remove the limits of working memory

An accumulator could perform roughly 5,000 additions per second. This describes an arithmetic capability, not the number of complete trajectories calculated in that time. A single trajectory required many operations.

The twenty numbers held in accumulators must also be distinguished from constants supplied by the tables or cards. Working storage for intermediate results was limited, and some operations occupied several accumulators. Allocating values therefore had a direct effect on the program.

Punched cards connected the machine to data prepared outside it. In its original configuration, they were not a general stream of instructions equivalent to loading a modern program.

The six women at the heart of programming ENIAC

From human computers to machine programmers

Six women were selected in 1945 to prepare ENIAC’s calculations. Their knowledge of numerical methods and trajectories mattered: they had to understand a problem before adapting it to an unfamiliar machine.

Their names appear in different forms in accounts from different periods of their lives. Identifying those forms helps connect the same people across documents and recollections.

Name used in accounts of the early work Also known as
Kathleen “Kay” McNulty Kathleen Mauchly Antonelli
Jean Jennings Jean Jennings Bartik, often called Jean Bartik
Betty Snyder Frances Elizabeth “Betty” Holberton
Marlyn Wescoff Marlyn Meltzer
Frances Bilas Frances Spence
Ruth Lichterman Ruth Teitelbaum

The IEEE Computer Society honours them collectively. They were not the only people who would program or operate ENIAC during its career. This list identifies the six pioneers of its original programming.

According to the IEEE Computer Society, Jean Bartik and Betty Holberton were co-lead programmers in the early work. The University of Pennsylvania credits them in particular with preparing the trajectory calculation used as the basis of the 1946 press demonstration.

Turning a method into an executable calculation

The task was not to copy an equation onto a panel. A method had to be broken into operations, with decisions about where to keep numbers and in what order the units would exchange them. Machine diagrams and discussions with the engineers became essential tools.

Consider a teaching example inspired by trajectories, rather than a reconstruction of the historical program. Motion can be approximated by advancing through small time intervals:

  1. determine the forces for the current state;
  2. calculate the change in velocity;
  3. derive a new position;
  4. check whether the calculation should continue;
  5. repeat using the resulting state.

This requires values to be kept from one pass to the next. Storage has to be allocated, constants supplied, repetitions organised and stopping conditions defined. An allocation mistake can destroy a value still needed, even when every arithmetic circuit is functioning correctly.

That is programming in its own right. It brings together mathematical reasoning, available resources and control mechanisms. A comparison with Ada Lovelace and her Note G highlights a difference in circumstances: here, a prepared calculation had to lead to verifiable execution on a real machine.

Configuring connections and checking the result

Originally, ENIAC was programmed through connections and switches. The paths taken by numbers and the signals controlling operations had to be arranged. The program was embodied in the installation’s settings, rather than in a file loaded into memory.

Once configured, the sequence could run automatically. The programmers did not carry out every addition by hand. A substantially different problem could, however, require new physical preparation followed by tests.

Checking calculations was inseparable from this work. Expected and actual results had to be compared, the point at which they diverged located, and a wrong configuration distinguished from an electronic fault. A printed or punched output was not, on its own, evidence of correctness.

Debugging therefore meant more than replacing a valve. It also concerned the numerical method, the order of operations, prepared values and the flow of signals. Recognising that responsibility prevents the women from being portrayed as mere attendants to hardware that had already solved everything.

A workflow, not a miniature modern computer architecture

The programmers prepare the calculation, set connections and switches, load data on cards, run the electronic calculation, then collect and check the results.

A simplified workflow for the original configuration, around 1946. Arrows show preparation and execution stages, not the exact wiring. Cards supply data here; the program is defined by the settings.

This separates three things: the mathematical problem, the program organising the operations and the data for a particular case. A method can be applied to new data without implying that every new method is equally easy to install.

That distinction helps explain the value of a general-purpose machine. ENIAC was not confined to one cryptanalytic task, but its flexibility came with preparation costs. General-purpose did not mean equivalent to a personal computer or free of practical constraints.

Uses beyond firing tables

The earliest uses were not the public ballistics demonstration. The American Physical Society describes a calculation for Los Alamos in December 1945, before the machine was announced. Its purpose concerned nuclear research; that does not mean ENIAC had already been used for the wartime bombings, which had taken place before then.

Military and scientific calculations continued throughout its career. Moved to Aberdeen Proving Ground in 1947, ENIAC served numerical investigations requiring substantial repetitive processing. Nuclear simulations were among its uses, as computation itself became a tool for experimentation.

The value of this work also depended on program preparation and reliable results. A machine might rapidly execute a physically well-defined calculation yet give an unhelpful answer if the model, data or checks were inadequate.

1948: encoded instructions change the way ENIAC is programmed

A collective transformation

After the war, teams sought to simplify and reorganise ENIAC’s control. Central Control for ENIAC, written by Adele Goldstine in 1947, records this work. Its annotated edition describes a collaborative effort involving John von Neumann, Herman and Adele Goldstine, laboratory staff, Klara von Neumann, Nicholas Metropolis and a group led by Jean Bartik.

In the new arrangement, encoded instructions were set in the switch tables and read by a control mechanism. The program as a whole was no longer represented solely by direct connections between units. A sequence of codes could determine operations and their order.

Research by Thomas Haigh, Mark Priestley and Crispin Rope places the conversion in context. The Computer History Museum dates to 12 April 1948 the running of a complex program in this mode, carrying out a Monte Carlo simulation. ENIAC in 1948 should therefore not be described as unchanged from 1946.

Instruction storage unlike the Manchester Baby’s

The switch tables held instructions the machine could read, but it did not rewrite them like ordinary data during calculation. Their role can be compared to read-only memory, or ROM, without suggesting they were identical to a modern component.

In 1948, the Manchester Baby tested a program kept in rewritable electronic memory also used for data. Such differences make labels like “first stored-program computer” difficult: the property and configuration being compared have to be specified.

The first stored-program machines, including Baby and EDSAC, extend this comparison. Understanding how the machine’s control and storage changed matters more than forcing different achievements into a single ranking.

ENIAC, EDVAC and Colossus: distinct points of reference

EDVAC was a separate project, not a new name for ENIAC. The First Draft of a Report on the EDVAC, circulated in 1945 under John von Neumann’s name, described a different organisation of calculation and memory. It grew out of collective discussions involving Eckert and Mauchly among others. The report does not justify crediting the stored program to one person alone.

Our article on von Neumann architecture explains the principle. Here, the key distinction is between designing a new machine and modifying an existing one. ENIAC’s conversion and EDVAC’s development are connected but separate histories.

Machine or project Useful distinction
Colossus Programmable electronic processing specialised in particular cryptanalytic operations.
Original ENIAC General-purpose numerical calculation prepared through connections and switches.
Converted ENIAC Instructions encoded in switch tables, with reorganised control.
EDVAC A separate machine project associated with organising programs and data in memory.

The story of Colossus and Tommy Flowers shows why “electronic”, “programmable”, “general-purpose” and “stored-program” are not synonyms.

Recognition must include programming

The public unveiling in 1946 brought ENIAC considerable attention without giving its women programmers recognition equal to their contribution. The University of Pennsylvania and the ENIAC Programmers Project describe how long their role remained in the background.

The recollections gathered by Kathy Kleiman helped restore this part of the story. Jean Bartik, Betty Holberton and their colleagues should be more than names in a belated tribute: their decisions explain how the machine became a working calculating instrument.

ENIAC remained in use until 1955. Its significance lies in more than size or speed. It shows that building a calculator, devising a method, programming and checking results are connected responsibilities. Its legacy is a collective achievement, both physical and intellectual.

Frequently asked questions

Was ENIAC binary?

No. It used decimal arithmetic, including accumulators capable of holding ten-digit numbers. Electronic circuits do not by themselves require a binary representation.

Did the six programmers have to move cables for every operation?

No. They prepared a configuration that allowed a sequence to run automatically. A new problem might require that configuration to be changed, but the operations of an organised calculation were not all triggered by hand.

Why not give one calculation time for a trajectory?

The time depends on the method, data, precision and what is included: calculation alone, card reading or program preparation. Addition speed does not directly determine the duration of a complete problem.

Was ENIAC already working during the fighting of the Second World War?

It was designed and funded in that context, but its first uses date from late 1945, after the fighting ended. The public unveiling in February 1946 was a separate milestone.

Did the 1948 conversion turn ENIAC into EDVAC?

No. ENIAC retained its identity and received a new control method using encoded instructions. EDVAC was another project. Comparisons of stored-program arrangements also have to distinguish switch tables from rewritable electronic memory.

Was this article useful?

Sources and references

  1. University of Pennsylvania — ENIAC Day to celebrate dedication of Penn’s historic computer (2011) (opens in a new tab)Page in English
  2. University Archives, University of Pennsylvania — ENIAC Trial Exhibits Master Collection: military agreement in spring 1943 (opens in a new tab)Page in English
  3. University Archives, University of Pennsylvania — ENIAC trial exhibit index, Ptf 1531: contract dated 5 June 1943, p. 136 (opens in a new tab)Page in English
  4. War Department — Physical Aspects, Operation of ENIAC Are Described (1946), held by the Smithsonian (opens in a new tab)Page in English
  5. Smithsonian Institution — Interview with J. Presper Eckert, 2 February 1988 (opens in a new tab)Page in English
  6. IEEE Computer Society — About Women of ENIAC: the six programmers (opens in a new tab)Page in English
  7. ENIAC Programmers Project — Documentary Info: programmers' recollections and Kathy Kleiman's work (opens in a new tab)Page in English
  8. University of Pennsylvania — On ENIAC’s anniversary, a nod to its female ‘computers’ (2019) (opens in a new tab)Page in English
  9. American Physical Society — December 1945: The ENIAC Computer Runs Its First, Top-Secret Program (2022) (opens in a new tab)Page in English
  10. Adele K. Goldstine, Central Control for ENIAC (opens in a new tab), Annotated edition by Mark Priestley and Thomas Haigh, 2014, 1947Page in English
  11. Thomas Haigh, Mark Priestley and Crispin Rope, Engineering ‘The Miracle of the ENIAC’: Implementing the Modern Code Paradigm (opens in a new tab), IEEE Annals of the History of Computing, 36(2), pp. 41–59, 2014Page in English
  12. Computer History Museum — Programming the ENIAC: an example of why computer history is hard (2016) (opens in a new tab)Page in English
  13. Computer History Museum — The Stored Program: comparison with early stored-program machines (opens in a new tab)Page in English
BiographyComputing historyBeginner

Ada Lovelace: the visionary who imagined computer programming

Explore Ada Lovelace's life, her collaboration with [Charles Babbage](/en/resources/charles-babbage-father-computing), her Bernoulli numbers algorithm, and the legacy of the woman often described as the first computer programmer.

31 July 20267 min