Praktische Informatik I Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung im Herbstsemester 2009 Quelle: http://www.uni-mannheim.de Praktische Informatik I, HWS 2009, Kapitel 0 Seite 2 Quelle: http://www.cagle.com/news/Graduation2006/ Praktische Informatik I, HWS 2009, Kapitel 0 Seite 3 Quelle: http://www.erdinger.de Praktische Informatik I, HWS 2009, Kapitel 0 Seite 4 Quelle: http://www.erdinger.de Praktische Informatik I, HWS 2009, Kapitel 0 Seite 5 Quelle: http://www.zermatt.ch Praktische Informatik I, HWS 2009, Kapitel 0 Seite 6 Quelle: http://www.zermatt.ch Praktische Informatik I, HWS 2009, Kapitel 0 Seite 7 Quelle: http://www.bergfuehrer.info Praktische Informatik I, HWS 2009, Kapitel 0 Seite 8 Quelle: http://http://www.myswitzerland.com Praktische Informatik I, HWS 2009, Kapitel 0 Seite 9 Quelle: http://www.schenker.ch Praktische Informatik I, HWS 2009, Kapitel 0 Seite 10 Das Team Felix Freiling Christian Gorecki Tutorenteam: Jurek Herwig, Dominic Hiller, Alexander Juhn, Sebastian Grünschloss, Sebastian Keller, Christian Krupitzer, Christoph Malassa Praktische Informatik I, HWS 2009, Kapitel 0 Seite 11 Wer sind Sie? Bachelor Wirtschaftsinformatik Bachelor Mathematik und Informatik Diplom Wirtschaftsinformatik Diplom Mathematik und Informatik Bachelor Software- und Internettechnologie Diplom Technische Informatik Schülerstudium Sonstige? Praktische Informatik I, HWS 2009, Kapitel 0 Seite 12 Praktische Informatik I Einführende Informatik-Vorlesung an der Universität Mannheim Vorlesung jeweils Übungen Mittwochs, erstmals 16.9.2009 Dienstags, 15:30-17:00 in S108 Donnerstags, 15:30-17:00 in B6 A0.01 6 mögliche Termine (90 Minuten, zwischen 8:30 und 18:45) 9 Übungsgruppen Anmeldung zwischen 9.9. und 11.9.2009 unter http://tuto.uni-mannheim.de Geben Sie Terminpräferenzen an Formen Sie Lerngruppen (können sich gemeinsam für die Übung anmelden) Praktische Informatik I, HWS 2009, Kapitel 0 Seite 13 Mitschreiben? Vorlesungen werden aufgezeichnet Bildschirm- + Tonaufzeichnung Verfügbar über Vorlesungshomepage Sie brauchen nicht mitzuschreiben Verwendeter Foliensatz ist sehr ähnlich zu den Folien aus dem HWS 2007 Folien von dort verwenden zum „Vorarbeiten“ Vorlesungssprache ist Deutsch (Folien und die meisten Programme) Praktische Informatik I, HWS 2009, Kapitel 0 Seite 14 Übungen Einteilung der Übungsgruppen wird am Montag, 14.9.2009 bekannt gegeben Übungen beginnen am 16.9.2009 Jede Woche ein Übungsblatt Präsenzaufgaben Praktische Informatik I, HWS 2009, Kapitel 0 und Hausaufgaben Seite 15 Hausaufgaben Abgabe in der nächsten Übung bzw. elektronisch Hausaufgaben werden von den Tutoren korrigiert Rückgabe und Besprechung eine Woche später Die Übung ist keine zweite Vorlesung Verspätet abgegebene Lösungen werden nicht bewertet Tutoren werden Ihnen helfen, Lösungen zu finden Arbeiten Sie aktiv mit Beispielhafte studentische Lösungen werden online verfügbar gemacht Praktische Informatik I, HWS 2009, Kapitel 0 Seite 16 Fachprüfung und Schein Abschlussklausur (Fachprüfung) am Ende des Semesters Termin wird noch bekannt gegeben Keine Voraussetzung für die Teilnahme an der Klausur (d.h. jeder kann mitschreiben) Scheinklausur nach etwa zwei Dritteln des Semesters Scheinkriterium: 50% der Punkte in der Scheinklausur und 50% der Punkte aus den Hausaufgaben Für alle Klausuren: Keine Hilfsmittel zugelassen ECUM-Karte/Lichtbildausweis mitbringen Praktische Informatik I, HWS 2009, Kapitel 0 Seite 17 Motto der Vorlesung Jeder Teilnehmer/Jede Teilnehmerin sollte kleine Programme entwerfen und implementieren können Programmentwurf ist eine kreative Tätigkeit, die Sie in vielerlei Hinsicht fordert: Ähnlich der Mathematik verlangt Programmentwurf starke formal-analytische Fähigkeiten Zusätzlich kann man beim Programmieren Artefakte bauen, die wirklich funktionieren Beim Programmentwurf muss man auch genau lesen und sich präzise ausdrücken Praktische Informatik I, HWS 2009, Kapitel 0 Seite 18 Warum sollte (wirklich) jeder programmieren können? Vorbehalte: Beispiel: Formeln in Tabellenkalkulation Menge von Briefen hängt von einer spezifizierten Datenmenge (Adressen) plus Regeln ab Beispiele enthalten den Kern von Programmentwurf und Programmierung Feld A enthält eine Formel, Wert in Abhängigkeit zu einem Feld B Beispiel: Serienbriefe Programmieren ist langweilig Ich muss später nicht mehr programmieren (es gibt doch Word und Excel) Für viele Bereiche gibt es doch „Programmgeneratoren“ (erzeugen Programme aus natürlicher Sprache/Prozessbeschreibungen) Zahlenwerte untereinander in Beziehung setzen Manipulation von Zeichenketten, Ersetzung durch konkrete Werte Wir wissen nicht, welche Anwendungsprogramme in 10 Jahren existieren werden Die Anwendungsprogramme werden jedoch immer Fähigkeiten von Programmentwurf und Programmierung fordern Praktische Informatik I, HWS 2009, Kapitel 0 Seite 19 Inhalte im Überblick Grundbegriffe der Informatik Programmentwurf Programmierung (von „Methoden“) mit Java Ausblick auf die objektorientierte Programmierung am Ende Praktische Informatik I, HWS 2009, Kapitel 0 Seite 20 Inhaltsverzeichnis (vorläufig) – Teil 1 1. Programmierung • • • • 2. Programme Compiler virtuelle Maschinen Java Arbeiten mit BlueJ • • • • 3. Objekte erzeugen Methoden aufrufen Klassen benutzen Klassen erstellen Objekte und Klassen • • • • 4. Felder Methoden Konstruktoren Kommentare Klassen und Unterklassen (nur oberflächlich) • • • • Klassenfelder/-methoden Vererbung Pakete Applets Praktische Informatik I, HWS 2009, Kapitel 0 5. Daten und Operationen • • • • 6. Bits und Bytes Zahlen und Zahlensysteme Boolesche Werte Zeichen und Fonts Ausdrücke • • • • 7. Variablen, Typen Ausdrücke Syntax, Semantik Seiteneffekte Algorithmische Kernsprache • • • • 8. Zuweisungen Bedingte Anweisungen Blöcke Schleifen Sprachbeschreibung und erweiterung • • • Worte, Sprachen, reguläre Ausdrücke BNF, Grammatik do, for, break, switch Seite 21 Inhaltsverzeichnis (vorläufig) – Teil 2 9. Objekttypen • • • • 10. Referenzen, Objekterzeugung Kopien, Gleichheit Wrapper, Autoboxing Arrays, Bildbearbeitung Basisdatenstrukturen • • 11. Stack Queue 14. Prüfung von Eingabeparametern • • Assertions Praktische Beispiele 15. Ausnahmen und IO • • • • Exceptions, throws, throw, catch Ströme, Puffer Dateien lesen und schreiben Lesen im Internet Rekursion • • • • 12. rekursive Funktionen, rekursive Prozeduren Terminierung Rekursion und Induktion Induktiv definierte Datenstrukturen • • 13. Bäume Listen Sichtbarkeit • • • Protokolle, Schnittstellen, Pakete Information hiding, Datenkapselung Interfaces, Praktische Informatik I, HWS 2009, Kapitel 0 16. Klassenentwurf 17. Korrektkeit • • • • Testen mit JUnit Assertions, Invarianten, Klasseninvarianten Vor- und Nachbedingung Beweisregeln, Programmverifizierer 18. Algorithmenentwurf 19. Ausblick auf die Objektorientierung Seite 22 Abgrenzung zu anderen Vorlesungen Praktische Informatik II Rechnerstrukturen (Überblick), virtuelle Maschinen, hardwarenahe Programmierung, Übersetzerbau Wirtschaftsinformatik I Verteilte Systeme, Synchronisation, Middleware Algorithmen und Datenstrukturen Problemlösungsstrategien, Standardalgorithmen Wirtschaftsinformatik II Objektorientierte Praktische Informatik I, HWS 2009, Kapitel 0 Programmierung mit Java Seite 23 Literatur David J. Barnes, Michael Kölling: Java lernen mit BlueJ. Eine Einführung in die objektorientierte Programmierung. Pearson Studium, 3. Auflage, 2006. Englische Originalausgabe: David J. Barnes, Michael Kölling: Objects First with Java. A Practical Introduction using BlueJ, 3rd ed., Prentice Hall/Pearson Education, 2006. Heinz-Peter Gumm, Manfred Sommer, Wolfgang Hesse, Berhard Seeger: Einführung in die Informatik. 7. Auflage, Oldenbourg, 2007. Martin Schader, Lars Schmidt-Thieme: Java Eine Einführung. 4. Auflage, Springer, 2003. Les Goldschlager, Andrew Lister: Informatik Eine moderne Einführung. Hanser-Verlag, München, 1990. Praktische Informatik I, HWS 2009, Kapitel 0 Seite 24 Weitere Hinweise und Unterlagen Homepage der Vorlesung unter https://pi1.informatik.uni-mannheim.de Studentische Foren: Fachschaft: http://fim.uni-mannheim.de/ Community: http://www.im-coma.de/ Praktische Informatik I, HWS 2009, Kapitel 0 Seite 25 Unterstützung und Feedback Stellen Sie Fragen vor/nach/in der Vorlesung Veranstaltungsteam bieten jeweils Sprechstunden an Siehe Vorlesungs-Homepage Geben Sie Feedback Insbesondere in den Tutorien Auch direkt an die Dozenten Praktische Informatik I, HWS 2009, Kapitel 0 Seite 26 Software (aktuell) Software J2SE 6.0 (Update 16) Alles frei verfügbar für Windows Linux MacOs BlueJ version 2.5.2 Java Entwicklungstools Dokumentation Java Experimentierumgebung Installieren Sie die Systeme in dieser Reihenfolge Praktische Informatik I, HWS 2009, Kapitel 0 Seite 27 Software (im PI-Pool) Software J2SE 6.0 (Update 14) Alles frei verfügbar für Windows Linux MacOs BlueJ version 2.2.1 Java Entwicklungstools Dokumentation Java Experimentierumgebung Geben Sie bei Problemen jeweils die Version an, die Sie verwenden Praktische Informatik I, HWS 2009, Kapitel 0 Seite 28 SDK- Software Development Kit J2SE 6.0 Notwendig für Erstellung und Ausführung von Java-Programmen Laden des JDK (Java SE Development Kit) von der Seite http://java.sun.com/javase/downloads/index.jsp Wählen Sie JDK Update 16 => Download ACHTUNG: Wählen Sie nicht „JDK Update 16 with …“ ! Akzeptieren Sie die Lizenzvereinbarung und wählen Sie z.B. für Windows XP: Windows, Multi-language jdk-6u16-windows-i586.exe, 73.54 MB Installieren Sie Java durch Doppelklick auf jdk-6u16-windows-i586.exe Sie werden nach einem Verzeichnis gefragt, in dem der JDK installiert werden soll. Übernehmen Sie den Vorschlag, z.B.: C:\Program Files\Java\jdk1.6.0_16 Praktische Informatik I, HWS 2009, Kapitel 0 Seite 29 API Dokumentation: J2 SE 6.0 API = Application Programmer Interface Dokumentation der Java Klassen Sehr umfangreich (ca 32 MB) Herunterladen von der Seite http://java.sun.com/javase/downloads/index.jsp Java SE 6 Documentation => Download Wählen Sie eine Sprache und akzeptieren Sie die Lizenzvereinbarung Die Datei jdk-6u10-docs.zip entpacken (53 MB) das kann man mit WinZip machen, oder mit dem Befehl jar -xvf jdk-6u10-docs.zip In ein Verzeichnis kopieren, z.B. in C:\Programme\Java\jdk1.6.0\ Die Einstiegsseite zur Dokumentation wäre dann file:///C:/Programme/Java/jdk1.6.0/docs/api/index.html Praktische Informatik I, HWS 2009, Kapitel 0 Seite 30 Die API-Dokumentation Praktische Informatik I, HWS 2009, Kapitel 0 API = Application Programming Interface Gebrauchsanleitung der Java-Klassen und Methoden Seite 31 BlueJ Herunterladen des Systems von der Seite www.bluej.org/download/download.html Optional noch das Tutorial von www.bluej.org/doc/documentation.html Doppelklick auf bluejsetup-252.exe Der Installer schlägt ein Zielverzeichnis vor, z.B.: C:\Programme\BlueJ Der Installer sucht nach einer Java-Version. Er sollte den vorher installierten SDK finden. Praktische Informatik I, HWS 2009, Kapitel 0 Seite 32 BlueJ starten Die splash screen von BlueJ Falls Sie mehrere Java-Systeme installiert haben, können Sie jetzt eine aussuchen So etwa sieht das Hauptfenster von BlueJ aus. Glückwunsch, die Installation war erfolgreich Praktische Informatik I, HWS 2009, Kapitel 0 Seite 33 BlueJ - Anpassung (optional) In C:\Programme\Bluej\lib befinden sich Dateien mit der Endung „.def“, die das Verhalten von Bluej beeinflussen. Jede Zeile, die mit “#“ beginnt, ist unwirksam. Entfernt man das “#“ vor einer Zeile, so wird diese wirksam Beispiel: Deutsche Version von Bluej einstellen: In der Textdatei C:\Programme\Bluej\lib\bluej.defs : bluej.language=english #bluej.language=german #bluej.language=english bluej.language=german Analog lässt sich auch das Verhalten des Editors (moe) durch die Datei moe.defs beeinflussen. Z.B.: Ändern der Farbdarstellung von Kommentaren und keywords (Syntaxhighlighting): comment = 003399 keyword1 = 660033 Praktische Informatik I, HWS 2009, Kapitel 0 comment = 33CCFF keyword1 = 0033CC Seite 34 BlueJ-Anpassung Lokale API-Dokumentation benutzen Im BlueJ-Fenster wählen Sie Tools>Preferences (Werkzeuge>Einstellungen) und ersetzen Sie den Link durch einen link auf Ihre lokale Dokumentation, z.B.: file:///C:/Programme/Java/jdk1.6.0/api Praktische Informatik I, HWS 2009, Kapitel 0 Seite 35 Danksagungen Die meisten Folien basieren auf einer Vorlage von H. Peter Gumm, Philipps-Universität Marburg Die Kollegen Becker, Effelsberg, Männer und Schnörr haben mir zur Vorbereitung dieser Vorlesung Folien und andere Unterlagen überlassen. Vorlesungsideen gehen auch zurück auf Material der Kollegen Hesser, Ottmann, Schader und Schmeck. . Praktische Informatik I, HWS 2009, Kapitel 0 Seite 36 Ausblick Melden Sie sich zu den Übungen an! Nächste Vorlesung am Donnerstag: Programmiersprachen Virtuelle Maschinen Java Arbeiten mit BlueJ Praktische Informatik I, HWS 2009, Kapitel 0 Seite 37