SLIDE 1
X - 1
CS111 Wrap-Up
X - 2
Big Ideas in Computer Science
- Divide, Conquer, & Glue
- Abstraction
- Modularity
X - 3
Divide, Conquer, & Glue
- Suppose you have a problem P and you want its solution S
P P1 P2 P3 P4 S4 S3 S2 S1 S Divide into subproblems Conquer subproblems Glue (combine) the subproblems into solution
X - 4
Abstraction
- Abstraction is a way of capturing common patterns
- For example, once you learn how to drive, you can drive any car -
they all have common features such as steering, gas, and breaking. Once you learn these, you can use any car.
- Of course, every car is different - they have different engines and
breaking systems. But I don’t need to understand the details of the different engines to drive different cars (which is good, because I don’t have a clue!)
- But I can drive, because I understand the interface (the breaks, the
gas, the steering)
X - 5
Modularity
- Modularity occurs when components are designed in a
standard manner such that they can be put together in a mix and match way – legos – computer peripherals – phone jacks – couches
- If we have abstraction AND modularity, we can build
bigger things out of smaller things (a very powerful idea)
X - 6