600.103 FUNDAMENTALS OF PRACTICAL COMPUTING Ken ChurchFUNDAMENTALS OF PRACTICAL COMPUTING Ken Church Intended audience: – Students considering a major.

Slides:



Advertisements
Similar presentations
Intro to CIT 594
Advertisements

Symbolic Processing. How to Teach “Programming” Lecture 1: Education for kids – Lego Mindstorms (NQC: Not.
Lecture 1: Overview CMSC 201 Computer Science 1 (Prof. Chang version)
Computers in Principle & Practice I - V Deena Engel Computers in Principle and Practice I V , Sections 1 & 2 Fall, 2009 Deena Engel .
CS 581: Introduction to the Theory of Computation Lecture 1 James Hook Portland State University
Welcome to CSE105 and Happy and fruitful New Year
COMP 110 Introduction to Programming Tabitha Peck M.S. January 9, 2008 MWF 3-3:50 pm Philips 367.
IT 240 Intro to Desktop Databases Introduction. About this course Design a database: Entity Relation (ER) modeling and normalization techniques Create.
Intro to CIT 594
Fall 2004 WWW IS112 Prof. Dwyer Intro1: Overview and Syllabus Professor Catherine Dwyer.
Statistical Methods in Computer Science Course Introduction Ido Dagan.
Overview Discrete Mathematics and Its Applications Baojian Hua
COMP171 Data Structures and Algorithm Huamin Qu Lecture 1 (Sept. 1, 2005)
Math 105: Problem Solving in Mathematics. Course Description This course introduces students to the true nature mathematics, what mathematicians really.
Class 1: What this course is about. Assignments Reading: Chapter 1, pp 1-33 Do in Class 1: –Exercises on pages 13, 14, 22, 28 To hand in in Class 2: –Exercises.
Overview Discrete Mathematics and Its Applications Baojian Hua
COMP 110 Introduction to Programming Mr. Joshua Stough August 22, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307.
How to Teach “Programming” Lecture 1: Education for kids – Lego Mindstorms (NQC: Not Quite C)NQC – Scratch.
MATH 330: Ordinary Differential Equations Fall 2014.
COMP 14 – 02: Introduction to Programming Andrew Leaver-Fay August 31, 2005 Monday/Wednesday 3-4:15 pm Peabody 217 Friday 3-3:50pm Peabody 217.
Spring 2012 MATH 250: Calculus III. Course Topics Review: Parametric Equations and Polar Coordinates Vectors and Three-Dimensional Analytic Geometry.
Newton’s Method: Homework Create a Google Spreadsheet – that uses Newton’s Method – to find roots of x^2 + x = 1 Link to this page from your homepage Send.
NLTK (Natural Language Tool Kit) Unix for Poets (without Unix) Unix  Python.
BIT 115: Introduction To Programming1 Sit in front of a computer Log in –Username: 230class –password: –domain: student Bring up the course web.
On Teaching Introductory Programming Abhiram Ranade.
CSE 501N Fall ‘09 00: Introduction 27 August 2009 Nick Leidenfrost.
CS 103 Discrete Structures Lecture 01 Introduction to the Course
CS 390 Introduction to Theoretical Computer Science.
1 Project Information and Acceptance Testing Integrating Your Code Final Code Submission Acceptance Testing Other Advice and Reminders.
CSE S. Tanimoto Lambda Calculus 1 Lambda Calculus What is the simplest functional language that is still Turing complete? Where do functional languages.
Catie Welsh January 10, 2011 MWF 1-1:50 pm Sitterson 014.
Introduction to Databases Computer Science 557 September 2007 Instructor: Joe Bockhorst University of Wisconsin - Milwaukee.
Colorado Tech CS 145 Intro to UNIX Orientation T’Christopher Gardner
Math 105: Problem Solving in Mathematics
COP3502: Introduction to Computer Science Yashas Shankar.
Introduction COMP283 – Discrete Structures. JOOHWI LEE Dr. Lee or Mr. Lee ABD Student working with Dr. Styner
Fall 2014 MATH 250: Calculus III. Course Topics Review: Parametric Equations and Polar Coordinates Vectors and Three-Dimensional Analytic Geometry.
Class 21: Introducing Complexity David Evans cs302: Theory of Computation University of Virginia Computer Science.
Intro to CIT 594
Lecture 1: Overview CMSC 201 Computer Science 1. Course Info This is the first course in the CMSC intro sequence, followed by 202 CS majors must pass.
Algorithms. Homework None – Lectures & Homework Solutions: – Video:
1/32 This Lecture Substitution model An example using the substitution model Designing recursive procedures Designing iterative procedures Proving that.
Introduction to CIS Jan-16.
1 CS 381 Introduction to Discrete Structures Lecture #1 Syllabus Week 1.
Principles of Imperative Computation Lecture 1 January 15 th, 2012.
Course Overview: Linear Algebra
How to Teach “Programming” Lecture 1: Education for kids – Lego Mindstorms (NQC: Not Quite C)NQC – Scratch.
Introduction to CIT Mar-16.
CIT 592 Discrete Math Lecture 1. By way of introduction … Arvind Bhusnurmath There are no bonus points for pronouncing my last name correctly Please call.
1 Computer Science 1021 Programming in Java Geoff Draper University of Utah.
GEOMETRY MRS. GARIBALDI
W4118 Operating Systems Junfeng Yang. What this course is about  Fundamental OS concepts  OS: one of the most crucial, almost everything thru OS  What?
CSE341: Programming Languages Lecture 26 Course Victory Lap
CSE 332 Overview and Structure
Algebra II Fundamentals
CMSC201 Computer Science I for Majors Lecture 13 – Midterm Review
Principles of Computing – UFCFA Lecture-1
CSE 332 Overview and Structure
CSE341: Programming Languages Lecture 26 Course Victory Lap
Syllabus.
PHYS 202 Intro Physics II Catalog description: A continuation of PHYS 201 covering the topics of electricity and magnetism, light, and modern physics.
Automata and Formal Languages
CSE341: Programming Languages Lecture 26 Course Victory Lap
CSE341: Programming Languages Lecture 26 Course Victory Lap
Principles of Programming Languages
Software Usability Course notes for CSI University of Ottawa
BIT 115: Introduction To Programming
Principles of Computing – UFCFA Week 1
Homework Reading Machine Projects Labs
CMPT 102 Introduction to Scientific Computer Programming
Presentation transcript:

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

Teamwork, Web-work, etc. Encourage teamwork, Google, Wikipedia, etc. Homework: – Submit by to – 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 – Example: Use Google to figure out how to install R (a stat package) LISP ( cygwin (Unix for Windows)

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

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

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)

Numerical Methods: Approximations such as Newton’s Method

Complex Roots

Newton’s Method

Newton’s Method

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 Lecture1/deriv.lsp

Syntax

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

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

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

Homework: Questions  Install (hint: Google) – R (a stat package) – LISP ( – cygwin (Unix for Windows); skip if you have Unix Send me an with: – Subject: Homework #1 from – Body: screen shots (see next couple of slides) – Due Tuesday morning (at sunrise)

Homework: sqrt(4) Screenshots of sqrt(4) and sqrt(-4) from – R – Wolfram Alpha – Newton’s Method – 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")

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)?

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?