## When I was your age…

Do Tonight Do at Home Show Me
Workbook for Three Programs Pick a career
#1 - #4 #5 #6

## History

### Programming has Evolved

The History of Programming Languages is similar to Evolution of Life

#### Some Languages are Extinct

```      (~R∊R∘.×R)/R←1↓ιR
X[⍋X+.≠' ';]
life←{↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵}
```

Lisp?

Ruby?

Go?

### Early Computers

#### Jacquard Loom

• Joseph Marie Jacquard, 1801
• Controlled by Changeable punched cards

#### Charles Babbage

• Difference Engine, a calculator, 1822 (completed in 1991)
• Analytic Engine, a computer programmed with punch cards

• Lovelace describe an algorithm, 1843

Milestone 1: Machines could change and be programmed

#### Tabulator and Keypunch

• Founded Tabulating Machine Company (IBM), 1896
• First computer, Atansoff-Berry Computer solved linear equations
• Not programmable

#### Colossus and Bombe

• Germans created Enigma
• Allied created Colossus to break encryption
• First programmable computers
• Alan Turing described
• Grace Hopper debugged Mark II, 1947

#### EDSAC

• First practical
• Calculated a table of squares and prime numbers

### Fortran

• Formula Translation
• Invented John Backus, 1957
• Working on 2018 specification
• Use: Supercomputing and engineering applications

Milestone 2: Programmer doesn’t worry about the hardware

### Spacewar!

• First computer game, Steve Russell, 1961

(See this visual guide)

### FLOW-MATIC and COBOL

• Invented by Admiral Grace Hopper
• Not mathematical, but English-like

(Terminator Screenshot)

### LISP

• Invented by John McCarthy, 1958
• Pure math rendered for computers
• Use: Artificial Intelligence
• Still used, and many flavors:
• Common Lisp
• Scheme
• Racket
• Clojure

### Summary: Milestones

• Hardware that Could Change… First Programs
• High-level languages better than hardware
• Languages completely ignore hardware

## Languages

### Ten Languages in Ten Minutes

#### Scratch … Games

mitchel-resnick.jpg

#### Lisp … Artificial Intelligence

```      (defun convert-temperature (&optional fahrenheit celsius)
(interactive)
(let* ((fahrenheit (read-number "Enter a number in degress Fahrenheit: " 70.0))
(celcius (round (* (- fahrenheit 32.0) (/ 5.0 9.0)))))
(insert (format "%d degress Fahrenheit is %d degress Celcius. " fahrenheit celcius))
(if (<= celcius 0)
(insert (format "Remember to pack long underwear. %c" ?\n)))
(if (>= fahrenheit 100)
(insert (format "Rembember to keep hydrated. %c" ?\n))))
(let ((again (read-char-choice "Would you like to do another calculation? 'y'=yes 'n'=no "
(list ?y ?n))))
(if (char-equal ?y again)
(convert))))
```

## Careers

Date: 2017 Oct 22

Created: 2020-12-23 Wed 10:15