Einstieg in die Informatik mit Java



Ähnliche Dokumente
Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einführung in die Programmierung

Institut für Telematik Universität zu Lübeck. Programmieren. Kapitel 0: Organisatorisches. Wintersemester 2008/2009. Prof. Dr.

Praktikum: Einstieg: Arbeitsplatz, JCreator

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Teil II: Konzepte imperativer Sprachen

Programmieren I. Administratives / Java Installation. Thomas Vetter, Brian Amberg, Andreas Forster. 21. September 2010 UNIVERSITÄT BASEL

Programmieren I. Überblick. Institut für Angewandte Informatik

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

GEONET Anleitung für Web-Autoren

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Übergang vom Diplom zum Bachelor

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Allgemeine Informationen zum Praktikum

Klausur in Programmieren

Einführung in die Informatik II

Programmieren in Haskell Einführung

Einführung in die Programmierung (EPR)

Einführung in PHP. (mit Aufgaben)

Einführung und Motivation

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Ulmer Universitäts-Trainingscamp. 1. bis 24. September 2015

Einführung in Eclipse und Java

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

1. Übung zu "Numerik partieller Differentialgleichungen"

Einstieg in die Informatik mit Java

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...

Version 0.3. Installation von MinGW und Eclipse CDT

Programmierkurs Java

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Objektorientierte Programmierung. Kapitel 0: Begrüssung

Einstellen der Makrosicherheit in Microsoft Word

Angewandte Mathematik und Programmierung

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Einführung in die C++ Programmierung für Ingenieure

Liste Programmieren - Java

Nino Simunic M.A. Computerlinguistik, Campus DU

Windows Explorer Das unbekannte Tool. Compi-Treff vom 19. September 2014 Thomas Sigg

Primzahlen und RSA-Verschlüsselung

Auswertung zu 5510P MES-Praktikum

Programmieren I. Überblick. Institut für Angewandte Informatik

Vorkurs Informatik WiSe 15/16

Algorithmen und Datenstrukturen

JAVA als erste Programmiersprache Semesterkurs

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Java: Vererbung. Teil 3: super()

Programmieren für Ingenieure Sommer Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.

Mathematische Grundlagen

Das Seminar ist eine Prüfungsleistung für Bachelor und Masterstudierende der Informatik!

Informatik 1 Tutorial

Objektorientierte Programmierung

Zwischenablage (Bilder, Texte,...)

Informatik Repetitorium SS Volker Jaedicke

Algorithmen und Berechnungskomplexität I

Schülerstudierende in Informatik-Grundvorlesungen an der Universität Göttingen

Anleitung zum Prüfen von WebDAV

Herzlich willkommen zur Lehrveranstaltung. Softwaretechnische Grundlagen / Programmierpraktikum

1 Vom Problem zum Programm

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02

2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Applications Applets (eingeschränkte Rechte)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Programmiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013

Fragen und Antworten. Kabel Internet

Informatik I Tutorial

0. Einführung. C und C++ (CPP)

Installation und Inbetriebnahme von Microsoft Visual C Express

Begleitendes Praktikum zur Vorlesung Künstliche Intelligenz

Installation OMNIKEY 3121 USB

Herzlich Willkommen!

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Objektorientiertes Programmieren mit Suse Linux

Übungsaufgaben Tilgungsrechnung

I. Fächer / Module beim Lehramt an Sonderschulen im 1. Studienabschnitt

AbaWeb Treuhand. Hüsser Gmür + Partner AG 30. Oktober 2008

Herzlich willkommen zur Lehrveranstaltung. Softwaretechnische Grundlagen / Programmierpraktikum

Einführung in die Programmierung

Aktualisierung des Internet-Browsers

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

Zählen von Objekten einer bestimmten Klasse

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Prüfungszeiten für den Studiengang Bachelor of Science in Psychologie

Logics App-Designer V3.1 Schnellstart

Installationsanleitung

Facheinführung Mathematik

Visual Basic Express erstes Projekt anlegen

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Grundlagen der Informatik

Algorithmik II. SS 2003 Prof. Dr. H. Stoyan Lehrstuhl für Informatik 8 ( Künstliche Intelligenz) stoyan@informatik.uni-erlangen.

AM 53/2012. Amtliche Mitteilungen 53/2012

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Transkript:

1 / 34 Einstieg in die Informatik mit Java Einführung Gerd Bohlender Institut für Angewandte und Numerische Mathematik

Gliederung 2 / 34 1 Ziele der Vorlesung 2 Java oder C++??? 3 Was ist Java? 4 Geschichte von Java 5 Wintersemester 2009/2010 6 Literatur

3 / 34 Vorlesungen Einstieg in die Informatik Zielgruppe Erstmals: Vorlesung im Studiengang Bachelor Mathematik Hörer/-innen aller Fachrichtungen keine speziellen Vorkenntnisse erforderlich Interesse an mathematisch/naturwissenschaftlichen Aufgabenstellungen Motivation zur aktiven Mitarbeit (insbesondere im Praktikum)

Gliederung 4 / 34 1 Ziele der Vorlesung 2 Java oder C++??? 3 Was ist Java? 4 Geschichte von Java 5 Wintersemester 2009/2010 6 Literatur

Ziele der Vorlesung 5 / 34 Was Sie lernen können: Arbeiten mit einer objektorientierten Programmiersprache Grundlegende Spracheigenschaften (Datentypen, Anweisungen,...) Einstieg in die objektorientierte Programmierung Bedienung der Programmier-Werkzeuge unter Linux Umsetzung mathematischer Konzepte am Rechner Implementierung typischer numerischer Algorithmen Einfache statistische Auswertungen Ausgewählte weitere Themen (Primzahlberechnung,...) Darstellung mathematischer Strukturen Ausgewählte Themen aus der Informatik Strukturierter Programmentwurf Implementierung typischer Algorithmen, z.b. Sortieren Effizienz von Algorithmen Eigenständige Arbeitsweise Vor- und Nachbereitung der Vorlesung und Übung Vorbereitung der Praktikumsaufgaben Anteil laut Modulbeschreibung 50 Prozent

6 / 34 Berufsrelevanz Stichworte aus aktuellen Stellenanzeigen (Computer-Zeitschrift ct vom 12. 10. 09) Ausgeprägte Kenntnisse in... C, C++, Java Gute Kenntnisse in Java sehr gute Kenntnisse in der Erstellung... von Java-Anwendungen Kenntnisse in... Java, C++ Programmiererfahrung in C++ gute Fähigkeiten in Java Software-Entwickler in Java mehrjährige Erfahrung in objektorientierter Programmierung in Java Programmiererfahrung in Java C-Entwickler

Gliederung 7 / 34 1 Ziele der Vorlesung 2 Java oder C++??? 3 Was ist Java? 4 Geschichte von Java 5 Wintersemester 2009/2010 6 Literatur

8 / 34 Java oder C++??? Zur Wahl der Veranstaltung ein kleines Beispiel in Java und C++ Aufgabe berechne alle Primzahlen im Bereich von 2 bis 999: 2 ist prim teste alle ungeraden Zahlen zahl = 3, 5, 7,...999 ob sie durch teiler = 3, 5, 7,... zahl teilbar sind

Primzahltest, Programmrahmen Java 9 / 34 / / a l l e Primzahlen von 2 b i s 999 ausgeben public class PrimzahlTest { public s t a t i c void main ( S t r i n g [ ] args ) { / / h i e r s t e h t der Algorithmus } }

Primzahltest, Programmrahmen C++ 10 / 34 / / a l l e Primzahlen von 2 b i s 999 ausgeben # include <iostream> using namespace std ; i n t main ( ) { / / h i e r s t e h t der Algorithmus }

Primzahltest, Algorithmus, Teil 1 Java 11 / 34 / / ein paar Variablen i n t zahl ; / / Primzahl Kandidat i n t t e i l e r ; / / moegliche T e i l e r boolean prim ; / / noch kein T e i l e r gefunden... / / e r s t mal vorab : 2 i s t prim System. out. p r i n t (2 + ) ; / / 2 und etwas Abstand ausgeben / / dann a l l e ungeraden Zahlen von 3 b i s 999 t e s t e n zahl = 3; / / mit 3 beginnen

Primzahltest, Algorithmus, Teil 1 C++ 12 / 34 / / ein paar Variablen i n t zahl ; / / Primzahl Kandidat i n t t e i l e r ; / / moegliche T e i l e r bool prim ; / / noch kein T e i l e r gefunden... / / e r s t mal vorab : 2 i s t prim cout << 2 << ; / / 2 und etwas Abstand ausgeben / / dann a l l e ungeraden Zahlen von 3 b i s 999 t e s t e n zahl = 3; / / mit 3 beginnen

Primzahltest, Algorithmus, Teil 2 Java 13 / 34 / / Schleife, a l l e ungeraden Zahlen bis 999 testen while ( zahl <= 999) { / / solange zahl noch im gewuenschten Bereich prim = true ; / / anfangs noch kein T e i l e r gefunden t e i l e r = 3; / /... oder durch 3, 5,...? / / es kommen nur t e i l e r <= Wurzel ( zahl ) i n Frage, / / wenn ein T e i l e r gefunden wurde ( also prim = f a l s e i s t ), Test abbreche while ( prim && t e i l e r t e i l e r <= zahl ) { / / w e i t e r t e s t e n? i f ( zahl % t e i l e r == 0) / / t e i l b a r? prim = false ; / / dann i s t es keine Primzahl t e i l e r = t e i l e r + 2; / / naechsten ungerade T e i l e r ausprobieren } i f ( prim ) / / f a l l s keine T e i l e r gefunden wurden, System. out. p r i n t ( zahl + ) ; / / zahl ausgeben und etwas Abstand zahl = zahl + 2; / / naechste ungerade Zahl } / / noch ein Zeilenende ausgeben System. out. p r i n t l n ( ) ;

Primzahltest, Algorithmus, Teil 2 C++ 14 / 34 / / Schleife, a l l e ungeraden Zahlen bis 999 testen while ( zahl <= 999) { / / solange zahl noch im gewuenschten Bereich prim = true ; / / anfangs noch kein T e i l e r gefunden t e i l e r = 3; / /... oder durch 3, 5,...? / / es kommen nur t e i l e r <= Wurzel ( zahl ) i n Frage, / / wenn ein T e i l e r gefunden wurde ( also prim = f a l s e i s t ), Test abbreche while ( prim && t e i l e r t e i l e r <= zahl ) { / / w e i t e r t e s t e n? i f ( zahl % t e i l e r == 0) / / t e i l b a r? prim = false ; / / dann i s t es keine Primzahl t e i l e r = t e i l e r + 2; / / naechsten ungerade T e i l e r ausprobieren } i f ( prim ) / / f a l l s keine T e i l e r gefunden wurden, cout << zahl << ; / / zahl ausgeben und etwas Abstand zahl = zahl + 2; / / naechste ungerade Zahl } / / noch ein Zeilenende ausgeben cout << endl ;

15 / 34 Vergleich von Java und C++ Java basiert auf C++ Viele Grundelemente gleich oder ähnlich Erweiterungen (Applets,...) Einschränkungen aus Sicherheitsgründen (keine Pointerarithmetik,...) Konsequente Objektorientierung Wichtige Änderungen bei Feldern, Parameterübergabe,...

Link zu einem Java-Programm 16 / 34 Das typische Hallo-Welt-Programm Hallo.java public class Hallo { public s t a t i c void main ( S t r i n g [ ] args ) { System. out. p r i n t l n ( Hallo Welt! ) ; } }

Gliederung 17 / 34 1 Ziele der Vorlesung 2 Java oder C++??? 3 Was ist Java? 4 Geschichte von Java 5 Wintersemester 2009/2010 6 Literatur

Was ist Java? Eigenständige Sprache Programme werden i.a. in eine portable Zwischensprache übersetzt und auf dem Zielsystem interpretiert. Zur Laufzeit werden ggf. die innersten Schleifen in Maschinencode übersetzt. Sammlung von Klassenbibliotheken Es können leicht fensterorientierte Programme erstellt werden, die sowohl z.b. unter X-Windows, als auch unter Microsoft Windows, Mac OS, etc. ausgeführt werden können. Elemente: Fenster, Menüs, Ereignisgesteuerte Programme, etc. Applets Kleine Programmstücke, die nicht selbständig ausgeführt, sondern in einem Internet-Browser wie Firefox oder MS-Internet-Explorer als Komponenten aufgerufen werden. JavaScript Vereinfachtes Java, das direkt in HTML-Dokumente für das Internet eingefügt wird. 18 / 34

19 / 34 Spracheigenschaften portabel auf Quelltextebene (standardisierte Sprache und Bibliotheken) portabel auf Codeebene (maschinenunabhängiger Bytecode mit Interpreter) einfache Sprache, auf Basis bekannter Sprache (Ähnlichkeit zu C++) sicher (bewusste Einschränkungen beim Umfang) multi-threaded, verteilte Anwendungen (Internet), einfaches Erstellen von Window-Programmen (Klassenbibliotheken)

Gliederung 20 / 34 1 Ziele der Vorlesung 2 Java oder C++??? 3 Was ist Java? 4 Geschichte von Java 5 Wintersemester 2009/2010 6 Literatur

21 / 34 Geschichte von Java Projekt Green bei Sun Microsystems seit 1991 für Gerätesteuerungen ( Kabel-TV-Anschlussbox, Videorecorder,...), James Gosling u. a., z. B. Hoff/Shaio/Starbuck Nachfolger Oak, wegen Namenskonflikt umbenannt in Java, Einsatz als Sprache im Internet seit 1995 Ziele: Internetapplikationen, d. h. Programme werden beim Aufruf einer Webseite übertragen und ausgeführt.

Versionen der Sprache Teil 1 22 / 34 1994: Entwicklung des Webbrowsers HotJava zur Demonstration der Leistungsfähigkeit der Sprache 1995: Java JDK 1.0 erste, weborientierte Version der Sprache, Integration in die gängigen Browser von Netscape und Microsoft 1997: Java JDK 1.1 neues, effizienteres Eventhandling, Komponentenmodell JavaBeans, native-schnittstelle, Internationalisierung, zahlreiche kleinere Verbesserungen und Erweiterungen 1998: Java J2SE 1.2 (Java 2 Platform, Standard Edition) neue Grafikbibliotheken Swing für die GUI-Entwicklung, Java 2D für 2D-Grafiken, weitere Ergänzungen 2000: Java J2SE 1.3 Verbesserungen in Details, bessere Performance des Interpreters, neue, ebenfalls kostenlose Entwicklungsumgebung Forte

23 / 34 Versionen der Sprache Teil 2 2002: Java J2SE 1.4 Erweiterung der Sprache, Unterstützung von Assertions 2004: Java J2SE 5.0 Einfachere Eingabe, formatierte Ausgabe, Unterstützung für variable Argumentenlisten von Methoden, Unterstützung von generische Typen, Hilfsklassen für nebenläufige Programmierung im neuen Paket java.util.concurrent, Syntaktische Unterstützung für Aufzählungswerte, Statischer Import von Klassen 2006: Java SE 6 Integrierte Datenbank JDBC, Schnittstelle zu Skriptsprachen,... 2010: Java SE 7 u.a. Unterstützung für Mehrkern-Prozessoren

24 / 34 Bezeichnungen Bezeichnung der Sprache Seit Version 1.2 Java 2 Seit Version 5 Java 5.0 Seit Version 6 Java 6,... Aktuelle Version: Java 6 Java, Version 1.6 Java SE 6 Update 16, Version 1.6.0 16 Codename Mustang

Gliederung 25 / 34 1 Ziele der Vorlesung 2 Java oder C++??? 3 Was ist Java? 4 Geschichte von Java 5 Wintersemester 2009/2010 6 Literatur

Vorlesungen im Wintersemester 2009/2010 26 / 34 Einstieg in die Informatik mit Java Bohlender / Richter Mo,11:30-13:00 und Di, 9:45-11:15, Hertz-Hörsaal Schwerpunkte: Grundkonzepte von Java Einstieg in die Objektorientierte Programmierung Weiterführende Themen in Java Rechnerhandhabung (Linux, Editor, Compiler, Entwicklungsumgebung NetBeans,...) Umsetzung einfacher mathematischer Konzepte und Algorithmen in Java Einstieg in die Informatik mit C++ Grüner / Feist Mo, 11:30-13:00, Gr. Hs. Bauing. und Di, 11:30-13:00, Hertz-Hörsaal Schwerpunkte: Grundkonzepte von C++ Objektorientierte Programmierung Umsetzung einiger typischer Algorithmen aus der numerischen Mathematik Rechnerhandhabung (Linux, Editor, Compiler,...)

27 / 34 Vorkurs In diesem Semester bieten wir einen Vorkurs vor dem eigentlichen Praktikum an, in dem Teilnehmer/innen ohne Linux-Kenntnisse mit der Bedienung der Praktikumsrechner vertraut gemacht werden. Teil 1 (90 Minuten): Betriebsystem Linux: Oberfläche und wichtige Befehle. Teil 2 (90 Minuten): Ein erstes Programm: Aufbau, selbst schreiben und übersetzen. Termine für den Vorkurs sind wahlweise Teil 1: Dienstag, den 20.10.2009, 15:45-17:15 Uhr Teil 1: Mittwoch, den 21.10.2009, 11:30-13:00 Uhr Teil 1: Donnerstag, den 22.10.2009, 11:30-13:00 Uhr Teil 1: Montag, den 26.10.2009, 8:00-9:30 Uhr Teil 2: Donnerstag, den 22.10.2009, 15:45-17:15 Uhr Teil 2: Freitag, den 23.10.2009, 9:45-11:15 Uhr Teil 2: Freitag, den 23.10.2009, 11:30-13:00 Uhr Teil 2: Montag, den 26.10.2009, 9:30-11:15 Uhr Ort: L-Pool des Rechenzentrums. Keine Anmeldung erforderlich. Die Teilnahme ist freiwillig.

Das Team Vorlesung/Übungen Dr. Gerd Bohlender, Allianzbau, Zimmer 3B-07.1, Tel. 608 2839 Praktikum/Aufgaben Dipl. Math. techn. Markus Richter, Allianzbau, Zimmer 3C-05, Tel. 608 3157 Praktikum/Anmeldung Dipl.-Ing. Wolfgang Maag, Allianzbau, Zimmer 3C-01, Tel. 608 2679 Sekretariat Frau Henriette Schreiber-Schmoeger, Allianzbau, Zimmer 3C-04, Tel. 608 2680... und vor allem Ihre Tutorinnen und Tutoren 28 / 34

Webseite zur Vorlesung 29 / 34 Weitere Informationen siehe Merkblatt bzw. Webseite www.mathematik.uni-karlsruhe.de/ianm2/lehre/java2009w/ Materialien zur Vorlesung finden Sie unter ilias.rz.uni-karlsruhe.de

30 / 34 Anmeldung zum Praktikum Anmeldung bis Donnerstag, 22.10., 12:00 Uhr Wahl der Veranstaltung Java oder C++ Terminwahl Freitag, 23.10., 13:00 Uhr bis Dienstag, 27.10., 12:00 Uhr Praktikumsbeginn ab Mittwoch, 28.10. (je nach gewähltem Termin) Bitte beachten Sie das Merkblatt! Anmeldung ist nur an den Pool-Rechnern im Rechenzentrum möglich!

Eine kleine Umfrage Semester 1 3 5... Fach Mathe (Bachelor), Mathe (Diplom), Mathe (Lehramt), andere Profil Mathematik Wirtschaftsmathematik: Java, Technomathematik: C++ Lehramt Vorkenntnisse: Programmieren Java, C++, Basic, Pascal, andere Vorlesung WS08/09 oder SS09 nein, ja/wiederholer, ja/fortsetzung andere PC Vorkenntnisse Textverarbeitung, Web, Windows / Unix Mathematik Matrizen / Vektoren, HM, Numerik eigener PC vorhanden Java Compiler für eigenen PC erwünscht Windows, Linux Wahl von Java Studienplan, Internet, interess. Sprache, Berufsaussichten Sprache Deutsch, Englisch 31 / 34

Gliederung 32 / 34 1 Ziele der Vorlesung 2 Java oder C++??? 3 Was ist Java? 4 Geschichte von Java 5 Wintersemester 2009/2010 6 Literatur

Literatur (eine Auswahl) G. Bohlender: Einstieg in die Informatik mit Java. Foliensätze und Beispielprogramme. Werden jeweils nach der Vorlesung auf der Webseite zur Verfügung gestellt. D. Ratz, J. Scheffler, D. Seese, J. Wiesenberger: Grundkurs Programmieren in Java, Band 1, 4. Auflage, Hanser, 2007 D. Ratz, J. Scheffler, D. Seese, J. Wiesenberger: Grundkurs Programmieren in Java, Band 2, 2. Auflage, Hanser, 2006 Regionales Rechenzentrum Niedersachsen: Java 2, Begleitmaterial zu Kursen, RRZN, Hannover, 2000, (Erhältlich bei BIT8000 im Rechenzentrum, 6,85 EUR) (zzt. vergriffen, demnächst erscheint Band Java 6 ) C. Ullenboom: Java ist auch eine Insel, 6. Aufl., Galileo Computing, 2007 (Online unter www.galileocomputing.de/openbook/javainsel6/) 33 / 34

Literatur (eine Auswahl) 34 / 34 C. Heinisch, F. Müller, J. Goll: Java als erste Programmiersprache, 4. Auflage, B.G. Teubner, 2005 G. Fischer, J. Wolff v. Gudenberg: Programmieren in Java 1.5, Springer, Reihe Xpert.press, 2005 E. Merker, R. Merker: Programmieren lernen mit Java, Vieweg, 2006. R. Schiedermeier: Programmieren mit Java - eine methodische Einführung, Pearson Studium, 2005 The Java Tutorials