# Symbolic Processing. How to Teach “Programming” Lecture 1: Education for kids – Lego Mindstorms (NQC: Not.

## Presentation on theme: "Symbolic Processing. How to Teach “Programming” Lecture 1: Education for kids – Lego Mindstorms (NQC: Not."— Presentation transcript:

Symbolic Processing

How to Teach “Programming” Kenneth.Church@jhu.edu Kenneth.Church@jhu.edu Lecture 1: Education for kids – Lego Mindstorms (NQC: Not Quite C)NQC – Scratch Lecture 2: Unix for Poets – Request: bring a laptop if possible Windows Users: please install http://www.cygwin.com/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 The On-Line Encyclopedia of Integer Sequences Eval

Sqrt(-1)  Error (for many tools)

Roots (without approximations)

Approximations such as Newton’s Method

Complex Roots

Newton’s Method http://archives.math.utk.edu/visual.calculus/3/newton.5/ http://archives.math.utk.edu/visual.calculus/3/newton.5/

Symbolic Alternative

Symbolic Methods  Search

Recursion

(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 Recursion Lecture3/recursive_examples.lsp

The Roots of LISP Eval

Symbolic Differentiation

Symbolic Differentiation Lecture3/deriv.lsp http://mitpress.mit.edu/sicp/full-text/sicp/book/node39.html http://mitpress.mit.edu/sicp/full-text/sicp/book/node39.html

Syntax http://www.allisons.org/ll/FP/Lambda/ http://www.allisons.org/ll/FP/Lambda/

Semantics

Surprise: Church’s Thesis

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: Church's thesis – Effectively Procedure = Recursively Computable – Not a mathematical statement  No proof Church’s Thesis http://en.wikipedia.org/wiki/Effectively_calculable http://en.wikipedia.org/wiki/Effectively_calculable

Recursion & Factorial

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 The On-Line Encyclopedia of Integer Sequences Eval

How to Teach “Programming” Kenneth.Church@jhu.edu Kenneth.Church@jhu.edu Lecture 1: Education for kids – Lego Mindstorms (NQC: Not Quite C)NQC – Scratch Lecture 2: Unix for Poets – Request: bring a laptop if possible Windows Users: please install http://www.cygwin.com/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?doc id=-8860158196198824415# http://video.google.com/videoplay?doc id=-8860158196198824415# Google: growing a language Send feedback to Kenneth.Church@jhu.edu Kenneth.Church@jhu.edu – Do you agree? Disagree? – No opinion? Completely lost?

Download ppt "Symbolic Processing. How to Teach “Programming” Lecture 1: Education for kids – Lego Mindstorms (NQC: Not."

Similar presentations