AuDoscore Automatic Grading of Java or Scala Homework
|
|
|
- Gottlob Siegel
- vor 8 Jahren
- Abrufe
Transkript
1 AuDoscore Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Friedrich-Alexander University Erlangen-Nürnberg
2 Agenda Hintergrund und Motivation Ablauf der Bewertung mit AuDoscore Testfall-Erstellung aus Sicht des Dozenten Technische Umsetzung Erfahrungen mit AuDoscore AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 2
3 Hintergrund und Motivation Modul Algorithmen und Datenstrukturen (AuD) 300h (10 ECTS) ca. 25% davon Java-Hausaufgaben WS14/15 SS15 WS15/16 SS16 WS16/17 # Studierende # Prog.-Aufg # Java-Abgaben # Java-Dateien # LOC Modul Parallele und Funktionale Programmierung (PFP) 150h (5 ECTS) ca. 15% bzw. 10% Java-/Scala-Aufgaben bis zu 390 Abgaben (600 Scala-Dateien) pro Semester und viele weitere, ähnliche Veranstaltungen. AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 3
4 Bewertung von Programmieraufgaben vor AuDoscore (1) EST: Exercise Submission Tool Studierende laden ihre Lösungen hoch AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 4
5 Bewertung von Programmieraufgaben vor AuDoscore (2) EST: Exercise Submission Tool PDF-Dateien können mit Korrekturanmerkungen zurückgegeben werden Tutoren bewerten Lösungen manuell AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 5
6 Bewertung von Programmieraufgaben vor AuDoscore (1) EST: Exercise Submission Tool Studierende können Feedback und Punktestand einsehen Vorteile: Nachteile: + intuitiv - Feedback erst deutlich nach Abgabefrist - manuelle Bewertung von Java-Dateien schwierig und aufwändig - Bewertungen ggf. inkonsistent ( unfair ) AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 6
7 Hintergrund und Motivation möglichst leichtgewichtige Erweiterung von JUnit üblicher/gewohnter Testablauf für Dozenten und Studierende (Syntax, IDE, Ausführung, ) frühes Feedback an Studierende (während Bearbeitungsfrist!) leicht in EST integrierbar, aber auch unabhängig nutzbar AuDoscore: automatische Bewertung von Java-Hausaufgaben (öffentlich) ScExFuSS: Scala Exercise Functional Scoring System Fusion beider Projekte in Planung. nahezu identisch mit AuDoscore mit Scala-Unterstützung (noch nicht öffentlich) AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 7
8 Agenda Hintergrund und Motivation Ablauf der Bewertung mit AuDoscore Testfall-Erstellung aus Sicht des Dozenten Technische Umsetzung Erfahrungen mit AuDoscore AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 8
9 Ablauf der Bewertung mit AuDoscore Dozent erstellt PubTest SecTest überarbeitet Student erstellt, prüft überarbeitet PubTest Feedback testet lokal Lösung wird eingereicht testet online EST (stage 0-2) testet online EST (stage 3) Dozent! Vorab-Feedback:! Dozent erteilt prüft ergibt finales Ergebnis finales Ergebnis-Feedback Freigabe AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 9
10 Agenda Hintergrund und Motivation Ablauf der Bewertung mit AuDoscore Testfall-Erstellung aus Sicht des Dozenten Technische Umsetzung Erfahrungen mit AuDoscore AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 10
11 AuDoscore aktivieren Dozent erstellt Musterlösung und zwei Testfallklassen (Pub/Sec-Test) AuDoscore erweitert JUnit um zusätzliche Annotationen Beide Testfallklassen müssen beide JUnit-Rules enthalten: public class ZeichengeometriePublicTest Sammelt Informationen zu allen Testfällen und deren Ausführung public final PointsLogger pl = new public final static PointsSummary ps = new PointsSummary(); Erzeugt Zusammenfassung der finalen Bewertung AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 11
12 Öffentliche und Geheime Testfallklasse (PubTest / SecTest) Öffentlicher Test deklariert Teilaufgaben = "erzeugezeichenflaeche", points = = "zeichnepunkt", points = = "zeichnelinie", points = = "zeichnepolygon", points = = "zeichnerechteck", points = = "zeichnekreis", points = 4) }) public class ZeichengeometriePublicTest { Absolute Punktzahl (reale Bewertung) Geheimer Test erhält nur eine public class ZeichengeometrieSecretTest { AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 12
13 Einzelner Testfall (Bonus / Malus) = = "zeichnelinie", bonus = 42) public void testzeichnelinie Diagonale check() { : Punkte : keine Auswirkung typischer Einsatz: reguläre Funktionalität = 666) Relative Punktzahl = "zeichnelinie", malus = 666) public void test_check_if_invariant gives_student_cheating() { : keine Auswirkung : Punkte typischer Einsatz: Rekursion, Schnittstellen, Betrugsversuch AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 13
14 Finale Bewertung bonus- / malus- Angaben sind relative Gewichte Vorteil: Ergänzen/Löschen von Testfällen einfach Finale Bewertung für einzelne Teilaufgabe ττ gemäß: ggggggggee ττ = max 0, pppppppppppp TTCCττ bbbbbbbbbb TTCCττ ffffffffffff TTCCττ bbbbbbbbbb mmmmmmmmmm EExx ττ. pppppppppppp (0.5) Beispiel: ττ EExx = "zeichnelinie", points = 11), = "zeichnelinie", bonus = = "zeichnelinie", bonus = = "zeichnelinie", bonus = = "zeichnelinie", bonus = = "zeichnelinie", malus = 6) ( ) (6) max 0, ( ) PPPPPPPPPPPP (0.5) AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 14
15 Finale Bewertung Ansicht für Studierende Name der Testmethode oder wahlweise expliziter Kommentar AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 15
16 Beschränkungen der API Szenario: Algorithmen oder Datenstrukturen selbst implementieren auch wenn schon in der API ähnlich vorhanden Beispiel: eigene Streutabelle Verhindert, dass Studierende java.util.hashmap "java.util.", "java.lang.math" "java.lang.math.pow" }) public class StreutabellePublicTest { Prüfung als Teil der gesamten Ausführungssteuerung über Linux-Shell-Skript: Suche im Output des javap-disassemblers AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 16
17 Folgefehler verhindern Szenario: aufeinander aufbauende Methoden mit getrennten Testfällen Beispiel: QuickSort: Aufrufe: sort rruuuuuu partition rruuuuuu choosepivot rruuuuuu swap Code: Folgefehler! "QuickSort.swap", "QuickSort.choosePivot" }) public void test_partition { test_swap: test_ test_partition:? AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 17
18 Agenda Hintergrund und Motivation Ablauf der Bewertung mit AuDoscore Testfall-Erstellung aus Sicht des Dozenten Technische Umsetzung Erfahrungen mit AuDoscore AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 18
19 Technische Umsetzung: PointsLogger & PointsSummary AuDoscore ist Open Source: Intuitive Erweiterungen für JUnit: class PointsLogger extends TestWatcher { JUnit liefert Infos zu jedem Testfall: starting, failed, skipped, succeeded class PointsSummary extends ExternalResource { installiert SecurityManager ersetzt stdout/stderr erzeugt Ergebnisbericht JUnit informiert über gesamte Testsuite: before, apply, after AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 19
20 nutzt com.sun.source.util aus JDK: ANNOT Operationen auf Abstrakten Syntax-Bäumen (AST) J_SRC class Stud. Lsg. (Original) ANNOT J_SRC class Musterlsg. (Dozent) MOD HelloWorld BODY MOD HelloWorld BODY public VAR_D METH_D METH_D public VAR_D METH_D METH_D a b swap partition _clean_x swap "QuickSort.swap", "QuickSort.choosePivot" }) public void test_partition { ANNOT MOD J_SRC class HelloWorld BODY SUT für Testfall (ohne Folgefehler) public VAR_D METH_D METH_D a _clean_x b swap partition AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 20
21 AuDoscore für Scala-Code exakt wie für Java: import tester.annotations._ import Ex(exID = "Dijkstra.reachable", points = 2), new Ex(exID = "Dijkstra.shortest", points = "scala\\$app\\$\\$initcode")) class DijkstraTestEST extends JUnitWithPoints { Vererbt die Points-Rules (erspart explizite = = "Dijkstra.shortest", bonus = 1, comment = "Test shortest() with example from exercise def testshortestexample: Unit = { assertequals("shortest(reachable(g))(0) returns wrong result", Set((0,0),(1,3),(2,5),(3,3),(4,2)), shortest(reachable(g))(0).toset) } AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 21
22 Agenda Hintergrund und Motivation Ablauf der Bewertung mit AuDoscore Testfall-Erstellung aus Sicht des Dozenten Technische Umsetzung Erfahrungen mit AuDoscore AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 22
23 Erfahrungen mit AuDoscore - AuD in 5 Semestern automatisch bewertet: Java-LOC in Dateien ( Abgaben) WS14/15 SS15 WS15/16 SS16 WS16/17 # Studierende # Prog.-Aufg # Java-Abgaben # Java-Dateien # LOC # Pub/Sec-Tests 160/ / / / /804 # Test-Korrektur # manuelle Bew Manuelle Überprüfung auf Rekursion AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 23
24 Erfahrungen mit AuDoscore Tipps & Tricks Überprüfung auf Rekursion: Vorgabe einer Call-Back -Methode, die von den Studierenden im Basisfall der Rekursion aufgerufen werden muss => Rekursionstiefe über Stacktrace im AuDoscore-Test prüfen Betrugsversuche: Studierende versuchen, die Erwartungen der Testfälle (PubTest) ohne echte Funktionalität zu erfüllen ( Mock!) => Anti-Cheat-Malus-Test notwendig z.b. Diversität der Rückgaben für verschiedene Eingaben zählen AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 24
25 AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 25
26 Zukunftspläne Berücksichtigung nicht-funktionaler Aspekte z.b. Codierrichtlinien Unterstützung weiterer (JVM-)Programmiersprachen Gezielte Unterstützung beim Test paralleler Programme Integration externer Bibliotheken Verfeinerung z.b. auf einzelne Klassen/Methoden AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 26
27 Erfahrungen mit AuDoscore - PFP in 3 Semestern automatisch bewertet: Scala-LOC in 721 Dateien/Abgaben WS15/16 SS16 WS16/17 # Studierende # Prog.-Aufg # Scala-Abgaben # Scala-Dateien # LOC # Pub/Sec-Tests 24/21 15/54 15/54 # Test-Korrektur # manuelle Bew AuDoscore: Automatic Grading of Java or Scala Homework Norbert Oster, Marius Kamp, Michael Philippsen Folie 27
Testgetriebene Entwicklung mit JUnit4
Testgetriebene Entwicklung mit JUnit4 Seminarvortrag im Fach Fortgeschrittenes Programmieren in Java, Dozent: Prof. Klinker Datum: 30.04.2010 Referent: Marius Schmeding Ausgangsfragen... Wie testet man
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
Systematisches Testen der Funktionalität von Softwaresystemen. 17. Juni 2015
Systematisches Testen der Funktionalität von Softwaresystemen 17. Juni 2015 Überblick Semantische Qualität von Software Teststrategien und prinzipien Testgetriebene Softwareentwicklung Welche Arten von
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 01 Organisatorisches Clemens Lang T2 27. April 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/15 Über mich... Wer bin ich? Name Clemens Lang E-Mail [email protected]
7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi
7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung
Einführung in die Informatik Tools
Einführung in die Informatik Tools Werkzeuge zur Erstellung von Softwareprojekten Wolfram Burgard 8.1 Motivation Große Softwareprojekte werden schnell unübersichtlich. Änderungen im Code können leicht
Programmiertechnik II
Modultests Ziele Überprüfung der Korrektheit eines Moduls Korrektheit: Übereinstimmung mit (informaler) Spezifikation Modul: kleine testbare Einheit (Funktion, Klasse) Engl.: unit test White box testing
Javakurs für Anfänger
Javakurs für Anfänger Einheit 13: Interfaces Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Interfaces Motivation Eigenschaften Besonderheiten Anonyme Klassen Lambda-Ausdrücke Praxis:
Programmierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
II.1.1. Erste Schritte - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.
Java für C++ Programmierer
Java für C++ Programmierer Alexander Bernauer [email protected] Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?
Systematisches Testen
Systematisches Testen SEP 136 Unit Testing Objektorientierte Entwicklung Entwicklung von vielen unabhängigen Einheiten (Klassen, Methoden), aus denen das Gesamtprogramm zusammengesetzt wird. Ziel: Wenn
Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen
Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich
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:
Programmierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
Methoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
4. Vererbung Die Klasse Object. Die Klasse Object
4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige
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
Einführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java
Ludwig-Maximilians-Universität München München, 20.11.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt
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
Ersetzbarkeit und Verhalten
Ersetzbarkeit und Verhalten U ist Untertyp von T, wenn eine Instanz von U überall verwendbar ist, wo eine Instanz von T erwartet wird Struktur der Typen für Ersetzbarkeit nicht ausreichend Beispiel: void
Mock-Objekte. Universität Karlsruhe (TH) Fakultät für Informatik Lehrstuhl für Programmiersysteme. Forschungsuniversität gegründet 1825
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Mock-Objekte Verschiedene Testhelfer Ein Stummel (engl. stub) ist ein nur rudimentär implementierter Teil der Software und dient als Platzhalter
Algorithmen und Programmierung II
Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung
Algorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 31. März 2009, c 2009 D.Rösner
Property Based Testing
Property Based Testing Nicolai Mainiero sidion Testen ist schwer Testen ist schwer Warum? Alle Pfade durch den Code aufzuzählen ist aufwendig. Selbst vermeintlich einfache Systeme können komplex sein.
FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
Programmieren 2 Java Überblick
Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10
Konzepte der Programmiersprachen
Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C
JUnit 4 Tutorial. Wolfgang Stöttinger
JUnit 4 Tutorial Wolfgang Stöttinger JUnit 4 Tutorial... 1 1 Einführung in JUnit 4... 3 1.1 Wie funktioniert JUnit?... 3 1.2 Annotations... 3 1.2.1 Test Annotation... 3 1.2.2 Before Annotation... 3 1.2.3
Programmieren in Python
12. Unit-Testing Albert-Ludwigs-Universität Freiburg Handlungsplanungs-Praktikum Wintersemester 2010/2011 Wozu Unit-Testing? Autoritäre Antwort: Weil wir es im Praktikum von euch verlangen. Etwas bessere
Einstieg in die Informatik mit Java
1 / 18 Einstieg in die Informatik mit Java Klassenvariablen, Klassenmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden
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
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
Programmieren in Java
Programmieren in Java Vorlesung 10: Ein Interpreter für While Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1
II.1.1. Erste Schritte - 1 -
! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Prof. Dr. Heinrich Müller. Informatik VII Universität Dortmund. http://ls7-www.cs.uni-dortmund.de. Organisatorisches zum Vorkurs Informatik
(UJlQ]HQGH)ROLHQ]XP 9RUNXUV,QIRUPDWLN Prof. Dr. Heinrich Müller Informatik VII Universität Dortmund http://ls7www.cs.unidortmund.de Informatik VII, Universität Dortmund Organisatorisches zum Vorkurs Informatik
Java Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
Klassenvariablen, Klassenmethoden
Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden
Java für Bauingenieure
1 JAVA für Bauingenieure Alexander Karakas SS 2008 Objektorientierte Programmierung 30.04.2008, CIP Pool Objektorientierte Programmierung Übersicht 2 Klasse und Objekt Polymorphismus und Vererbung Klassen
Programmierpraktikum
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Praktikum: Grundlagen der Programmierung Programmierpraktikum Woche 04 (17.11.2016) Stefan Berktold [email protected] PRÄSENZAUFGABEN Heutige Übersicht
Das Test-Framework JUnit ETIS SS04
Das Test-Framework JUnit ETIS SS04 Gliederung Motivation TestFirst Grundlagen Assert TestCase Lebenszyklus TestCase UML-Diagramm TestCase TestSuite Zusammenfassung 2 Motivation (I) Kostspielige Folgen
Die Scala Entwicklungsumgebung. L. Piepmeyer: Funktionale Programmierung - Die Scala Entwicklungsumgebung
Die Scala Entwicklungsumgebung 1 Was ist drin? Die Scala-Entwicklungsumgebung enthält Die Scala-Shell: scala Zwei Compiler: scalac und fsc (Fast Scala Compiler) Die API Die Laufzeitumgebung Den Scala-Basar
Konzeption. und prototypische Implementierung. eines Werkzeuges. für den funktionalen Klassentest
Konzeption und prototypische Implementierung eines Werkzeuges für den funktionalen Klassentest Übersicht Motivation Zielsetzung Lösungsansatz und dessen Realisierung Anwendungs-Szenarien Präsentation von
Java Einführung Methoden. Kapitel 6
Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden
TDD. mit JUnit & Mockito. Tobias Trelle, codecentric
TDD mit JUnit & Mockito Tobias Trelle, codecentric AG @tobiastrelle 1 Tobias Trelle Software Architekt @ codecentric AG Twitter: @tobiastrelle Slideshare: http://de.slideshare.net/tobiastrelle/ GitHub:
Einstieg in die Informatik mit Java
1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung
Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4
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 4 SS 2016
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
1. Abstrakte Klassen
1. Abstrakte Klassen Lernziele 1. Abstrakte Klassen Lernziele: Das Konzept abstrakter Klassen und abstrakter Methoden kennen und verstehen, in der Lage sein, abstrakte Klassen und Methoden in Java zu formulieren,
Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2
iii Inhaltsverzeichnis Kurseinheit 1 1 Von der Aufgabenstellung zum Programm... 1 1.1 Motivation... 1 1.2 Softwareentwicklung... 2 1.3 EXKURS: Unified Modeling Language (UML)... 4 2 Anforderungsanalyse...
Unit Tests. Programmiermethodik. Eva Zangerle Universität Innsbruck
Unit Tests Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11
Vorlesung Programmieren
Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von
Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder
Java: Kapitel 1 Überblick Programmentwicklung WS 2008/2009 Holger Röder [email protected] Was ist Java? Die Java-Technologie umfasst die Programmiersprache Java sowie die Java-Plattform
Tutoraufgabe 1 (Listen):
Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Allgemeine Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet
Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
Algorithmen und Datenstrukturen Tafelübung 1. Jens Wetzl 26. Oktober 2011
Algorithmen und Datenstrukturen Tafelübung 1 Jens Wetzl 26. Oktober 2011 Folien Keine Garantie für Vollständigkeit und/oder Richtigkeit Keine offizielle Informationsquelle LS2-Webseite Abrufbar unter:
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 13. März 2017 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
ebusiness Übung 3a Spezifikation und Nutzung von Web-APIs (Services) Prof. Dr. Andreas Schmietendorf 1
ebusiness Übung 3a Spezifikation und Nutzung von Web-APIs (Services) 14.03.2017 Prof. Dr. Andreas Schmietendorf 1 Aufgabenstellung 14.03.2017 Prof. Dr. Andreas Schmietendorf 2 Ziele der Übung Spezifikation
Markus Wichmann. Testen von Java Code mit. JUnit
Markus Wichmann Testen von Java Code mit JUnit Demotivation... Am Anfang war der Zeitdruck... Hilfe, ich habe doch keine Zeit zum Testen! Ich schreibe einfach keine Tests, dadurch werde ich schneller fertig
Schwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen
Schwerpunkte 10. Felder (Arrays) Teil 1 Java-Beispiele: Echo.java Primzahlen.java Monate.java Klassifikation von Typen in Programmiersprachen Array: einziger strukturierter Typ in Java Deklaration, Erzeugung
Bibliotheks-basierte Virtualisierung
Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2015/2016 V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16)
To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1
To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1 Rekursion: Beispiele Bier trinken 8-Damen-Problem ipod Shuffle für alle Mitarbeiter Karten
Modellgetriebene Entwicklung einer Eclipse RAP-Anwendung unter Verwendung des Eclipse Modeling Frameworks
Modellgetriebene Entwicklung einer Eclipse RAP-Anwendung unter Verwendung des Eclipse Modeling Frameworks AKWI 2015 Luzern Marco Richter ([email protected]) Melanie Vanderpuye ([email protected])
Parallele und funktionale Programmierung Wintersemester 2015/ Übung Abgabe bis , 10:00 Uhr
3. Übung Abgabe bis 10.11.2015, 10:00 Uhr Aufgabe 3.1: Java-Synchronisation a) An welchen Stellen im Code kann das Schlüsselwort synchronized verwendet werden? b) Wie nennt sich die Synchronisations-Art,
Verschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes
Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine
Einstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
Kurzanleitung Eclipse
Autor: Prof. Dr. Bernhard Humm, FB Informatik, FH Darmstadt Datum: 30. November 2005 1 Starten Für das Praktikum verwenden wir Eclipse Version 3.1 und JDK 1.5 Starten Eclipse: Doppelklick auf das Icon
1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
Grundlagen der Informatik für Ingenieure I
2 Java: Java-Einführung 2 Java: Java-Einführung 2.1 Java-Entwicklungsgeschichte 2.2 Java Eigenschaften 2.3 Java-Entwicklungsumgebung 2.4 Application vs. Applet 2.5 Ein erstes Programm 2.1 2.1 Java - Entwicklungsgeschichte
Vorlesung Programmieren
Vorlesung Programmieren Programmierparadigmen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Programmiersprachen-Paradigmen Eine Programmiersprache
Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
Einstieg in die Informatik mit Java
1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen
Einstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
Handbuch für die Erweiterbarkeit
Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6
Einstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4
Groovy und CouchDB. Ein traumhaftes Paar. Thomas Westphal
Groovy und CouchDB Ein traumhaftes Paar Thomas Westphal 18.04.2011 Herzlich Willkommen Thomas Westphal Software Engineer @ adesso AG Projekte, Beratung, Schulung www.adesso.de [email protected]
Einführung in die Programmierung 1
Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener
Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
Die Klasse java.lang.object. Thorsten Treffer
Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:
Objektorientierte Programmierung. Kapitel 14: Interfaces
14. Interfaces 1/26 Objektorientierte Programmierung Kapitel 14: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/ brass/oop13/
Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000
Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,
OOSE4 Testen mit BlueJ/JUnit 4
OOSE4 Testen mit BlueJ/JUnit 4 Lehrstuhl Softwaretechnologie, Dr. Birgit Demuth Sommersemester 2016 Vorgehen beim Unit-Test allgemein 1. Testfälle ausdenken / Testfalltabellen erstellen 2. Testfälle nach
Javakurs für Anfänger
Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben
