Lecture Notes: The Concept of Software Programming
Introduction
- Software programming involves inputting code into a machine's hardware.
- Hardware consists of transistors, vacuum tubes, circuits, wires, and cables.
- Code is an instruction set entered via methods like punch tape.
- Importance in general-purpose computers:
- Concept discussed by Ada Lovelace in 1840s.
- She envisioned computers handling tasks like music, art, and mathematics by changing instructions.
Evolution of Computing Machines
- 1930s: Alan Turing's concept of a Universal Computing Machine:
- Replace multiple machines for different tasks with a single programmable machine.
- Early 1940s: WWII era computers were mostly single-purpose.
- ENIAC: First programmable computer, primarily for missile trajectories.
- Other examples: Enigma, Colossus (code-breaking machines).
Programming Challenges and Developments
- Reprogramming early computers was labor-intensive:
- Involved plugging and unplugging cables.
- Took 6-7 hours to reconfigure ENIAC for new tasks.
- Programming often considered "clerical work," done by women.
Grace Hopper's Contributions
- Background:
- Born in Manhattan; mother was a mathematician.
- Education: Ph.D. in Mathematics from Yale.
- Career:
- Joined the Navy during WWII at age 36.
- Assigned to work on the Mark I at Harvard University.
- Innovations:
- Simplified reprogramming of computers:
- Eliminated the need for extensive physical reconfiguration.
- Popularized the term "computer bug" (found a moth in a relay switch).
The Mark I Computer
- Designed and built by Howard Aiken; became a Naval facility.
- Grace Hopper’s role:
- Became a key figure in making the Mark I easily programmable.
- Modeled her work on Ada Lovelace’s notes.
- Technical Details:
- Used electromechanical switches for reliability.
- Compared to ENIAC:
- Slower (3-4 commands per second vs. ENIAC's 5000).
- More easily programmable.
Legacy and Future Developments
- Transition from electromechanical to electronic components:
- ENIAC and future computers used vacuum tubes, then transistors for speed.
- Role of women in programming:
- Many women were instrumental in early programming efforts (to be discussed in next lecture).
These notes summarize the key points of the lecture on software programming, emphasizing historical developments, challenges in programming early computers, and the pioneering work of Grace Hopper.