Java...Java

MPDL

zu Java Basics

 * Warum überhaupt Java?
 * Klärung der Begriffe: Funktion, Objekt, Attribut, Methode, Klasse, Modul/Bibliothek
 * Was ist es?
 * Was tut es?
 * Wann verwendet man es?
 * wie greifen die Komponenten ineinander?
 * gern an echten Beispielen erläutern


 * Wofür kann man Java alles einsetzen und wofür nicht (d.h. Abgrenzung zu anderen Sprachen)
 * Abschätzung des Aufwandes für Java-Entwicklung (vielleicht anhand spezifischer Beispiele)

Fragen zur Digital Library IT allgemein
Wie funktioniert Shibboleth? Was macht es (wirklich)? Shibboleth von Wikipedia

Wie arbeitet eine OAI-PMH Schnittstelle? Wie definiert man ein Set zum Harvesten? OAI-PMH for Beginners Die Sets werden vom Anbieter/Betreiber der OAI-PMH Schnittstelle definiert

Welches sind die unverzichtbaren Bestandteile des Semantic Web und besonders wie greifen sie ineinander? '(Triples, Linked Open Data Cloud - ich höre ständig BBC hat Linked Open Data so vorbildhaft in die Webseite eingebaut, woran mach ich das fest?) Semantic Web Tutorials BBC Use Cases bei W3C

Worin besteht die technische Schwierigkeit eines AAI (Authorisation Authentification Identifieres)? AAI = Authentication and Authorization Infrastructure ?? Eintrag AAI bei Wikipedia

Wie arbeiten die unterschiedlichen Schnittstellen (REST, unAPI, SWORD)? Was sind jeweilige Vor- und Nachteile? REST = REpresentational State Transfer = keine spezifische Schnittstelle für einen konkreten Anwendungsfall, sondern ein "Paradigma" für die Entwicklung von Web-Anwendungen: Alle für die Ausführung der Anfrage relevanten Informationen sollen in der URL übertragen werden SWORD Video Tutorials - Konkreter Anwendungsfall für SWORD: Deposit von Dokumenten in einem Repository UnAPI-Eintrage bei Wikipedia - Konkreter Anwendungsfall für unAPI: Download der Metadaten zu Datensätzen in verschiedenen Formaten

Java-Kurs
Angefragte Schulungseinrichtung: Open Source School

Folgende Optionen einer Schulung gibt es (Gespräch am 13.11.2012): --Andrea 11:54, 13 November 2012 (CET)

1. Kurs aus dem Katalog buchen 2. Schulung Inhouse 3. Schulung Inhouse, aber in den Räumlichkeiten der Open Source School
 * Je nach Teilnehmeranzahl kann man hier noch die Themen vereinzelt beeinflussen (d.h. Nuancen und nicht ganze Tage umschmeissen); Anzahl Kursteilnehmer beläuft sich auf ca. 3-10 Personen
 * Preise ca. 500 Euro / Tag
 * Themen und Dauer werden von Teilnehmenden festgelegt
 * Man erhält ein Angebot, aber der Preis setzt sich ungefähr so zusammen: Tagessatz 1500 für Trainer + 100 Euro / Tag Übernachtungskosten + 1 x Reisepauschale von 250 - 300 Euro)
 * Externe Teilnehmer können hier nicht dazu kommen
 * Preis siehe 2., hinzu kommt dann noch die Raummiete

Alternative: Java Kurs der Fernuni Hagen Im Weiterbildungsangebot der Fernuniversität gibt es einen (bzw. sogar mehrere) Java Kurse
 * Kosten 108 Euro + 92 Euro falls man die (Präsenz-)Prüfung ablegen will
 * Zertifikat bei Bestehen der Prüfung
 * Kursbearbeitungsdauer ca. 40 Stunden
 * Demoversion unter obigem Link

Stunde 1

 * Geschichte von Java (Plattformunabhängigkeit!)
 * Unterschied JDK/JRE: JDK enthält den compiler und auch JRE; Output eines Java Compilers ist ein plattformunabhängiger Java Bytecode. Die Java Runtime Environment (JRE) dient zur Ausführung der Java-Programme. Die Java Virtual Machine (JVM) ist in der JRE enthalten und ist eine Art Schnittstelle zur Maschine bzw. Betriebssystem. Mit der Java VM werden die von einem Java Compiler erzeugten Codes plattformunabhängig ausgeführt.
 * Kompilieren mit javac
 * Hello World Programm:

Stunde 2

 * Variablen kann man sich gewissermaßen als ein Behältnis für veränderliche Daten vorstellen. Man unterscheidet primitive (einfache) Datentypen und komplexe Datentypen (Referenzdatentypen).
 * Variablendeklaration: Datentyp Variablenname;, z.B. int gehalt;, Person p1;
 * Initalisierung (Die erste Wertzuweisung): Variablenname = Wert;, z.B. gehalt = 1500;, p1 = new Person;
 * Variablendefinition (Deklaration und Initialisierung in einem Schritt): Datentyp Variablenname = Wert;, z.B. int gehalt = 1500;, Person p1 = new Person;


 * Java Primitives (Einfache Datentypen)
 * logischer Typ boolean
 * Ganzzahltypen int, byte, short, und long
 * Gleitpunkttypen float und double
 * Zeichentyp char


 * Beispieldatei für die Programmierung mit Java Primitives


 * Weitere Hinweise:
 * Java Primitives sind keine Klassen (<-> Referenzdatentypen)
 * Erster Buchstabe bei Referenzdatentypen immer groß.
 * Primitive Datentypen werden immmer klein geschrieben.
 * Konstanten werden als final deklariert und nur in Großbuchstaben geschrieben und einzelne Worte werden durch Unterstrich voneinander getrennt,z.B. final int MAX_MENGE = 100;, final float PI=3.14f;
 * Variblen in "camelCase" geschrieben und erster Buchstabe immer klein., z.B. int myGehalt;

Stunde 3. + 4.

 * Objektorientierung

Stunde 5
Condition statements
 * if
 * if-then
 * if-then else
 * switch..case

Hausaufgabe


 * age <= 7 -> child; age >=18 adult
 * age <= 7 -> child; age >=18 adult

Rauskommen sollte:

Schleifen
 * for


 * Weitere Bedingungen:
 * break;-> stoppt alles (1. Fall wo break auftritt, stoppt)
 * continue;-> Teil wird übersprungen


 * while
 * do while
 * for each

int i ;; i++ ->stoppt nie

Stunde 6

 * Tips:
 * Steuerung + shift + / -> auskommentieren, nochmal -> wieder rückgängig (wenn sofort gemacht)
 * Steuerung + shift + F -> schöner formatieren


 * switch-case


 * Verwendung des switch case wenn wir bestimmte Werte testen
 * Wirkung von break: raus aus switch-block und print out (2. Teil des Programms)
 * if, then: if /{} (ohne Klammer wird nicht der ganze Block ausgeführt, sondern nur Zeile 1)

Hausaufgabe:
 * damit spielen: case systemoutprint (Carlo hat Geburtstag)+ break
 * Variable immer nur nach unten sichtbar und nicht nach oben

Stunde 7

 * while loop  (-> Schleife vielleicht gar nicht ausgeführt):


 * do-while (-> Schleife wird mindestens einmal ausgeführt)


 * Hausaufgabe:
 * while-Schleife als for-Schleife schreiben
 * Fragen für nächste Stunde sammlen (Colab-Seite aktualisiert Andrea K, Andrea W macht Übersicht über Kontrollstrukturen)
 * Anwendungsfälle für Schleifen, switches + for (selber das Umwandlen üben)
 * Vorschlagen eines konkreten Projektes (Eingabe, Ausgabe, Dateioperationen -> Beispiel durch Irina)

Literaturhinweise
Java ist auch eine Insel : das umfassende Handbuch; [Programmieren mit der Java Standard Edition Version 5] / Christian Ullenboom. - 5., aktualisierte und erw. Aufl.. - Bonn : Galileo Press, 2006 ISBN: 3-89842-747-1; Link zum Insel-Buch
 * Java ist auch eine Insel
 * ganz gut (und günstig) sind auch immer die RRZN Handbücher die man am LRZ bekommt
 * Thinking in Java ein Klassiker von Bruce Eckel
 * Programmieren lernen mit Java: Aktuell zu Java 7 - Keine Vorkenntnisse erforderlich von Hans-Peter Habelitz. Finde ich ziemlich gut, enthält auch Übungsaufgaben.