1 / 21

Lecture 17

Lecture 17. Programming Languages (S&G, ch. 8). Read S&G ch. 9 (Compilers and Language Translation). The Phenomenology of Tools. Phenomenology. A philosophical method A phenomenon is some aspect of concrete human experience of the world

fishman
Download Presentation

Lecture 17

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture 17 Programming Languages (S&G, ch. 8) CS 100 - Lecture 17

  2. Read S&G ch. 9(Compilers and Language Translation) CS 100 - Lecture 17

  3. The Phenomenology of Tools CS 100 - Lecture 17

  4. Phenomenology • A philosophical method • A phenomenon is some aspect of concrete human experience of the world • Phenomenology investigates the invariant structure of some phenomenon by systematic variation of that experience • Has its own technical terminology CS 100 - Lecture 17

  5. Phenomenology of Tools • The phenomena of concern are tools in the broadest sense • Developed by Don Ihde • Here we are concerned with tools related to computers: • computers themselves • programming languages • word processors • email • etc. CS 100 - Lecture 17

  6. Tools are Ampliative& Reductive • Example: using stick to knock down fruit • Ampliative aspects • Greater power or performance • Extended experience • Reductive aspects • Experience is less immediate • Action is channeled by the tool CS 100 - Lecture 17

  7. Examples • Consider ampliative & reductive aspects of: • eye glasses • automobiles • telephones • email • recorded music • internet • word processor CS 100 - Lecture 17

  8. Utopians vs. Dystopians • Technological utopians: • focus on ampliative aspects • emphasize practical advantages • Technological dystopians: • focus on reductive aspects • discount practical advantages • Both attitudes are reduced focuses • Better: • acknowledge essential ambivalence of our experience of the tool • “all technology is non-neutral” — Ihde CS 100 - Lecture 17

  9. Phenomenologyof Programming Languages • Ampliative aspect: • automation of tedious, error-prone activities • error checking • Reductive aspect: • loss of direct control of machine resources • possible inefficiency CS 100 - Lecture 17

  10. “Fascination” & “Fear” • Typical responses to a new technology • Utopians are fascinated by ampliative aspects • embrace & promote the new technology • tend to over-apply the new technology • inclined to further amplification • Dystopians fear reductive aspects • may view ampliative aspects as dangerous • ambivalent feelings of power or helplessness • Greater familiarity  balanced understanding of benefits & limitations CS 100 - Lecture 17

  11. Mastery & Embodiment • Tool replaces immediate (direct) with mediated (indirect) experience • When tool is mastered, its mediation becomes transparent (not invisible) • Contrast: • bad tool or unskillful use  experienced as object,relate to it • good tool & mastery  partially embodied,relate through it • With mastery, objectification becomes embodiment CS 100 - Lecture 17

  12. Focus & Action • Example: three writing technologies • dip pen • electric typewriter • word processor • Tools influence focus: • makes some aspects of situation salient,hides others • Tools influence action: • makes some actions easy, others awkward • Tools subtly influence what we notice and do CS 100 - Lecture 17

  13. Cultural Embedding • All technologies are culturally embedded • Our reactions to them are influenced by: • personal backgrounds • collective background • Stylistic inclinations may vary from user to user CS 100 - Lecture 17

  14. Conclusions • The phenomenology of tools helps us to: • understand people’s experience to tools • move beyond our own limited perspectives • understand social consequences of tools • exercise informed choice about adopting new technologies • design better tools • understand tool’s effect on focus & action • “All technology in non-neutral” CS 100 - Lecture 17

  15. Functional Programming CS 100 - Lecture 17

  16. Definition In functional programming, all programs are mathematical functions: • The arguments of the function are the inputs to the program • The computed value of the function is the only output from the program • There are no side-effects • The assignment statement is not used! CS 100 - Lecture 17

  17. functional program: function arguments result procedural program: procedure inputs output X side-effects Side-effects are hidden interfaces to a program Functions vs. Procedures with Side-Effects CS 100 - Lecture 17

  18. like a verb like the objects of the verb Scheme & LISP Syntax ( <function> <argument 1> <argument 2> … ) CS 100 - Lecture 17

  19. Examples • (log 2) — compute the logarithm of 2 and return it • (* 2 x) — compute the product of 2 and x • (list 3 4 5) — make a list out of the numbers 3, 4, and 5 • (define (double x) (* 2 x)) — define a function with the header “(double x)” and the body “(* 2 x)” • (double 4) — apply the user-defined function double to 4 CS 100 - Lecture 17

  20. Conditional Functions (if <condition><value if true> <value if false> ) (cond ( <condition 1><value if cond 1 true> ) ( <condition 2><value if cond 2 true> ) … ( else <value if all conds false> ) ) CS 100 - Lecture 17

  21. Run DrScheme CS 100 - Lecture 17

More Related