der Universität Oldenburg Programmierkurs Java Vorlesung im WS 1998/1999 am FB Informatik der Universität Oldenburg Vorlesung 1 Dietrich Boles
Gliederung von Vorlesung 1 Begrüßung Organisatorisches Vorlesung Übungen Scheine Rechner Die Programmiersprache Java Was ist Java ? Historie Eigenschaften und Begriffe Arbeitsweise ein erstes Java-Programm Informationsquellen
Organisatorisches / Vorlesung Dozent: Dietrich Boles Abteilung Informationssysteme (Prof. Dr. H.-J. Appelrath) Escherweg 2 (OFFIS) D-26121 Oldenburg Tel.: 0441 / 9722-212 Fax: 0441 / 9722-202 Email: boles@informatik.uni-oldenburg.de Sprechstunde: Mittwochs nach der VL Termin: Mittwochs, 8-10 Uhr, Hörsaal B Homepage zur Vorlesung: http://www-is.informatik.uni-oldenburg.de/~dibo/teaching/java9899 Skript: Folienkopien
Organisatorisches / Vorlesung Inhalte der Vorlesung: Basiskonzepte der imperativen Programmierung Basiskonzepte der objektorientierten Programmierung weitere Programmierkonzepte (GUIs, Applets, Threads, ...) Ziele der Vorlesung / Übung: Beherrschung der Programmiersprache Java Kennenlernen der Basiskonzepte der Programmierung Erlernen des sauberen Algorithmen- / Programmentwurfs Vermitteln eigener Lösungsansätze an andere Verstehen fremder Lösungsansätze Diskussion über Lösungsansätze Keine Ziele der Vorlesung: generelle Einführung in die EDV / Informatik / Rechnernutzung Auswendiglernen von syntaktischen Feinheiten Kennenlernen der JDK-Klassenbibliotheken
Organisatorisches / Vorlesung Struktur und Inhalte der Vorlesung: 21.10.98: Organisatorisches, Einführung in Java 28.10.98: Einführung in die Programmierung 04.11.98: Das Hamster-Modell 11.11.98: Variablen, Werte, Datentypen, Operatoren, Ausdrücke, Deklarationen 18.11.98: Anweisungen, Kontrollstrukturen 25.11.98: Prozeduren, Funktionen, Gültigkeitsbereich 02.12.98: Lebensdauer, Rekursion, Zuweisungen (Ergänzung), Typumwandlungen 09.12.98: Zusammengesetzte Datenstrukturen, Referenzdatentypen, Arrays 16.12.98: Klassen und Objekte I 13.01.99: Klassen und Objekte II, Strings, OO-Softwareentwicklung 20.01.99: Vererbung 27.01.99: Abstrakte Klassen, Interfaces 03.02.99: Pakete, Zugriffsrechte 10.02.99: Exceptions 17.02.99: Ein-/Ausgabe, Threads, GUIs, Applets
Organisatorisches / Übungen Übungstermine: Montags, 8-10 Uhr, A2 2-203, Tutor: Klaus Kopperschmidt Dienstags, 12-14 Uhr, A2 2-203, Tutor: Stefan Kühnapfel Donnerstags, 8-10 Uhr, A2 2-203, Tutor: Michael Darsow Donnerstags, 14-16 Uhr, A2 2-203, Tutor: Matthias Köster Freitags, 8-10 Uhr, A2 2-203, Tutor: Martin Sparenberg Freitags, 12-14 Uhr, A2 2-203, Tutor: Michael Weers Sinn / Inhalte: Diskussion der Übungsaufgaben Nachbereitung des Vorlesungsstoffes Ablauf des Übungsbetriebs: Ausgabe von Übungszetteln Mittwochs in der Vorlesung Abgabe der Lösungen per Email an Tutor bis kommenden Montag abend Korrektur der Lösungen durch Tutoren bis kommenden Mittwoch abend Rückgabe / Diskussion der Übungszettel am kommenden DO, FR, MO und DI Bearbeitung der Übungszettel in 2er- oder 3er-Arbeitsgruppen
Organisatorisches / Scheine Scheinerwerb: Bestehen der Klausur (50% der Aufgaben) Sieger des Spiele-Turniers Klausurzulassung: 50% korrekte Lösungen jedes (!) Übungszettels zweimaliges Vortragen eigener Lösungen im Tutorium Klausur: zweistündig in der Woche nach Beendigung der Vorlesungszeit (vermutlich 24.02.99) Entwicklung von Algorithmen / Programmen Entwicklung von Klassen keine Abfrage von Java-Syntax Nachklausur / mündliche Prüfung: sind nicht vorgesehen !
Organisatorisches / Rechner Rechnerräume: A4 2-205 A4 2-220 A4 2-215 Öffnungszeiten: rund um die Uhr reserviert: A4 2-220, Dienstags und Donnerstags von 12-18 Uhr Rechnereinführung / -betreuung: Donnerstag /Freitag, 22./23.10.98 zweistündige Einführung in Zweiergruppen durch die Tutoren Rechnerbetreuung: jeden DI und DO, 12-18 Uhr, A4 2-220 Benötigte Software: Editor Java Developers Kit (JDK 1.1) Email WWW-Browser (Netscape)
Java / Was ist Java ? Imperative objektorientierte Programmiersprache Entwicklungswerkzeug Klassenbibliothek Hardware/Software-Technologie Komponentenarchitektur „kalter Kaffee“?
Java / Historie 1991: Sun-Projekt Green (Software für Konsumermarkt) 1991: OO-Programmiersprache Oak 10/1992: firmeninterne Vorstellung von „Star Seven“ 11/1992: Gründung der Firma „First Person“ 04/1993: Auflösung der Firma 04/1993: Beginn des WWW-Booms 1994: Umbenennung von Oak in Java 05/1994: HotJava (Browser mit Applet-Funktionalität) 12/1995: Lizensierung durch Netscape 01/1996: JDK 1.0 01/1996: Firma JavaSoft 05/1996: JavaBeans 02/1997: JDK 1.1 03/1997: JavaOS 03/1997: JavaStation (diskettenlose Workstation) 03/1997: PicoJava (Java-Prozessor) 1998: JDK 1.2
Java / Eigenschaften und Begriffe Einfach Objektorientiert Verteilt Interpretativ Robust Sicher Architekturunabhängig Portabel Multithreaded Dynamisch Statisch geprüft Java-Applikationen: Java-Programme auf Betriebssystemebene Java-Applets: Java-Programme in WWW-Browsern JDK: Java Developers Kit (Standard Java Distribution: Werkzeuge, Klassen, JVM) JVM: Java Virtual Maschine (Java Byte Code Interpreter)
Java / Arbeitsweise
Java / Ein erstes Beispielprogramm import java.io.*; public class Fibonacci { public static void main (String[] args) { int lo = 1; int hi = 1; System.out.println(lo); while (hi < 50) { System.out.println(hi); hi = lo + hi; // neues hi lo = hi - lo; // neues lo (= altes hi) }
Java / Informationsquellen WWW: http://www.javasoft.com/ (JavaSoft) http://www.gamelan.com/ (Gamelan) http://java.wiwi.uni-frankfurt.de/ (Repository) http://Stars.com/Authoring/Java/ (Virtual Library) http://sunsite.unc.edu/javafaq/books.html (Bücher) http://www-is.informatik.uni-oldenburg.de/~dibo/teaching/java/links/ Bücher: es existieren hunderte von Büchern ! Arnold/Gosling: Java - Die Programmiersprache, Addison-Wesley Flanagan: Java in a Nutshell, O`Reilly