Presentation is loading. Please wait.

Presentation is loading. Please wait.

Wassily Kandinsky Willem de Kooning Joan Miro Russ Abbott, California State University, Los Angeles.

Similar presentations


Presentation on theme: "Wassily Kandinsky Willem de Kooning Joan Miro Russ Abbott, California State University, Los Angeles."— Presentation transcript:

1 Wassily Kandinsky Willem de Kooning Joan Miro Russ Abbott, California State University, Los Angeles

2 5/10/2015What is abstraction?2  PHILOSOPHY conceptualization : the process by which people develop concepts either from experience or from other concepts. (Encarta.com)

3 5/10/2015What is abstraction?3  When an entity, biological or mechanical, makes a distinction (e.g. by behaving differently under different circumstances) it has not created an abstraction.  An abstraction is a reified distinction, a distinction for which the entity has a name and to which it can refer—abstractly.  Abstraction implies conceptualization, which implies a mind that holds the abstraction.

4 5/10/2015What is abstraction?4 eval(A + B, C) :- eval(A, AVal), eval(B, BVal), C is AVal + BVal. eval(A - B, C) :- eval(A, AVal), eval(B, BVal), C is AVal - BVal. eval(A * B, C) :- eval(A, AVal), eval(B, BVal), C is AVal * BVal. … eval(Expr, Result) :- Expr =.. [Op | Args], isArithmeticOp(Op), !, map(eval, Args, ArgsVals), Expr1 =.. [Op | ArgsVals], Result is Expr1. Liskov: Abstraction by parameterization extracts an essential core of some computational element and reifies it as a named element of its own, leaving parameters to be filled in when the abstraction is instantiated.

5 5/10/2015What is abstraction?5 switch (expression) { case 1: code_1; case 2: code_2; … } class SuperClass; class Class1 extends SuperClass; class Class2 extends SuperClass; … Convert a distinction ( switch ) into a concept ( class )

6 5/10/2015What is abstraction?6  Since abstraction results from the extraction and reification of the essence of something, one cannot extract an essence of something until that thing exists.  A significant thread in computer science is the process of becoming aware of and then reifying a thought process as an abstraction.  Backus conceived Fortran when he realized that it was possible to program a computer to do the same sort of translation that programmers did mentally.  Then came compiler generators, etc.

7 5/10/2015What is abstraction?7  Software composition involves (a) organizing software elements (b) to serve a given purpose.  Bottom-up. The pieces existed—even if only in one’s mind—before they could be organized.  Top-down. The intended meaning existed before the software could be written.  Software composition—i.e., implementing an abstraction—is where top-down meets bottom-up.  That’s the magic that we as human beings can do.

8 5/10/2015What is abstraction?8  Yes. We teach abstraction when we teach programming languages and techniques.  We are reasonably successful at doing this. Students can learn how to use abstractions. But learning abstraction tools requires a lot of work. primes = sieve [2.. ] where sieve (p:xs) = p:sieve [x | x  xs, (x `mod` p) /= 0] fib = 0 : 1 : zipWith (+) fib (tail fib)  Yes, self-awareness can be taught, but with difficulty.  To do that teach design patterns by giving problems for which a design pattern is a solution but require students to come with it themselves.  No, abstraction as brilliance cannot be taught.  But one can be taught to recognize good abstractions. This is similar to recognition (P) vs. generation (NP), which is typically much harder.

9 5/10/2015What is abstraction?9  To be successful software engineers students must be able to construct conceptual—i.e., abstract—models of different customer domains.  Give students as much experience as possible in seeing the world in different ways.  Teach how different disciplines model the world—especially how they use visualization and modeling programs to think.

10 5/10/2015What is abstraction?10  Abstraction by parameterization extracts an essential core of some computational element and reifies it as a named element of its own, leaving parameters to be filled in when the abstraction is instantiated.  Abstraction by specification abstracts from the implementation details (how the module is implemented) to the behavior users can depend on (what the module does).


Download ppt "Wassily Kandinsky Willem de Kooning Joan Miro Russ Abbott, California State University, Los Angeles."

Similar presentations


Ads by Google