libcandle - Ein Softwarewerkzeug für die Stegoanalyse

Größe: px
Ab Seite anzeigen:

Download "libcandle - Ein Softwarewerkzeug für die Stegoanalyse"

Transkript

1 - Ein

2 - Ein

3 - Ein Verstecktes Schreiben

4 - Ein Verstecktes Schreiben Unauffälliges Trägermedium

5 - Ein Verstecktes Schreiben Unauffälliges Trägermedium Einsatzgebiet: Kryptographie nicht möglich

6 Geschichte - Ein Historische methoden: Tätowierung unter Kopfhaar

7 Geschichte - Ein Historische methoden: Tätowierung unter Kopfhaar Wachstafeln

8 Geschichte - Ein Historische methoden: Tätowierung unter Kopfhaar Wachstafeln Geheimtinte (Zitronensaft)

9 Klartext - Ein Abbildung: Einfaches Verfahren

10 - Ein Einbettung von Datenströmen in Trägermedien

11 - Ein Einbettung von Datenströmen in Trägermedien Bilddateien Tondateien Videodateien...

12 Beispiel: LSB - Ein Abbildung: Schematische Darstellung der Einbettung mit dem LSB-Verfahren

13 Beispiel: BattleSteg - Ein LSB-Verfahren mit intelligenter Pixelauswahl Nachricht wird vorwiegend in Bildkanten eingebettet Auswahl der Pixel an das Spiel Schiffeversenken angelehnt

14 weitere Verfahren - Ein F5 CPT PQ

15 - Ein Analyse von Bildern mit dem Ziel, eingebettete Daten zu erkennen

16 - Ein Analyse von Bildern mit dem Ziel, eingebettete Daten zu erkennen -Algorithmus gilt als gebrochen, wenn die Existenz von Daten erkannt werden kann

17 - Ein Analyse von Bildern mit dem Ziel, eingebettete Daten zu erkennen -Algorithmus gilt als gebrochen, wenn die Existenz von Daten erkannt werden kann Ausbetten der Daten nicht erforderlich

18 - Ein durchsuchen eines Bildes nach erkennbaren Artefakten, die auf eingebettete Daten schließen lassen

19 - Ein durchsuchen eines Bildes nach erkennbaren Artefakten, die auf eingebettete Daten schließen lassen nur bei Bildern mit max. 256 Farben praktikabel

20 - Ein durchsuchen eines Bildes nach erkennbaren Artefakten, die auf eingebettete Daten schließen lassen nur bei Bildern mit max. 256 Farben praktikabel verbesserung des Verfahrens durch Vorbehandlung des Bildes

21 verbesserte - Ein Die LSB-Ebene enthält oft noch erkennbare Bildstrukturen Bei einer Einbettung werden diese zerstört

22 verbesserte - Ein../../Dropbox/windmill.png../../Dropbox/windmill-lsb.p Abbildung: Bild und dessen LSB-Ebene

23 verbesserte - Ein../../Dropbox/windmill.png../../Dropbox/windmill-lsb-e Abbildung: Bild mit Eingebetteten Daten und dessen LSB-Ebene

24 Überblick - Ein Farbwerte des Bildes werden in Paare aufgeteilt (0,1),(2,3),...,(254,255) Differenz der Häufigkeit der Werte eines Paares in einem Bild wird gemessen geht davon aus, dass in der Geheimnachricht 0-Bits und 1-Bits gleich häufig vorkommen

25 Häufigkeitsverteilung - Ein../../Dropbox/dist.png Abbildung: Häufigkeitsverteilung vor und nach Einbettung

26 Formeln - Ein n i = f 2i + f 2i+1 2 (1)

27 Formeln - Ein n i = f 2i + f 2i+1 2 χ 2 k 1 = k i=1 (n i n i )2 n i (1) (2)

28 Formeln - Ein F k (x) = n i = f 2i + f 2i+1 2 χ 2 k 1 = 1 k i=1 2 k 1 2 Γ( k 1 2 ) (n i n i )2 n i χ 2 k 1 0 (1) (2) e x 2 x k dx (3)

29 Übersicht - Ein Betrachtet Gruppen von benachbarten Pixeln eines Bildes Berechnet die Unregelmäßigkeit der Gruppen

30 Übersicht - Ein Betrachtet Gruppen von benachbarten Pixeln eines Bildes Berechnet die Unregelmäßigkeit der Gruppen Kippt die LSBs des Bildes nach bestimmten Muster Teilt in Reguläre und Singulare Gruppen ein

31 Unregelmäßigkeit - Ein n 1 f (x 1, x 2,..., x n ) = x i+1 x i (4) i=1

32 Kippen Ein F 1 (x) = { x + 1 x 1 wenn x gerade sonst (5)

33 Kippen Ein { x + 1 F 1 (x) = x 1 { x 1 F 1 (x) = x + 1 wenn x gerade sonst wenn x gerade sonst (5) (6) F 0 (x) = x

34 Kippen Ein Gruppen von Pixeln werden anhand einer Maske gekippt: M n [ 1, 0, 1] n F (G n, M n ) = (F M1 (G 1 ),..., F Mn (G n )) (7)

35 Einteilung in Gruppen - Ein regulär, wenn gilt: f (G) < f (F (G)) singular, wenn gilt: f (G) > f (F (G)) unverändert, wenn gilt: f (G) = f (F (G))

36 Beobachtungen - Ein in typischen Bildern erhöht sich der Wert f einer Gruppe durch anwendung der Kippfunktion daher mehr R- als S-Gruppen

37 Beobachtungen - Ein in typischen Bildern erhöht sich der Wert f einer Gruppe durch anwendung der Kippfunktion daher mehr R- als S-Gruppen die Anteile von R- und S-Gruppen verändern sich in typischen Bildern durch Umkehren der Maske kaum wird die LSB-Ebene zur Hälfte durch Zufallswerte überschrieben, enthält das Bild etwa gleich viele R- und S-Gruppen

38 RS-Diagramm - Ein Abbildung: RS-Diagramm eines typischen Bildes

39 Verwendete Software - Ein C++ ImageMagick Boost Boost::test Boost::math Boost::any SWIG Ruby

40 Datenstrukturen - Ein Audio (unkompr.) Data Data2D Bitmap(PNG) Audio (kompr.) BlockData BlockData2D JPEG Abbildung: Datenstrukturen in

41 Filter - Ein Funktionen, die einen Datenstrom auf bestimmte Weise Transformieren Parametergesteuert

42 Analyzer - Ein Funktionen, die einem gegebenen Datenstrom eine reele Zahl zwischen 0 und 1 zuweisen Einbettungswahrscheinlichkeit Parametergesteuert

43 Parametersteuerung - Ein Funktionsobjekte enhalten ein Dictionary (string Name => any value) typ any entspricht einem bestimmten Datentyp (string, int, double, bool) zweites Dictionary enthält die benötigten Typen alle Parameter mit Standardwerten Initialisiert

44 Parametersteuerung - Ein Funktionsobjekte enhalten ein Dictionary (string Name => any value) typ any entspricht einem bestimmten Datentyp (string, int, double, bool) zweites Dictionary enthält die benötigten Typen alle Parameter mit Standardwerten Initialisiert Programme, die verwenden, müssen die Parameter und deren Typen nicht unbedingt kennen, um Funktionen zu benutzen.

45 Trägerformate - Ein Implementiert PNG,BMP,TGA,GIF,... (ImageMagick) JPEG als Bitmapgrafik ToDo JPEG mit Zugriff auf DCT-Koeffizienten Audiodateien

46 Filter - Ein NoiseFilter fügt dem Bild rauschen hinzu ConvolutionFilter 2-D Faltung BitremapFilter ordnet die Bitebenen eines Bildes neu an FlipMapFilter kippt die LSBs eines Bildes anhand einer Matrix ()

47 Analyzer - Ein χ 2 -Analyse Unterstützung für

48 Übersicht - Ein zweistufige Implementierung

49 Übersicht - Ein zweistufige Implementierung zunächst Erstellung der eigentlichen mit SWIG Anpassung der generierten an Ruby Stil

50 Übersicht - Ein zweistufige Implementierung zunächst Erstellung der eigentlichen mit SWIG Anpassung der generierten an Ruby Stil Ermöglicht in Verbindung mit irb interaktive Benutzung der Funktionen

51 - Ein

52 weitere Möglichkeiten - Ein GUI Entwickeln

53 weitere Möglichkeiten - Ein GUI Entwickeln Plug-Ins

54 weitere Möglichkeiten - Ein GUI Entwickeln Plug-Ins Mehr Boost Boost::GIL besserer Zugriff auf Bilddaten Boost::functional mehr Aspekte der Funktionalen Programmierung

55 weitere Möglichkeiten - Ein GUI Entwickeln Plug-Ins Mehr Boost Boost::GIL besserer Zugriff auf Bilddaten Boost::functional mehr Aspekte der Funktionalen Programmierung Rewrite in Haskell ;)

56 Fazit - Ein Viel über C++ und OOP gelernt

57 Fazit - Ein Viel über C++ und OOP gelernt Funktionale Programmiersprache eventuell besser geeignet

58 Fazit - Ein Viel über C++ und OOP gelernt Funktionale Programmiersprache eventuell besser geeignet Konzepte der nur schwierig zu abstrahieren

59 - Ein Vielen Dank Aufmerksamkeit

Steganographie mit Rastergrafiken

Steganographie mit Rastergrafiken Steganographie mit Rastergrafiken Lars Herrmann lars.herrmann@uni-oldenburg.de PG Stego p. 1 Übersicht Rastergrafiken Steganographische Verfahren LSB Stochastische Modulation Verfahren für S/W Bilder Stegoanalyse

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

Mehr

Haskell in der Schule - (K)ein Thema? Ralf Dorn - Dennis Buchmann - Felix Last - Carl Ambroselli

Haskell in der Schule - (K)ein Thema? Ralf Dorn - Dennis Buchmann - Felix Last - Carl Ambroselli Haskell in der Schule - (K)ein Thema? Haskell in der Schule Otto-Nagel-Gymnasium in Berlin-Biesdorf Hochbegabtenförderung und MacBook-Schule Leistungskurse seit 2005 Rahmenplanvorgaben Berlin:... deklarative

Mehr

7. Organisation von Informationen

7. Organisation von Informationen Computeranwendung in der Chemie Informatik für Chemiker(innen) 7. Organisation von Informationen Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL7 Folie 1 Grundlagen Programme

Mehr

Übung Datenstrukturen. Objektorientierung in C++

Übung Datenstrukturen. Objektorientierung in C++ Übung Datenstrukturen Objektorientierung in C++ Aufgabe 1a - Farben Schreiben Sie eine Klasse COLOR zur Beschreibung von Farben. Eine Farbe werde hierbei additiv durch ihren Rot-, Grün- und Blauanteil

Mehr

Steganographie.... Planning a Jailbreak

Steganographie.... Planning a Jailbreak Steganographie... Planning a Jailbreak Motivation Verstecken statt codieren Erregt weniger Verdacht Copyright Marking Fingerprints Watermarks Copyright Marking Fingerprints Identifizieren den Benutzer,

Mehr

Grundlagen Internet-Technologien INF3171

Grundlagen Internet-Technologien INF3171 Fachbereich Informatik Informationsdienste Grundlagen Internet-Technologien INF3171 Cookies & Sessions Version 1.0 20.06.2016 aktuelles 2 Erweiterungen wir betrachten zwei Erweiterungen: Personalisierung

Mehr

CGI Programmierung mit Ha. Markus Schwarz

CGI Programmierung mit Ha. Markus Schwarz CGI Programmierung mit Ha Markus Schwarz Überblick Was ist funktionale Programmierung Einführung in Haskell CGI-Programmierung mit Haskell Ein etwas größeres Beispiel Was ist funktionale Programm Ein Programm

Mehr

Perlen der Informatik I Wintersemester 2012 Aufgabenblatt 6

Perlen der Informatik I Wintersemester 2012 Aufgabenblatt 6 Technische Universität München WS 2012 Institut für Informatik Prof. Dr. H.-J. Bungartz Prof. Dr. T. Huckle Prof. Dr. M. Bader Kristof Unterweger Perlen der Informatik I Wintersemester 2012 Aufgabenblatt

Mehr

Bildverarbeitung: Filterung. D. Schlesinger () Bildverarbeitung: Filterung 1 / 17

Bildverarbeitung: Filterung. D. Schlesinger () Bildverarbeitung: Filterung 1 / 17 Bildverarbeitung: Filterung D. Schlesinger () Bildverarbeitung: Filterung 1 / 17 Allgemeines Klassische Anwendung: Entrauschung (Fast) jeder Filter basiert auf einem Modell (Annahme): Signal + Rauschen

Mehr

Die versteckte Kommunikation

Die versteckte Kommunikation Die versteckte Kommunikation Techniken der Steganographie Marcus Nutzinger Institut für IT-Sicherheitsforschung Fachhochschule St. Pölten IT-Security Community Xchange 2009 6. November 2009 Einführung

Mehr

Workshop Einführung in die Sprache Haskell

Workshop Einführung in die Sprache Haskell Workshop Einführung in die Sprache Haskell Nils Rexin, Marcellus Siegburg und Alexander Bau Fakultät für Informatik, Mathematik und Naturwissenschaften Hochschule für Technik, Wirtschaft und Kultur Leipzig

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

C++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17

C++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17 C++ Teil 9 Sven Groß 17. Juni 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 9 17. Juni 2016 1 / 17 Themen der letzten Vorlesung Objektorientierung und Klassen Attribute / Datenelemente Methoden / Elementfunktionen

Mehr

Einführung Aufgabe 3 - MPEG. Tobias Reinsch 2011

Einführung Aufgabe 3 - MPEG. Tobias Reinsch 2011 Einführung Aufgabe 3 - MPEG Tobias Reinsch 2011 Allgemeines Aufgabe 3 - MPEG Ziel der Aufgabe Kennenlernen der Bildkodierungsverfahren des MPEG Standards Praktische Umsetzung dieser Techniken mit Java

Mehr

Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen 12 im Bauwesen Markus Uhlmann 1 Zusammenfassung der 11. Vorlesung Objektorientierte Programmierung (OOP) Wozu eigentlich? Was unterscheidet OOP von traditionellen Techniken? Verwendung von vordefinierten

Mehr

Objektorientierte Programmierung mit C++ SS 2007

Objektorientierte Programmierung mit C++ SS 2007 Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string

Mehr

C++ Teil 10. Sven Groß. 17. Dez IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Dez / 14

C++ Teil 10. Sven Groß. 17. Dez IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Dez / 14 C++ Teil 10 Sven Groß IGPM, RWTH Aachen 17. Dez 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 10 17. Dez 2014 1 / 14 Themen der letzten Vorlesung Objektorientierung und Klassen Attribute / Datenelemente

Mehr

Funktionale Programmierung Grundlegende Datentypen

Funktionale Programmierung Grundlegende Datentypen Grundlegende Datentypen Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 06.11.2017 16:45 Inhaltsverzeichnis Typen........................................

Mehr

Übersicht. 4.1 Ausdrücke. 4.2 Funktionale Algorithmen. 4.3 Anweisungen. 4.4 Imperative Algorithmen Variablen und Konstanten. 4.4.

Übersicht. 4.1 Ausdrücke. 4.2 Funktionale Algorithmen. 4.3 Anweisungen. 4.4 Imperative Algorithmen Variablen und Konstanten. 4.4. Übersicht 4.1 Ausdrücke 4.2 Funktionale Algorithmen 4.3 Anweisungen 4.4 Imperative Algorithmen 4.4.1 Variablen und Konstanten 4.4.2 Prozeduren 4.4.3 Verzweigung und Iteration 4.4.4 Globale Größen Einführung

Mehr

Funktionale Programmierung mit Haskell

Funktionale Programmierung mit Haskell Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Einführung in die STL

Einführung in die STL 1/29 in die STL Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/29 Outline 1 3/29 Inhaltsverzeichnis 1 4/29 Typisierung

Mehr

Dokumentation: RAG Regression Analysis Graph

Dokumentation: RAG Regression Analysis Graph Dokumentation: RAG Regression Analysis Graph Inhalt: Dokumentation: RAG Regression Analysis Graph... 1 Übersicht... 2 LinkedInt64List... 2 RAGGraph... 2 RAG... 2 Details... 2 TRAGGraphType (Enumeration)...

Mehr

IT-Basics 2. DI Gerhard Fließ

IT-Basics 2. DI Gerhard Fließ IT-Basics 2 DI Gerhard Fließ Wer bin ich? DI Gerhard Fließ Telematik Studium an der TU Graz Softwareentwickler XiTrust www.xitrust.com www.tugraz.at Worum geht es? Objektorientierte Programmierung Konzepte

Mehr

Umsetzung einer Klassenkarte in einer Programmiersprache

Umsetzung einer Klassenkarte in einer Programmiersprache Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,

Mehr

Programmierung und Angewandte Mathematik

Programmierung und Angewandte Mathematik Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden

Mehr

Steganographie. Das Verstecken von Informationen. (Projektarbeit von Jörg Nowka) Dortmund, Oktober 2004

Steganographie. Das Verstecken von Informationen. (Projektarbeit von Jörg Nowka) Dortmund, Oktober 2004 Steganographie Das Verstecken von Informationen (Projektarbeit von Jörg Nowka) Dortmund, Oktober 2004 Prof. Dr. Heinz-Michael Winkels, Fachbereich Wirtschaft FH Dortmund Emil-Figge-Str. 44, D44227-Dortmund,

Mehr

Polymorphismus 179. Function.h. #include <string>

Polymorphismus 179. Function.h. #include <string> Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function

Mehr

12. Graphen Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013

12. Graphen Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 12. Graphen Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Kontrollfragen Graphen Graphenalgorithmen 2

Mehr

Programmieren in Haskell Programmiermethodik

Programmieren in Haskell Programmiermethodik Programmieren in Haskell Programmiermethodik Peter Steffen Universität Bielefeld Technische Fakultät 12.01.2011 1 Programmieren in Haskell Bisherige Themen Was soll wiederholt werden? Bedienung von hugs

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Bernhard Lahres, Gregor Rayman Objektorientierte Programmierung Das umfassende Handbuch Galileo Press 1.1 Was ist Objektorientierung? 13 1.2 Hallo liebe Zielgruppe 14 1.3 Was bietet dieses Buch (und was

Mehr

Steganographie. Multimedia Sicherheit, Martin Steinebach Vorlesung TUD SS09

Steganographie. Multimedia Sicherheit, Martin Steinebach Vorlesung TUD SS09 Steganographie 149 Steganographie "verdecktes Schreiben Verbergen der geheimen Kommunikation ZIEL: geheime Nachrichten in harmlosen Nachrichten verbergen, so daß ein Angreifer nicht erkennt, daß eine zweite

Mehr

Debayeringverfahren. 19. Mai Thomas Noack, Nikolai Kosjar. SE Computational Photography - Debayeringverfahren

Debayeringverfahren. 19. Mai Thomas Noack, Nikolai Kosjar. SE Computational Photography - Debayeringverfahren Debayeringverfahren Thomas Noack, Nikolai Kosjar 19. Mai 2010 Was bisher geschah... Reduktion der Herstellungskosten durch Einsatz von nur noch einem CCD-Sensor mit Bayer-Filter Problem: Bayer Image Full

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans Graphische Benutzungsoberflächen mit Java Einführung in NetBeans Graphische Benutzungsoberflächen! Interaktion mit dem Programm! Datenein- und ausgabe! Rückmeldungen über Verarbeitung der Daten! Visualisierung

Mehr

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

Mehr

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte

Mehr

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen Objektorientierte Programmierung mit Grundlagen 27.10.2008 1 Übersicht 27.10.2008 2 1 Übersicht Klassen und Objekte in - Klassen - Objekte - Klassen - Objekte 27.10.2008 3 Übersicht 27.10.2008 4 2 Einführung

Mehr

Informatik I (D-MAVT)

Informatik I (D-MAVT) Informatik I (D-MAVT) Übungsstunde 9 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Nachbesprechung Übung 7 Besprechung/Vertiefung der Vorlesung Vorbesprechung Übung 9 Aufgabe 1:

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative

Mehr

Programmieren: Bildbearbeitung

Programmieren: Bildbearbeitung Programmieren: Bildbearbeitung Das Thema der folgenden Aufgaben ist Bildbearbeitung. Sie erhalten dazu ein Rahmenprogramm, das bereits Bilder lesen und darstellen kann. Dieses Rahmenprogramm basiert auf

Mehr

Kodierung. Kodierung von Zeichen mit dem ASCII-Code

Kodierung. Kodierung von Zeichen mit dem ASCII-Code Kodierung Kodierung von Zeichen mit dem ASCII-Code Weiterführende Aspekte zur Kodierung: Speicherplatzsparende Codes Fehlererkennende und -korrigierende Codes Verschlüsselnde Codes Spezielle Codes, Beispiel

Mehr

Software-Refactoring. 29. Mai 2013

Software-Refactoring. 29. Mai 2013 Software-Refactoring 29. Mai 2013 Überblick Was ist Refactoring und wozu dient es? Welche Refactorings gibt es? Refactoring-Katalog: www.refactoring.com Wann, wo und wie führt man Refactorings durch? Wie

Mehr

Teil VII. Hashverfahren

Teil VII. Hashverfahren Teil VII Hashverfahren Überblick 1 Hashverfahren: Prinzip 2 Hashfunktionen 3 Kollisionsstrategien 4 Aufwand 5 Hashen in Java Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 7 1 Hashverfahren:

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 1 SS 2016

Mehr

EPROG 2.Teilprüfung. Aufgabe 1:

EPROG 2.Teilprüfung. Aufgabe 1: EPROG 2.Teilprüfung Dauer 50min. Keine Unterlagen erlaubt. Loginname ist q (also x.b. q0697801). Passwort ist Ihre Matrikelnummer. Speichern Sie Ihre Lösungen in den dafür vorgesehenen

Mehr

Programmieren in Haskell Einführung

Programmieren in Haskell Einführung Programmieren in Haskell Einführung Peter Steffen Universität Bielefeld Technische Fakultät 16.10.2009 1 Programmieren in Haskell Veranstalter Dr. Peter Steffen Raum: M3-124 Tel.: 0521/106-2906 Email:

Mehr

pue13 January 28, 2017

pue13 January 28, 2017 pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern

Mehr

Generics. Kapitel. In diesem Kapitel. Dies sind die zentralen Themen dieses Kapitels:

Generics. Kapitel. In diesem Kapitel. Dies sind die zentralen Themen dieses Kapitels: D3kjd3Di38lk323nnm Generics Kapitel 5 In diesem Kapitel 5.1 Warum Generics? 5.2 Generische Funktionen 5.3 Generische Typen Übungen Zur generischen Programmierung gehört die typunabhängige Definition von

Mehr

Grundlagen der Informatik 0

Grundlagen der Informatik 0 Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 20 (13.7.2016) String Matching (Textsuche) Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei Zeichenketten (Strings)

Mehr

TIPPS & TRICKS. Rastertuning mit den Image Station Raster Utilities (ISRU) Tools. 20. März 2003

TIPPS & TRICKS. Rastertuning mit den Image Station Raster Utilities (ISRU) Tools. 20. März 2003 TIPPS & TRICKS Rastertuning mit den Image Station Raster Utilities (ISRU) Tools 20. März 2003 INTERGRAPH (Schweiz) AG Neumattstrasse 24, CH 8953 Dietikon Tel: 043 322 46 46 Fax: 043 322 46 10 HOTLINE:

Mehr

Objektorientierte Programmierung III

Objektorientierte Programmierung III Objektorientierte Programmierung III OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen

Mehr

Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2

Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2 Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2 von Christoph Knabe http://public.beuth-hochschule.de/~knabe/ Ch. Knabe: Operationalisierbare Qualitätskriterien

Mehr

11. Komponenten Grundlagen der Programmierung 1 (Java)

11. Komponenten Grundlagen der Programmierung 1 (Java) 11. Komponenten Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 10. Januar 2006 Einordnung im Kontext der Vorlesung

Mehr

7.0 Arbeiten mit Objekten und Klassen

7.0 Arbeiten mit Objekten und Klassen 252-0027 Einführung in die Programmierung 7.0 Arbeiten mit Objekten und Klassen Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013. and Thomas Gross 2016 All rights reserved. Uebersicht

Mehr

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?) 5.1 Mehr Basistypen Außer int, stellt Java weitere Basistypen zur Verfügung. Zu jedem Basistyp gibt es eine Menge möglicher Werte. Jeder Wert eines Basistyps benötigt die gleiche Menge Platz, um ihn im

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik

Mehr

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik

Mehr

Beispiele: (Funktionen auf Listen) (3) Bemerkungen: Die Datenstrukturen der Paare (2) Die Datenstrukturen der Paare

Beispiele: (Funktionen auf Listen) (3) Bemerkungen: Die Datenstrukturen der Paare (2) Die Datenstrukturen der Paare Beispiele: (Funktionen auf Listen) (3) Bemerkungen: 5. Zusammenhängen der Elemente einer Liste von Listen: concat :: [[a]] -> [a] concat xl = if null xl then [] else append (head xl) ( concat (tail xl))

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer Universität zu Lübeck Institut für Telematik Prof. Dr. Stefan Fischer Probeklausur im Fach Programmieren Hinweise zur Bearbeitung: Es sind keinerlei Hilfsmittel zugelassen. Diese Klausur umfasst 18 Seiten.

Mehr

Funktionale Programmiersprachen

Funktionale Programmiersprachen Funktionale Programmiersprachen An den Beispielen Haskell und Erlang Übersicht Programmiersprachen λ-kalkül Syntax, Definitionen Besonderheiten von funktionalen Programmiersprache, bzw. Haskell Objektorientierte

Mehr

Funktionale Programmierung. der direkte Weg vom Modell zum Programm

Funktionale Programmierung. der direkte Weg vom Modell zum Programm 1 Funktionale Programmierung der direkte Weg vom Modell zum Programm Peter Padawitz, TU Dortmund 19. Juni 2010 2 Inhalt Modelle Bestandteile eines Modells Konstruktor- versus destruktorbasierte Modelle

Mehr

Einführung in die Praktische Informatik. Übungsblatt 10. Dr. U. Köthe Heidelberg, 11. Januar 2017

Einführung in die Praktische Informatik. Übungsblatt 10. Dr. U. Köthe Heidelberg, 11. Januar 2017 Einführung in die Praktische Informatik Dr. U. Köthe Heidelberg, 11. Januar 2017 Übungsblatt 10 Aufgabe 10.1 Arithmetik für die Punktklasse [12 Punkte] In der Vorlesung haben wir behandelt, wie man arithmetische

Mehr

Kamera-Sensorforensik: Erkennungsraten im Kontext von Bildkompression

Kamera-Sensorforensik: Erkennungsraten im Kontext von Bildkompression Kamera-Sensorforensik: Erkennungsraten im Kontext von Bildkompression Martin Rosenfeld, Reiner Creutzburg, Claus Vielhauer Vortragender: Christian Krätzer Brandenburg University of Applied Sciences, Germany

Mehr

Steganographie / Wasserzeichen,

Steganographie / Wasserzeichen, Aktuelle Themen der Informatik Steganographie / Wasserzeichen, Kryptographiesche Sicht Hao Wang CN8 SS 2006 HFU Furtwangen - 1 - Inhaltverzeichnis : 1. Einführung in die Steganographie / Wasserzeichen...

Mehr

Aufrufe von Objektmethoden

Aufrufe von Objektmethoden Aufrufe von Objektmethoden SWE-35 Objektmethoden werden für ein bestimmtes Objekt aufgerufen; sie benutzen dessen Objektvariablen: double r = big.getradius (); Methodenaufrufe können auch die Werte von

Mehr

2.3 Spezifikation von Abstrakten Datentypen

2.3 Spezifikation von Abstrakten Datentypen Abstrakte Datentypen (ADT) 2.3 Spezifikation von Abstrakten Datentypen Sichtbare Schnittstelle: Typbezeichner Signaturen der Operationen Spezifikation der Operationen Abstraktionsbarriere Implementierung

Mehr

Prinzipien der objektorientierten Programmierung (OOP)

Prinzipien der objektorientierten Programmierung (OOP) Die Ziele der OOP sind: - bessere Warbarkeit - Wiederverwendbarkeit 1.) Datenkapselung Prinzipien der objektorientierten Programmierung (OOP) Komplexe Datenstrukturen (wie zb ein Stack) werden vom Anwendungsprogramm

Mehr

Praktische Informatik 3: Funktionale Programmierung Vorlesung 4 vom : Typvariablen und Polymorphie

Praktische Informatik 3: Funktionale Programmierung Vorlesung 4 vom : Typvariablen und Polymorphie 16:02:01 2017-01-17 1 [37] Praktische Informatik 3: Funktionale Programmierung Vorlesung 4 vom 08.11.2016: Typvariablen und Polymorphie Christoph Lüth Universität Bremen Wintersemester 2016/17 PI3 WS 16/17

Mehr

Wissensentdeckung in Datenbanken

Wissensentdeckung in Datenbanken Wissensentdeckung in Datenbanken Deep Learning Nico Piatkowski und Uwe Ligges Informatik Künstliche Intelligenz 20.07.2017 1 von 11 Überblick Künstliche Neuronale Netze Motivation Formales Modell Aktivierungsfunktionen

Mehr

Einführung in die funktionale Programmierung

Einführung in die funktionale Programmierung Einführung in die funktionale Programmierung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 26. Oktober 2006 Haskell - Einführung Syntax Typen Auswertung Programmierung

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Lauftagebuch Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 21 Erstellen einer

Mehr

DENKEN VERSTEHEN LERNEN Computational Thinking in der Grundschule

DENKEN VERSTEHEN LERNEN Computational Thinking in der Grundschule FB Informatik, Programmiersprachen und Softwaretechnik DENKEN VERSTEHEN LERNEN Computational Thinking in der Grundschule Grundschulpraktikum (B.Ed. und B.Sc.) 17.11.2016 Einheit C6 Binäre Armbänder (Unplugged)

Mehr

FARBKORREKTUR. Überlegungen vor der Farbkorrektur. Bevor mit der Korrektur von Farb- und Tonwerten begonnen wird, sollte Folgendes beachtet werden:

FARBKORREKTUR. Überlegungen vor der Farbkorrektur. Bevor mit der Korrektur von Farb- und Tonwerten begonnen wird, sollte Folgendes beachtet werden: FARBKORREKTUR Überlegungen vor der Farbkorrektur Bevor mit der Korrektur von Farb- und Tonwerten begonnen wird, sollte Folgendes beachtet werden: Eigentlich sollte stets ein kalibrierter Monitor mit Farbprofil

Mehr

Bildverarbeitung Herbstsemester

Bildverarbeitung Herbstsemester Bildverarbeitung Herbstsemester Herbstsemester 2009 2012 Filter Filter 1 Inhalt Lineare und nichtlineare Filter Glättungsfilter (z.b. Gauss-Filter) Differenzfilter (z.b. Laplace-Filter) Lineare Faltung

Mehr

Wissenschaftliches Rechnen

Wissenschaftliches Rechnen Institut für Numerische und Angewandte Mathematik 11.04.2012 FB Mathematik und Informatik der Universität Münster Prof. Dr. Christian Engwer, Dipl. Math. Dipl. Inf. Sebastian Westerheide Übung zur Vorlesung

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

Mehr

Kurze Einführung in die Programmiersprache C++ und in Root

Kurze Einführung in die Programmiersprache C++ und in Root Kurze Einführung in die Programmiersprache C++ und in Root Statistik, Datenanalyse und Simulation; 31.10.2006 Inhalt 1 Einführung in die Programmiersprache C++ Allgemeines Variablen Funktionen 2 1 Einführung

Mehr

This image cannot currently be displayed. Java à Matlab. bereitgestellt von Dr. Lukas Faessler 12/4/17

This image cannot currently be displayed. Java à Matlab. bereitgestellt von Dr. Lukas Faessler 12/4/17 This image cannot currently be displayed. Java à Matlab bereitgestellt von Dr. Lukas Faessler 12/4/17 Allgemeine Programmierkonzepte kommen in verschiedenen Programmiersprachen vor sind langlebig Sprachen

Mehr

2.5 Listen. Kurzschreibweise: [42; 0; 16] Listen werden mithilfe von [] und :: konstruiert.

2.5 Listen. Kurzschreibweise: [42; 0; 16] Listen werden mithilfe von [] und :: konstruiert. 2.5 Listen Listen werden mithilfe von [] und :: konstruiert. Kurzschreibweise: [42; 0; 16] # let mt = [];; val mt : a list = [] # let l1 = 1::mt;; val l1 : int list = [1] # let l = [1;2;3];; val l : int

Mehr

Einfache Rechenstrukturen und Kontrollfluss II

Einfache Rechenstrukturen und Kontrollfluss II Einfache Rechenstrukturen und Kontrollfluss II Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.informatik.uni-muenchen.de/lehre/ss06/infoii/ SS 06 Ziele Lernen imperative

Mehr

Stream Processing II

Stream Processing II Stream Processing II K-Buckets Histogram Histogramme sind graphische Darstellungen der Verteilung von numerischen Werten Werden durch Intervalle, die sich nicht überlappen, dargestellt Ein Intervall wird

Mehr

Generische Record-Kombinatoren mit statischer Typprüfung

Generische Record-Kombinatoren mit statischer Typprüfung System Generische mit statischer Typprüfung Brandenburgische Technische Universität Cottbus Lehrstuhl Programmiersprachen und Compilerbau Lehrstuhlkolloquium am 13. Januar 2010 Überblick System System

Mehr

JPEG - Kompression. Steffen Grunwald, Christiane Schmidt, Stephan Weck TIT01EGR BA-Mannheim 21. Mai 2002

JPEG - Kompression. Steffen Grunwald, Christiane Schmidt, Stephan Weck TIT01EGR BA-Mannheim 21. Mai 2002 JPEG - Kompression Steffen Grunwald, Christiane Schmidt, Stephan Weck TIT01EGR BA-Mannheim 21. Mai 2002 Inhaltsverzeichnis 1 Entwicklung von JPEG 2 1.1 Was heisst und was ist JPEG?................... 2

Mehr

Thomas Behr. 17. November 2011

Thomas Behr. 17. November 2011 in in Fakultät für Mathematik und Informatik Datenbanksysteme für neue Anwendungen FernUniversität in Hagen 17. November 2011 c 2011 FernUniversität in Hagen Outline in 1 2 3 4 5 6 - Was ist das? in über

Mehr

VU Einführung in Visual Computing Sebastian Zambanini Computer Vision Lab TU Wien. Ablauf

VU Einführung in Visual Computing Sebastian Zambanini Computer Vision Lab TU Wien. Ablauf 186.922 VU Einführung in Visual Computing Einführung in MATLAB Wiederholung 18.3.2013 Sebastian Zambanini Computer Vision Lab TU Wien Ablauf Letztes Mal: MATLAB Einführung (90 Minuten) NächstenMontag Montag,

Mehr

Am Anfang werden die Attribute deklariert public class Kreis {

Am Anfang werden die Attribute deklariert public class Kreis { Klassendiagramm Kreis Entwerfen Sie ein Klassendiagramm der Klasse Kreis mit allen Attributen und min. drei Methoden. public class Kreis { sichtbar Platz für Atributeund Methoden protected int xposition;

Mehr

2.1 Java. Er fand jedoch heraus, dass es bereits eine Programmiersprache mit dem Namen Oak gab.

2.1 Java. Er fand jedoch heraus, dass es bereits eine Programmiersprache mit dem Namen Oak gab. 2.1 Java Java sollte ursprünglich Oak (= Eiche) heißen, nach den Bäumen, die vor dem Büro des wichtigsten Entwicklers von Java, James Gosling, standen. Er fand jedoch heraus, dass es bereits eine Programmiersprache

Mehr

Geoinformation I Geometr.-topol. Datenstrukturen

Geoinformation I Geometr.-topol. Datenstrukturen Folie 1 von 23 Geoinformation I Geometr.-topol. Datenstrukturen Folie 2 von 23 Geometr.-topol. Datenstrukturen Übersicht! Überblick/Motivation! Fokus! Geometrisch-topologische Datenstrukturen " Spaghetti

Mehr

Strukturen & Math. Strukturen und Vektoren. Allokieren eines Vektors. Zugriff auf Strukturen. Freigeben eines Vektors

Strukturen & Math. Strukturen und Vektoren. Allokieren eines Vektors. Zugriff auf Strukturen. Freigeben eines Vektors Strukturen & Math Strukturen für mathematische Objekte: allgemeine Vektoren Matrizen Strukturen und Vektoren 1 #ifndef _STRUCT_VECTOR_ 2 #define _STRUCT_VECTOR_ 3 4 #include 5 #include

Mehr

Einführung in die Programmierung mit Java. Hörsaalübung

Einführung in die Programmierung mit Java. Hörsaalübung Einführung in die Programmierung mit Java Hörsaalübung Folie 1 Grundlagen der Objektorientierung Seit Anfang der Neunzigerjahre Standardmethode der Softwareentwicklung. Die OOP Objektorientierte Programmierung

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

Mehr

Statistics, Data Analysis, and Simulation SS 2017

Statistics, Data Analysis, and Simulation SS 2017 Mainz, 8. Mai 2017 Statistics, Data Analysis, and Simulation SS 2017 08.128.730 Statistik, Datenanalyse und Simulation Dr. Michael O. Distler Dr. Michael O. Distler

Mehr

14. Java Objektorientierung

14. Java Objektorientierung Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen

Mehr

Inhaltsbasierte Bildsuche. Matthias Spiller. 17. Dezember 2004

Inhaltsbasierte Bildsuche. Matthias Spiller. 17. Dezember 2004 Kantenbasierte Merkmale für die Bildsuche Inhaltsbasierte Bildsuche Matthias Spiller 17. Dezember 2004 Übersicht Übersicht Einleitung Was sind Kanten? Kantenrichtungs Histogramm Der Canny-Algorithmus Feature-Erzeugung

Mehr