1 / 32

600.103 FUNDAMENTALS OF PRACTICAL COMPUTING Ken Church

600.103 FUNDAMENTALS OF PRACTICAL COMPUTING Ken Church. Intended audience: Students considering a major in science, engineering or medicine Small Class Diversity: Geeks  Mainstream like Calculus &“typing” College  High School  Elementary School

deanne
Download Presentation

600.103 FUNDAMENTALS OF PRACTICAL COMPUTING Ken Church

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 600.103 FUNDAMENTALS OF PRACTICAL COMPUTING Ken Church • Intended audience: • Students considering a major in • science, engineering or medicine • Small Class • Diversity: Geeks  Mainstream • like Calculus &“typing” • College  High School  Elementary School • Fun (not too much work)  Sell the field • Practical: • Please bring laptops to class if you can • Familiarize students with lots of stuff (breadth) • Not just a single programming language (not depth) • Fundamentals: • Lots more to Computer Science than hacking

  2. Teamwork, Web-work, etc. • Encourage teamwork, Google, Wikipedia, etc. • Homework: • Submit by email to Kenneth.Church@jhu.edu • Due Tuesday morning at sunrise • So I have time to adjust my Tuesday lectures (if necessary) • Target: 2 hours per hour of class • 1 hour installing software, plus • 1 hour of exercises (as opposed to problem sets) • Homework comes with hints (as opposed to recipes) • Feel free to ask for more hints (Kenneth.Church@jhu.edu) • Example: Use Google to figure out how to install • R (a stat package) • LISP (http://www.newlisp.org/) • cygwin (Unix for Windows)

  3. Cheating • Please don’t, but if you do, you are only cheating yourself • I want to encourage teamwork & web-work • Because they are great ways to learn • “Although you may work in small groups, each student must submit his/her own program and the code may not be a copy of others’ code.  You may share ideas and help – but you must write your own code and your assignment MUST be SUBSTANTIALLY different from all others.” • Ok to submit a team effort (especially if you tell me who you are working with) • If you can’t do the homework, explain why • My bad • Software package doesn’t work for your machine • I asked for more than 2 hours (feel free to stop after 2 hours) • Homework is for your benefit (and mine) • Homework will be graded: satisfactory (or not) • Exams (mid-term & final)  Grades • Goal: Learn from the homework  You’ll do fine on the exams

  4. First Four Weeks • Symbolic Programming (how CS was taught in 1970s) • Practical: Familiarize students with stat package(s), • As well as symbolic alternatives: LISP & Wolfram Alpha • Fundamental: • Stuff you can’t do with your favorite stat package • LISP: Recursion, Eval, Symbolic Differentiation • Lambda Calculus (“Small is Beautiful” beyond reason; Church’s Thesis & Computability) • Unix for Poets (“Small is Beautiful”) • How to program (without realizing that it is programming) • How to use tr, awk & those other crazy Unix utilities (pipes) • Examples: count words (and ngrams); find interesting word associations. • More Unix for Poets • Python & NLTK (Natural Language Toolkit): • Unix for Poets (without Unix) • Formal Language Theory & Chomsky Hierarchy

  5. 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

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

  7. Roots (without approximations)

  8. Numerical Methods:Approximations such as Newton’s Method

  9. Complex Roots

  10. Newton’s Methodhttp://archives.math.utk.edu/visual.calculus/3/newton.5/

  11. Newton’s Methodhttp://archives.math.utk.edu/visual.calculus/3/newton.5/

  12. Symbolic Alternative

  13. Symbolic Methods  Search

  14. Recursion

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

  16. The Roots of LISPEval

  17. Symbolic Differentiation

  18. Symbolic DifferentiationLecture1/deriv.lsphttp://mitpress.mit.edu/sicp/full-text/sicp/book/node39.html

  19. Syntaxhttp://www.allisons.org/ll/FP/Lambda/

  20. Semantics

  21. Surprise: Church’s Thesis

  22. 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

  23. Recursion & Factorial http://www.allisons.org/ll/FP/Lambda/Introduction/

  24. 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

  25. First Four Weeks • Symbolic Programming (how CS was taught in 1970s) • Practical: Familiarize students with stat package(s), • As well as symbolic alternatives: LISP & Wolfram Alpha • Fundamental: • Stuff you can’t do with your favorite stat package • LISP: Recursion, Eval, Symbolic Differentiation • Lambda Calculus (“Small is Beautiful” beyond reason; Church’s Thesis & Computability) • Unix for Poets (“Small is Beautiful”) • How to program (without realizing that it is programming) • How to use tr, awk & those other crazy Unix utilities (pipes) • Examples: count words (and ngrams); find interesting word associations. • More Unix for Poets • Python & NLTK (Natural Language Toolkit): • Unix for Poets (without Unix) • Formal Language Theory & Chomsky Hierarchy

  26. Homework: Questions  Kenneth.Church@jhu.edu • Install (hint: Google) • R (a stat package) • LISP (http://www.newlisp.org/) • cygwin (Unix for Windows); skip if you have Unix • Send me an email with: • Subject: 600.103 Homework #1 from <name> • Body: screen shots (see next couple of slides) • Due Tuesday morning (at sunrise)

  27. Homework: sqrt(4) • Screenshots of sqrt(4) and sqrt(-4) from • R • Wolfram Alpha • Newton’s Method http://archives.math.utk.edu/visual.calculus/3/newton.5 • LISP • For Newton’s Method, what settings generate • sqrt(2)  2 v. sqrt(2)  -2 • Are there any settings so that sqrt(2)  NaN? • In R, show me the following plot • x = seq(-4,4,1/10) • plot(x, x^2 - 4) • abline(h=0) • abline(v=c(-2,2), col="red")

  28. Fibonacci • Use NewLisp & Encylopedia of Integer Sequences to compute Fibonacci • F(n) = F(n-1) + F(n-2), F(0)=F(1)=1 • What is F(15)?

  29. Readings • The Roots of LISP • Use Google to find the article • “The unusual thing about Lisp-- in fact, the defining quality of Lisp-- is that it can be written in itself.” • The Halting Problem (Wikipedia) • What does this have to do with Computability?

More Related