(.*)$/', $inc_content, $m)) {
$inc_content = $m[1] . $m[2];
}
$inc_content = strtr($inc_content, array(' ds-2col-fluid' => ''));
}
$inc_content = strtr($inc_content, array('NEWLINE' => "\n"));
print $inc_content;
/* this is for my table at the end of the document */
div.x td { background: #EEEEEE; valign="center" }
div.x td { background: #EEEEEE; }
Für den Übungsteil wird eine State-of-the-Art Visualisierungstechnik idealerweise in Zweiergruppen implementiert. Wählen Sie eine der zwei möglichen Aufgabenstellungen:
- Wählen Sie einen der Artikel aus dem Wiki in TUWEL. Jeder Artikel wird maximal zwei mal vergeben (First-Come-First-Served-Prinzip).
- Wählen Sie einen Datensatz (z.B. aus dieser Liste), visualisieren Sie die Daten mit einer State-of-the-Art Visualisierungstechnik aus einem wissenschaftlichen Artikel und analyisieren Sie den Datensatz mithilfe der Visualisierung.
Die Gruppenbildung und die Auswahl des Artikels finden über TUWEL statt.
Wie Sie die von Ihnen gewählte Aufgabe implementieren, bleibt Ihnen überlassen. Es gibt von unserer Seite keine Vorgaben welche Programmiersprache dafür verwendet wird. Das bietet Ihnen die Möglichkeit, im Rahmen dieser VU neue Technologien auszuprobieren.
Es steht Ihnen frei, schon vorhandene Libraries zu verwenden. Jedoch erwarten wir in einem solchen Fall, dass Sie dafür mehr Zeitaufwand in andere Teile Ihrer Arbeit stecken damit der Gesamtaufwand für alle gleich bleibt. Falls Sie Fragen bezüglich der Implementierung haben, verwenden Sie bitte in erster Linie das Q & A Forum in TUWEL, welches von unseren Tutoren betreut wird.
Organisation
Alle Abgaben sind bis in den Terminen angegebenem Datum über
TUWEL möglich. Folgende Abgaben gilt es zu beachten:
- 1. ABGABE:
Die erste Abgabe ist die verbindliche Anmeldung zur dieser VU. In TUWEL abzugeben ist eine Präsentation (exportiert als PDF). Die erste Präsentation soll vor allem den theoretischen Inhalt des Papers näher erläutern und eine Idee der Implementierung vermitteln. Die Redezeit beträgt 3 Minuten und soll eine Zusammenfassung des Artikels und das Implementierungskonzept beinhalten. Bitte halten Sie sich an das PowerPoint Template in TUWEL und beachten Sie die Anweisungen in den Kommentarfeldern! Bei dem Vortrag sollen die Mitglieder einer Gruppe alle gleich lange vortragen. Wann und wie oft gewechselt wird, bleibt Ihnen überlassen. Die PDF Präsentationen werden vor dem Präsentationstermin zusammengefügt und in vorgegebener Reihenfolge vom lokalen Rechner präsentiert. Sie erhalten vor Ort oder nachträglich über TUWEL Feedback.
- 2. ABGABE:
Nach dem ersten Feedback ist eine kurze Zusammenfassung des Artikels inklusive Implementierungskonzept und kurze Beschreibung der Daten abzugeben (ca. 1-2 A4 Seiten, PDF).
- ZWISCHENABGABE:
Die Zwischenabgabe ist unverbindlich und dient dazu, Feedback bezüglich der aktuellen Implementierung von den Tutoren zu bekommen. Die Abgabe erfolgt mittels
TUWEL in Form eines
ZIP Archives oder als Link. Sie können zu den in den
Terminen genannten Zeiten Fragen persönlich an die Tutoren richten. Sie müssen sich nicht anmelden, daher läuft es nach dem First-Come-, First-Served-Prinzip ab.
- 3. ABGABE:
Abzugeben sind:
- Implementierung (ZIP), bestehend aus:
- Kompilierte Binaries/WebGL/... (/bin)
- Quellcode (/src)
- Code Dokumentation (z.B. Doxygen) (/doc)
- HTML Dokumentation des Programms (/html)
- Screenshot des Programms (screenshot.jpg, Auflösung: W: 700px / H: variable)
Die HTML Dokumentation soll einen Link auf das Programm und den Quellcode sowie dessen Dokumentation enthalten. Weiters sollen auf der HTML Seite auch der Zweck und die Funktionsweise des Programms beschrieben werden.
- Präsentation (PDF, PPTX, PPT, ODP, ZIP falls Videos beiliegend)
Der Schwerpunkt der zweiten Präsentation liegt bei der Vorführung des fertigen Programms. Der genaue Aufbau und der Umfang für die beiden Präsentationen sieht im Konkreten folgendermaßen aus:
- Redezeit: 1er Gruppe (5 Minuten), 2er Gruppe (8 Minuten)
- Inhalt: Wiederholung des Artikels (ca. 20%), Implementierungs (ca. 40%), Programmvorführung (ca. 40%)
- Template: PowerPoint
Bei dem Vortrag sollen die Mitglieder einer Gruppe alle gleich lange vortragen. Wann und wie oft gewechselt wird, bleibt Ihnen überlassen. Zu den Präsentationsterminen bitten wir Sie mindestens 15 Minuten vor dem Beginn vor Ort zu sein, damit Sie Ihre Präsentation noch testen können.
Reicht man nach dem Abgabetermin ein, werden einmalig 10% der Gesamtpunkte abgezogen, sowie für jeden begonnenen Tag nach dem Abgabetermin weitere 10% der Gesamtpunkte. Das macht insgesamt 20%, wenn man den Abgabetermin um einen Tag versäumt.
Die Note für Visualisierung 2 ergibt sich aus der Kombination der praktischen Arbeit und des theoretischen Wissens. Die genaue Punktzahl für die Benotung ergibt sich wie folgt:
- die 1. Präsentation des Artikels incl. Implementierungsidee (5 Punkte)
- die Zusammenfassung des Artikels incl. Implementierungsidee (5 Punkte)
- die Implementierung und Dokumentation (40 Punkte)
- Einhaltung der Vorlagen (15 Punkte)
- Funktionalität (15 Punkte)
- Usability (5 Punkte)
- Dokumentation (5 Punkte)
- die 2. Präsentation des Programms (10 Punkte)
- die mündliche Vorlesungsprüfung (40 Punkte)
Für eine positive Note müssen sowohl Vorlesung als auch Übung positiv abgeschlossen werden!
Die Punkte für die Präsentationen sowie für die Zusammenfassung werden im Laufe des Semesters vergeben. Die Punkte für die Implementierung und für die mündliche Prüfung werden am Ende des Semesters bei einem kombinierten Abgabegespräch inklusive der theoretischen Prüfung vergeben.
Die
Anmeldung zu diesem Termin ist zu gegebener Zeit über
TUWEL möglich.
Bitte melden Sie sich sowohl für das Abgabegespräch (gruppenweise!), als auch für die Vorlesungsprüfung (Einzelpersonen!) an!
Das Abgabegespräch erfolgt im VisLab und kann wahlweise auf dem eigenen Laptop, Tablet, Mobile Phone,... oder auf einem PC im VisLab durchgeführt werden. Die theoretische Prüfung erfolgt unabhängig davon in Einzelgesprächen.
Der Notenspiegel für die Benotung sieht folgendermaßen aus:
- > 87 Punkte ... Sehr Gut (1)
- > 75 Punkte ... Gut (2)
- > 62 Punkte ... Befriedigend (3)
- >= 50 Punkte ... Genügend (4)
- < 50 Punkte ... Nicht Genügend (5)
Datensätze können - müssen aber nicht - von den folgenden Quellen bezogen werden:
Scientific Visualization Ressourcen:
Information Visualization und Visual Analytics Ressourcen:
- VAST challenge archive
http://www.vacommunity.org/About+the+VAST+Challenge
Archive of all Visual Analytics Science and Technology (VAST) Challenges from 2006.
- UCI Machine Learning Repository
http://archive.ics.uci.edu/ml/datasets.html
Provides hundrets of data sets mainly for the machine learning community, but also interesting for visualization!
- Kaggle Datasets
https://www.kaggle.com/datasets
Ten thousands of public datasets, including Bitcoin, YouTube statistics, transports etc.
- FiveThirtyEight Data
https://data.fivethirtyeight.com/
Data used and provided by the FiveThirtyEight opinion poll analysis / politics, economics, and sports blog website.
- data.gv.at
https://www.data.gv.at/
offene Daten Österreich
- Gapminder world data
https://www.gapminder.org/data/
Provides hundrets of country indicators, such as population, infant mortality rates, life expectancy at birth, employment rates etc., over many years.
- Tableau sample data sets
https://public.tableau.com/s/resources?qt-overview_resources=1#qt-overview_resources
Dozens of data sets about education, science -- and even characteristics of Star Wars characters.
- CIA world factbook
https://www.cia.gov/library/publications/the-world-factbook/rankorder/rankorderguide.html
Country comparisons of different geographic or economic statistics can be downloaded.
- Data.Gov
https://catalog.data.gov/dataset
Hundrets thousands of data sets (e.g., demographic statistics on zip code level) provided by the U.S. government.
- Google public data explorer
http://www.google.com/publicdata/home
Search through publicly available data sets, such as world bank, eurostat, WTO etc.
- Statista
https://www.statista.com/
Large collection of statistics (TU Wien has a license)
- Stanford Large Network Dataset Collection
http://snap.stanford.edu/data/
Provides any kinds of network data.
- The Koblenz Network Collection
http://konect.uni-koblenz.de/
Large network datasets of all types collected by the University of Koblenz-Landau.
- GMap Graph Datasets
http://gmap.cs.arizona.edu/datasets
Collection of graphs and networks used for demonstrating GMap.
- graphdrawing.org Benchmark Data
http://www.graphdrawing.org/data.html
Benchmark data for various classes of graph drawing algorithms.
- Network Data Collection
http://www-personal.umich.edu/~mejn/netdata/
Network data collected by Mark Newman.
- Visualization publications dataset
http://www.vispubdata.org/site/vispubdata/
Contains all IEEE VIS publications from 1990 to 2015 with titles, authors etc. and citations to previous VIS papers.
- IMDbPY
https://imdbpy.sourceforge.io/
Python package to retrieve and manage data of the IMDb movie database.
- Car dataset
https://www.cg.tuwien.ac.at/courses/Visualisierung1/exercises/data/cars_406.zip
A classic small multivariate data set about cars.
- Nutrients dataset
https://www.cg.tuwien.ac.at/courses/Visualisierung1/exercises/data/nutrients_7538.zip
A classic multivariate data set about nutrients.
- Car Evaluation Data Set
http://archive.ics.uci.edu/ml/datasets/Car+Evaluation
A larger car datset.
- Plants Data Set
http://archive.ics.uci.edu/ml/datasets/Plants
A classic and quite large multivariate data set about plants.
Visualization or Graphics Toolkits and Libraries:
- D3.js - JavaScript library for data-driven visualization documents
https://d3js.org/
- Vega Light - high-level visualization grammar based on JSON
https://vega.github.io/vega-lite/
- Python Visualization Libraries - Python offers a variety of visualization libraries, like Bokeh, Plotly R, or Seaborn. Here is an overview:
https://mode.com/blog/python-data-visualization-libraries
- R Visualization Packages - R provides some visualization packages as well:
https://mode.com/blog/r-data-visualization-packages
- three.js - JavaScript 3D scenegraph library based on WebGL
https://threejs.org/
- Stardust: GPU-based Visualization Library
https://stardustjs.github.io/
- Polymaps - JavaScript library for making dynamic, interactive maps
http://polymaps.org/
- Leaflet - JavaScript library for mobile-friendly interactive maps
http://leafletjs.com/
- Google Visualization API for the creation of visualization
https://developers.google.com/chart/interactive/docs/reference
- The JavaScript InfoVis Toolkit
http://thejit.org/
- Qt Data Visualization Module
http://doc.qt.io/qt-5/qtdatavisualization-index.html
- Visualization Toolkit (VTK) -- 3D graphics, image processing, and visualization library
https://www.vtk.org/
- Kitware toolkits and applications (including VTK, ParaView, ITK, 3D Slicer etc.)
https://www.kitware.com/platforms/
- Unity3D - game engine; sometimes used for 3D visualization
https://unity3d.com/
- Unreal Engine - game engine; sometimes used for 3D visualization
https://www.unrealengine.com
- dataviz.tools - tools, resources, and technologies for data visualization
http://dataviz.tools/
- Collection of Vis-Tools
http://selection.datavisualization.ch/
Other useful tools and libraries:
186.827, VU Visualisierung 1; WS; Eduard Gröller & Tobias Klein
186.105, VU Visualisierung medizinischer Daten 1; SS; Milos Sramek & Renata Raidou
186.138, VU Visualisierung medizinischer Daten 2; WS; Renata Raidou & Eduard Gröller
188.305, VO Informationsvisualisierung; SS; Kresimir Matkovic
186.143, UE Informationsvisualisierung; SS; Kresimir Matkovic & Manuela Waldner
188.162, VU Informationsvisualisierung; WS; Silvia Miksch
186.191, VU Echtzeit-Visualisierung; WS; Ivan Viola
186.046, SE aus Visualisierung; Eduard Gröller & Hsiang-Yun Wu
186.829, PR Bachelorarbeit für Informatik und Wirtschaftsinformatik; Eduard Gröller et al.
186.834, PR Praktikum aus Visual Computing; Eduard Gröller et al.
Central European Seminar on Computer Graphics; Michael Wimmer et al.
$def) {
$new_link = $template_link;
if (is_array($def)) {
$new_link = strtr($new_link, array('/user/login' => $link, 'Log in' => $def['name'], 'role="menuitem"' => 'title="' . htmlentities($def['title']) . '"'));
} else {
$new_link = strtr($new_link, array('/user/login' => $link, 'Log in' => $def));
}
$add .= $new_link;
}
$pos = (int)file_get_contents(__DIR__ . "/templates/user-menu.pos");
$inc_content = substr($inc_content, 0, $pos) . $add . substr($inc_content, $pos);
}
$inc_content = template_replace($inc_content, $VARS);
$inc_content = strtr($inc_content, array("\n" => 'NEWLINE'));
if (preg_match('/^(.*
]* class="[^"]*breadcrumb[^"]*"[^>]*>)(.*$)/', $inc_content, $m)) {
$p = strpos($m[2], '
');
$inc_content = $m[1] . print_breadcrumbs() . substr($m[2], $p);
}
$inc_content = strtr($inc_content, array('NEWLINE' => "\n"));
print $inc_content;