Einführung in die Programmierung I - Winter 08

From Sccswiki
Jump to navigation Jump to search
Term
Winter 08
Lecturer
Dr. rer. nat. Stefan Zimmer
Time and Place
Montags 12:15-13:45, Hörsaal MI 00.13.009A; Beginn: 20.10.2008 (am 13./14. 10. sind Studieneinführungstage)
Übung: Mittwochs 8:30-10:00, Hörsaal MI 00.13.009A; Beginn: 22.10.2008
Audience
Studierende im Diplom-Studiengang Physik (Modul IN2134; in dieser Veranstaltung kann man noch den Schein "Einführung in die Programmierung" erwerben).
Interessierte aus anderen Studiengängen sind natürlich auch willkommen!
Im Bachelor-Studiengang Physik wird es eine - anders ausgerichtete - Veranstaltung voraussichtlich im 4. Semester, also ab dem Sommersemester 2010 geben.
Tutorials
s.o.
Exam
Schriftliche Prüfung
Midterm-Klausur (Maple) am Montag, 8.12. 12:15-13:45 im Hörsaal MI 00.13.009A,
Als Hilfsmittel ist wie üblich nur die Gedächtnisstütze zugelassen
Abschlussklausur (Java) am Montag, 26.1. 12:15-13:45 im Hörsaal MI 00.13.009A,
Als Hilfsmittel ist wie üblich nur die Gedächtnisstütze zugelassen.
Anmeldung über das mytum-Portal bis zum 9.11. bzw. 21.12. verpflichtend (" Midterm-Klausur Einführung in die Programmierung I - Winter 08" bzw. " Abschluss-Klausur Einführung in die Programmierung I - Winter 08"; zum Finden am besten die Liste auf "Informatik" einschränken)
Die Ergebnisse sind im mytum-Portal abrufbar - hier gibt es weitere Informationen dazu
Klausurbesprechung/Einsicht am Mittwoch, 28.1. in der Ünung (8:30 im Raum MI 00.13.009A)
Die Ergebnisse werden direkt an den Prüfungsschriftführer Physik (Dr. Dressler) weitergegeben.
Die Scheine wird es ab nächster Woche (3.2.09) auch auf Papier geben, abzuholen immer Dienstags 14-15 Uhr im Sekretariat des Lehrstuhls (MI 02.05.052, Fr. Westphal).
Semesterwochenstunden / ECTS Credits
4 SWS (2V + 2Ü) / 5 Credits
TUMonline
{{{tumonline}}}


Inhalt

Nach einer allgemeinen Einführung gibt es einen Streifzug durch zentrale Themen der Programmierung, mit Beispielen in Maple:

  • Ausdrücke und Variablen
  • Funktionen und Rekursion
  • Beispiele für Datenstrukturen: Sequenzen, Listen, Mengen
  • Kontrollstrukturen: for und if
  • Prozeduren
  • Algorithmen: Sortieren, Suche in Bäumen
  • Anwendungsbeispiele: Quadratur nach Archimedes, Lineare Gleichungssysteme

Im zweiten Teil der Vorlesung wird als allgemein gebräuchliche Programmiersprache Java vorgestellt. Es geht u.a. um:

  • Unterschiede zwischen Maple und Java
  • Daten- und Kontrollstrukturen in Java
  • Objektorientiertes Programmieren
  • Grundideen objektorientierten Programmdesigns

Material

Folien, Worksheets und Aufgaben werden voraussichtlich wie im letzten Jahr sein, nur die Klausuraufgaben sind andere :-)

Also bitte nicht wundern, wenn auf den Materialien noch das Datum vom letzten Jahr draufsteht...

Der Maple-Teil läuft folgendermaßen ab:

Vorlesung/Übung 20./22. 10. (Ausdrücke und Variablen)

  • Die Folien "Organisatorisches". Zum Teil natürlich überholt; aktuelle Klausurtermine:
    • Midterm-Klausur (Maple) voraussichtlich am Montag, 8.12.,
    • Abschlussklausur (Java) voraussichtlich am Montag, 26.1.,
    • jeweils zur Vorlesungszeit (genaue Modalitäten werden noch bekannt gegeben)
    • Anmeldung über das mytum-Portal bis zum 9.11. bzw. 21.12. verpflichtend (" Midterm-Klausur Einführung in die Programmierung I - Winter 08" bzw. " Abschluss-Klausur Einführung in die Programmierung I - Winter 08"; zum Finden am besten die Liste auf "Informatik" einschränken).

Vorlesung/Übung 27./29. 10. (Funktionen, Rekursion)

Vorlesung/Übung 3./5. 11. (Datenstrukturen)

Vorlesung/Übung 10./12. 11. (Kontrollstrukturen)

Vorlesung/Übung 17./19. 11. (Prozeduren)

Vorlesung/Übung 24./26. 11. (Sortieren)

Vorlesung/Übung 1./3. 12. (Vektoren und Matrizen)

Midterm-Klausur (Maple) 8. 12.

Vorlesung/Übung 15./17. 12. (Prozedurale Konzepte in Java, Teil 1)

Vorlesung/Übung 22.12. / 7. 1. (Prozedurale Konzepte in Java, Teil 2)

Vorlesung/Übung 12./14. 1. (Klassen und Objekte)

Vorlesung/Übung 19./21. 1. (Vererbung)

Abschluss-Klausur (Java) 26. 1.

  • Die Ergebnisse sind im mytum-Portal abrufbar - hier gibt es weitere Informationen dazu
  • Klausurbesprechung/Einsicht am Mittwoch, 28.1. in der Ünung (8:30 im Raum MI 00.13.009A)
  • Die Ergebnisse werden direkt an den Prüfungsschriftführer Physik (Dr. Dressler) weitergegeben.
  • Die Scheine wird es ab nächster Woche (3.2.09) auch auf Papier geben, abzuholen immer Dienstags 14-15 Uhr im Sekretariat des Lehrstuhls (MI 02.05.052, Fr. Westphal).


Informationen zu Maple

Maple in der Informatik-Halle

Auf den SUNs der Informatik-Halle ist Maple unter

/usr/local/applic/bin/xmaple

installiert (ggf. ist das Verzeichnis /usr/local/applic/bin nicht im Suchpfad enthalten; einfachste Abhilfe: beim Aufruf alles obenstehende eingeben, besser: rauskriegen, wie man den Suchpfad erweitert, dann Aufruf einfach mit xmaple).

Wesentlich schneller ist die Oberfläche "Classic Worksheet", die man mit der Oprion -cw erhält:

/usr/local/applic/bin/xmaple -cw

Literatur zu Maple

Bücher

  • Michael Kofler, Gerhard Bitsch und Michael Komma: Maple - Einführung, Anwendung, Referenz, Pearson Studium 2002
  • David Betounes, Mylan Redfern: Mathematical Computing - An Introduction to Programming Using Maple, Springer 2002
  • Waterloo Maple Incorporated: Einführung in Maple V und Programmieren mit Maple V, Springer-Verlag.
  • Markus Hörhager: Maple in Technik und Wissenschaft, Addison-Wesley
  • M.B. Monagan et.al.: Programmieren mit Maple V, Springer

Man vergesse auch niemals die Online-Hilfe zu Maple! Beispiel: Aus dem Help-Menü "Introduction" anwählen und die "New Users Tour" durchgehen.

Links zu Maple

Maple-Campuslizenz

Im Rahmen einer Campuslizenz des Leibniz-Rechenzentrums (LRZ) können Studierende der TU Lizenzen erwerben (die Lizenz gilt nur zur Benutzung während des Studiums).

Informationen zu Java

Java für Daheim

Zum Schreiben eigener Java-Programme brauchen wir einen Übersetzer, der unser menschenlesbares Programm in einen (fast) ausführbaren Code umwandelt (z.B. javac) - "fast ausführbar" deshalb, weil man zur Ausführung in Wirklichkeit noch das Laufzeitsystem (java oder jre) braucht - letzteres ist meistens schon vorhanden, den Übersetzer muss man sich in der Regel noch beschaffen (keine Angst: kostet nix).

Wie bei Maple gilt auch hier: eine ältere Version reicht völlig aus.

Das JDK von SUN

Auf http://java.sun.com/j2se/ kann man die aktuelle Java-Umgebung von SUN für Windows, Linux und und Solaris herunterladen (ebenso nahezu beliebige Mengen an Dokumentation). Diese hat zwar keine bunte grafische Oberfläche, aber alles was man normalerweise braucht (außer einem Texteditor) sind die beiden Kommandos javac und java. Näheres über die ersten Schritte in Java findet man im Tutorial von SUN.

Ein relativ häufig auftretendes Problem, das sich in Fehlermeldungen der Art Klasse Soundso nicht gefunden äußert (obwohl Soundso.class im aktuellen Verzeichnis liegt), ist ein falsch gesetzter Klassen-Suchpfad. Wie man diese CLASSPATH-Umgebungsvariable entsprechend setzen kann ist in der entsprechenden Dokumentation (Variante für Linux/Solaris und Variante für Windows) beschrieben. Unter Umständen hilft auch ein Umstieg auf jre:

jre -cp . Soundso

statt

java Soundso

BlueJ

Die technischen Unschönheiten kann man hinter schönen bunten Benutzeroberflächen verstecken, für unsere (Lern-) Zwecke gut geeignet (und umsonst) ist BlueJ, (Download der Umgebung, Anleitung zur Installation). Auf den sunhalle-Rechnern kann man BlueJ mit dem Befehl bluej (von einem Terminal-Fenster aus) starten.

Literatur zu Java

Bücher

Bücher über Java gibt's viele, zwei davon seien hier erwähnt:

Ähnlicher Aufbau wie unsere Betrachtungen: von den grundlegenden Dingen hin zur objektorientierten Programmierung
Ein Vertreter des komplementären Ansatzes: man kann auch mit den Objekten anfangen und sich zu den Details vorarbeiten

Online-Literatur

  • Auf den Java-Seiten von SUN gibt es ein schönes Tutorial, das als begleitende Lektüre völlig ausreicht (Teile davon, natürlich!).
  • Weitere "Online-Bücher" und -Referenzen zu Java findet man im MeDoc-Archiv.
  • Die Java Coding Conventions (ein von Java-Programmierern recht strikt befolgter Style-Guide zum Erstellen von Programmen - sollte bei allen größeren Projekte (insbesondere Team-Projekten) beachtet werden!

Klausuren

Voraussichtlich wird es wieder vor Weihnachten eine Klausur über den Maple-Teil und am Semsterende eine Klausur über den Java-Teil; für den Schein muss man beide bestehen (in früheren Semestern bestandene Maple- und Java-Klausuren dieser Veranstaltung gelten weiterhin)

Alte Klausuren zum Üben: