Upload
claud-august-cook
View
218
Download
0
Tags:
Embed Size (px)
Citation preview
How to Teach “Programming”[email protected]
• Lecture 1: Education for kids– Lego Mindstorms (NQC: Not Quite C)– Scratch
• Lecture 2: Unix for Poets– Request: bring a laptop if possible
• Windows Users: please install http://www.cygwin.com/ – Target audience: Grad Students in Linguistics– Unix shell scripts (almost not programming)– Small is Beautiful
• Lecture 3: Symbolic Processing– Target audience:
• MIT Computer Science Majors (circa 1974)
– LISP: Recursion, Eval, Symbolic Differentiation– Lambda Calculus (“Small is Beautiful” beyond reason)
Agenda
• Old Business– Homework from last week– Nothing to Hand-In but Discussion…
• New Business– No Requests for Next Week
• Today’s Lecture– Symbolic Processing
Symbolic Features(Bet you can’t do this with your favorite statistics package)
• Complex Numbers: Sqrt(-1)• Roots (without approximations)• Differentiation (without approximations)• Integration (without approximations)• The On-Line Encyclopedia of Integer
Sequences• Eval
Newton’s Methodhttp://archives.math.utk.edu/visual.calculus/3/newton.5/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 152.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
3
-5
0
5
10
15
20
sqrt(5) sqrt(-5)
Iteration (n)
Estim
ate
of s
qrt(
5)
Estim
ate
of s
qrt(
-5)
Symbolic Alternative
1 3 5 7 9 11 13 152.22.32.42.52.62.72.82.9
3
-5
0
5
10
15
20
sqrt(5) sqrt(-5)
Iteration (n)
Estim
ate
of s
qrt(
5)
Estim
ate
of s
qrt(
-5)
(define (fact x) (if (<= x 1) 1
(* x (fact (- x 1)))))
(define (fib x) (if (<= x 2) 1
(+ (fib (- x 1)) (fib (- x 2)))))
(define (len x)(if (empty? x) 0
(+ 1 (len (rest x)))))
(define (rev x)(if (empty? x) x
(append (rev (rest x)) (list (first x)))))
More RecursionLecture3/recursive_examples.lsp
Symbolic DifferentiationLecture3/deriv.lsp
http://mitpress.mit.edu/sicp/full-text/sicp/book/node39.html
Syntaxhttp://www.allisons.org/ll/FP/Lambda/
• Effective Procedure– always give some answer – always give the right answer– always be completed in a finite number of steps– work for all instances of problems of the class
• Recursively Computable– Three definitions later found to be equiv to one another• general recursion• Turing machines• λ-calculus
• Church's thesis:– Effectively Procedure = Recursively Computable – Not a mathematical statement No proof
Church’s Thesishttp://en.wikipedia.org/wiki/Effectively_calculable
Summary: Symbolic Features(Bet you can’t do this with your favorite statistics package)
• Complex Numbers: Sqrt(-1)• Roots (without approximations)• Differentiation (without approximations)• Integration (without approximations)• The On-Line Encyclopedia of Integer
Sequences• Eval
How to Teach “Programming”[email protected]
• Lecture 1: Education for kids– Lego Mindstorms (NQC: Not Quite C)– Scratch
• Lecture 2: Unix for Poets– Request: bring a laptop if possible
• Windows Users: please install http://www.cygwin.com/ – Target audience: Grad Students in Linguistics– Unix shell scripts (almost not programming)– Small is Beautiful
• Lecture 3: Symbolic Processing– Target audience:
• MIT Computer Science Majors (circa 1974)
– LISP: Recursion, Eval, Symbolic Differentiation– Lambda Calculus (“Small is Beautiful” beyond reason)
Optional Homework
• Please watch: http://video.google.com/videoplay?docid=-8860158196198824415#• Google: growing a language • Send feedback to
[email protected]–Do you agree? Disagree? –No opinion? Completely lost?