Universität Osnabrück Fachbereich Mathematik / Informatik 1. Übung Prof. Dr. rer. nat. Oliver Vornberger Nico Marniok, B. Sc. Erik Wittkorn, B. Sc.

Ähnliche Dokumente
Universität Osnabrück Fachbereich Mathematik / Informatik. Prof. Dr. rer. nat. Oliver Vornberger Nico Marniok, B. Sc. Erik Wittkorn, B. Sc.

Tutorium SS17 EINFÜHRUNG + BREAKOUT

Enes Kurnaz, Oliver Nagel Institut für Mathematik und Informatik. Versionsverwaltung mit Git

Versionsverwaltung. Seminar Softwareentwicklung in der Wissenschaft Robert Wiesner

Einführung zu Git. Das Nötigste für die Studienarbeit im Modul Datenkommunikation. Ege Inanc

Programmieren 1 11 Versionsverwaltung mit Git - Grundlagen -

Softwareentwicklung I (IB) Versionsverwaltung mit Git

Versionsverwaltung mit git

DOM Document Object Model

Programmieren 2 05 Versionsverwaltung mit Git

Verarbeitung von XML mit SAX und DOM

Die Projek*ools. Files, Git, Tickets & Time

Praktische Einführung in die Versionsverwaltung mit Eclipse

Arbeiten mit dem Versionsverwaltungssystem. Jannik Kramer Proseminar Werkzeuge für das wissenschaftliche Arbeiten

Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis HANSER

Versionsverwaltung mit Git

Software Engineering

XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung

git Änderungen verwalten mit git

Seminar: XML und Datenbanken

Prof. Dr. Marko Boger. Prof. Dr. Christian Johner. Versionsmanagement

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Simple API for XML (SAX) Ulrich Hoffmann

Praktikum Ingenieurinformatik (PI)

Semesterprojekt Entwicklung einer Suchmaschine für Alternativmethoden zu Tierversuchen. Versionierung und Bugtracking mit GitHub

XML-Programmierschnittstellen: SAX, DOM

Git-Grundlagen für Entwickler. Thomas Claudius

Programmieren II SAX. Beispiel-Schema kontakt.xsd SAX DOM. Dr. Klaus Höppner JAXB. Hochschule Darmstadt SS 2008

git & git-flow Jens Sandmann Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow / 31

Versionsverwaltung mit GIT

XML, FI und JSON strukturiert in Java verwenden. Wolfgang Nast

Apache Subversion (SVN)

Versionierung und Bugtracking mit Git(Hub)

Continuous Integration (CI) Workshop

Apache Subversion (SVN)

Revisionskontrollsystem GIT

2.4 Analyse von XML-Dokumenten

Informatik II Übung 4 Gruppe 7

Software(technik)praktikum: SVN-Tutorial

Software-Engineering Grundlagen des Software-Engineering 7.3 Sourcecode-Verwaltung mit Versionsmanagement-Systemen Einführung in Subversion (SVN)

XML - Datei Zugriff mit Java

Tool-Chain. Übung. Eclipse, SVN, Ant, Cobertura, Metrics Labor "Software Engineering Experiment" Sebastian Meyer und Kai Stapel

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Versionsverwaltung von Softwareartefakten. 21. Oktober 2014

Von SVN zu Git. Daniel Willmann cbna

Mercurial. or how I learned to stop worrying and love the merge. Ted Naleid IAIK

Versionsverwaltung für die KU Betriebssysteme. Eine Einführung

Versionsverwaltung mit Git. Eine Einführung ins Source Code Management

XML-Technologien. XML-Parser. Florian Raith Hochschule München Fakultät für Informatik und Mathematik am 04. November 2010

XML. Einführung, XML-Grundlagen und -Konzepte. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

Eine Einführung in das verteilte Quelltextverwaltungssystem Git

XML. Einführung, XML-Grundlagen und -Konzepte. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

SVN-Einführung für das SEP DS und CM. Julian Timpner, Stefan Brenner, Stephan Rottmann

Berner Fachhochschule Software Schule Schweiz JDOM. Beatrice Amrhein. Oktober 06

Einstieg in die Informatik mit Java

Medieninformatik Praktikum. Jens Rademacher

Versionsverwaltung mit SVN

Git-Workflows im Alltag

1 Software Engineering 1

Mapra: C++ Teil 3. Felix Gruber, Michael Rom. IGPM, RWTH Aachen. 10. Mai 2016

SWP Übersetzerbau im SS 13 Einführung und Organisatorisches. Till Zoppke Maximilian Konzack Yves Müller Freie Universität Berlin

Einstieg in die Informatik mit Java

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Einführung Git Interna Workflows Referenzen. Git. Fast Version Control System. Michael Kuhn

Softwareentwicklungspraktikum Android-Programmierung

Verteilte Versionskontrolle mit GIT Dortmund Ansgar Brauner - GreenPocket GmbH - Köln

Analyse und Modellierung von Informationssystemen

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Buildsysteme

Thomas Rau (mit Material von Peter Brichzin) Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten

, Rainer Schmidberger, ISTE. XML und Java. Rainer Schmidberger

Softwaretechnologie -Wintersemester 2012/2013- Dr. Günter Kniesel

7.0 Arbeiten mit Objekten und Klassen

Versionsverwaltung mit Git

Grundkurs C++ Buildsysteme Versionsverwaltung mit git

Grundkurs C++ Buildsysteme Versionsverwaltung mit git

Einführung in Git. master. Initial commit

Git II. Dezentrale Versionsverwaltung im Team

Grundkurs C++ Buildsysteme Versionsverwaltung mit git

Apache Subversion (SVN)

WOZU VERSIONSKONTROLLE?

Prof. Dr. Uwe Schmidt. 21.August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (BInf 211, BTInf 211, BMInf 211, BWInf 211)

Versionsverwaltung. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009

Mapra: C++ Teil 5. Felix Gruber, Sven Groß. 16. Mai IGPM, RWTH Aachen. Felix Gruber, Sven Groß (IGPM) Mapra: C++ Teil 5 16.

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Eclipse Tutorial.doc

Konfigurationsdateien mit Git verwalten

Kurzanleitung Eclipse

Programmieren 2 06 Git-Teamwork und Egit

Überblick. Middleware Cloud Computing Übung. Übungsaufgaben. Termine und Ansprechpartner. Organisatorisches

Oliver Brinkmann Java Swing-Applikationen & JApplets (mit NetBeans)

Das Dokument ist noch in der Entwicklung also nicht endgültig!

Linux Cafe Referent: Bernd Strößenreuther

ebusiness Übung 3a Spezifikation und Nutzung von Web-APIs (Services) Prof. Dr. Andreas Schmietendorf 1

Middleware Cloud Computing Übung

Service Engineering. Übung 2a Spezifikation und Nutzung von Web-APIs (Services) Prof. Dr. Andreas Schmietendorf 1

XML. Arthur Zaczek. Nov /25

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

Enterprise PHP Tools

Transkript:

Universität Osnabrück Fachbereich Mathematik / Informatik 1. Übung Prof. Dr. rer. nat. Oliver Vornberger Nico Marniok, B. Sc. Erik Wittkorn, B. Sc. 1

Organisatorisches Übung: Dienstags, 12:00 14:00, regelmäßige Teilnahme erwünscht! Gehalten von Erik Wittkorn Erste Übung am 09.04.2013! Testate alle 2 Wochen in 2er Teams Ausgabe Übungsaufgaben: Alle 2 Wochen dienstags, ab 09.04.2013 (1. Übung) Abgabe Lösungen: Alle 2 Wochen freitags, ab 19.04.2013, 23:59 Vorstellung einer Lösung alle 2 Wochen dienstags in der Übung ab 23.04.2013 Größeres Projekt am Ende der Vorlesungszeit über 2 Wochen in 2er Teams Zwischenpräsentation nach einer Woche vor Erik und Nico Endpräsentation nach zwei Wochen vor Herrn Vornberger Tipp: Bereitet die Endpräsentation sehr gut vor und haltet die zur Verfügung stehende Zeit unbedingt ein! 2

Organisatorisches Terminplanung Abschlusspräsentation 11. Vorlesung/Übung am 24.06.2013/25.06.2013 12. Vorlesung/Übung am 01.07.2013/02.07.2013 13. Vorlesung/Übung am 08.07.2013/09.07.2013 Vermutlich Klausurenwoche In den Semesterferien 3

Übersicht 1. Einführung in Eclipse/Netbeans 2. Versionsverwaltung mit git 3. Logging 4. XML-Parsing mit Java 4

Einführung in / Download und Installation von Eclipse for Java Developers unter http://www.eclipse.org/downloads/ oder NetBeans IDE Java SE unter https://netbeans.org/downloads/ Aufgaben-Code kopieren und ein neues Projekt mit bestehendem Code erstellen Einbinden von Bibliotheken Lwjgl http://www.lwjgl.org/ Lwjg_util Pfad für LWJGL-Natives setzen Hotkeys nutzen und eigene definieren 5

Was ist Versionsverwaltung? Verwaltung verschiedener zeitlicher Versionen eines (Software)-Projekts Reduziert Ausmaß von Fehlern Wird für (alle) OpenSource-Projekte im Internet verwendet Probleme bei Team-Arbeit Unübersichtlicher Datenverkehr per Mail Dropbox?!!!! Kein gleichzeitiges Arbeiten an denselben Dateien möglich Keine Wiederherstellung von alten Zuständen möglich Keine Archivierung alter Zustände Keine Protokollierung der Änderungen Keine Sicherheit der Daten 6

Versionsverwaltung mit Verwaltung eines Arbeitsverzeichnisses (repository) lokal oder von einem Server Jeder Nutzer hat die ganze History eines Projekts Verschiedene Versionszweige eines Projekts sind möglich Kostenlos und für alle Betriebssysteme erhältlich 7

Versionsverwaltung mit Bereiche Lokal Server working directory staging area repository remote repository 8

Versionsverwaltung mit Wichtige Befehle 'git clone repository.git' Eine lokale Arbeitskopie eines Repositories erstellen 'git status' Den aktuellen Status des Repositories abfragen Dateien ändern, hinzufügen 'git add 42.txt' Eine neue Datei hinzufügen 'git commit am "Habe die Frage gefunden"' Änderung abschließen 'git pull' Änderungen vom Remote-Repository ins working directory integrieren 'git push' Änderungen dem Remote-Repository mitteilen 9

Versionsverwaltung mit Bereiche Lokal Server working directory git add git commit -a staging area git pull repository git commit remote repository git push 10

Versionsverwaltung mit 11

Versionsverwaltung mit Weitere Besonderheiten Merge-Konflikte Authentifizierung per ssh-keys.gitignore-datei mit Namen der zu ignorierenden Daten 'git add' bei neuen Dateien nicht vergessen Wichtige Links git http://git-scm.com/ github https://github.com/ git extensions http://code.google.com/p/gitextensions/ 12

XML-Aufbau <Start-tag> </End-tag> <Empty-element-tag /> <!-- Kommentar --> Attribute mit name="value" <Element> <Kindelement1 /> <Kindelement2> </Kindelement2> </Element> <RectangleShape> <Position x= 4.0 y= 3.0 /> <Size width= 2.0 height= 7.0 /> <Color>Yellow</Color> <!-- Wozu ist dieses Rechteck da? --> </RectangleShape> 13

Logging Singleton Features: Schreibt Logs in Datei und gibt sie auf der Konsole aus Automatische Angabe der Datei und Zeile einer Ausgabe Verschiedene Prioritäten Logger.INSTANCE.info("Eine gute Info!"); Hinweise Bei Eclipse ein Editor-Template anlegen (z.b. linfo) In Netbeans ein Code-Template anlegen 14

DOM-Parsing Document Object Model - baumbasiert Einheitliche Schnittstelle für HTML- und XML-Dokumente Baumstruktur mit verschiedenen Knoten Dokumentknoten Elementknoten Attributknoten Textknoten Vorteile Navigation zwischen einzelnen Knoten des Dokuments möglich Man kann Knoten Erzeugen, Verändern und Löschen Nachteile Das ganze Dokument wird eingelesen Langsamer und benötigt mehr Speicher 15

XML als Baum <RectangleShape> <Position x= 4.0 y= 3.0 /> <Size width= 2.0 height= 7.0 /> <Color>Yellow</Color> </RectangleShape> Document Element: <RectangleShape> Element: <Position> Element: <Size> Element: <Color> Attribut: x Attribut: y Attribut: width Attribut: height Text: "Yellow" 16

DOM-Parsing Code <RectangleShape> <Position x= 4.0 y= 3.0 /> <Size width= 2.0 height= 7.0 /> <Color>Yellow</Color> </RectangleShape> Document xmldoc = dbuilder.parse(xmlfile); Node rectangleshapenode = xmldoc.getfirstchild(); while (rectangleshapenode!= null) { Node rectangleshapechildnode = rectangleshapenode.getfirstchild(); while (rectangleshapechildnode!= null) { switch (rectangleshapechildnode.getnodename()) { case "Position": // Die Attribute des <Position>-tags werden eingelesen float x = Float.parseFloat(rectangleShapeChildNode.getAttributes().getNamedItem("x").getNodeValue()); float y = Float.parseFloat(rectangleShapeChildNode.getAttributes().getNamedItem("y").getNodeValue()); break; case "Size": float width =, height = break; } case "Color": String color = rectangleshapechildnode.gettextcontent(); // Die Farbe befindet sich im TextContent der Node break; } rectangleshapechildnode = rectangleshapechildnode.getnextsibling(); // Die "Geschwister"-Node wird eingelesen } rectangleshapenode = rectangleshapenode.getnextsibling(); // Die "Geschwister"-Node wird eingelesen 17

SAX-Parsing Simple API for XML - eventbasiert Einheitliche Schnittstelle für XML-Dokumente XML wird sequentiell gelesen Man definiert callback functions für verschiedene Ereignisse startelement("position", [{"x":"4"}, {"y":"3"}]) characters("yellow") endelement("rectangleshape") Werden im Document-Handler definiert Vorteile Schneller und benötigt weniger Speicher Kann auch trotz Fehler weiterarbeiten Nachteil Kein direkter Zugriff auf Elemente oder Änderung am Baum 18

SAX-Parsing Code <RectangleShape> <Position x= 4.0 y= 3.0 /> <Size width= 2.0 height= 7.0 /> <Color>Yellow</Color> </RectangleShape> private static String currentstring = null; // Platzhalter-Referenz für Element-Content public void startelement(string uri, String localname, String qname, Attributes atts) throws SAXException { switch (localname) { case "Position": // Die Position der Form wird aus den Attributen des <Position>-Tags ausgelesen float x = Float.parseFloat(atts.getValue("x")); float y = Float.parseFloat(atts.getValue("y")); break; case "Size": // Die Groesse der Form wird aus den Attributen des <Size>-Tags ausgelesen float width, height = break; case "Color": // beim Start-Tag <Color> wird eine default-farbe gesetzt currentstring = "defaultcolor"; break; } } public void characters(char[] ch, int start, int length) throws SAXException { currentstring = new String(ch, start, length); } public void endelement(string uri, String localname, String qname) throws SAXException { switch (localname) { case "Color": // Der Name der Farbe muesste sich in der aktuellen String-Variable befinden und wird gesetzt rectangleshape.setcolor(currentstring); break; } } 19

XML-Parsing 20

Übungsblatt 1 1. Aufgabe: git 2. Aufgabe: OpenGL-Test-Applikation 3. Aufgabe: Logging 4. Aufgabe: XML-Parsing 21

Nächste Woche: Besprechen des Lösungsfortschritts Simples Branching in git 22