Johannes Gutenberg Universität Mainz Bild Seitenkopf
Johannes Gutenberg Universität Mainz
Homepage dieser Website Google-Suche Alle Seiten von A bis Z Kontakt
 

 

Fragenkatalog zu "Einführung in die Programmierung"


Prof. Dr. Herbert Göttler



Auf dieser Seite wird begleitend zur Vorlesung ein Fragenkatalog entstehen, mit dessen Hilfe Sie Ihr Verständnis des behandelten Vorlesungsstoffes überprüfen können.
  • 29.10.09:
    • Was ist ein Algorithmus?
    • Wie sind die Phasen der Software-Entwicklung?
    • Welchen Aufbau hat ein Java-Programm?
    • Welche Layout-Konventionen sind zu beachten?
    • Wie kommt man vom Programmtext zum lauffähigen Java-Code und wie startet man diesen?

  • 05.11.09
    • Was versteht man unter einer:
      • höheren Programmiersprache
      • Maschinensprache
      • Assemblersprache
    • Was versteht man unter Syntax, Semantik und Pragmatik einer Programmiersprache?
    • Wann kamen die ersten höheren Programmiersprachen auf?
    • Wie wird die Syntax von Programmiersprachen beschrieben?
    • Was ist die EBNF und wozu setzt man sie ein?
    • Was ist eine Variable und wie kann man sie graphisch darstellen?
    • Welche Konventionen gibt es für Variablenbezeichner?

  • 12.11.09
    • Auf welche Problematik muss man bei großen int-Zahlen achten?
    • Was versteht man unter "Polymorphie" bei Operatoren?
    • Auf welche Problematik muss man bei der ganzzahligen Division achten?
    • Was sind Gleitpunktzahlen?
    • Wie ist die Syntax von Gleitpunktkonstanten? (Versuchen Sie eine Beschreibung mittels EBNF.)
    • Wie werden Gleitpunktvariablen definiert?
    • Was versteht man unter Artanpassung ("casting"), was unter "expliziter" und "impliziter"?
    • Was passiert bei Wertzuweisungen zwischen int- und double-Variablen und vice versa?
    • Wie vergleicht man Gleitpunktvariablen auf 0?
    • Wie kann man ein Programm mit zu verarbeitenden Daten versorgen?
    • Welche Kontrollstrukturen benötigt man für eine Programmiersprache?
    • Was sind Struktogramme und wozu setzt man sie ein?
    • Wie ist die Syntax und Semantik einer Einweg-Fallunterscheidung?
    • Wie ist die Syntax und Semantik einer Zwei-Fallunterscheidung?
    • Wie werden Fallunterscheidungen mittels Struktogrammen und Flussdiagrammen dargestellt?
    • Welche Vorgehensweise hilft bei der Entwicklung eines Algorithmus?
    • Was versteht man unter einer Iteration?
    • Wie ist die Syntax und die Semantik einer while-Schleife?
    • Wie stellt man eine while-Schleife in einem Struktogramm dar?
    • Was versteht man unter einer/m zusammengesetzten Anweisung / Block?

  • 19.11.09
    • Was berechnet der Euklidische Algorithmus?
    • Was versteht man unter der Effizienz eines Algorithmus?
    • Bei welchen Programmkonstrukten muss man sich über die Terminierung eines Algorithmus Gedanken machen?
    • Wie ist die Syntax und die Semantik einer do/while-Schleife?
    • Wie stellt man eine do/while-Schleife in einem Struktogramm dar?
    • Wozu dienen die Befehle break und continue und was bewirken sie?
    • Was versteht man unter dem Gültigkeitsbereich einer Variablen?
    • Wie ist in vielen anderen Programmiersprachen mit Blockstruktur - z.B. in C - geregelt, wenn in einem inneren Block eine gleichnamige Veriable definiert ist? Erklären Sie dies mittels der Begriffe "Gültigkeitsbereich" / "Sichtbarkeitsbereich" und "Lebensdauer" einer Variablen.
    • Wie löst Java solche Namenskollisionen?
    • Wie ist die Syntax und die Semantik einer for-Schleife?
    • Wie stellt man eine for-Schleife in einem Struktogramm dar?
    • Wann sollte man welchen Schleifentyp verwenden?
    • Wann setzt man den Datentyp boolean ein?
    • Was ist der Unterschied zwischen dem &&- und dem &-Operator?

  • 26.11.09
    • Wie ist die Syntax und die Semantik einer switch-Anweisung?
    • Wie stellt man eine switch-Anweisung in einem Struktogramm dar?
    • Wann sollte man die switch-Anweisung verwenden?
    • Welche Datentypen sind für die Steuerung der Alternativen einer switch-Anweisung erlaubt?
    • Was bewirkt die default-Alternative einer switch-Anweisung?
    • Welche Anweisung sollte stets die letzte in einer Alternative einer switch-Anweisung sein?
    • Wie heißen die Speicherbereiche, die für ein lauffähiges Programm zur Verfügung stehen?
    • Was versteht man unter einem Array / Feld ?
    • Wie werden Feldvariablen vereinbart?
    • Wie und in welchen Speicherbereichen wird Platz für ein Feld reserviert?
    • Was ist eine Referenzvariable?
    • Wie kann man ein Feld mit Werten besetzen?
    • Wie kann man die Anzahl der Elemente eines Feldes bestimmen?
    • Wie kann man auf einzelne Feldelemente zugreifen?
    • Was versteht man unter "Dereferenzieren"?
    • Wie funktioniert Selection-Sort?
    • Wie funktioniert Insertion-Sort?
    • Wie funktioniert Bubble-Sort?
    • Wie funktioniert Quick-Sort?
    • Was sind die Vor- bzw. Nachteile der Verfahren?

  • 03.12.09
    • Wie kann man mit einer foreach-Schleife über die Elemente eines Feldes iterieren?
    • Wie wird ein 2*3-Feld angelegt?
    • Wie greift man bei einem 2*3-Feld f auf die 2. Komponente der 1. Komponente zu?
    • Wie kann man die Speicherstruktur eines 2*3-Feldes f graphisch repräsentieren?
    • Wie kann man ein Feld mit 4 Zeilen anlegen, bei dem die Zahl der Elemente in der ersten Zeile z.B. 5, in der zweiten 2, in der dritten 7 und in der vierten 10.000 beträgt.
    • Wie kann man einen Aliasnamen für ein Feld erzeugen?
    • Worin besteht der Unterschied in der Aussage, dass es sich bei zwei Feldern um das selbe handelt oder dass sie gleich sind?
    • Was versteht man unter "objektorientierter Programmierung"?
    • Welche war die erste objektorientierte Programmiersprache und zu welcher Zeit kam sie auf?
    • Was ist eine Klasse, wozu hat man das Konzept in den Programmiersprachen eingeführt und woraus besteht eine Klasse im Allgemeinen?

  • 10.12.09
    • Was ist eine Referenzvariable, wie führt man sie ein und wie initialisiert man sie?
    • Was ist ein Objekt, wie kreiert man es und wie stellt man ein Objekt einer Klasse graphisch dar?
    • Wie greift man auf die Datenfelder eines Objektes zu?
    • Wie kann ein Nutzer mit einem Programm kommunizieren?
    • Mit welchen Mitteln kann man eine formatierte Ausgabe machen?
    • Wozu dienen Klassenmethoden?
    • Wie definiert man Klassenmethoden?
    • Welche "Kategorien" von Variablen kann es in Klassen mit Methoden geben?
    • Wie kann man innerhalb einer Methode m mit einer lokalen Variablen x einer Klasse K auf eine gleichnamige Datenfeldvariable von K zugreifen?
    • Wie kann eine Methode mit ihrer Aufrufumgebung kommunizieren?
    • Welche Arten von Parameterübergaben gibt es in Java?
    • Wie kann man sich einen Methodenaufruf modellhaft vorstellen?
    • Wie erfolgt der Aufruf einer Methode m für ein Objekt o?

  • 17.12.09
    • Was versteht man unter dem "Überladen" von Methoden?
    • Nach welchen Vorschriften erfolgt die "Overload-Resolution"
    • Wie kann eine Methode mit ihrer Umgebung anders als durch Parameter kommunizieren?
    • Wie wird bei einer Methode ein Wert zurück geliefert? Was ist dabei zu beachten?
    • Was versteht man unter "Rekursion"?
    • Welche Algorithmen sind die Klassiker für Rekursion?
    • Worauf muss man achten, dass man beim Programmieren einer rekursiven Methode keine Endlosschleife erzeugt?
    • Wie ist das Verhältnis zwischen Rekursion und Iteration?
    • Welche Rekursionsarten unterscheidet man?
    • Welche Bedeutung hat die Ackermann-Funktion in der theoretischen Informatik?
    • Welche verschiedenen Antworten kann man auf die Frage geben: "Was braucht man, um universell programmieren zu können?"

Weihnachtsferien
  • 07.01.10
    • Zu welchem Zweck hat man das Konzept der Konstruktoren entwickelt?
    • Worin unterscheiden sich syntaktisch Konstruktoren von Methoden?
    • Wie lässt sich auf bequeme Art Code eines Konstruktors in einem anderen nutzen?
    • Was ist die Motivation für unveränderliche Klassen?
    • Welches Konstrukt wird verwendet, um in Klassen Datenfelder unverändert zu lassen?
    • Was ist der Unterschied zwischen Werte- und Referenzsemantik?
    • Was versteht man unter "information hiding" und mit welchem Konzept versucht man, es zu erreichen?
    • Wie wird der Zugriff auf Datenfelder in Java gesteuert?

  • 14.01.10
    • Welche Werkzeugsammlung wird zur Entwicklung großer Programmsysteme eingesetzt?
    • Was sind statische Methoden und Datenfelder, wozu setzt man sie ein?
    • Wozu benutzt man Aufzählungstypen?
    • Wie vereinbart man Aufzählungstypen?
    • Was ist der Unterschied zwischen einer "flachen" und einer "tiefen" Kopie eines Objektes?
    • Wie erreicht man eine "tiefe" Kopie?
    • Was ist der Unterscheid zwischen den Variablendefinitionen "char a;" und "Character a;"?
    • Was sind die Vor- und Nachteile der obigen Varianten?
    • Was ist der Unterschied zwischen 'a' und "a" bei der Textverarbeitung?
    • Was ist der Vorteil der Benutzung der Klasse "String" im Vergleich zum Verarbeiten von Zeichenketten über ein char-Feld?
    • Die Methode
         String trim()
      der Klasse String hat als Ergebnis einer Anwendung auf eine String-Konstante/Variable einen String, bei dem gegenüber dem ursprünglichen String führende und schließende Leerzeichen abgeschnitten sind. Anlog liefert die Methode
         char charAt (int index)
      das Zeichen auf Position index.

      Was ist das Ergebnis von
         "  Einführung in die Programmierung    ".trim().charAt(6)
      ?

  • 21.01.10
    • Was ist der Grund für die Einführung der Klasse "Stringbuilder"?
    • Welche Klasse eignet sich meist auch bei der Verarbeitung von Text?
    • Wo kann man sich inspirieren lassen, um eine Klasse zu finden, die sich für die Lösung eines Problems eignet?
    • Welches Jahr wird als Startjahr für das "Software-Engineering" betrachtet?
    • Wie sieht die objektorientierte Programmierung die Welt?
    • Mit welchen Konzepten wird in der objektorientierten Programmierung die Modellierung der Welt versucht?
    • Welcher Modifikator erlaubt eingeschränkten Zugriff auf abgeleitetet Klassen?
    • Was ist der Unterschied zwischen dem Überladen und der Redefinition einer Methode?
    • Nach welchem Prinzip wird die Bindung von Methoden bei abgeleiteten Klassen durchgeführt?
    • Wie kann man einen Basisklassenkonstruktor in einem Konstruktor für eine abgeleitete Klasse aufrufen?
    • Wie kann man eine Methode der Basisklasse verwenden?

  • 28.01.10
    • Wozu hat man abstrakte Basisklassen (ABCs) in Java eingeführt?
    • Was ist der Unterschied zwischen einer ABC und einer gewöhnlichen Klasse?
    • Wazu hat man Interfaces in Java eingeführt?
    • Was ist der Unterschied zwischen einer ABC und einem Interface?
    • Wie kennzeichnet man syntaktisch die Implementierung eines Interfaces?
    • Kann man Referenzvariablen von Interfaces definieren?
    • Kann man ein Objekt eines Interface-Typs anlegen?
    • Kann man ein Objekt einer ABC anlegen?

  • 04.02.10
    • Wozu verwendet man Assertions?
    • Wie werden Assertions im Code definiert?
    • Was passiert, wenn die Bedingung einer Assertion verletzt wird?
    • Wozu verwendet man Exceptions?
    • Was heißt "eine Exception werfen" und wie wird es im Code umgesetzt?
    • Wie werden Exceptions "gefangen"?
    • Was versteht man unter dem Durchreichen einer Exception?
    • Was passiert, wenn eine Exception in der JVM angelangt?
    • Wie kann man eigene Exception-Typen vereinbaren?
    • Wie schaut die Objekthierarchie zwischen Object und RuntimeException aus?
    • Was ist der Unterschied zwischen Error und Exception?
    • Welche Besonderheit gibt es bzgl. RuntimeExceptions?
    • Warum sollten Angaben zu den Exceptions in der Methodensignatur immer möglichst spezifisch sein?
    • Wie wird der finally-Block behandelt?
    • Was sind Preconditions, was Postconditions und welche Bedeutung haben sie im Zusammenhang mit Programmverifikation?

  • 11.02.10
    • Wozu wurde das package-Konzept in Java eingeführt?
    • Wie definiert man die Zugehörigkeit einer Klasse zu einem Paket?
    • Wie kann man auf Klassen in fremden Paketen zugreifen?
    • Wie ist die Beziehung zwischen Paketen und Betriebssystemverzeichnissen zu organisieren?
    • Wie steuern Modifikatoren die Zugriffe auf Methoden und Datenfelder von Klassen in Paketen?
    • Welche Standards sollte man für Kommentare einhalten?
    • Welche Probleme treten auf, wenn die Dokumentation eines Programmes neben dem Programmcode geführt wird?
    • Welches Werkzeug bietet Java zur Erstellung von Programmdokumentationen?
    • Wie setzt man dieses Werkzeug ein?
    • Welches Programmdokumentationswerkzeug ist noch empfehlenswert?
    • Des Weiteren behandelt:


Institut für Informatik, 21.03.2010   ImpressumImpressum   Zum SeitenanfangZum Seitenanfang