Download presentation
Presentation is loading. Please wait.
Published byPhillip Robertson Modified over 9 years ago
1
600.103 FUNDAMENTALS OF PRACTICAL COMPUTING Ken ChurchFUNDAMENTALS 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.eduKenneth.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)Kenneth.Church@jhu.edu – Example: Use Google to figure out how to install R (a stat package) LISP (http://www.newlisp.org/)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 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 Method http://archives.math.utk.edu/visual.calculus/3/newton.5/ http://archives.math.utk.edu/visual.calculus/3/newton.5/
11
Newton’s Method http://archives.math.utk.edu/visual.calculus/3/newton.5/ http://archives.math.utk.edu/visual.calculus/3/newton.5/
12
Symbolic Alternative
15
Symbolic Methods Search
16
Recursion
17
(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
18
The Roots of LISP Eval
19
Symbolic Differentiation
20
Symbolic Differentiation Lecture1/deriv.lsp http://mitpress.mit.edu/sicp/full-text/sicp/book/node39.html http://mitpress.mit.edu/sicp/full-text/sicp/book/node39.html
21
Syntax http://www.allisons.org/ll/FP/Lambda/ http://www.allisons.org/ll/FP/Lambda/
22
Semantics
23
Surprise: Church’s Thesis
24
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
26
Recursion & Factorial http://www.allisons.org/ll/FP/Lambda/Introduction/ http://www.allisons.org/ll/FP/Lambda/Introduction/
27
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
28
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
29
Homework: Questions Kenneth.Church@jhu.eduKenneth.Church@jhu.edu Install (hint: Google) – R (a stat package) – LISP (http://www.newlisp.org/)http://www.newlisp.org/ – cygwin (Unix for Windows); skip if you have Unix Send me an email with: – Subject: 600.103 Homework #1 from – Body: screen shots (see next couple of slides) – Due Tuesday morning (at sunrise)
30
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 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")
31
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)?
32
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?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.