Programming Merit Badge

When I was your age…

Programming Merit Badge

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

Safety

Do We Need Goggles?

safety.jpg

Protect your Eyes

Save your Wrists

History

Programming has Evolved

The History of Programming Languages is similar to Evolution of Life

Evolution isn’t a “Line”

Evolution is a Bushy Tree

Some Languages are Extinct

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

Some Old Languages are Still Used

nautilus.jpg

Lisp?

Have a Lot of New Languages

duck.jpg

Ruby?

Some New Languages look Old

preondactylus.jpg bat.jpg

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

Ada Lovelace

  • Lovelace describe an algorithm, 1843

    Milestone 1: Machines could change and be programmed

Tabulator and Keypunch

  • Hollerith made a machine to read data
  • 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

Machine Code / Assembly

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
  • Showed it to Nolan Bushnell who made an arcade game

    (See this visual guide)

FLOW-MATIC and COBOL

  • Invented by Admiral Grace Hopper
  • Not mathematical, but English-like
  • Use: Business applications

    (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

Remember to take pictures of each language’s creator, ala this page.

Ten Languages in Ten Minutes

Scratch … Games

mitchel-resnick.jpg

VisualBasic … Office

Arduino (Processing) … Hardware

C … Operating Systems

Java … Business

JavaScript … Web Interfaces

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))))

Perl … System Administration

Python … Learning

Ruby … General

Programmed Devices

Intellectual Property

Four types

Licensing and Owning

Open source

Projects

Scratch

Web … HTML+CSS+JavaScript

Python

Racket

Careers