270 likes | 386 Vues
This series of lectures aims to equip graduate students in linguistics with essential programming concepts through unique approaches, emphasizing symbolic processing. The first lecture explores educational tools like Lego Mindstorms and Scratch. The second lecture introduces Unix scripting basics. The final lecture focuses on symbolic methods using LISP, covering recursion, symbolic differentiation, and integration without approximations. Join us to understand programming beyond traditional means while engaging with concepts that intersect linguistics and computer science.
E N D
How to Teach “Programming”Kenneth.Church@jhu.edu • 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/
More RecursionLecture3/recursive_examples.lsp (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)))))
Symbolic DifferentiationLecture3/deriv.lsphttp://mitpress.mit.edu/sicp/full-text/sicp/book/node39.html
Church’s Thesishttp://en.wikipedia.org/wiki/Effectively_calculable • 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
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”Kenneth.Church@jhu.edu • 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 Kenneth.Church@jhu.edu • Do you agree? Disagree? • No opinion? Completely lost?