780 likes | 872 Views
Great Theoretical Ideas In Computer Science. Introduction: Content And Method. Professors Steven Rudich and Bruce Maggs Carnegie Mellon University. Lecture 1. CS 15-251. Moral: BE PUNCTUAL!. Or else you will miss the magic tricks that happen at 3:00pm sharp.
E N D
Great Theoretical Ideas In Computer Science Introduction:Content And Method Professors Steven Rudich and Bruce Maggs Carnegie Mellon University Lecture1 CS 15-251
Moral:BE PUNCTUAL! • Or else you will miss the magic tricks that happen at 3:00pm sharp. • Sit close-up: some of the tricks are hard to see from the back.
Course Staff • Steven RudichBruce Maggs • A: Cory Williams • B: Pat Riley • C: Jason Crawford • D: Dominic Mazzoni • *: Ke Yang
Putting You On The Spot • Four guys want to cross a bridge in the dark of night. They have one flashlight and the bridge can hold only two people at once. Their walking speeds allow them to cross in 1, 2, 5, and 10 minutes, respectively. Is it possible for them to all cross in 17 minutes in such a way that no one walks in the dark?
You have one minute to solve this problem • Four guys want to cross a bridge in the dark of night. They have one flashlight and the bridge can hold only two people at once. Their walking speeds allow them to cross in 1, 2, 5, and 10 minutes, respectively. Is it possible for them to all cross in 17 minutes in such a way that no one walks in the dark?
That was a Microsoft interview question. • Why do you think that they ask such questions, as opposed to asking for a piece of code to do binary search?
The future belongs to the computer scientist who has • Content: An up to date grasp of fundamental problems and solutions • Method: Principles and techniques to solve the vast array of unfamiliar problems that arise in a rapidly changing field
Course Content • A survey of fundamental theoretical ideas in Computer Science as they occur in a variety of important applications • An introduction to discrete mathematics • Effective problem solving, learning, and communication techniques
Please feel free to ask questions!
Course Document • Let’s examine it together:
PROS Challenging Cutting Edge Syllabus – No Text Like It Important – Good For Your Future Fun CONS Very Hard No Text -- Impairs Learning For Some Students Lowers GPA – Bad For Your Future “Like Hitting Myself In The Head With A Brick” Should I Take The Course?
Course Content • A survey of fundamental theoretical ideas in Computer Science as they occur in a variety of important applications • An introduction to discrete mathematics • Effective problem solving, learning, and communication techniques
A survey of fundamental theoretical ideas in Computer Science as they occur in a variety of important applications For example . . .
Time Input Size Growth Rates
Recursion ? ?
Factoring / Multiplication p, q pq
Induction has many guises.Master their interrelationship. • Formal Arguments • Loop Invariants • Recursion • Algorithm Design • Recurrences
Effective problem solving, learning, and communication techniques
Exemplification:Try out a problem or solution on small examples.
Representation:Understand the relationship between different representations of the same information or idea 1 2 3
Modularity:Decompose a complex problem into simpler subproblems
Abstraction: Abstract away the inessential features of a problem =
Refinement:The best solution comes from a process of repeatedly refining and inventing alternative solutions
Build your toolboxof abstract structures and concepts. Know the capacities and limits of each tool.
= Similarity:A significant form of intellectual progress is to be able to classify and manipulate distinct objects with regard to a sense in which they are similar. 13 = 21 (modulo 2)
Please feel free to ask questions!
((( ))) Stationary Hand Wiggling Hand You have a question or comment of any nature You have something relevant to say to what is being spoken now
1 + 2 + 3 + . . . + n-1 + n = S n + n-1 + n-2 + . . . + 2 + 1 = S (n+1) + (n+1) + (n+1) + . . . + (n+1) + (n+1) = 2S n (n+1) = 2S
1 + 2 + 3 + . . . + n-1 + n = S n + n-1 + n-2 + . . . + 2 + 1 = S (n+1) + (n+1) + (n+1) + . . . + (n+1) + (n+1) = 2S n (n+1) = 2S
1 + 2 + 3 + . . . + n-1 + n = S n + n-1 + n-2 + . . . + 2 + 1 = S (n+1) + (n+1) + (n+1) + . . . + (n+1) + (n+1) = 2S n (n+1) = 2S
1 + 2 + 3 + . . . + n-1 + n = S n + n-1 + n-2 + . . . + 2 + 1 = S (n+1) + (n+1) + (n+1) + . . . + (n+1) + (n+1) = 2S n (n+1) = 2S
Algebraic argument Let’s restate this argument using a geometric representation
= number of white dots. 1 2 . . . . . . . . n
= number of white dots = number of yellow dots n . . . . . . . 2 1 1 2 . . . . . . . . n