csci 383 object-oriented programming & design lecture 2 martin van bommel

15
CSCI 383 Object-Oriented Programming & Design Lecture 2 Martin van Bommel

Upload: chester-lynch

Post on 17-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CSCI 383 Object-Oriented Programming & Design Lecture 2 Martin van Bommel

CSCI 383

Object-Oriented Programming & Design

Lecture 2

Martin van Bommel

Page 2: CSCI 383 Object-Oriented Programming & Design Lecture 2 Martin van Bommel

Fall 2010 CSCI 383 Lecture 2 M. van Bommel 2

Why is OOP Popular?

OOP has been the dominant programming paradigm for more than twenty years.

Why is it so popular? Proven record of success Scales well from small problems to large

Nevertheless, programming is still a task that requires skill and learning

Page 3: CSCI 383 Object-Oriented Programming & Design Lecture 2 Martin van Bommel

Fall 2010 CSCI 383 Lecture 2 M. van Bommel 3

Disclaimer

Effective use of object-oriented principles requires one to view the world in a new way

The use of an object-oriented language does not make one an object-oriented programmer

““Fortran programs can be written in any language”Fortran programs can be written in any language”

Page 4: CSCI 383 Object-Oriented Programming & Design Lecture 2 Martin van Bommel

Fall 2010 CSCI 383 Lecture 2 M. van Bommel 4

A New Paradigm

Object-oriented programming is often described as a new paradigm. We start by considering the definition of this term:

Paradigm n. 1. A list of all the inflectional forms of a word taken as illustrative example of the conjugation or declension to which it belongs. 2. An example or model.

[Late Latin paradigma, from Greek paradeigma, modern paradeiknunai, to compare, exhibit.]

Page 5: CSCI 383 Object-Oriented Programming & Design Lecture 2 Martin van Bommel

Fall 2010 CSCI 383 Lecture 2 M. van Bommel 5

Sapir-Whorf Hypothesis

In linguistics, there is a hypothesis that the language in which an idea or thought is expressed colors or directs in a very emphatic manner that nature of the thought

Page 6: CSCI 383 Object-Oriented Programming & Design Lecture 2 Martin van Bommel

Fall 2010 CSCI 383 Lecture 2 M. van Bommel 6

Sapir-Whorf Meaning

The SWH argues that we experience the world based on the words we have

In an experiment, people were asked to describe how many bands or stripes they saw in a rainbow

Since rainbows are a continuum of colors, no empirical stripes or bands

Nevertheless, people saw as many stripes or bands as their language possessed primary color words

Inuit language and snowArabic language and camels

Page 7: CSCI 383 Object-Oriented Programming & Design Lecture 2 Martin van Bommel

Fall 2010 CSCI 383 Lecture 2 M. van Bommel 7

Sapir-Whorf Implications

Is it true that the way we think is completely determined by the language we use?

This implies the words we have determine the things we can know

If we have an experience, we are confined not just in our communication of it, but also in our knowledge of it, by the words we have

Page 8: CSCI 383 Object-Oriented Programming & Design Lecture 2 Martin van Bommel

Fall 2010 CSCI 383 Lecture 2 M. van Bommel 8

Sapir-Whorf Counter-argument

People usually have trouble expressing themselves and are aware that the language is not adequate for what they mean

“That’s not quite what I meant to say…” This provides evidence that what is being

thought is not a set of words because one can understand a concept without being able to express it in words

Truth probably somewhere in the middle language may not completely determine but can

influence the way we think

Page 9: CSCI 383 Object-Oriented Programming & Design Lecture 2 Martin van Bommel

Fall 2010 CSCI 383 Lecture 2 M. van Bommel 9

Sapir-Whorf Application

What in the world does this have to do with computer programming languages?

What is true of natural languages is even more true of artificial computer languages

“If all you have is a hammer, everything looks like a nail."

Page 10: CSCI 383 Object-Oriented Programming & Design Lecture 2 Martin van Bommel

Fall 2010 CSCI 383 Lecture 2 M. van Bommel 10

Example of SW

A student working in DNA research had the task of finding whether any pattern of length m (m fixed and small) is repeated in a given DNA sequence of length n (n very very large)

ACTCGGATCTTGCATTTCGGCAATTGGACCCTGACTTGGCCA ...

Page 11: CSCI 383 Object-Oriented Programming & Design Lecture 2 Martin van Bommel

Fall 2010 CSCI 383 Lecture 2 M. van Bommel 11

Example (cont’d)

Wrote the simplest (and therefore, most efficient?) Fortran program:

DO 10 I = 1, N-M DO 10 J = I+1, N-M

FOUND = .TRUE. DO 20 K = 1, M

20 IF X[I+K-1] .NE. X[J+K-1] THEN FOUND = .FALSE. IF FOUND THEN ...

10 CONTINUE

Took a depressingly long time. Asymptotic time complexity?

Page 12: CSCI 383 Object-Oriented Programming & Design Lecture 2 Martin van Bommel

Fall 2010 CSCI 383 Lecture 2 M. van Bommel 12

A Better Solution

A friend writing in APL solved by rearranging the data and sorting Reorganize in NxM matrix

A C T C G G positions 1 to M C T C G G A positions 2 to M+1 T C G G A T positions 3 to M+2 C G G A T T positions 4 to M+3 G G A T T C positions 5 to M+4 . . .

Sort matrix on rows and find equal adjacent row

Ran surprisingly quickly, thesis saved

Page 13: CSCI 383 Object-Oriented Programming & Design Lecture 2 Martin van Bommel

Fall 2010 CSCI 383 Lecture 2 M. van Bommel 13

What lead to the discovery?

Why did APL programmer find better solution? Fortran programmer was blinded by a culture that

valued assignment, comparison, loops, and simple programs.

Fortran programmer thinks in terms of loops Sorting is a built-in operation in APL, good

programmers try to find novel uses for sorting. APL programmer thinks in terms of manipulating

sequences; sort is built-in, loops do not exist APL is not a “more efficient” language than Fortran

The fundamental point is that the language you speak leads you in one direction or another

Page 14: CSCI 383 Object-Oriented Programming & Design Lecture 2 Martin van Bommel

Fall 2010 CSCI 383 Lecture 2 M. van Bommel 14

S-W & Computation

Sapir-Whorf hypothesis says there are some thoughts you can express in one language that you cannot express in another

However, in computation, we have the following assertion:

Church's Conjecture: Any computation for which there exists an effective procedure can be realized by a Turing machine language

Page 15: CSCI 383 Object-Oriented Programming & Design Lecture 2 Martin van Bommel

Fall 2010 CSCI 383 Lecture 2 M. van Bommel 15

Church's Conjecture

Anything can be done in any language, but it may simply be easier or more efficient to use one language or another.

Note that is almost directly opposite to the SWH

Would YOU want to write an event-driven GUI interface in Turing machine language?

Bottom line: Languages lead you, but do not prevent you from going anywhere you want