Clojure in Lehre und Forschung
|
|
|
- Annika Kaiser
- vor 9 Jahren
- Abrufe
Transkript
1 Clojure in Lehre und Forschung Johannes Brauer NORDAKADEMIE Hochschule der Wirtschaft 29. Mai 2015 Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
2 Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
3 Merkmale [ECG12, Hig15] Clojure Clojure- Datenstrukturen Persistente Datenstrukturen [Oka98, Hic09] Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
4 Merkmale [ECG12, Hig15] Merkmale [ECG12, Hig15] Clojure Clojure- Datenstrukturen Persistente Datenstrukturen [Oka98, Hic09] Autor: Rich Hickey, 2008, stürmische Entwicklung Jede Woche erscheint ein neues Clojure-Buch. Planet Clojure verzeichnet über 400 Clojure-Blogs. Findet zunehmend Beachtung in der Industrie. Lisp-Dialekt gehostete Sprache läuft auf der Java Virtual Machine Variante: ClojureScript wird nach JavaScript kompiliert strenge, dynamische Typisierung betont den funktionalen Programmierstil starke Unterstützung von paralleler und asynchroner Programmierung Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
5 Clojure Merkmale [ECG12, Hig15] Clojure Clojure- Datenstrukturen Persistente Datenstrukturen [Oka98, Hic09] Try Clojure Command line tool - the repl java -cp clojure.jar clojure.main LightTable is a new interactive IDE La Clojure and IntelliJ IDEA Eclipse and Counterclockwise Clojure with Emacs Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
6 Clojure-Datenstrukturen Merkmale [ECG12, Hig15] Clojure Clojure- Datenstrukturen Persistente Datenstrukturen [Oka98, Hic09] Atomare Datentypen Ganzzahlen beliebiger Genauigkeit Doubles 1.234, BigDecimals 1.234M Rationale Zahlen 7/13 Strings "Karl", Characters \R \o \s \a Symbole daniel gustav, Keywords :duesentrieb :gans true, false, nil Datenstrukturen Listen einfach verkettet, wachsen vorn (Karl ist 27), (list 2 3 4) Vektoren Zugriff per Index, wachsen hinten [a b c [d e f]] Maps Mengen von Schlüssel-Wert-Paaren {:a 1, :b 2, :c 3}, {"Karl" 27 "Rosa" 45} Mengen #{karl rosa klara} Alle können beliebig ineinander verschachtelt werden. Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
7 Persistente Datenstrukturen [Oka98, Hic09] Merkmale [ECG12, Hig15] Clojure Clojure- Datenstrukturen Persistente Datenstrukturen [Oka98, Hic09] In Clojure sind alle Datenstrukturen unveränderbar (immutable). Keine Synchronisierung bei konkurrierendem Zugriff erforderlich Datenstrukturen sind (wie Funktionen) Werte erster Ordnung. Jede Änderung liefert neue Version einer Datenstruktur: ( def m {: a 1 : b 2}) m ; ; => {: a 1, : b 2} ( assoc m : c 5) ; ; => {: c 5, : a 1, : b 2} m ; ; => {: a 1, : b 2} Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
8 an der NORDAKADEMIE anderswo Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
9 an der NORDAKADEMIE an der NORDAKADEMIE anderswo im Bachelor-Studiengang Wirtschaftsinformatik : Modul Abstraktionskonzepte der Informatik funktionale Abstraktion (funktionale Programmierung) Datenabstraktion Typsysteme Algebraische Spezifikation von Datentypen im Bachelor-Studiengang Angewandte Informatik : Modul Programmierparadigmen funktionale Programmierung prädikative Programmierung Constraint programming in Zukunft in der Programmiergrundausbildung aktuelle Diskussion im Fachbereich Informatik Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
10 anderswo Projekt Clojure in Education (ClojurEd)[MAE13] der University of Minnesota, Morris incorporating Clojure into undergraduate curriculum an der NORDAKADEMIE anderswo Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
11 Die DSL-Akademie Objekte als Closures person Funktionale Objekte klassenlose Objekte Ergänzungen Implementierung Vorhaben Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
12 Die DSL-Akademie Die DSL-Akademie Objekte als Closures person Funktionale Objekte klassenlose Objekte Ergänzungen Implementierung Vorhaben Thema: Innovationen im Bereich n aus der Sicht der Praxis [BCK08] akademischer Zirkel bestehend aus: Dr. Christoph Crasemann Dr. Hartmut Krasemann Stefanie Jasser mir Schwerpunktthema der letzten Zeit: Überwindung der semantischen Lücke zwischen Allzwecksprachen und Anwendungsdomänen Implementierungstechniken für domänenspezifische Sprachen [KBC11] Implementierung einer in Smalltalk eingebetteten Sprache für die Erzeugung klassenloser Objekte (DOSL) [BKC12] Vortrag auf NKIF 2012 Implementierung einer Parserkombinator-Bibliothek in Clojure [Bra15] DOSL für Clojure Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
13 Die DSL-Akademie Objekte als Closures person Funktionale Objekte klassenlose Objekte Ergänzungen Implementierung Vorhaben Objekte als Closures 1 ( defn person [ ] 2 ( l e t [ name (atom n i l ) 3 vorname (atom n i l ) 4 set name ( fn [ n ] ( r e s e t! name n )) 5 set vorname ( fn [ n ] ( r e s e t! vorname n )) 6 get name ( fn [ 7 get vorname ( f n [ ) 8 vollname ( fn [ ] ( s t " ) ) ] 9 ( fn [ message ] 10 ( cond (= message : set name) set name 11 (= message : set vorname ) set vorname 12 (= message : get name) get name 13 (= message : get vorname ) get vorname 14 (= message : get vollname ) vollname 15 : e l s e ( throw ( Exception. 16 ( s t r "Message not understood : " 17 message ) ) ) ) ) ) ) Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
14 person Die DSL-Akademie Objekte als Closures person Funktionale Objekte klassenlose Objekte Ergänzungen Implementierung Vorhaben ( def p ( person )) (( p : set vorname ) "Gustav ") (( p : set name) "Gans ") (( p : get vollname )) ; ; => "Gustav Gans" Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
15 Funktionale Objekte Die DSL-Akademie Objekte als Closures person Funktionale Objekte klassenlose Objekte Ergänzungen Implementierung Vorhaben Den Begriff functional objects prägte Mattias Felleisen in einer Keynote der ECOOP 2004 in Oslo am 16 Juni ( defn person [ n v ] ( l e t [ name n vorname v get name ( fn [ ] name) get vorname ( fn [ ] vorname ) vollname ( fn [ ] ( s t r vorname " " name )) gruss ( fn [ grussformel ] ( s t r grussformel " " ( vollname ) ) ) ] {: get name get name : get vorname get vorname : vollname vollname : gruss gruss })) ( def p ( person "Gans" "Gustav ")) (( p : gruss ) " Hallo ") ; ; => " Hallo Gustav Gans" Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
16 klassenlose Objekte Die DSL-Akademie Objekte als Closures person Funktionale Objekte klassenlose Objekte Ergänzungen Implementierung Vorhaben In der Syntax der DOSL wird das person-objekt aufgeschrieben, ohne dass vorher eine Klassendefintion angelegt werden muss: ( obj [ name "Gans" vorname "Gustav "]) Technisch liefert der Ausdruck wieder eine Dispatcher-Funktion, die mit dem Namen einer Methode als Argument aufgerufen werden kann: (( obj [ name "Gans" vorname "Gustav "]) name) ; ; => "Gans" Ein DOSL-Objekt kann auch an ein Symbol gebunden werden: ( def p ( obj [ name "Gans" vorname "Gustav "])) (p vorname ) ; ; => "Gustav" Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
17 Ergänzungen Definition von Methoden: Die DSL-Akademie Objekte als Closures person Funktionale Objekte klassenlose Objekte Ergänzungen Implementierung Vorhaben ( defobj p [ name "Gans" vorname "Gustav" vollname ( fn [ ] ( s t r vorname " " name ) ) ] ) (p vollname ) ; ; => "Gustav Gans" Nachträgliches Hinzufügen von Slots: ( def p (add s l o t p gruss ( fn [ grussformel ] ( s t r grussformel " " ( vollname ) ) ) ) ) (p gruss " Hallo ") ; ; => " Hallo Gustav Gans" Set-Methoden automatisch erzeugt: (( p name "Ente ") name) ; ; => "Ente" (p name) ; ; => "Gans" Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
18 Implementierung Die DSL-Akademie Objekte als Closures person Funktionale Objekte klassenlose Objekte Ergänzungen Implementierung Vorhaben Die Implementierung der DOSL erfolgt hauptsächlich durch drei Clojure-Makros: obj Erzeugung der DOSL-Objekte defobj syntaktischer Zucker für die Bindung eines Objekts an eine Variable add-slot Erzeugung eines neuen Objekts durch Hinzufügen eines Slots Zusammen mit Hilfsfunktionen und -makros ca. 50 LOC. Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
19 Vorhaben Die DSL-Akademie Objekte als Closures person Funktionale Objekte klassenlose Objekte Ergänzungen Implementierung Vorhaben Überarbeitung des Curriculums für die Programmiergrundausbildung in den Informatik-Studiengängen Abschied von objects first (und Smalltalk) Eine Idee (unter vielen) für das erste Studienjahr: Einstieg mit funktionaler Programmierung funktionale Objekte Klassen als expliziten Abstraktionsmechanismus einführen DSL-Akademie: Nutzung von funktionalen Objekten für die Entwicklung einer DSL für eine kaufmännische Domäne Nutzung von Clojure für die Umsetzung des Data-Context-Interaction-Architekturmusters [CR12] Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
20 Literatur Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
21 Literatur technisch: Möglichkeit der Klassenbildung? änderbare Objekte? Ist das DCI-Architekturmuster tragfähig? Ist Clojure als DCI-Sprache geeignet? didaktisch Wie wird das didaktische Konzept für die Programmiergrundausbildung aussehen? Wird Clojure (DOSL) ggf. dabei helfen? Ihre Fragen! Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
22 Literatur [BCK08] Brauer, Johannes, Christoph Crasemann und Hartmut Krasemann: Auf dem Weg zu idealen Programmierwerkzeugen Bestandsaufnahme und Ausblick. Informatik-Spektrum, 31(6): , Dezember [BKC12] Brauer, Johannes, Hartmut Krasemann und Christoph Crasemann: Implementierung einer in Smalltalk eingebetteten Sprache für die Erzeugung klassenloser Objekte. In: Forschung für die Wirtschaft NORDAKADEMIE Hochschule der Wirtschaft, [Bra15] [CR12] Brauer, Johannes: Implementierung einer Parserkombinator-Bibliothek in Clojure. In: Forschung für die Wirtschaft NORDAKADEMIE Hochschule der Wirtschaft, Coplien, James O. und Trygve Mikkjel Heyerdahl Reenskaug: The data, context and interaction paradigm. In: SPLASH 12: Proceedings of the 3rd annual conference on Systems, programming, and applications: software for humanity, Seiten , New York, NY, USA, ACM. [ECG12] Emerick, Chas, Brian Carper und Christophe Grand: Clojure Programming. O Reilly Media, Inc, Hickey, Rich: The clojure programming language. In: Proceedings of the 2008 symposium on Dynamic languages, Seite 1. ACM, [Hic09] Hickey, Rich: Persistent Data Structures and Managed References zuletzt aufgerufen am [Hig15] Higginbotham, Daniel: Clojure for the Brave and True. Leanpub, [KBC11] Krasemann, Hartmut, Johannes Brauer und Christoph Crasemann: DSLs MIT PARSER-KOMBINATOREN: Mit wenig Code zu einer Harel- Statechart-DSL. OBJEKTspektrum, (4), [MAE13] Machkasova, Elena, Stephen J Adams und Joe Einertson: Steps towards teaching the Clojure programming language in an introductory CS class [Oka98] Okasaki, Chris: Purely Functional Data Structures. Cambrigde University Press, Johannes Brauer Norddeutsches Kolloqium für Informatik an Fachhochschulen / 22
Funktionale Programmierung (in Clojure)
Funktionale Programmierung (in Clojure) Einführung Burkhardt Renz Fachbereich MNI Technische Hochschule Mittelhessen Wintersemester 2014/15 Übersicht Paradigmen von Programmiersprachen Paradigmen von Programmiersprachen
Einführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
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
Objektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
Große Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 [email protected] http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
Modellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
Computeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag
Übung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
Funktionale Programmierung
FP-1.0 Funktionale Programmierung Prof. Dr. Uwe Kastens SS 2013 Vorlesung Funktionale Programmierung SS 2013 / Folie 100 Begrüßung Functional Programming is Fun FP-1.1 Fun ctional Programming is Fun ctional
Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch
Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,
WPF Steuerelemente Listbox, ComboBox, ListView,
WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,
BEISPIELKLAUSUR Softwareentwicklung:
Prof. Dr. Andreas Fink Institut für Informatik Fakultät für Wirtschafts- und Sozialwissenschaften Helmut-Schmidt-Universität / Universität der Bundeswehr Hamburg BEISPIELKLAUSUR Softwareentwicklung: Objektorientierte
Grundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
Einführung in Javadoc
Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:
Javakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
Software Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu
Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten
NODELOCKED LIZENZ generieren (ab ST4)
NODELOCKED LIZENZ generieren () Besuchen Sie folgende Webseite support.ugs.com/global/de ( ohne www oder http:// ) Klicken Sie auf Lizenz Verwaltung und dann auf aktuelle Lizenz 1 1. Geben Sie Ihren Webkey
Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann
Vorgetragen von Sanaz Mostowfi Anna Polovets Mandy Neumann Gliederung Was ist DSL? Welche Arten von DSL gibt es? Vor und Nachteile Werkzeuge zur Erstellung von DSLs XText Definition: DSL (Domain Specific
Programmieren Lernen mit BYOB. Gerald Futschek 5. November 2012
Programmieren Lernen mit BYOB Informatiktag 2012 Gerald Futschek 5. November 2012 Erste Programmier Schritte in der Schule Sehr viele verschiedene Dinge zu lernen: Syntax und Semantik der Befehle, Algorithmen,
Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ
IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler
Programmieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
Vererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
Gliederung. Programmierparadigmen. Sprachmittel in SCHEME. Objekte: Motivation. Objekte in Scheme
Gliederung Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Einführung Sprachmittel Sommer 2011, 20. Juni 2011,
Vorkurs Informatik WiSe 15/16
Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan
Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
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:
Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -
Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung
Programmierparadigmen
Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2011, 20. Juni 2011, c 2011 D.Rösner D. Rösner PGP 2011...
II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
Arbeiten mit dem Geometrieprogramm GeoGebra
Fachdidaktik Modul 1, WS 2012/13 Didaktik der Geometrie III: Konstruieren Planarbeit Arbeiten mit dem Geometrieprogramm GeoGebra I. Erstes Erkunden der Programmoberfläche: Grund- und Standardkonstruktionen
Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
Grundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen
Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
Erwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
U08 Entwurfsmuster (II)
U08 Entwurfsmuster (II) Inhalt der Übung Diskussion und Implementierung von Entwurfsmustern Übungsaufgaben Aufgabe 1 (Queue) Gegeben ist das folgende Analysemodell einer Warteschlange (Queue): Eine Warteschlange
Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.
Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert
Java Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
IBM Software Demos Rational Software Delivery Platform - Änderungen an Design und Architektur einer Anwendung
In dieser Demo verwendet Alex die Visualisierungs- und Modellfunktionen von Rational Software Architect, um die Architektur der Anwendung zu betrachten und festzulegen, wie die Änderung Sofort kaufen bestmöglich
Objektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
Um die Rücklagen ordnungsgemäß zu verbuchen, ist es wichtig, Schritt-für-Schritt vorzugehen:
Software WISO Hausverwalter 2014 Thema Eingabe von Rücklagenbuchungen Version / Datum V 1.2 / 28.05.2013 Um die Rücklagen ordnungsgemäß zu verbuchen, ist es wichtig, Schritt-für-Schritt vorzugehen: Schritt
Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6
Gudrun Fischer Sascha Kriewel [email protected] Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in
Objektorientierung: Klassen und Objekte
Vorlesung und Übung Universität Paderborn Wintersemester 2015/2016 Dr. Peter Pfahler Objektorientierung: Klassen und Objekte EWS, WS 2015/16, Pfahler L-1 Objektorientierung behandelt in "Einführung in
SQL - Übungen Bearbeitung der Datenbank Personal (1)
Bearbeitung der Datenbank Personal (1) 1. Abfragen einer einzigen Tabelle 1.1. Zeigen Sie alle Informationen an, die über die Kinder der Mitarbeiter gespeichert sind. 1.2. Zeigen Sie aus der Tabelle stelle
Lehrer: Einschreibemethoden
Lehrer: Einschreibemethoden Einschreibemethoden Für die Einschreibung in Ihren Kurs gibt es unterschiedliche Methoden. Sie können die Schüler über die Liste eingeschriebene Nutzer Ihrem Kurs zuweisen oder
Objektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
Formale Sprachen und Grammatiken
Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax
I.1 Die Parrot Assemblersprache
I.1 Die Parrot Assemblersprache Die virtuelle CPU Parrot ermöglicht die Verarbeitung der Parrot Assemblersprache (PASM). Zum Einstieg soll ein erstes Beispiel die Ausführung einer PASM-Datei zeigen. Legen
Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck
Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
Prof. Dr. Ulrich Hoffmann, Prof. Dr. Uwe Schmidt
Informatik Seminar WS 2009/2010 Prof. Dr. Ulrich Hoffmann, Prof. Dr. Uwe Schmidt Lisp in der JVM Michael Krüger (inf6065) 1 Übersicht 1. Hintergrund 2. Designziele 3. Spracheigenschaften 4. Klassenanalyse
Anpassung einer freien SSL/TLS Implementierung an die Kertasarie VM
Anpassung einer freien SSL/TLS Implementierung an die Kertasarie VM Aufgabenstellung Praktikum Betreuer: Dipl.-Inf. Christian Meusel [email protected] Zeitrahmen: Beginn: 5. Juni 2009
Programmieren Lehren Bericht über einen erneuten Anlauf
Programmieren Lehren Bericht über einen erneuten Anlauf Johannes Brauer NORDAKADEMIE Hochschule der Wirtschaft 3. Mai 2007 Johannes Brauer Norddeutsches Kolloqium 1 / 18 Warum nur? Überblick Johannes Brauer
Vererbung in der OOP
in der OOP Mirko Carl-Zeiss-Gymnasium Jena Fachbereich Informatik Workshop zur OOP-Fortbildung Jena, 26. 5. 2009 Gliederung 1 Objektorientierung - Grundlagen 2 3 4 Gliederung 1 Objektorientierung - Grundlagen
Programmierung I Einführung in Python, Beyond the Basics
Höhere Datenstrukturen Programmierung I Einführung in Python, Beyond the Basics G. Zachmann Clausthal University, Germany [email protected] Eines der Features, das Python so mächtig macht (VHLL)
Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala
Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:
Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode
Software Engineering Interaktionsdiagramme
Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)
Scala kann auch faul sein
Scala kann auch faul sein Kapitel 19 des Buches 1 Faulheit Faulheit ( lazy evaluation ) ist auch in C oder Java nicht unbekannt int x=0; if(x!=0 && 10/x>3){ System.out.println("In if"); } Nutzen der Faulheit?
Java Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
5.1.4.5 Übung - Datenmigration in Windows Vista
5.0 5.1.4.5 Übung - Datenmigration in Windows Vista Einführung Drucken Sie die Übung aus und führen Sie sie durch. In dieser Übung werden Sie Windows Vista verwenden. Empfohlene Ausstattung Die folgende
Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15
Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15 1 Bitte melden Sie sich über das Campusmanagementportal campus.studium.kit.edu
Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser
Dokumentation Black- und Whitelists Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser Inhalt INHALT 1 Kategorie Black- und Whitelists... 2 1.1 Was sind Black- und Whitelists?...
Client-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
Scala & Lift. Ferenc Lajko 04.02.2010
Scala & Lift Ferenc Lajko 04.02.2010 Gliederung 1. Scala 1.1. Allgemein 1.2. Merkmale 1.3. Unterschiede zu Java 1.4. Code-Beispiel 1.5. Vorteile zu anderen Sprachen 2. Lift 2.1. Allgemein 2.2. Idee 2.3.
Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter H. Schmitt David Farago, Christoph Scheben, Mattias Ulbrich Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt
Was ist das Tekla Warehouse
TEKLA WAREHOUSE Was ist das Tekla Warehouse https://warehouse.tekla.com Tekla Warehouse 2 Das Tekla Warehouse ist eine von Tekla geschaffene Online-Plattform, auf der Modellierer Tekla spezifische Daten
Daniel Warneke [email protected] 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers
Design Patterns Daniel Warneke [email protected] 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des
Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager email-rückläufer Script. combit GmbH Untere Laube 30 78462 Konstanz
combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager 7 combit Relationship Manager email-rückläufer Script Inhalt Einleitung 3 Notwendige Anpassungen 3 crm Solution
Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger
Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90 Minuten.
Studentische Lösung zum Übungsblatt Nr. 7
Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int
Programmierung 2. Übersetzer: Code-Erzeugung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. [email protected]. [email protected].
1 Programmierung 2 Übersetzer: Code-Erzeugung Sebastian Hack [email protected] Klaas Boesche [email protected] Sommersemester 2012 Bytecodes Der Java Übersetzer erzeugt keine Maschinensprache
Schnelleinstieg in die (cs) AuftragPro
Schnelleinstieg in die (cs) AuftragPro Starten der Anwendung Entpacken Sie das herunter geladene Archiv. Der entstandene Ordner (cs) AuftragPro enthält alle benötigten Komponenten der Anwendung. Öffnen
Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie [email protected]
Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie [email protected] Interpreter für funktionale Sprache
emlp: e-learning Plattform und mobile Lösungen für Military Operations EUROKEY Software GmbH Ludwig Kuhn
emlp: e-learning Plattform und mobile Lösungen für Military Operations EUROKEY Software GmbH Ludwig Kuhn Agenda emlp e & mlearning Publisher Military Operations emlp WEBauthor Erstellen einer Präsentation
Erfahrungen mit Hartz IV- Empfängern
Erfahrungen mit Hartz IV- Empfängern Ausgewählte Ergebnisse einer Befragung von Unternehmen aus den Branchen Gastronomie, Pflege und Handwerk Pressegespräch der Bundesagentur für Arbeit am 12. November
Die Anwendung von Work of Leaders in drei Schritten
BENUTZERHANDBUCH everything disg Work of Leaders Die Anwendung von Work of Leaders in drei Schritten Schritt 1: Vorab-Selbsteinschätzung Um für einen Teilnehmer ein Profil von Everything DiSG Work of Leaders
Zählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
WPF Bindung. Dr. Beatrice Amrhein
WPF Bindung Element- und Daten-Bindung Dr. Beatrice Amrhein Überblick Element-Bindung via Eigenschaften-Editor Grenzen des Eigenschaften Editors Die C# Klasse Binding Bindung an C# Objekte 2 Einführung
S7-Hantierungsbausteine für R355, R6000 und R2700
S7-Hantierungsbausteine für R355, R6000 und R2700 1. FB90, Zyklus_R/W Dieser Baustein dient zur zentralen Kommunikation zwischen Anwenderprogramm und dem Modul R355 sowie den Geräten R6000 und R2700 über
Übungsblatt 3: Algorithmen in Java & Grammatiken
Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015
GSD-Radionik iradionics Android-App
Neue Daten erfassen Daten speichern Daten löschen Suchen nach bereits erfassten ST = Stammdaten zum Erfassen der Daten. Vorname und Nachname sind Pflichtfelder, alles andere ist optional. Bei Tieren erfassen
Objektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
C O C O O N. Wo ist Cocoon in die Apache Projekte einzureihen?
C O C O O N ein Web-Framework der Apache Software Foundation http://www.apache.org Wo ist Cocoon in die Apache Projekte einzureihen? Apache Server sehr leistungsfähiger HTTP-Server Tomcat Server Referenzimplementierung
Praktikum: Einstieg: Arbeitsplatz, JCreator
Modul OPR Praktikum: Einstieg: Arbeitsplatz, JCreator Aufgabe 1 Richten Sie Ihren OPR-Arbeitsplatz ein: Java-Tool JCreator (nur lauffähig machen!) ->Erklärungen kommen später! Wie funktioniert Java? Der
Programmierung von MS-Office mit Visual Basic
Programmierung von MS-Office mit Visual Basic Dirk von Hagen EDV-Beratung Dirk von Hagen Robert-Mayer-Straße 40 60486 Frankfurt am Main Inhalt Verwendung Arten Beispiele Ausblick Historische Anmerkung
Java Einführung Packages
Java Einführung Packages Inhalt dieser Einheit Packages (= Klassenbibliotheken) Packages erstellen Packages importieren Packages verwenden Standard Packages 2 Code-Reuse Einbinden von bereits (selbst-/fremd)
1. Teilklausur. Modul "OOPM Vorlesung/Übung" 16.12.2008. Gruppe A
Objektorientierte Programmierung und Modellierung WS 2008/2009 Institut für Informatik Prof. Dr. Ralf Lämmel Dr. Manfred Jackel 1. Teilklausur Modul "OOPM Vorlesung/Übung" 16.12.2008 Gruppe A Name Vorname
ec@ros2-installer ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg 7 64331 Weiterstadt
ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Download des ecaros2-installer...3 2 Aufruf des ecaros2-installer...3 2.1 Konsolen-Fenster (Windows)...3 2.2 Konsolen-Fenster
Einführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
Werkzeuge der Informatik UNIX
Autor: David Mainzer Institut für Informatik 1 Werkzeuge der Informatik UNIX Prof. Dr. Gabriel Zachmann ([email protected]) David Mainzer ([email protected]) Institut für Informatik 17. Dezember
Integrierte und automatisierte GUI-Tests in Java
Integrierte und automatisierte GUI-Tests in Java Gliederung Die Idee hinter GUI-Tests Herausforderungen und Probleme Techniken Jemmy-Framework Konzeptorientiertes Testen FIT (Framework for Integrated Tests)
1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt
Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt 1. Vorbetrachtungen... 2 2. Die Installation... 2 3. Einstellungen - Erstellung der Verknüpfung... 3 3.1 Benutzung des Konfigurationsprogramms
