8. Turingmaschine trifft Kuckucksuhr

Ähnliche Dokumente
John R. Searle: Das syntaktische Argument und die Irreduzibilität des Bewusstseins. Institut für Physik und Astronomie Universität Potsdam

Quelle: Wikipedia.org. Roger Penrose. Fabian Pawlowski, Hendrik Borghorst, Simon Theler

Physical Symbol Systems Hypothesis (Newell, Simon)

1.1 Was ist KI? 1.1 Was ist KI? Grundlagen der Künstlichen Intelligenz. 1.2 Menschlich handeln. 1.3 Menschlich denken. 1.

Seminar Künstliche Intelligenz Wintersemester 2013/14

Grundlagen der Künstlichen Intelligenz

Information und Produktion. Rolland Brunec Seminar Wissen

Einführung in die Informatik Turing Machines

Seminar Künstliche Intelligenz Wintersemester 2014/15

Die Grenzen der KI: Können Maschinen denken?

Kapitel. Platzhalter. Was sind Platzhalter?

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

Was ist ein Computer? Was ist ein Programm? Können Computer Alles?

Martin Goldstern Der logische Denker Kurt Gödel und sein Unvollständigkeitssatz. 6.

Informatik I. Informatik I Was haben wir gelernt? 28.2 Algorithmusbegriff Was geht nicht? 28.1 Was haben wir gelernt?

ALP I Turing-Maschine

Einführung in die Informatik Turing Machines

Informatik I: Einführung in die Programmierung

Wie können wir entscheiden ob eine Person oder ein Wesen einen Geist hat?

Alan Mathison Turing: Computing Machinery and Intelligence

Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP

Einführung in die Linguistik, Teil 4

Terme sind beliebige (sinnvolle) Zusammenstellungen von Zahlen, Platzhaltern, Rechenzeichen und Klammern.

Einführung in die Methoden der Künstlichen Intelligenz

Algorithmen und Datenstrukturen

ABITURPRÜFUNG 2008 LEISTUNGSFACH INFORMATIK

Was ist ein Computer? Was ist ein Programm? Können Computer Alles?

Arbeitsblatt: Wie rede ich mit einem Roboter?

Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p.

Was ist Informatik? Alexander Lange

Infovorkurs, Teil II: Theoretische Informatik. Motivation. Turing-Maschine. Programmiersprachen

KuKi. Synthetisches Bewusstsein. Ablauf. Neurologisches oder psychoanalytisches Modell des menschlichen Bewusstseins?

Tutorium: Einführung ins wissenschaftliche Arbeiten (Beyer/Schure) Das gute Schreiben: Formelle und sprachliche Aspekte

Das Studium im Fach Informatik

Vorsemesterkurs Informatik

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Einstieg in die Informatik mit Java

Praktische Informatik I

Einführung in die Artificial Intelligence

Evolutionäre Grundlagen des Sozialverhaltens

Brückenkurs Mathematik 2015

Lego-Robotik im Unterricht und First Lego League. Prof. Dr. J.P. Keller, FHNW

Angewandte Mathematik am Rechner 1

ABITURPRÜFUNG 2007 LEISTUNGSFACH INFORMATIK

LOOP-Programme: Syntaktische Komponenten

ABITURPRÜFUNG 2006 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN)

Systemtheorie 1. Einführung Systemtheorie 1 Formale Systeme 1 # WS 2006/2007 Armin Biere JKU Linz Revision: 1.4

Theory of Mind. Seminar: Bewusstsein SS 2003 Dozent: Prof. Joachim Funke Referenten: Markus Dewald, Nicole Kuhn, Nils Pfeiffer

Logik I. Symbole, Terme, Formeln

Vorlesung: Künstliche Intelligenz

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme

Systemtheorie 1. Formale Systeme 1 # WS 2006/2007 Johannes Kepler Universität Linz, Österreich

Algorithmierung und Programmierung - immer aktuell. Material, S.54ff.

Funktionale Programmierung Einführung

Simulation als epistemologische Grundlage für intelligente Roboter

Was ist eine Funktion?

Mehrband-Turingmaschinen und die universelle Turingmaschine

Kapitel 1 1 Einleitung

Künstliche Intelligenz im Informatikunterricht -Unterrichtseinheit Chatbots- Klasse 9/10. Helmut Witten & Malte Hornung

MATHEMATIQ. Der Newsletter der MathSIG (Interessensgruppe innerhalb der Mensa Österreich) Ausgabe 4.

1. Methoden der Hirnforschung 2. Mechanistische Erklärung 3. Neuronale Mechanismen 4. Erklärung des Bewusstseins?

Einführung in die Künstliche Intelligenz

Computational Neuroscience

FORMULIEREN VON AUSSAGEN KONSTANTEN VARIABLEN MENGEN DEFINITIONEN SÄTZEN BEWEISEN LOGIK VERSTEHE, WIE ES FUNKTIONIERT

Vorlesung. Einführung in die mathematische Sprache und naive Mengenlehre

Berechenbarkeit. Script, Kapitel 2

Funktionale Programmierung ALP I. λ Kalkül WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Was können wir wissen?

Einführung in die Theoretische Informatik

Grundlagen der Mathematik

Sudoku. Warum 6? Warum 6?

Telecooperation/RBG. Grundlagen der Informatik I Thema 0: Einführung. Dr. Guido Rößling. Copyrighted material; for TUD student use only

Informatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2007/08. Universität Freiburg, Germany

Künstliche Neuronale Netze

Grundlagen der theoretischen Informatik

Vorlesung Programmieren

Beispiel für die Minimierung von DEAs

Infovorkurs, Teil III: Maschinenabstraktion & Ausblick

Informatische Modellbildung

2.1 Rechnersichten 2.2 Rechnerorganisation: Aufbau und Funktionsweise

Schatten des Geistes

Sozialwissenschaftliche Modelle und Daten SoSe 2010

Computer Science meets Philosophy the Future of AI

Grundlagen der Informatik I Einführung

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Theoretische Informatik. Berechenbarkeit

Klausurrelevante Zusammenfassung WS Kurs Teil 2 Modul 1A B A 1 von

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 0. ORGANISATORISCHES UND ÜBERBLICK

Mengen und Abbildungen

ETHISCHE ASPEKTE BEIM EINSATZ VON KI, MACHINE LEARNING UND DIGITALISIERTEN PROZESSEN HEUTE UND MORGEN

Einstieg in die Informatik mit Java

Beispiel: Rollender Reifen mit

3 Vom Zählen zur Induktion

Gierhardt. Einführung:

AND -logische Multiplikation

! Modellierung und Simulation 1 (SIM1)

Einführung in die Programmierung mit VBA

Konstruktion von Common Sense-Ontologien durch Analyse natürlicher Sprache

sich die Schuhe zubinden können den Weg zum Bahnhof kennen die Quadratwurzel aus 169 kennen

Transkript:

Digitale Computer verarbeiten so sagt man - Symbole, eine Leistung, die sie anscheinend mit dem menschlichen Geist teilen. Edelzwicker gibt diesem Thema eine neue Wendung indem er fragt, welche Symbole ein Computer denn verarbeitet? Er unterscheidet hier problemrelevante von operationellen Symbolen und zeigt, dass gerade die für uns interessanten problemrelevanten Symbole im Computer nicht vorkommen. Ihre Bedeutung ist für den Arbeitsablauf des Rechners ohne Belang, ein Test auf Symbolverständnis erübrigt sich. Sollte aber bei weiter fortschreitender Computer-Technologie ein Test auf Verständnis doch sinnvoll werden, wie könnte er aussehen? Der Test müsste die lexikalische von der synthetischen Methode der Symbolverarbeitung unterscheiden. Edelzwicker zeigt, dass dies durch Anbieten von Umschreibungen möglich ist. Themen: 1. Weg: Betrachtung der Konstruktion 2. Weg: Prüfung von Verständnis Fazit

Der philosophische Edelzwicker To programme a machine to carry out the operation A means to put the appropriate instruction table into the machine so that it will do A. Alan Turing [1] Ich finde nicht die Spur von einem Geist und alles ist Dressur. Goethe [2] Wir interessieren uns für das Mentale und seine Beziehung zum Gehirn. Gleichwohl werfen wir heute, gewissermaßen als Vorübung, einen Blick auf Computer. Werden wir Computer entwickeln, die denken oder die verstehen? Und wie prüfen wir das nach? Computer sind ja mit unserem Gehirn verglichen worden und der bekannten Computer Theory of Mind zufolge (Zusammenfassung in [3]) sind sie, wie auch unsere Gehirne, symbolverarbeitende Systeme [4, 5]. Weiterhin soll die Relation Software / Hardware der Relation Geist / Gehirn entsprechen. Das ist eine verführerische Idee, denn wir verstehen ja schon, wie Software und Hardware zusammenarbeiten, schließlich haben wir beide selbst geschaffen. Somit verstehen wir auch, per Analogie, wie Geist und Gehirn zusammenarbeiten: ein zentrales Problem der Kognitionsforschung wäre gelöst!

Doch Vorsicht, sind Computer wirklich symbolverarbeitende Maschinen? Symbole und Zeichen sind ja solche Objekte, denen eine bestimmte feststehende Bedeutung zugeordnet wurde. Die zugeordnete Bedeutung ist das Besondere an einem Zeichen und einem Symbol. Deshalb ist Symbolverarbeitung eine Verarbeitung mit Bezug auf diese Bedeutung. Dazu muss das verarbeitende System die Bedeutung verstehen oder sie zumindest kennen. Ist das der Fall? Versteht oder kennt ein Computer die Bedeutung der Symbole, mit deren Hilfe wir z.b. ein mathematisch lösbares physikalisches Problem formulieren? Wir wollen einmal genauer betrachten, wie die heute verbreiteten Computer arbeiten. Oder besser, wie wir mit ihnen arbeiten. Denn das Zusammenspiel von Programmierer, Problem, Programm und Hardware ist dabei zu beachten. Also, das geht etwa so: (1) Der Programmierer hat ein formalisierbares Problem. Das schreibt er auf ein Blatt Papier unter Verwendung von Symbolen. Da steht z.b. E für Energie, t für die Zeit usw. E und t nennen wir zu Recht Zeichen oder Symbole, weil sie ja für den Programmierer eine feste, problemrelevante Bedeutung haben. (2) Dann sucht der Programmierer einen Algorithmus, mit dem E(t) dargestellt werden kann. Er findet einen, der aber generell ist und die Funktion y(x) numerisch löst. Darin sind y und x Platzhalter, sie haben keine feste Bedeutung außer der, Variable zu sein (siehe D. Hilbert, zitiert in [6]). Nur so kann

Der philosophische Edelzwicker der gewählte Algorithmus auf viele verschiedene Probleme anwendbar sein. Deshalb drückt der Programmierer sein Problem nun mit y und x aus. Natürlich bleibt es ihm unbenommen, auch bei y an Energie zu denken, bei x an Zeit usw. Nur: für den Algorithmus ist das völlig gleichgültig. Er funktioniert formal syntaktisch. Problemrelevante Bedeutungen sind für ihn Luft, ohne jede Wirkung. Der Programmierer schreibt nun ein Programm, das den Algorithmus in Einzelschritte und schließlich in Instruktionen auflöst. Auf der Ebene des Maschinenprogramms sind diese Instruktionen Wenn-dann-Bedingungen der Art wenn Zeichen-Kennzahl = n, dann Operation m durchführen. Die Zuordnung von Zeichen zu Aktionen ist also lexikalisch. (3) Die Hardware hat die Aufgabe, die Programmschritte und Platzhalter, die ihr als Sequenz von Instruktionen vorliegen, mit physikalischen Strukturen darzustellen. Diese Strukturen sind schnell variable Potential-Muster auf den Chips. Die Hardware funktioniert rein formal; sie führt die Wenn-dann- Instruktionen aus, eine problemrelevante Bedeutung spielt keine Rolle. Die ging ja schon beim Übergang zum Algorithmus verloren. Deshalb sind Computer keine problemrelevant-symbolverarbeitenden Maschinen. Das würde ja heißen, dass Zeichen nach Maßgabe ihrer Problembedeutung verarbeitet werden. Dies kann nur der Programmierer, nur er kennt die Bedeutung.

Der heutige Computer versteht die Bedeutung nicht, dies ist weder vorgesehen noch nötig. Der Computer vollzieht nur mit seinen physikalischen Möglichkeiten die Schritte eines Programms, das den Algorithmus abarbeitet. Nun werden Sie vielleicht sagen: schön und gut, klingt plausibel. Aber die Entwicklung der Computer und Programme geht weiter. Kann man denn beweisen, dass der Computer, oder etwa ein zukünftiger Roboter die Bedeutung ignoriert? Man kann es, und wir wollen das auf zwei Wegen versuchen. 1. Weg: Betrachtung der Konstruktion Das Urbild der Computer ist die Turingmaschine. Diese nur gedachte Maschine kann virtuell alles leisten, was digitale Rechner leisten können. Sie ist deshalb so generell, weil sie durch Aneinanderreihung von nur wenigen Arten elementarer Operationen die komplexeren Instruktionen anderer Computer darstellen und befolgen kann. Ihre Operationen sind Zeichen vom Band lesen, Zeichen aufs Band schreiben, Band nach rechts bewegen, Stopp usw. [1, 7]. Nur gestützt auf Zeichen die solche einfachen operationellen Bedeutungen haben, simuliert die Turingmaschine also die komplizierten Instruktionen jedes beliebigen digitalen Rechners. Wenn die Turingmaschine nun eines dieser operationellen Zeichen liest, versteht sie es dann? Es sieht fast so aus, denn wenn sie z.b. ein Stoppzeichen liest, dann stoppt sie das Band. Muss das nun bedeuten, dass sie das Zeichen im se-

Der philosophische Edelzwicker mantischen Sinne verstanden hat? Nein! Vielmehr ist in der Konstruktion vorgesehen, dass das Lesen eines Zeichens eine bestimmte Aktion bewirkt. Dies wird mit einer lexikalischen Wenn-dann-Bedingung erreicht, die in den Instruktionen der Turingmaschine enthalten ist. Alan Turing [1]: To programme a machine to carry out the operation A means to put the appropriate instruction table into the machine so that it will do A. Wir können uns das ganz mechanisch vorstellen, wie ein Räderwerk. Wegen der implementierten Wenn-dann-Bedingung kann man vielleicht sagen, dass die Maschine dieses Zeichen in einem passiv-lexikalischen Sinne kennt. Doch das Stoppzeichen ist ja kein Zeichen mit problemrelevanter Bedeutung, sondern ein operationelles Zeichen. Es ist wichtig für den Ablauf der Sequenz von Programmschritten, es gehört zur Syntax. Zeichen mit problemrelevanter Bedeutung würden wir in den Instruktionen und in dem Computer vergeblich suchen. Der Computer vollzieht ja nur - mit einer schnellen elektronischen Mechanik den schrittweisen Ablauf eines Algorithmus und schon dieser ist frei von problemrelevanter Bedeutung. Ein digitaler Computer ist ein elektrisches Räderwerk. Nehmen wir eine bekannte Mechanik, eine Kuckucksuhr. Zur vollen Stunde kommt der Vogel heraus. Hat er das Zifferblatt richtig gedeutet? Oder gibt es ein Räderwerk? Wir machen die Uhr auf und was finden wir? Ein Räderwerk. Ein aktives Kennen oder ein Verstehen, andererseits, geht über eine mechanische, eine lexikalische Zuordnung weit hin-

aus. Deshalb würde das Verständnis von Bedeutung zusätzliche Module erfordern, welche die Bedeutung komplexer Symbole synthetisch ermitteln, die vielleicht sogar Bewusstsein generieren müssen. Das hat der Konstrukteur nicht vorgesehen, er hat eine Uhr entworfen, oder einen Computer, keinen Homunkulus. Ich sehe, dass Sie auf ihren Bänken unruhig werden, einige heben die Hand. Bevor wir diskutieren, mein letzter Punkt war, dass das Räderwerk das Verhalten des Kuckucks schon erklärt. Ebenso erklärt der Gebrauch der lexikalischen Wenn- Dann-Bedingungen die Leistung der Turingmaschine. Sollte zusätzlich Bewusstsein im Spiel sein, dann wäre es im Spiel als Epiphänomen, ohne funktionelle Bedeutung. Das war mein Punkt. Ich sehe, dass die Hände wieder herunter gehen. 2. Weg: Prüfung von Verständnis Was ist Verständnis? Man versteht einen Vorgang, wenn man ihn auf Grund seiner Gesetzmäßigkeit mental simulieren kann und wenn man das Resultat und seine Implikationen begründen und erläutern kann. Ähnlich bei einfachen und komplexen Zeichen. Man versteht einen Satz (das wäre ein komplexes Zeichen), wenn man mit den Regeln der Syntax aus den einfachen Bedeutungsträgern (Worten) die Bedeutung der Satzaussage synthetisch ermitteln kann. Die deklarative Bedeutung der Worte ist lexikalisch vorgegeben, die Bedeutung

Der philosophische Edelzwicker des Satzes aber nicht. Sie, die kognitive Signifikanz, wird erst mit den Regeln der Syntax synthetisiert. Und das Resultat muss uns bewusst werden, sonst können wir es nicht mitteilen und begründen. Wie kann man beweisen, dass Verständnis vorliegt? Man beweist sein Verständnis, wenn man die Satzbedeutung erläutern kann und für Umschreibungen des Satzes wieder dieselbe Bedeutung angibt. Wenn z.b. der Satz lautet: Deute auf den von Dir aus ersten Vogel in der Reihe! und die Umschreibung: Und nun zeige auf das vorderste gefiederte Tier! und der Proband deutet wieder auf den ersten Vogel, dann hat er die Bedeutung der beiden Sätze verstanden. Denn die Bedeutung ist das einzige, was den beiden Sätzen gemeinsam ist. Die wichtigen Stichworte zum bewussten Verständnis sind: Bei Vorgängen: das geistige Simulieren mit Gesetzmäßigkeiten, das Bewusstwerden des Resultates, seiner Implikationen und (Test) die Beschreibung des gesetzmäßigen Zusammenhanges. Bei Zeichen oder Aussagen: die synthetische Konstruktion der Satzbedeutung mit den Regeln der Sprache, das Bewusstwerden des Resultates und seiner Implikationen sowie (Test) das Erkennen von Umschreibungen. Die Täuschung, vor der ein Tester auf der Hut sein muss, besteht darin, dass der Prüfling lexikalisches Wissen einsetzt, statt konstruktiv mit den relevanten Gesetzen zu arbeiten.

Heutige Computerprogramme würden lexikalisch arbeiten, mit bei der Programmierung eingelesenen Tabellen, um das richtige Resultat zu erhalten. Mit Synonymtabellen wie vorderstes manchmal = erstes, gefiedertes Tier = Vogel wäre das schon möglich. Deshalb kann man mit sehr sehr umfangreichen Lexika, die auch sehr up-to-date sind, wie in dem Chinesische Zimmer von J.R. Searle, erfolgreich Verständnis vortäuschen [8]. Immerhin, wenn das Verständnis für mindestens eine der beiden Formulierungen fehlt, dann werden die beiden partout nicht als gleichbedeutend erkannt. Und das ist das Resultat, was Sie mit ihrem PC und selbst mit einem heutigen Supercomputer als Testkandidat erhalten würden. Es erscheint deshalb überflüssig, heutige Computer oder gar Kuckucksuhren einem solchen Test zu unterziehen. Allerdings werden ähnliche Prüfungen gleichwohl durchgeführt, so das populäre imitation game (can machines think?), frei nach Alan Turing [1]. Man will Fortschritte der Technologie antizipieren und für sie gerüstet sein. Hier sind vor allem jüngste Fortschritte auf dem Gebiet der Künstlichen Intelligenz (KI) zu nennen. Dabei geht es um die Simulation intelligenten Verhaltens auf Computern. Man spricht hier von Simulation, weil die Implementierung von Bewusstsein dazu nicht erforderlich ist. Per Simulation, also, ist eine regelabhängige synthetische Ermittlung von Bedeutung schon heute mit besonderen Expertensystemen möglich.

Der philosophische Edelzwicker Dieser Fortschritt wird nicht nur die Computer, sondern auch uns vor neue Aufgaben stellen. Was aber die heute verbreiteten Computer anlangt, so schließen wir mit Goethe:... Ich finde keine Spur von einem Geist und alles ist Dressur. Und die Computeranalogie des Geistes? Das Gehirn ein Rechenwerk, der Geist sein Programm? Die Charakterisierung von heutigen Computern, Turingmaschinen und von anderen nicht-neuronalen physikalischen Symbolsystemen (PSS) als symbolverarbeitende Maschinen mit impliziertem Symbolverständnis ist leider irreführend. Ein solches Symbolverständnis ist deshalb kein generelles Merkmal von Computern, weil die Maschinen die Bedeutung problemrelevanter Symbole nicht verstehen, ja, diese Symbole gar nicht kennen. Für den Funktionsablauf sind nur die operationellen Symbole relevant und die werden lexikalisch verarbeitet. Analogien zu Neuronensystemen sind auf Sand gebaut, wenn sie von der PSS-Charakterisierung ausgehen. Ironischerweise sind jedoch Neuronensysteme wie das Gehirn in der Tat PSS, d.h. symbolverarbeitende Systeme! 1 Sie sind es, die problemrelevante komplexe Symbole abhängig von ihrer synthetisch ermittelten Bedeutung verarbeiten. Bei der Programmierung eines Rechners ist es somit der Pro- 1 Siehe das Kapitel 'Neuronaler Kode und Konstruktivismus'.

grammierer, der die problemrelevante Symbolverarbeitung leistet. Wer also behauptet, Computer generell verarbeiten Symbole in einer Weise, die über das Lexikalische hinausgeht, der verwechselt die Maschine mit ihrem Programmierer. Fazit: Bei Symbolen unterscheidet man tunlichst die problemrelevanten von den operationellen. Ein heutiger Computer liest nur seine operationellen Symbole. Er setzt sie lexikalisch um, versteht ihre Bedeutung jedoch nicht. Problemrelevante Symbole aber versteht oder kennt der Computer schon deshalb nicht, weil diese Symbole die Hardware nie erreichen. Somit ist von den heute verbreiteten Maschinen kein kognitivintelligentes Verhalten zu erwarten. Intelligente Verarbeitung von problemrelevanter Symbolbedeutung scheint erst in einer seltsamen Symbiose von Hardware, Software und Kreativität des Programmierers zustande zu kommen. Der Computer ist dann nur ein Teil der tatsächlich symbiotischen Symbolverarbeitung. Vor allem aber: schon wegen der unterschiedlichen Symbolverarbeitung bei Mensch und Maschine ist die Software / Hardware Relation des Computers der Geist / Gehirn Relation des Programmierers keineswegs vergleichbar. Die Software ist kein Produkt des Computers, auf dem sie läuft. Aber das

Der philosophische Edelzwicker Mentale ist eine Emergenz (ein Produkt) neuronaler Mechanismen. Doch die Entwicklung geht weiter., die der biologischen PSS langsam, die der Computersysteme und ihrer Software schnell. Wir werden testen müssen. Man darf gespannt sein. Bibliographie 1. Turing, A.M., Computing Machinery and Intelligence. Mind, 1950. 50: p. 433-460. 2. Goethe, J.W., Faust. Der Tragödie erster Teil. 1829, Weimar: Cotta. 3. Beckermann, A., Analytische Einführung in die Philosophie des Geistes. 2. Auflage ed. 2001: de Gruyter. 4. Newell, A. and H.A. Simon, Computer Science as Empirical Inquiry: Symbols and Search. Communications of the ACM, 1976. 19: p. 113-126. 5. Newell, A., Physical Symbol Systems. Cognitive Science, 1980. 4: p. 135-183. 6. Krämer, S., Symbolische Maschinen. Idee der Formalisierung im geschichtlichen Abriss. 1988, Darmstadt: Wissenschaftliche Buchgesellschaft. 227. 7. Penrose, R., The Emperor's New Mind. 1991, New York: Penguin Books. 466. 8. Searle, J.R., Minds, Brains, and Programs. Behavioral and Brain Sciences, 1980. 3: p. 417-424.