Programmierung 1 Grundbegriffe

The flashcards below were created by user JohannesKollien on FreezingBlue Flashcards.

  1. Welche besonderen Anforderungen sind an Algorithmen zu stellen, die auf Computern ablaufen sollen, verglichen mit „Alltagsalgorithmen“ wie Bauanleitungen oder Kochrezepten?
    • Alltagsalgorithmen, wie z.B. ein Kochrezept, Anleitung zu einem Strickmuster oder eine Bauanleitung sind in der Regel nicht so präzise formuliert, dass immer ein genau definiertes Ergebnis dabei herauskommt. Ein Mensch kann eventuell fehlende Informationen durch Kenntnisse oder Erfahrungen ableiten. Ein Computer kann dies nicht. Von daher muss ein Algorithmus folgende Charakteristika aufweisen:
    • 1. Festlegung der zulässigen Eingaben und erwarteten Ergebnisse (Spezifikation)
    • 2. Beschreiben des Verfahrens durch einen endlichen Text
    • 3. Sicherung der Durchführbarkeit des Verfahrens (Jeder Schriit muss durchführbar sein.)
    • 4. Determiniertheit (im Allgemeinen soll zu jedem Zeitpunkt die Auswahl des nächsten Schritts festgelegt sein)
    • 5. Korrektheit
    • 6. Algorithmus soll terminieren
    • 7. Grundmuster von Algorithmen:
    • a) Sequenz (Hintereinanderausführung von Anweisungen)
    • b) Fallunterscheidung
    • c) Wiederholung (vgl. Strickmuster)
    • Algorithmen sind Ablaufschemen mit bestimmten Eingangsvariablen.
    • In einem Programm heißt dieses, dass einem bestimmten Rechenschema, Vergleichsschema o.ä. Variablen hinzugefügt werden, welche dann durch das Schema „verarbeitet“ werden.
    • Verglichen mit einem Kochrezept wären die Variablen z.B. die Eier oder die Butter.
    • Wenn nun der Eingang einer Variablen fehlt, stellt sich die Frage was passiert.
    • In einem Computeralgorithmus produziert das Schema einen Fehler, da der Eingang fehlt und eine Operation nicht durchgeführt werden kann.
    • Der Prozessor, der den Algorithmus ausführt, kann an dieser Stelle nichts verarbeiten und der Algorithmus produziert einen Fehler.
    • Bei einem Kochrezept ist der Koch der Prozessor und wenn die Butter fehlt oder nicht genug Butter vorhanden ist, wird anstelle der Butter einfach Margarine genommen.
    • Der Prozessor kann also selbstständig einen Weg aus dem Fehler herausfinden, was ein Computerprozessor nicht kann.
    • Computeralgorithmen müssen also determinierbar und widerspruchsfrei sein!
  2. Smalltalk kennt drei Formen von Nachrichten. Erläutern Sie diese, geben Sie jeweils ein Beispiel an. Wie sieht die Abarbeitungsreihenfolge in einem Ausdruck aus, in dem die drei Formen gemeinsam auftreten?
    • 1. Unäre Nachrichten: Die Nachricht besteht aus genau einem Objekt an welches genau ein
    • Nachrichtenselektor geschickt wird; Bsp. ’123’ asNumber
    • 2. Binäre Nachrichten: Die Nachricht besteht aus zwei Objekten und einem ein- bis zweistelligen
    • Nachrichtenselektor; Bsp. 3 + 2 oder 125 * 24 oder x < y
    • 3. Schlüsselwort- Nachrichten: Die Nachricht besteht aus einem oder mehreren mehrstelligen jeweils mit einem Doppelpunkt endenden Nachrichtenselektoren, wobei es sich fast um Sprachprogrammierung handelt. Und je einem weiteren Objekt (Argument, Parameter) pro Schlüsselwort; Bsp.: Array at: 2 put: ‚Hallo’ oder Spiel mit: ’Petta’ und: ’Anna’ und: ’Sonja’
    • Vorrangregeln: unäre {vor} binäre {vor} Schlüsselwort
  3. Geben sie detailliert an, wie das unten stehende Programm ausgeführt wird, dabei sei die Existenz der Klasse Stack mit der Exemplarmethode push: vorausgesetzt. (mit „Do it“ im Workspace) - |s| - s:= Stack new. - s push:4
    • - zuerst wird lokale Variable s deklariert
    • - dann wird durch unäre Nachricht new ein Exemplar der Klasse Stack erzeugt
    • - dieses Exemplar wird Variablen s durch binäre Nachricht := zugewiesen
    • - durch Senden der Schlüsselwortnachricht push: wird in s das Zahlenobjekt 4 gepackt
  4. Erklären sie den Zusammenhang zwischen „Nachricht“ und „Methode“.
    • - Methoden werden durch Nachrichten, welche an Exemplare oder Klassen gesendet werden, aktiviert
    • - In der Methode ist die Reaktion des Objektes auf den Empfang der Nachricht festgelegt
    • - Methoden lassen Einblick in den Zustand des Objektes geben und können diesen verändern
  5. Beschreiben Sie den Unterschied von Exemplarvariablen und Klassenvariablen anhand von deren Gültigkeitsbereich und Lebensdauer.
    • - Exemplarvariablen beschrieben Zustand eines Exemplars einer Klasse
    • • Gültigkeit: alle Exemplare der Klasse
    • • Lebensdauer: identisch mit Lebensdauer des Objekts
    • - Klassenvariablen beinhalten Informationen, die für alle Exemplare gleich sind (Bsp: Pi für Kreis)
    • • Gültigkeit: alle Methoden der Klasse
    • • Lebensdauer: identisch mit der Lebensdauer der Klasse
    • - Blockvariablen
    • • Gültigkeit: für den umschließenden Block
    • • Lebensdauer: Ausführung des Blockes
    • - Temporäre Variablen
    • • Gültigkeit: für die Methode
    • • Lebensdauer: Abarbeitung der Methode
    • - Globale Variablen
    • • Gültigkeit: überall im Namespace
    • • Lebensdauer: unbegrenzt
  6. Was ist Wirtschaftsinformatik
    • - Planung, Realisierung, Einführung betrieblicher Informationssysteme
    • - Realisierung:
    • -> Anpassung von Fertigsoftware an Anforderungen des eigenen Unternehmens (Costumizing)
    • -> Entwickeln von Individual- Software für den optimalen Zuschnitt der Funktionalität an die Unternehmensanforderungen
  7. Benennen Sie das Ziel der Wirtschaftsinformatik aus volkswirtschaftlicher und
    • gesellschaftspolitischer Sicht.
    • Wirtschaftsinformatik ist das Bindeglied zwischen der reinen Informatik und der Wirtschaft.
    • Wirtschaftsinformatiker übersetzen die Anforderungen von Betriebswirten in Spezifikationen für die IT- Bereiche, bzw. erstellen die Software selber.
    • In der Gesellschaft werden Informatiker meist als reine „Computertechniker“ gesehen.
    • Doch die Wirtschaftsinformatik beschäftigt sich sehr stark mit dem Abbilden von wirtschaftlichen Prozessen auf Unternehmenssoftware und Technik.
  8. Welchen Weg beschreitet die Wirtschaftsinformatik bei der Verfolgung dieses Ziels?
    • Die Wirtschaftsinformatik kennt in der Regel einen groben Ablauf.
    • Planung, Realisierung und Einführung betrieblicher Informationssysteme
    • Dabei gibt es in der Regel zwei Wege:
    • 1. Anpassung von Standardsoftware an die unternehmerischen Tätigkeiten
    • 2. Herstellung von Individualsoftware für das Unternehmen
  9. Mikroprogrammierung
    • Mikroprogrammierung ist unterhalb der Maschinensprache angesiedelt und bezeichnet bestimmte Instruktionen, die auf einem Prozessor in Binärcode vorliegen und meist auf direkte Ressourcen des Prozessors zugreifen.
    • Ein Wirtschaftsinformatiker wird sich eher vorrangig mit Programmiersprachen (Smalltalk, Java...) beschäftigen. Diese funktionieren meist in Verbindung mit einer weiteren Abstraktionsebene: dem Betriebssystem (Windows, Mac OS...). Um Daten zentral und geordnet abzuspeichern hilft ein Datenbanksystem (Oracle, DB2).
  10. Wirtschaftsinformatik beschäftigt sich vorrangig mit …
    … der Planung, Realisierung und Einführung betrieblicher Informationssysteme und die Automatisierung von Arbeitsabläufen.
  11. John von Neumann (in den USA) und Konrad Zuse (in Deutschland)
    • … gelten als die Erfinder des Computers. Sie haben in den 40er Jahren des vorigen Jahrhunderts unabhängig voneinander Maschinen entwickelt, die wir heute als Computer bezeichnen. Die von John von Neumann entwickelt Rechnerarchitektur findet sich auch heute noch in jedem modernen Prozessoren wieder. (Schaltungskonzept)
    • Heinz Nixdorf entwickelte Mitte des 20. Jahrhunderts den ersten in Deutschland gebauten Röhrencomputer in den Kellerräumen der RWE in Essen. Da er nicht Erfinder des Computers war, passt sein Name nicht zu den beiden anderen.
  12. In der objektorientierten Programmierung …
    … werden Gegenstände, Personen, Ereignisse der realen Welt im Rechner durch Objekte rekonstruiert.
  13. In Smalltalk ist die Antwort eines Objektes auf den Empfang einer Nachricht (sofern es die Nachricht versteht) …
    … immer ein Objekt. Wenn der Programmierer keine besondere Rückgabeanweisung gegeben hat (^), so wird stets das Objekt selbst zurückgegeben (^ self steht dann quasi an jedem Methodenende). Durch eine Rückgabe- Anweisung wird die Methodenausführung beendet und das angegebene Objekt zurückgegeben.
  14. Exemplarmethode
    • Alle nicht statischen Methoden einer Klasse heißen Exemplarmethoden, da sie nur über eine Referenz auf ein Exemplar der zugehörigen Klasse aufgerufen werden können.
    • Exemplarmethoden werden durch Nachrichten an Exemplare einer Klasse aktiviert und antworten mit einem Objekt. Dies kann ein neu erzeugtes, ein bereits bestehendes oder das aufgerufene Objekt selbst sein.
    • Darüber hinaus bilden Exemplarmethoden die nach außen sichtbare "Schale" (auch Schnittstelle/Interface) des Exemplars.
  15. Klassen
    • In Smalltalk sind alle Klassen selbst Objekte diese können wiederum Objekte erzeugen. Dies können Exemplare und Instanzen der jeweiligen Klasse sein.
    • In Smalltalk werden Objekte mit der gleichen Struktur/Aufbau und dem gleichen Verhalten zu Klassen zusammengefasst und unterscheiden sich nur im konkreten Inhalt.
    • Der Begriff Klasse wird im Bereich der objektorientierten Programmierung angewendet. Eine Klasse stellt eine Zusammenfassung von Objekten (Exemplar eines bestimmten Datentyps oder einer bestimmten Klasse) mit gleichen Eigenschaften dar.
    • In den Klassen werden folglich die Struktur( die Menge der Eigenschaften eines Objektes) und das Verhalten (wie reagieren sie auf Nachrichten) der Objekte hinterlegt. Sie sind die Baupläne bzw. abstrakte Modelle für gleichartige Objekte.
    • Verallgemeinernd entsprechen Klassen dem Datentyp eines Objekts, z.B. die ganzen Zahlen werden in der Klasse „Integer“ zusammengefasst oder die Zeichenketten in der Klasse „String“. Klassennamen beginnen immer mit einem großen Buchstaben.
    • Alle Exemplare einer Klasse reagieren in gleicher Weise auf Nachrichten, d.h., sie verstehen die gleichen Nachrichten, aber geben nicht zwingend dieselbe Antwort.
    • Objekte werden durch Senden einer Nachricht an ein Klassenobjekt erzeugt. In VisualWorks- Smalltalk werden Klassen durch Senden einer Nachricht an ein Namespace- Object erzeugt. (In anderen Smalltalk- Dialekten geschieht dies häufig durch Senden einer Nachricht an die Klasse „Object“.)
    • -> Struktur und Verhalten gleichartiger Objekte wird durch Klassenzugehörigkeit definiert
  16. Klassenhierachie
    • Unter einer Klassenhierarchie versteht man den Bezug zwischen verschiedenen Klassen. Jede Klasse hat eine "Superclass". Die einzige Ausnahme ist die Klasse "Object". Sie ist die Wurzel der gesamten Smalltalk Klassenhierarchie. Jede Klasse ist somit direkt oder indirekt abgeleitet von "Object".
    • Innerhalb der Klassenhierarchie werden Eigenschaften und Methoden von Oberklassen an Unterklassen vererbt. Bildlich ergibt sich so eine Baumstruktur in welcher sich die Klassenhierarchie darstellen lässt.
  17. Klassenmethode
    • Klassenmethoden werden aktiviert durch eine Nachricht an die Klasse selbst.
    • Grundsätzlich handelt es sich um normale Methoden mit einer besonderen Eigenschaft: Klassenmethoden können aufgerufen werden, bevor eine Klasse instantiiert wurde. In der Objektorientierung werden Objekte aus Klassen, also bildlich ausgedrückt Bauplänen, erstellt. Klassenmethoden können direkt aus diesen "Bauplänen" heraus aufgerufen werden.
    • Die bekanntesten Klassenmethoden, die in jeder objektorientierten Sprache unumgänglich sind, sind Konstruktoren. Konstruktoren zeichnet aus, dass sie die Objektinitialisierung vornehmen und ein Objekt der Klasse erstellen. Der Standardkonstruktor in Smalltalk lautet new. Konstruktoren geben ein Exemplar der entsprechenden klasse zurück.
    • Beispiel: Klassenmethode "mitNamen" zur Erzeugung eines Spieler- Exemplars, welches über die Klassenmethode new instanziiert wird und welchem über die Exemplarmethode "initialize" der Name als String mitgegeben wird.
    • mitNamen: aString
    • ^self new initialize: aString
  18. Klassenvariable
    • Variablen, die an Klassen (und nicht an Exemplare) gebunden sind, heißen Klassenvariablen. Sie sind einer Klasse zugeordnet und können entsprechend benutzt werden, ohne dass ein Exemplar vorhanden sein muss. Wertänderungen an einer Klassenvariable machen sich daher auch aus der Sicht aller Exemplare bemerkbar.
    • Sie wird automatisch an alle Unterklassen vererbt. Den Zugriff erhält man durch Klassen - oder Exemplarmethoden.
  19. Methode
    • Objekte verfügen damit sie Nachrichten verstehen über so genannte Methoden. Eine Methode beschreibt das Verhalten von Objekten. Sie legt die entsprechende Reaktion des Objektes auf den Empfang einer Nachricht fest.
    • Methoden können also als Schnittstelle nach außen betrachtet werden.
    • Wird eine Methode durch eine Nachricht an ein Objekt aktiviert, spricht man von einem Methodenaufruf.
    • Als Ergebnis des Methodenaufrufs wird ein Objekt zurückgegeben. Das heisst, eine Methode reagiert auf den Empfang einer Nachricht ihrerseits mit dem Versenden eines Objektes. Dieses Objekt kann ein in der Methode erzeugtes Objekt oder ein im Programm vorhandenes Objekt sein. Darüber hinaus wird standardmässig wenn keine explizite Rückgabe definiert wurde das Empfängerobjekt zurückgegeben.
    • Die Reaktion auf den Empfang einer Nachricht besteht nun wiederum im Versenden weiterer Nachrichten.
    • In Smalltalk unterscheidet man grundsätzlich zwei Methoden:
    • Klassenmethode
    • Exemplarmethode
  20. Objekt
    • Ein Objekt im Sinne der objektorientierten Programmierung ist eine konkrete Ausprägung einer Klasse (auch Exemplar oder Instanz einer Klasse). Objekte sind Empfänger von Nachrichten, können diese verstehen und erzeugen neue Objekte als Antwort. Objekte definieren sich durch ihre (1) Identität, ihren (2) Zustand und ihr (3) Verhalten. (Ist was, hat was, kann was!)
    • 1. macht jedes Objekt in der Menge eines Systems einzigartig
    • 2. bestimmt durch die Werte der Attribute seiner Klasse
    • 3. ergibt sich aus den zur Verfügung stehenden Methoden seiner Klasse
    • Man kann sich das Erstellen von Objekten nach einer Klasse vorstellen wie das Fertigen von Autos aus dem Konstruktionsplan eines bestimmten Fahrzeugtyps. Jedes erzeugte Auto für sich genommen hat eine einzigartige Identität, denn alle Autos können unabhängig voneinander betrieben werden. Klassen sind die Konstruktionspläne für Objekte.
    • Ein wichtiger Aspekt bei der Arbeit mit Objekten ist, dass Objekte immer nur zur Laufzeit existieren, d.h. das Sie nach der Beendigung des Programmes weg sind ganz im Gegensatz zu Klassen, die auch weiterhin bestehen bleiben und bei jedem Programmstart wieder vorhanden sind.
    • Wichtigster Grundsatz in Smalltalk: Alles ist ein Objekt, das heißt auch Exemplare und Klassen sind Objekte.
    • Beispiele:
    • - Zahlen (29, 1/4, Pi)
    • - Wörter (Spielverwaltung, Spieler, Würfel)
  21. Objekt - Auto- Analogie
    • Die Auto- Analogie
    • In der Garage steht ein weißer Passat. Die Farbe bröckelt schon etwas ab, weil er 14 Jahre alt ist. Vorne rechts in der Windschutzscheibe ist ein kleiner Riss, und die Antenne ist an zwei Stellen verbogen. Dies ist ein ganz bestimmter Passat, den man anhand dieser Eigenschaften oder Attribute eindeutig von anderen Fahrzeugen des gleichen Typs unterscheiden kann.
    • Etwas völlig anderes ist es, wenn man von einem Bekannten gefragt wird: "Wie findest Du eigentlich den neuen Passat von VW?" Damit ist kein individuelles Fahrzeug gemeint, sondern die ganze Baureihe.
    • Ähnlich wie "der neue Passat" ist eine Klasse etwas Abstraktes, etwas, das nur in der Gedankenwelt der Menschen existiert, in ihrem "Modell der Wirklichkeit". Ein einzelnes Exemplar der Baureihe Passat entspricht dagegen einem Objekt; man kann es sehen und anfassen, es existiert nicht nur in unserer Vorstellung, sondern wirklich.
    • Jedes Passat- Objekt unterscheidet sich von anderen Passat- Objekten durch bestimmte Eigenschaften oder Attribute wie z.B. Farbe, PS- Zahl, Ausstattung etc. Aber auch zwei Passate, die die gleiche Farbe, die gleiche PS- Zahl, die gleiche Ausstattung etc. haben, unterscheiden sich: Sie haben zwei unterschiedliche Kennzeichen, zwei verschiedene Fahrgestellnummer, und sie haben mit Sicherheit nicht die gleiche aktuelle geographische Position, denn sonst würden zwei Autos an genau der gleichen Stelle existieren.
    • Noch eine Bemerkung: Die Attributwerte von Objekten sind veränderbar: Man kann die krumme Antenne eines Passats wieder geradebiegen oder die schadhafte Windschutzscheibe reparieren lassen. Und die Position eines Passat- Objektes ändert sich sowieso ständig, wenn das Auto gefahren wird.
  22. Polymorphie
    • Polymorphie ist ein zentrales Konzept der Objektorientierten Programmierung. Sie beschreibt das Verhalten, dass beim Methodenaufruf erst zur Laufzeit festgelegt wird, welche Methode aufgerufen wird. Diesen Vorgang bezeichnet man auch als „Dynamisches Binden“. In Smalltalk tritt Polymorphie in Zusammenhang mit Vererbung auf. Wenn eine Methode in einer Klasse definiert wird, und eine Unterklasse diese Methode erbt, in ihr aber ein anderes Verhalten festgelegt wird, so wird zur Laufzeit entschieden, dass beim Aufruf dieser Methode in einer Instanz der Unterklasse auch die entsprechende Methode der Unterklasse aufgerufen wird. Bei mehrstufiger Vererbung wird immer die Methode der Klasse verwendet, die dem Objekt am „nächsten“ ist.
    • Die sogenannte Ad- Hoc- Polymorphie ist aber auch ohne Vererbung möglich und bedeutet einfach, dass Objekte verschiedener Klassen die gleiche Nachricht verstehen, ohne dass die Klassen in einer Vererbungsbeziehung (außer über die Klasse "Object") stehen müssen.
    • -> Austauschbarkeit von Objekten (gleiche Nachricht unterschiedliche Reaktion)
  23. Vererbung
    • Vererbung bedeutet:
    • In einer Oberklasse werden Methoden definiert, die allen Unterklassen zur Verfügung stehen, das bedeutet, dass alles, was in einer Oberklasse definiert wurde in jeder der Unterklassen verwendet werden kann. Wird in Unterklasse Methode mit gleichen Namen wie Methode der Oberklasse implementiert wird die der Oberklasse überschrieben. Vererbt werden Struktur und Verhalten. Erbende Klasse kann weitere Methoden, Exemplarvariablen implementieren.
    • Durch Vererbung ist es möglich ein hierarchisches Gebilde von Klassen aufzubauen, dabei können Klassen (in Smalltalk) mehrere Unterklassen, aber jeweils nur eine Oberklasse, besitzen (keine Mehrfachvererbung).
    • Vererbung ist eines der charakterisierenden Merkmale objektorientierter Programmierung.
    • Zweck: Übersichtlichkeit, Wiederverwendung
  24. (Daten- )Kapselung
    • In der Literatur existieren drei Konzepte der Kapselung:
    • 1. Kapselung ist ein Prozess der benutzt wird, um Daten mit den sie
    • bearbeitenden Funktionen zusammen zu packen.
    • 2. Die bekannteste Definition: Kapselung versteckt die Details der
    • Objektimplementation, so dass Benutzer Zugriff auf das Objekt nur über die
    • wohldefinierte externe Schnittstelle haben.
    • 3. Die dritte Definition vereint die ersten zwei folgendermaßen:
    • Informationen über ein Objekt, wie dieses Informationen verarbeitet,
    • werden zusammen aufbewahrt und getrennt von allem anderen.
    • Zusammenfassung:
    • Kapselung ist eine Technik zum Entwerfen von Klassen und Objekten, die den Zugriff auf Daten und Verhalten durch eine eingeschränkte Menge von Nachrichten beschränkt, die ein Objekt einer Klasse empfangen kann.
  25. Exemplarvariablen
    • Exemplarvariablen (engl. instance variables) stellen die Implementierung der Struktur von Objekten (d. h. den Exemplaren einer Klasse) dar. Sie sind bei der Definition der zugehörigen Klasse anzulegen. In den Werten der Exemplarvariablen zu einem bestimmten Zeitpunkt manifestiert sich der Zustand eines Objektes zu diesem Zeitpunkt.
    • Exemplarvariablen sind Gegenstand der Kapselung.
  26. Welches technische Problem bringt die Digitalisierung von Produkten der menschlichen Kultur in Hinblick auf die Überlieferung dieser Produkte an nachfolgende Generationen mit sich?
    • - Technischer Fortschritt
    • - Begrenzte Haltbarkeit
  27. Deborah J.Armstrong - drei bedeutendsten Konzepte der objektorientierten Programmiersprache (OOP) nach dem Aufsatz „The Quarks of Object- Oriented Programming“
    Klassen, Methoden, Vererbung
  28. Von welcher Klasse ist SpielerIn Klasse? / Integer
    SpielerIn Class / Number
  29. Erklären Sie, was man unter Syntax und Semantik einer Programmiersprache versteht!
    • Programmiersprachen sind ja zunächst einmal formale Sprachen wie französisch oder spanisch die aus Worten bestehen. Wenn man diese Worte nach bestimmten Regeln hintereinander schreibt erhält man eine Syntax.
    • Syntax:
    • - Menge von Sprachelementen und Konstrukten, mit deren Hilfe korrekte Sätze einer Sprache formuliert werden können
    • -> Menge von Regeln die über Struktur von Programmen bestimmen
    • Der Unterschied zu den normalen Sprachen ist jetzt die Semantik das diese eine eindeutige Bedeutung hat im Gegensatz zu den formalen Sprachen.
    • Semantik:
    • - legt Bedeutung syntaktisch korrekter Sätze fest
    • - bestimmt welche Wirkung jedes Sprachelement / Konstrukt im Programmablauf hervorruft
    • -> Menge von Verhaltensregeln die Funktionsweise von Programmen bestimmen
  30. Abgrenzung Objekt und Klasse (wichtig hier: Klassen besitzen Struktur/Verhalten)
    Objekte sind Abbildung aus dem realen Leben. Klassen sind gleichartige Objekte die zusammengefasst werden. Hierbei werden für das Programm unwichtige Eigenschaften abstrahiert. Sie besitzen die gleiche innere Struktur und das gleiche Verhalten.
  31. Erklären Sie den Unterschied zwischen Exemplar- und Klassenmethoden!
    • Exemplarmethoden werden aktiviert durch das Senden einer Nachricht an Exemplare einer Klasse und werden durch diese verstanden (also von den Objekten, zu denen auch eine Klasse zählt). Können aber nur von Exemplaren der jeweiligen Klasse ausgeführt werden.
    • Klassenmethoden hingegen werden aktiviert durch das Senden einer Nachricht an eine Klasse selbst und werden auch durch diese verstanden. Also von den Objekten... Wobei eine Klasse auch ein Objekt ist. Können von allen Exemplaren verstanden werden, die der Klasse zugeteilt sind (also global gültig).
  32. Programmiersprachen werden als „formale“ Sprachen bezeichnet. Beschreiben Sie kurz den wesentlichen Unterschied zu „natürlichen“ Sprachen wie chinesisch oder Spanisch.
    • Formalen Sprachen:
    • - Eindeutigkeit
    • - Syntax genau definiert und vorgeschrieben
    • - Zur Darstellung von Daten und Algorithmen als Programme
    • Natürliche Sprachen:
    • - Durch den gebrauch definiert
    • - Syntax flexibel (Dialekt, Aktiv- Passivformulierung eines Satzes)
    • - verschiedene Syntax führt zu gleicher Interpretation eines Satzes
  33. Erklären Sie kurz den Unterschied in der Verarbeitung von Programmen einer höheren Programmiersprache zwischen Compiler und einem Interpreter.
    • Ein Computerprogramm muss von der Programmiersprache in Maschinensprache übersetzt werden. Für jeden Maschinentyp und jede Programmiersprache wird ein eigener Compiler benötigt. Die Übersetzung kann nun der Compiler vornehmen. -> Fehler werden beim übersetzen ermittelt
    • Ein Interpreter ist eine Zwischenstufe zwischen der Programmiersprache und dem Maschinencode. Das Programm wir zuerst in einen Maschinencode des Interpreters übersetzt danach wird dieser Pseudo- Maschinencode auf den Maschinencode der jeweiligen Maschine übersetzt.
  34. Grenzen Sie kurz die Begriffe Information und Daten gegeneinander ab.
    Daten sind Anhäufung von Zeichen, die keine Bedeutung haben, erst durch die Semantik bekommen die Daten erst eine Bedeutung und werden zur Information. Diese Information ist aber interpretierbar und nicht eindeutig.
  35. Nennen Sie Bereiche auf die sich die Informatik besonders auswirkt und skizzieren sie kurz diese Auswirkungen.
    • Wirtschaft: Gerade in der Wirtschaft kam es durch die Informatik zu einem riesigen Aufschwung. Durch die Informatik wurde der Prozess der Globalisierung möglich, welcher heute für unseren heutigen Lebensstandard sorgt. Die globale Vernetzung durch das Internet war ein entscheidender Schritt den die Informatik ermöglicht hat.
    • Kultur: Kulturell hat uns die Informatik sowohl Vor- als auch Nachteile gebracht. Viele verbringen viel Zeit bei StudiVZ und treffen dort alte Bekannte oder neue Freunde. Gleichzeitig brachte uns die Errungenschaft den gläsernen Menschen.
    • Bildungssektor: Die Informatik hat es in diesem Bereich möglich gemacht, dass Bildung für alle jederzeit zur Verfügung steht.
    • Wissenschaft: …
    • Forschung: …
  36. Definition Informatik
    • Informatik (engl. computer science) ist die Wissenschaft (,Technik und Anwendung) von der systematischen, maschinellen Darstellung, Speicherung, Verarbeitung und Übertragung von Informationen, besonders der automatischen Verarbeitung mithilfe von Digitalrechner (Computer) (Automatisierung menschlicher Arbeit).
    • - Fachgebiet der Informations- Datentechnik
  37. Was bringen Sie mit dem Namen Konrad Zuse und John von Neumann in Verbindung?
    • Konrad Zuse: Erfinder des ersten programmierbaren Computers
    • John von Neumann: Erfinder eine universell verwendbaren noch heute eingesetzten Rechnerarchitektur
  38. Was verstehen Sie unter Struktur und Verhalten von Objekten?
    • Die Struktur eines Objektes wird durch Ihre Exemplarvariablen definiert. Die Exemplarvariablen eines Objektes können nicht geändert werden, sondern nur deren Werte.
    • Das Verhalten für alle Objekte einer Klasse gemeinsam wird durch die Exemplarmethoden definiert. Diese werden durch das Senden von Nachrichten an ein Objekt aktiviert. Das Verhalten von Objekten drückt sich in ihrer Reaktion auf die Nachricht aus.
    • >> Struktur (Exemplarvariablen) und Verhalten (Methoden)
  39. Erläutern Sie das Geheimnisprinzip in der objektorientierten Programmierung.
    Das Geheimnisprinzip besagt, dass die interne Repräsentation eines Objektes nicht nach außen (für andere Objekte sichtbar ist). Es müssen Nachrichten an ein Objekt geschickt werden, damit z.B. die Werte der Exemplarvariablen zurückgegeben werden. Dies gilt aber ebenso für komplexere Abläufe in einem Objekt. Durch diese Kapselung kann die interne Repräsentation jederzeit geändert werden ohne äußere Abhängigkeiten zu beeinflussen.
  40. Die Informatik spielt in anderen Wissenschaften häufig die Rolle einer Basistechnologie.
    Wahr
  41. Die Bioinformatik nimmt heute, gemessen an der Zahl der Lernenden und Lehrenden, den ersten Platz unter den Angewandten Informatiken ein.
    • Falsch
    • Sicherlich wissen Sie, dass die Wirtschaftsinformatik, gemessen an der Zahl der Lernenden und Lehrenden, den ersten Platz unter den Angewandten Informatiken einnimmt (siehe Seite 20).
  42. Unser Verhältnis zum Wissen verändert sich durch die Informatik.
    Wahr
  43. "Blended Learning" meint eine Kombination von E- Learning- Elementen mit traditionellen Lehr- Lern- Szenarien.
    Wahr
  44. Die Wissenschaft Informatik befasst sich mit der Darstellung, Speicherung, Übertragung und Vearbeitung von Information.
    Wahr
  45. Das Geburtsdatum der Informatik kann nicht genau bestimmt werden. Viele wählen das Jahr 1941, als Konrad Zuse seinen Rechenautomaten Z3 vorgestellt hat.
    Wahr
  46. Informatik ist eine reine Grundlagenwissenschaft
    • Diese Aussage ist falsch.
    • => Siehe Seite 7: "Die Informatik ist sowohl eine Grundlagenwissenschaft als auch eine Ingenieurwissenschaft."
  47. Zunehmend werden wir uns reine Sachinhalte statt Meta- Wissen aneignen.
    Diese Aussage ist falsch. Zunehmend werden wir uns Meta- Wissen statt reine Sachinhalte aneignen. Siehe auch Seite 4
  48. Unter einem Informatiksystem verstehen wir ein nur aus Software bestehendes System, das Aufgaben in der Informationsverarbeitung oder -übertragung erfüllt.
    • Diese Aussage ist falsch.
    • Unter einem Informatiksystem verstehen wir ein aus Software und/oder Hardware bestehendes System, das Aufgaben in der Informationsverarbeitung oder -übertragung erfüllt. (Siehe Seite 10)
  49. Einige Kunstwerke wie musikalische Schöpfungen oder Grafiken, die in den 1960er oder 1970er erzeugt wurden und auf digitalen Medien, wie bspw. Magnetbänder gespeichert wurden, gingen leider verloren, da die Medien nicht mehr lesbar sind.
    • Wahr
    • Die Aussage ist leider wahr. Einige Kunstwerke wie musikalische Schöpfungen oder Grafiken, die in den 1960er oder 1970er erzeugt wurden und auf digitalen Medien, wie bspw. Magnetbänder gespeichert wurden, gingen tatsächlich verloren, da die Medien nicht mehr lesbar sind.
  50. Probleme der IT in Zukunft
    • - Daten sind physikalisch nur begrenzt haltbar (Disketten ca. 5- 10 Jahre)
    • - technischer Fortschritt nimmt keine Rücksicht auf Lesbarkeit heutiger Datenträger –> können Disketten in 500 Jahren noch ausgelesen werden?
    • - Syntax wird sich im Laufe der Zukunft ändern -> keine Interpretation heutiger Daten möglich
  51. Pragmatik
    Intention des Programmierers, Formulierung von Lösungen
  52. Grundsätze objektorientierter Programmierung
    • Datenkapselung
    • Vererbung
    • Polymorphie
    • Klassenprinzip
  53. Abstraktion
    • - ableiten, herausheben bestimmter wesentlicher, charakteristischer Sachverhalte / Merkmale / Gesetzmäßigkeiten aus einer Menge von Individuen unter einem bestimmten Gesichtspunkt
    • - dient der Generalisierung, Klassifizierung, Komposition in Softwaremodellierung
  54. Verweis- und Wertsemantik
    • - Verweissemantik: Speicherung von Verweisen auf Objekte
    • - Wertsemantik: Speicherung der Objekte selbst
    • -> in Smalltalk nur Verweissemantik
  55. Gleichheit vs. Identität
    • Gleichheit: Prüfung auf gleichen Dateninhalt mit = / ~=
    • Identität: Prüfung auf Verweis auf das gleiche Objekt mit == / ~
    • (~ Negierung)
    • - Bsp:
    • var1='blub'
    • var2='blub'
    • var3 := var1
    • var1 = var2 -> true 5 = 5 ->true
    • var1 == var2 -> false 5 == 5 -> true
    • var1 == var3 -> true
  56. Vergleichsoperatoren
    • = - Prüfung auf Gleichheit
    • ~= - Prüfung auf Ungleich
    • == - Prüfung auf Identität
    • ~~ - Prüfung auf nicht Identisch
    • < / <= - Prüfung auf kleiner / kleiner gleich
    • > / >= - Prüfung auf größer / größer gleich
  57. Logische Operatoren
    • or: ODER- Verknüpfung
    • and: AND- Verknüpfung
  58. Arithmetische Befehle
    • für alle Number
    • negated - negiert Empfänger, Bsp: 3 negated -> - 3
    • abs - liefert Betrag des Empfängers, Bsp: - 4abs -> 4
    • even - liefert true, wenn Empfänger gerade Zahl ist, Bsp: 4 even -> true / 5 even -> false
    • odd - liefert true, wenn Empfänger ungerade ist, Bsp: 4 odd -> false / 5 odd -> true
    • rounded - rundet Empfänger zur nächsten ganzen Zahl auf / ab Speziell für Integer
    • //aNumber - ganzzahlige Division ohne Rest, Bsp: 18//7 -> 2
    • \\aNumber - liefert Rest der ganzzahligen Division, Bsp: 18 \\ 7 -> 4
    • factorial - liefert Fakultät des Empfängers, Bsp: 4 factorial -> 24
  59. Schleifenbefehle
    • [aAusdruck] whileTrue: [aAnweisung]
    • [aAusdruck] whileFalse: [aAnweisung]
    • n timesRepat: [aAnweisung] - Zählschleife
    • n to: m do: [:index| aAnweisung] - Intervalldurchlauf
    • n to: m by: aSchritt do: [:index| aAnweisung] - Intervalldurchlauf, aSchritt definiert Zähler Bsp:1to:10by3-> 1,4,7,10
    • aCollection do: [:elem|elem aAnweisung] Objekt - Behälterdurchlauf, elem durchläuft jedes in der Collection
    • aCollection reverseDo: [:elem|elem aAnweisung] Objekt - Behälterdurchlauf, elem durchläuft jedes in der Collection , beginnend von hinten
  60. Collection- Befehle
    • Set
    • - enthält jedes Element nur einmal, Elemente besitzen keine Ordnung
    • - Menge := Set new; menge add: 5; add: 5; add: 6 -> (5, 6)
    • Dictionary
    • - enthält Schlüsselverzeichnis, das jedem Elementeinen Schlüssel zuordnet
    • - aDictionary at: 'Vater' put: 'Father'.
    • Ordered Collection
    • - kann schrumpfen / wachsen
    • - behält Elemente in der Reihenfolge des Hinzufügens
    • - add: aObject - fügt ein Objekt hinzu
    • - addFirst: aObject - fügt ein Objekt an der ersten Stelle hinzu
    • - addLast: aObject - fügt ein Objekt an der letzten Stelle hinzu
    • Befehle zum Zugriff auf geordnete Behälter
    • - at: aIndex put: aObject - fügt Objekt an Stelle des Index hinzu
    • - at: aIndex put: aObject - fügt ein Object an alle Stellen der Collection
    • - aCollection first / last - gibt erstes / letztes Element der Collection
    • - indexOf: aObject - gibt Index des Objektes in der Collection
    • - includes: aCollection - gibt true zurück, falls Empfänger in der Collection enthalten ist
    • - occurenceOf: aCollection - gibt Anzahl zurück, wie oft Empfänger in Collection ist
    • - copy - exakte Kopie der Empfänger- Collection
  61. Was versteht man unter „Get“ und „Set“ Methoden?
    Eine Zugriffsfunktion, auch Zugriffsmethode, Akzessor oder im Programmiererjargon getter und setter genannt, ist in der objektorientierten Programmierung eine spezielle Methode, die eine einzelne Eigenschaft eines Objekts abfragt oder ändert. Sie sind Teil der öffentlichen Schnittstelle eines Objekts und verbergen Implementierungsdetails dieses Objekts. Dadurch kann die Implementierung eines Objekts geändert werden, ohne seine öffentliche Schnittstelle zu ändern.
Author
ID
316943
Card Set
Programmierung 1 Grundbegriffe
Description
hi
Updated
Show Answers