Gordie Noye
gordie.noye@gmail.com
@gordienoye
Programming
(with Snakes)

Why program?
Programmers solve problems
Programmers solve problems
In a special way
Using a specific set of commands
That computers can understand
What are the commands?
The commands are programming languages
Name some ...
Language use today

Historically
What is a computer?

"One" who computes
Computers used to be people who ... computed
Think slide rules and astrological calculations
What did they compute
- the return of Halley's Comet
- the trajectory of projectiles
- nuclear fission
- secret messages (cryptography)
Then came machines
- very limited use
- faster and more accurate than humans
- built to solve specific problems
- specialized knowledge needed just to use them
- used very primitive (to us) technology

Evolution of computers
- mechanical machines
- electro-mechanical machines
- electronic machines
Computer precursor

Jacquard programmable loom (1801)
First machine to use punched cards to control its operation
One punched card per row of design
Which inspired
Charles Babbage's Difference Engine



Analytical Engine
The Difference Engine was designed for mathematical calculations
Babbage envisioned and began to design something he called the Analytical Engine which would use punch cards
The punch cards would determine what the "engine" would do
Similar to configuring the Jacquard loom pattern but using punch cards to configure calculations
Ada Lovelace
Lord Byron's daughter Augusta Ada King, Countess of Lovelace, is credited with developing an algorithm for the Analytical Engine to calculate a sequence of Bernoulli numbers
She is considered by many to be the first computer programmer

The Z3
Konrad Zuse, a German engineer, created the first fully automatic programmable computer in 1941
It used electro-mechanical switches called relays

Electronic machines

1st Generation – Vacuum tubes
2nd Generation – Transistors
3rd Generation – Integrated circuits
4th Generation – VLSI and microprocessors
(VLSI - Very Large Scale Integration)
Tubes
The ABC - Atanasoff-Berry Computer (1942)

Transistors
DEC PDP - 1 (1959)

Integrated Circuits
Cray - 1 (1975) and Apple II (1977)


Microprocessors
All modern computers

Who are programmers?
Doctors
Journalists
Web Developers
You.
Gordie Noye gordie.noye@gmail.com @gordienoye
Programming in Python - Part 1
By gordie
Programming in Python - Part 1
- 1,528