10
Nov
2010

Programmieren II

Wiederholung der Begriffe
-
neue Begriffe:
Attribute

Was leisten Sprachen im allgemeinen?
(nicht nur Computersprachen)
Wieviele Computersprachen gibt es?
(Warum sind das so viele)

Kommunikation ist das Schlagwort. Wir wollen der Maschine mitteilen, was sie tun soll.
(Wieso brauchen wir für Radio und Fernsehen keine Programmiersprache?)

Die Vielfältigkeit macht es aus.
Basis-Kommunikation:
Kommandos auf der Ebene 01011010. Über einzelne Schalter in den Programmspeicher einzulesen.
Mühsam. Ein Kommando "Addieren" beginnt z.b. immer mit 01000xxx. Wäre es nicht angenehm, einfach "Addiere" xxx sagen zu müssen? Das xxx wird später auch noch einmal ein "Wort".

Der Beginn der Assembler: nmemonische Abkürzungen für die Befehle.
Ist aber umständlich. Wenn ich die Quadratwurzel einer Zahl ausrechnen will, brauche ich vielleicht 300 Befehle.
Ich möchte aber einfach schreiben "Rechne Quadratwurzel aus" xxx. Oder kürzer SQRT(xxx). Das ist dann schon fast mathematisch.
Ich möchte also Kommandos, die meinen wichtigen Aktionen entsprechen.
Dafür hat man dann "Hochsprachen" entwickelt. Die sind den Bedürfnissen des Menschen angepasst und nicht der 1:1-Übersetzung in Maschinensprache.

Kurze Erwähnung des Zwischenstücks JAVA-Bytecode und MS-IL (interpreted language)
Hochsprache - Zwischensprache - Assembler - Maschinensprache.
(Dass die Zwischensprache vielleicht gleich den Objektcode, genauso wie der Assembler erzeugt, lasse ich jetzt aus Vereinfachungsgründen aus.)

Wofür wurden Computer zuerst verwendet.
2 Antworten: eine für unseren Zweck vernünftige und eine zynische.
Die zynische Antwort: für militärische Zwecke. Jeder technische Fortschritt wird zuerst einmal militärisch genutzt. IBM 701 z.B.

Aber sonst ist die eintönigste Arbeit, die man sich erleichtern kann, die Berechnungsaufgaben in der Buchhaltung.

(Da mein Schüler Betriebswirtschaft studiert hat, kennt er sich damit auch aus.)
Aufgabe: eine Programmiersprache für Buchhaltung zu entwickeln.
Zeit: 1h + 1h Nacharbeit, nachdem der erste Entwurf besprochen wurde.
Das Ergebnis


Wir erfinden eine eigene Sprache.
Ansatz vom Schüler als Fleissaufgabe dargestellt. Was muss ein Buchhaltungsprogramm können. (File später einbinden)

Bei den Befehlen kommen "Speichern", "Drucken", "Suchen" usw. vor. Am Anfang fehlt das "Einlesen" von Daten und das "Ausgaben" von Daten.
Nach Korrektur taucht plötzlich "importstream" und "outputstream" auf.
Ich korrigiere: warum auf einmal englisch? "Das heißt doch bei JAVA so." (Das ist es, was Studenten aus Uni-Praktika behalten. Absoluter Scheiß. Ein paar Stichworte, die überhaupt nicht in ein logisches Konzept passen und auch vollkommen die strukturelle Bedeutung verschleiern.)
Ich akzeptiere "Importieren" und "Exportieren" als Ersatz.

Bei den Datentypen kommt nur integer, string und float vor. Das reicht an sich für die primitiven Daten.
Was ich später noch erklären werde, ist die Notwendigkeit eines Datentyps "decimal" oder "currency", der automatisch die Rundungsfehler zwischen Binär- und Dezimalarithmetik berücksichtigt.
Was wir aber brauchen, ist eine Sammlung von primitiven Datentypen (oder Variablen oder Attributen). Wir brauchen etwas, dass entweder:
record
struct
oder
object bezeichnet wird. Aus Einfachkeitsgründen wählen wir "object", aus dem wir rückwirkend später einmal lernen können, was ein Datentyp struct oder record macht bzw. leisten kann.

Unser Lieblingsobjekt ist der Buchungssatz. Der eignet sich recht gut für die weitere Überlegung.
Einen Buchungssatz "drucken". Daraus wird die Bedeutung von Variablen notwendig.
Schüler wirft ein: ich drucke einfach eine Datei. Das ist soweit ok, aber wie wird der Buchungssatz als Datei gespeichert. Die Bedeutung von "object" wird klar.

Der Rest der Stunde (2 Stunden) geht auf den Unterschied zwischen speichern in Dateien und speichern in Datenbanken auf.

Was ist eine Datenbank?
(Das kann nicht spontan erklärt werden.)
((Begriffe scheinen überhaupt ein Problem in der heutigen Zeit zu sein!))
Ich erkläre den Begriff Transaktion.
ACID - Bedinungen
Atomicity
Consistency
Isolation
Durability
Die jeweiligen Beispiele werden gut verstanden.

Fragen an den Leser, der es bis hierher geschafft hat:
1.) Warum verliert ein Handy nicht seine gespeicherten Telefonnummern?
2.) Warum macht man nicht alle Speicher so wie die im Handy.
((Überlegung gegen die Selbstverständlichkeit des Status quo. Was Menschen heute alles als selbstverständlich ohne zu hinterfragen annehmen. Das ist mit Atomkraft, Gentechnik, Umwelt ja genauso. Warum soll sich irgendetwas verbessern, wenn alles so hingenommen wird, ohne es zu hinterfragen.))

Aufgabe für zuhause: in der eigenen Sprache ein Programm formulieren, welches eine GuV-Berechnung durchführt. Einfachst, nur eine der möglichen Formen.

Ich bin gespannt, wie das Programm aussehen wird.

Anmerkung: ich habe noch erwähnt, dass die "selbst erfundene Sprache" eine "domain specific language" darstellt. DSLs sind ganz modern und werden auch von wichtigen Firmen erforscht.
Sie stehen noch über den Hochsprachen, die im Prinzip alles können.
read 670 times
virtualmono - 10. Nov, 09:02

DSLs sind ganz modern und werden auch von wichtigen Firmen erforscht.

Man könnte auch einfach das gute alte COBOL wieder ausgraben - das war ja im Prinzip schon genau dafür gemacht ;-)

1.) Warum verliert ein Handy nicht seine gespeicherten Telefonnummern?
2.) Warum macht man nicht alle Speicher so wie die im Handy.


1) Weil es sich um (nicht-flüchtiges) Flash-Memory handelt.
2) Weil es "zu teuer" ist (womit wir wieder bei dem Problem wären, daß alle Entscheidungen, die aus rein monetären Gesichtspunkten getroffen werden per de schwachsinnig sind ;-))

steppenhund - 10. Nov, 10:27

Für die Buchhaltung wäre COBOL gar nicht so ungeeignet. Aber es geht nicht um eine bestimmte Sprache, sondern um eine bestimmte Sprache, die selbst angepasst ist.
Eigentlich soll der Betroffene ja einmal verstehen, wie Test Domain Specific Languages funktionieren.
-
Bei den flash-memories muss ich dich leider korrigieren. Sicher spricht der Preis mit.
Doch erstens sind flash-speicher um ein Haus langsamer beim Schreiben und zweitens verbrauchen sie sich.
Einen Arbeitsspeicher in flash-memory auszuführen wäre daher absolut kontraindiziert.
Ein flash-memory als Festplattenersatz ist da schon etwas anderes. Da spielt dann der Preis mit, aber ebenfalls auch die Langlebigkeit.
Stell dir einen File-Server vor, der in flash ausgeführt wäre. Alle drei Monate müssten man die memories wechseln, weil die directories nicht mehr hinhauen:)

Es ging mir hier um den Begriff der Durability.
virtualmono - 10. Nov, 14:40

Also die SSDs sind um Klassen schneller als herkömmliche Festplatten ;-)
steppenhund - 10. Nov, 16:03

Ja, aber nicht als das normale RAM, und schon gar nicht als der Cache-Speicher auf der CPU:)
logo

auf 70 steuernd

die Erfahrungen genießend

User Status

Du bist nicht angemeldet.

Aktuelle Beiträge

Nachtrag zu diesem Jahr
Abschluss der Musikaktivitäten Die Leistung des Jahre...
steppenhund - 10. Dez, 18:59
Langsamer Abschied
Долгое прощание - Langsamer Abschied Dieses Buch von...
steppenhund - 13. Nov, 12:01
Aleksandra Mikulska
Es gibt drei Pianistinnen, die ich ganz hoch einschätze,...
steppenhund - 22. Okt, 14:44
Quietschen
Q U I E T S C H E N Als ich gestern nach dem Aufstehen...
steppenhund - 20. Okt, 12:36
Ich liebe meinen Induktionsherd....
Ich liebe meinen Induktionsherd. Brauchst auch den...
la-mamma - 18. Okt, 18:10

Meine Kommentare

wenn Sie der Lehrer meiner...
würde ich mich wundern, dass Sie nicht auf meinen Kommentar...
abohn - 7. Mai, 09:56
Gut gewagt!
Ein sehr ansprechender Text! So etwas würde ich auch...
abohn - 25. Apr, 15:30
Eigentlich habe ich deinen...
Eigentlich habe ich deinen Sohn erkannt. Der ist ja...
lamamma - 27. Mär, 12:44
Überrascht
Ich bin wirkliich überrascht, dass gerade Du lamentierst....
lamamma - 26. Mär, 15:30
Wobei nähen sich ja viel...
Wobei nähen sich ja viel direkter geboten hätte.
Schwallhalla - 26. Feb, 10:30

The bridge


Bloggen
Computer
ernst
Familie
Film
fussball
Icebreaker
Ist das jetzt das Alter
Kino
Kultur
Leben
Lesen
Musik
nichttägliche Mathematik
Philosophie
Politik
... weitere
Profil
Abmelden
Weblog abonnieren