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.


  1. 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 ;-))




Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s


  • Neueste Beiträge

  • Tage mit Einträgen

    Januar 1970
    M D M D F S S
        Mai »
     1234
    567891011
    12131415161718
    19202122232425
    262728293031  
  • Was einmal war


%d Bloggern gefällt das: