Draft2 Proposal for CS0 Introduction to Computer Science: The Language of Computer Science Objectives: Establish and develop critical thinking skills, develop appreciation for scientific lines of inquiry in computing, develop intuitive faculties for data analysis and probability, present intellectual historical significance of computing. Motivation: Computer science uses a particular mathematical language to model computational problems and the world. In this class students will be introduced to this language and its historical background, and be exposed to a variety of beautiful and intriguing mathematical objects and concepts. Students will leave the class with a better understanding and appreciation of the nature of data, computer processing, and its scientific basis. Student will gain skills to be better prepared to model and solve complex problems. Laboratories: The lab section of this class will make extensive use of Matlab. Matlab will be used to motivate, reinforce, and provide visualization for many of the topics covered. In addition, students will have the opportunity to experiment creatively with simple codes to further explore the ideas presented in lecture. Introduction to Proof, Fallacy, and Hypothesis Choice Tree, Product Rule Counting by complementing: it’s sometimes What is a proof? What is a fallacy? What is a hypothesis? Inductive Proofs: Binomial coefficients, Number of r subsets of an n set Standard Form, Strong or All Previous Form, Least-Criminal Example Form Fallacies: Texas sharpshooter, clustering illusions, gambler’s fallacies Counting and Induction Counting Principles Pigeonhole principle: Given n boxes and m > n objects, at least one box must contain more than one object. Letterbox principle: If the average number of letters per box is a, then some box will have at least a letters. and some box has at most a. Inductive Definitions: Bottom-Up Programming, Top-Down Programming Recurrence Relations, Fibonacci Numbers Identities and Visual Representations Correspondence Principle easier to count the “opposite” of something Labs: Logarithmic Spirals Sierpinski’s Triangle Conway’s Game of Life Chaos and Fractals Probability Theory: Counting in Terms of Proportions, Venn Diagrams Birthday Paradox How to pick a Winner? Monty Hall Problem Coupon Collector and Hat Problem Balls and Bins Random Walk on a Line and Plane Bayes’ Theorem Standard Distributions: Gaussian, Poisson Primality Checking, Fingerprinting Labs: Gambler’s Fallacy Birthday Paradox Brownian Motion Numerics alnd Calculations Unary and Binary: Triangular Numbers, Tree Numbers, Dot proofs Geometric sum: (1+x+x2 + … + xn-1) = (xn -1)/(x-1) Base-X representations: unique binary representations k uses log2k + 1 = log2 (k+1) digits in base 2 Largest length n number in base X Egyptian Multiplication Raising To A Power Minimal Addition Chain Lower and Upper Bounds Repeated doubling method The Ideal Computer Finite Automata Infinity: Cantor Diagonalization von Neumann, Church, Turing, Goedel Turing's Legacy: The Limits of Computation Cook’s Theorem NP Completeness What is a Quantum Computer? (Optional) Number Theory, Algebra, Polynomials Euclid GCD Diffie-Hellman, RSA Groups and Fields Polynomials: Fundamental Theorem of polynomials Roots of Degree-d polynomial Lagrange Interpolation: Error detecting/correcting codes Secret sharing. Randomness and Computation (Optional) Graphs and Matching Stable Marriage Traditional Marriage Algorithm Euler Formula Graph Coloring Eigenvalues and Spectrum Google’s PageRank References Intuitive Probability and Random Processses using Matlab by Steven Kay Fractals for the classroom math QA614.86 .P45 1992