Big Ideas in Computer Science Divide, Conquer, & Glue CS111 - - PDF document

big ideas in computer science
SMART_READER_LITE
LIVE PREVIEW

Big Ideas in Computer Science Divide, Conquer, & Glue CS111 - - PDF document

Big Ideas in Computer Science Divide, Conquer, & Glue CS111 Wrap-Up Abstraction Modularity X - 1 X - 2 Divide, Conquer, & Glue Abstraction Suppose you have a problem P and you want its solution S Abstraction is a


slide-1
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

A CS111 Retrospective

PS0: Web form

slide-2
SLIDE 2

X - 7

A CS111 Retrospective

PS1: Writing simple Java code, reading contracts, extending someone else’s code

X - 8

A CS111 Retrospective

PS2: Writing methods, modularity, applets, local variables, expression and assignment statements

X - 9

A CS111 Retrospective

PS3: More methods, methods with parameters, methods which return values, abstraction

X - 10

A CS111 Retrospective

PS4: Conditionals, good programming style,

  • bjects and classes

X - 11

A CS111 Retrospective

PS5: Recursion, JEMs, inheritance

X - 12

A CS111 Retrospective

PS6: More recursion, recursive methods that return values

slide-3
SLIDE 3

X - 13

A CS111 Retrospective

PS7: Lists, strings, recursive list methods, applications, linear collection data structures

X - 14

A CS111 Retrospective

PS8: Iteration (while and for loops), lists of lists

X - 15

A CS111 Retrospective

PS9: Arrays, data abstraction, declaring Java classes, using Java graphics, working in pairs