CS0: Computer Science is not merely about computers and

advertisement
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
Download