| reckless intuitions of an epistemic hygienist ( @ 2008-09-15 11:15:00 |
| Entry tags: | education |
teaching lambda calculus early
I wonder... if we taught lambda calculus to high schoolers / college freshmen, wouldn't that be an excellent way to give them (1) skills to express themselves precisely, and (2) familiarity with abstract concepts?
As an added benefit, when they become instructors someday, they'll be able to write their textbooks and homeworks in a way that is unambiguous (all mathematical questions can be translated into questions about the output of a single computer program).
I think that most of the confusions experienced by people studying math (regardless of level) are about variable binding, quantifier scope, etc. I have a BS degree in math (and a Master's in logic), and most of my confusions are of this type also, when I'm learning unfamiliar math.
Isn't the meaning of the word "abstraction" fully captured by lambda abstraction?
The idea of first-class functions is all about turning verbs into nouns... Function calls are usually understood as applying a verb to a list of nouns. Dealing with first-class functions involves changing (extending) metaphors: now, functions can be objects too, i.e. verbs can be nouns too. This may be related to the fact that computer scientists like making nouns out of verbs, verbs out of adjectives, etc.
The extended metaphor may be that functions are "machines": they do something but they can also be fed into other machines.
---
Tangentially, Kiczales's class has interesting reading: Lucy Suchman - Human Machine Reconfigurations