Einführung in die Programmierung I - Winter 08
- 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 (voraussichtlich aufgeteilt in Midterm- und Endterm-Klausur); genaue Modalitäten werden noch bekannt gegeben.
- 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 :-)
Der Maple-Teil läuft also folgendermaßen ab:
Vorlesung/Übung 20./22. 10. (Ausdrücke und Variablen)
- Die Folien Organisatorisches
- Die Folien Ausdrücke und Variablen
- Das Worksheet aus der Vorlesung (auch als ">HTML oder ">PDF)
</html>
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:
- R. Schiedermeier: Programmieren mit Java, Pearson Studium
- Ähnlicher Aufbau wie unsere Betrachtungen: von den grundlegenden Dingen hin zur objektorientierten Programmierung
- D. Barnes, M. Kölling: Objektorientierte Programmierung mit Java, Pearson Studium
- 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:
- Semestralklausur Java WS07/08: mit Lösung und ohne Lösung, die Gedächtnisstütze.
- Midtermklausur Maple WS07/08: mit Lösung und ohne Lösung, die Gedächtnisstütze.
- Semestralklausur Java WS06/07: mit Lösung und ohne Lösung, die Gedächtnisstütze.
- Midtermklausur Maple WS06/07: mit Lösung und ohne Lösung, die Gedächtnisstütze.
- Semestralklausur Java WS05/06: mit Lösung und ohne Lösung, die Gedächtnisstütze.
- Midtermklausur Maple WS05/06: mit Lösung und ohne Lösung, die Gedächtnisstütze.