Artikel mit Tag studium
-14-
02
2010
02
2010
Seminar: Research Trends in Media Informatics
Ich denke nicht, dass es übertrieben ist zu sagen, dieses Seminar gehört mit zu den Höhepunkten meines bisherigen Studiums an der Uni Ulm. Ein einfaches Seminar haben die Jungs vom Institut für Medieninformatik zu einer vollständig konferenzähnlichen Veranstaltung aufgebohrt – und es hat sich für alle gelohnt. Die Seminarthemen orientierten sich an aktuellen Forschungstrends aus dem Bereich der Medieninformatik und insbesondere aus den Bereichen des Ubiquitous Computings. Allerdings waren die Themen allgemein genug, um mehr als nur punktuelle Forschungsergebnisse anderer zu beschreiben. Vielmehr bot jeder einzelne Vortrag einen guten Einblick in den jeweiligen Themenkomplex ohne all zu spezifisch für die anderen Teilnehmer zu werden. Dies sorgte insbesondere für rege Diskussionen am Ende jeden Vortrags. Die vier Sessions teilten sich in die Bereiche Ubiquitous Computing, Devices and Games, Networking Trends sowie Social Computing ein.
Verschiedene Beiträge werden in Kürze auf IOException vorgestellt.
Doch der Ablauf unterschied sich von dem üblichen Abläufen: Ausarbeitung schreiben, Überarbeitung mit einem Betreuer, Powerpoint Folien erstellen und letztendlich die typischen Präsentationen.

Zunächst wurden wir dazu motiviert, unsere Paper auf Englisch zu verfassen. Der Review-Prozess wurde um ein Peer-Reviewing erweitert, bei dem die Teilnehmer Arbeiten anderer mitbegutachteten. Bei den Vorträgen legten die Betreuer Wert auf ansprechende Präsentationen abseits von Powerpoint und Bullet Points.
Dieser Mehraufwand wurde letztendlich mit einem wirklich sehr konferenznahen Blockseminar belohnt. Es gab Badges für alle Teilnehmer, gedruckte(!) 130-seitige Proceedings mit allen Papern und sogar zwei Keynotes Speeches – darunter ein Forscher aus den Niederlanden
Selbst ein Social Event am Ende hat es gegeben, es war echt noch nett im Barfüsser!
Nochmal großes Lob an Boto, Stefan, Flo, Elmar, Basti und Björn für die besondere Betreuung des Seminars!
Und irgendwie hat dieses Seminar Lust auf mehr gemacht – kurze und interessante Vorträge, die einen Blick über den Tellerrand ermöglichen, gerne auch noch interdisziplinärer. Mal sehen, ob wir da noch etwas weiteres auf die Reihe bekommen.
Verschiedene Beiträge werden in Kürze auf IOException vorgestellt.
Doch der Ablauf unterschied sich von dem üblichen Abläufen: Ausarbeitung schreiben, Überarbeitung mit einem Betreuer, Powerpoint Folien erstellen und letztendlich die typischen Präsentationen.

Zunächst wurden wir dazu motiviert, unsere Paper auf Englisch zu verfassen. Der Review-Prozess wurde um ein Peer-Reviewing erweitert, bei dem die Teilnehmer Arbeiten anderer mitbegutachteten. Bei den Vorträgen legten die Betreuer Wert auf ansprechende Präsentationen abseits von Powerpoint und Bullet Points.
Dieser Mehraufwand wurde letztendlich mit einem wirklich sehr konferenznahen Blockseminar belohnt. Es gab Badges für alle Teilnehmer, gedruckte(!) 130-seitige Proceedings mit allen Papern und sogar zwei Keynotes Speeches – darunter ein Forscher aus den Niederlanden
Selbst ein Social Event am Ende hat es gegeben, es war echt noch nett im Barfüsser!
Nochmal großes Lob an Boto, Stefan, Flo, Elmar, Basti und Björn für die besondere Betreuung des Seminars!
Und irgendwie hat dieses Seminar Lust auf mehr gemacht – kurze und interessante Vorträge, die einen Blick über den Tellerrand ermöglichen, gerne auch noch interdisziplinärer. Mal sehen, ob wir da noch etwas weiteres auf die Reihe bekommen.
-22-
01
2010
01
2010
diretto
Als Student im Diplomstudiengang Medien-Informatik an der Uni Ulm ist es Bestandteil des Hauptstudiums, ein Anwendungsfach aus den Teilgebieten der Medien-Informatik zu belegen. Hierbei stehen unter anderem Vertiefungsrichtungen wie Computergrafik, Computer Vision, Ubiquitous Computing, Medienpädagogik, Interaktive Systeme, Interaktives Video oder Mensch-Maschine Dialogsysteme zur Auswahl.
Meine Wahl hierbei fiel auf Ubiquitous Computing – dem Trend hin zum allgegenwärtigen Computer oder dem „Internet der Dinge“. Ob als intelligenter Kühlschrank, im vernetzten Auto oder in Form von intelligenten Smartphones, der Computer und mit ihm oft auch das Internet werden immer omnipräsenter. Das Anwendungsfach besteht einerseits aus den Vorlesungen Multimediasysteme und Mobile & Ubiquitous Computing, und andererseits aus einer wissenschaftlichen Projektarbeit über zwei Semester in Kleingruppen.
Derzeit arbeiten Stefan, Cookie und ich an einer Idee von Stefan, aus der nun unser Projekt entsprungen ist: Einerseits erlaubt der technologische Fortschritt performante mobile Internetzugänge und eine fast ubiquitäre Vernetzung. Auf der anderen Seite ist qualitatives und verteiltes Dokumentieren von Ereignissen unter echtzeitnahen Bedingungen bisher nicht ohne weiteres möglich. Genau hier setzt unser Projekt, diretto (ital.: direkt, aus erster Hand) an.

Zunächst versuchen wir im Rahmen des Projekts die Vorgänge und Merkmale verteilter Berichterstattung auf eine allgemeine und offene Schnittstelle zu abstrahieren. Anschließend werden wir Referenzimplementierungen verschiedener Dienste bereitstellen, die darauf aufbauen. Das beinhaltet sehr unterschiedliche Teilaspekte, wie die Aufnahme und Erstellung von Beiträgen in verschiedenen Formen wie Bild, Text, Audio oder Video, aber auch die Verteilung, Speicherung und Aufarbeitung solcher Daten zu nützlichen Informationen.
Unser geplantes System ist an keinen festen Anwendungszweck gebunden und soll in verschiedensten Szenarien eingesetzt werden können. Ein möglicher Bereich ist der Katastrophenschutz. Hier ist es besonders wichtig, bei großflächigen Einsätzen nach Unfällen oder Naturkatastrophen zunächst Ordnung ins Chaos zu bringen. Das bedeutet vor allem Sammeln, Filtern und Bewerten eintreffender Daten und das Erstellen von Bestandsaufnahmen. Eine verteilte, mobile Anwendung hierfür ist genauso interessant wie die Möglichkeit, einen Teil der Aufgaben wie das Bewerten auch entfernt durchführen zu können. Ein anderes Szenario wäre ein Live-Bericht eines öffentlichen Großereignisses. So könnte mithilfe eines solchen Systems zum Beispiel ein Fahrradrennen übertragen werden, in dem die Beiträge verschiedener Zuschauer an verschiedenen Stellen der Strecke digital und echtzeitnah gesammelt werden und über das Internet Interessierten zugreifbar gemacht werden. Ein weiteres mögliches Einsatzszenario ist die Dokumentation von Veranstaltungen wie Demonstrationen. Nicht zuletzt die Ereignisse der Freiheit-statt-Angst Demonstration in Berlin haben gezeigt, wie wichtig eine entsprechende Dokumentation sein kann.
Während sich Stefan sich zunächst seiner ursprünglichen Idee widmen wird, mithilfe eines mobilen Computers im Rucksack Fotojournalismus auch unter widrigen Umständen durchführen zu können, wird sich Cookie anfangs um die Integration eines Smartphones kümmern. Ich werde mich hauptsächlich mit den technischen Aspekten der API und vor allem der serverseitigen Speicherung der Daten beschäftigen, was ich mir aufgrund meines Interesses an verteilten Systemen entsprechend ausgesucht habe. Da die genannten Szenarien Anforderungen an das System in Bezug auf Phasen hoher Nutzungsintensität und Verfügbarkeit stellt, muss ein solches System vor allem gut skalieren und ausfallsicher designt sein. Dann wird es für uns als nächstes darum gehen, weitere Aspekte zu implementieren und vor allem das System unter echten Bedingungen zu testen.
Aktuelle Informationen zum Projekt und dessen Verlauf gibt es übrigens auf unserer Projektseite unter diretto.org.
Meine Wahl hierbei fiel auf Ubiquitous Computing – dem Trend hin zum allgegenwärtigen Computer oder dem „Internet der Dinge“. Ob als intelligenter Kühlschrank, im vernetzten Auto oder in Form von intelligenten Smartphones, der Computer und mit ihm oft auch das Internet werden immer omnipräsenter. Das Anwendungsfach besteht einerseits aus den Vorlesungen Multimediasysteme und Mobile & Ubiquitous Computing, und andererseits aus einer wissenschaftlichen Projektarbeit über zwei Semester in Kleingruppen.
Derzeit arbeiten Stefan, Cookie und ich an einer Idee von Stefan, aus der nun unser Projekt entsprungen ist: Einerseits erlaubt der technologische Fortschritt performante mobile Internetzugänge und eine fast ubiquitäre Vernetzung. Auf der anderen Seite ist qualitatives und verteiltes Dokumentieren von Ereignissen unter echtzeitnahen Bedingungen bisher nicht ohne weiteres möglich. Genau hier setzt unser Projekt, diretto (ital.: direkt, aus erster Hand) an.

Zunächst versuchen wir im Rahmen des Projekts die Vorgänge und Merkmale verteilter Berichterstattung auf eine allgemeine und offene Schnittstelle zu abstrahieren. Anschließend werden wir Referenzimplementierungen verschiedener Dienste bereitstellen, die darauf aufbauen. Das beinhaltet sehr unterschiedliche Teilaspekte, wie die Aufnahme und Erstellung von Beiträgen in verschiedenen Formen wie Bild, Text, Audio oder Video, aber auch die Verteilung, Speicherung und Aufarbeitung solcher Daten zu nützlichen Informationen.
Unser geplantes System ist an keinen festen Anwendungszweck gebunden und soll in verschiedensten Szenarien eingesetzt werden können. Ein möglicher Bereich ist der Katastrophenschutz. Hier ist es besonders wichtig, bei großflächigen Einsätzen nach Unfällen oder Naturkatastrophen zunächst Ordnung ins Chaos zu bringen. Das bedeutet vor allem Sammeln, Filtern und Bewerten eintreffender Daten und das Erstellen von Bestandsaufnahmen. Eine verteilte, mobile Anwendung hierfür ist genauso interessant wie die Möglichkeit, einen Teil der Aufgaben wie das Bewerten auch entfernt durchführen zu können. Ein anderes Szenario wäre ein Live-Bericht eines öffentlichen Großereignisses. So könnte mithilfe eines solchen Systems zum Beispiel ein Fahrradrennen übertragen werden, in dem die Beiträge verschiedener Zuschauer an verschiedenen Stellen der Strecke digital und echtzeitnah gesammelt werden und über das Internet Interessierten zugreifbar gemacht werden. Ein weiteres mögliches Einsatzszenario ist die Dokumentation von Veranstaltungen wie Demonstrationen. Nicht zuletzt die Ereignisse der Freiheit-statt-Angst Demonstration in Berlin haben gezeigt, wie wichtig eine entsprechende Dokumentation sein kann.
Während sich Stefan sich zunächst seiner ursprünglichen Idee widmen wird, mithilfe eines mobilen Computers im Rucksack Fotojournalismus auch unter widrigen Umständen durchführen zu können, wird sich Cookie anfangs um die Integration eines Smartphones kümmern. Ich werde mich hauptsächlich mit den technischen Aspekten der API und vor allem der serverseitigen Speicherung der Daten beschäftigen, was ich mir aufgrund meines Interesses an verteilten Systemen entsprechend ausgesucht habe. Da die genannten Szenarien Anforderungen an das System in Bezug auf Phasen hoher Nutzungsintensität und Verfügbarkeit stellt, muss ein solches System vor allem gut skalieren und ausfallsicher designt sein. Dann wird es für uns als nächstes darum gehen, weitere Aspekte zu implementieren und vor allem das System unter echten Bedingungen zu testen.
Aktuelle Informationen zum Projekt und dessen Verlauf gibt es übrigens auf unserer Projektseite unter diretto.org.
-01-
01
2010
01
2010
SSH-Tunnel und SOCKS Proxy Forwarding als Alternative zum Surfen über (Web)VPN
An meiner Uni sind einige Webressourcen nur aus dem Intranet zugreifbar, das heißt man braucht als Client eine IP aus dem Uni-Netz. Um von extern darauf zuzugreifen, ist die Einwahl über ein VPN notwendig. Neben der klassischen "schwergewichtigen" Einwahl über einen VPN-Client gibt es noch die Möglichkeit, einen Web-VPN zu nutzen. Hier werden nach der Authentifizierung alle HTTP-Anfragen über eine spezielle Seite der Rechenzentrums getunnelt. Leider lässt nicht nur die Verfügbarkeit des Dienstes manchmal zu wünschen übrig, sondern auch die verfügbaren Bandbreiten machen es uninteressant für den Download größerer Paper.
Als Alternative hierzu ist mir die Möglichkeit begegnet, mithilfe des Application Level Port Forwardings von SSH Zugriffe zu tunneln. Durch den Flag "-D portnummer" erzeugt der SSH-Client beim Verbinden einen lokalen SOCKS-Proxy auf diesem Port, der über den SSH-Tunnel Requests weiterleitet. Endpunkt stellt der SSH-Server da. Mithilfe zusätzlicher Flags lässt sich außerdem ein Timeout unterdrücken.
Im Falle der Uni Ulm und einer Einwahl auf den Server des Rechenzentrums (KIZ) sieht der Aufruf so aus:
Nach erfolgreichem Verbindungsaufbau steht dann lokal unter dem Port 8800 der SOCKS-Proxy zur Verfügung und kann im Browser eingetragen werden. Für eine dynamische Nutzung bieten sich unter Firefox Plugins wie FoxyProxy an. Hier lassen sich Regelsätze definieren, wann dieser Proxy benutzt werden soll, zum Beispiel für alle Uni-Seiten.
Als Alternative hierzu ist mir die Möglichkeit begegnet, mithilfe des Application Level Port Forwardings von SSH Zugriffe zu tunneln. Durch den Flag "-D portnummer" erzeugt der SSH-Client beim Verbinden einen lokalen SOCKS-Proxy auf diesem Port, der über den SSH-Tunnel Requests weiterleitet. Endpunkt stellt der SSH-Server da. Mithilfe zusätzlicher Flags lässt sich außerdem ein Timeout unterdrücken.
Im Falle der Uni Ulm und einer Einwahl auf den Server des Rechenzentrums (KIZ) sieht der Aufruf so aus:
ssh -D 8800 -o ServerAliveInterval=60 s_login@login.rz.uni-ulm.de
Nach erfolgreichem Verbindungsaufbau steht dann lokal unter dem Port 8800 der SOCKS-Proxy zur Verfügung und kann im Browser eingetragen werden. Für eine dynamische Nutzung bieten sich unter Firefox Plugins wie FoxyProxy an. Hier lassen sich Regelsätze definieren, wann dieser Proxy benutzt werden soll, zum Beispiel für alle Uni-Seiten.
-01-
12
2009
12
2009
Twitterbot in Perl
Perl war schon immer eine polarisierende Sprache. Die einen lieben sie, die anderen hassen sie. Die einen sind Fan der flexiblen Syntax, die anderen verfluchen die mangelnde Lesbarkeit. Sätze wie "Perl: Write once – never understand again" oder "Perl is the only language that looks the same before and after RSA encryption." zielen genau hierauf ab.
Dennoch ist Perl eine beliebte Skriptsprache, insbesondere im Unix/Linux-Bereich (dank erkennbarer Verwandschaft zu Unix-Tools/Sprachen wie C, awk oder Shell-Builtins) zur Systemadministration oder allgemein zur schnellen Problemlösung. Aber auch im Web und in vielen speziellen Einsatzgebieten wie zum Beispiel der (DNA-)Sequenzanalyse ist Perl weiterhin eine bedeutende Sprache. Aufgrund ihrer Mächtigkeit gilt Perl mancherorts als "Swiss Army Chainsaw of Programming Languages".
Natürlich sind mit Ruby, Python und diversen Java-Derivaten viele neue Skriptsprachen auf den Markt gekommen, und Perl 6 lässt (leider) weiterhin auf sich warten.
Trotzdem bin ich weiterhin ein großer Freund dieser Sprache. Allerdings muss ich zugeben, dass ich etwas voreingenommen bin – Perl war mit die erste "richtige" Programmiersprache, mit der ich in Kontakt kam (dann kam die damals weniger richtige Sprache PHP).
Die Vorlesung Skriptsprachen und Anwendungen bei den Mathematikern hat dafür gesorgt, mein Interesse für Perl wieder etwas zu beleben und ein kleines Projekt in Angriff zu nehmen. Als Resultat entstand ein kleiner Bot, der täglich den Mensaplan der Uni Ulm abgrast und die Ergebnisse bei Twitter veröffentlicht. So besteht nicht nur die Möglichkeit, durch das Folgen des Bots bei Twitter täglich über die Tageskarte informiert zu werden, sondern es entsteht quasi als "Abfallprodukt" ein bisher nicht existenter RSS-Feed.
Das kleine Projekt zeigt sehr schön, wie man mithilfe der mächtigen CPAN-Module in Perl alltägliche Aufgabe sehr effizient und straight forward lösen kann. Zum Parsen der HTML-Seite, die als Quelle benutzt wird, wird das Paket XML::LibXML benötigt. Hiermit lassen sich per XPath direkt die interessanten Inhalte extrahieren. Die leichtgewichtige Twitter-Library Net::Twitter::Lite sorgt zudem für eine einfach Twitter-Anbindung:
Zugehöriger Crontab-Eintrag, wobei 1-5 für Werktage steht und 0 10 für 10:00 Uhr:
Hiermit wird das Skript regelmäßig zu den gewünschten Zeiten ausgeführt.
Dennoch ist Perl eine beliebte Skriptsprache, insbesondere im Unix/Linux-Bereich (dank erkennbarer Verwandschaft zu Unix-Tools/Sprachen wie C, awk oder Shell-Builtins) zur Systemadministration oder allgemein zur schnellen Problemlösung. Aber auch im Web und in vielen speziellen Einsatzgebieten wie zum Beispiel der (DNA-)Sequenzanalyse ist Perl weiterhin eine bedeutende Sprache. Aufgrund ihrer Mächtigkeit gilt Perl mancherorts als "Swiss Army Chainsaw of Programming Languages".
Natürlich sind mit Ruby, Python und diversen Java-Derivaten viele neue Skriptsprachen auf den Markt gekommen, und Perl 6 lässt (leider) weiterhin auf sich warten.
Trotzdem bin ich weiterhin ein großer Freund dieser Sprache. Allerdings muss ich zugeben, dass ich etwas voreingenommen bin – Perl war mit die erste "richtige" Programmiersprache, mit der ich in Kontakt kam (dann kam die damals weniger richtige Sprache PHP).
Die Vorlesung Skriptsprachen und Anwendungen bei den Mathematikern hat dafür gesorgt, mein Interesse für Perl wieder etwas zu beleben und ein kleines Projekt in Angriff zu nehmen. Als Resultat entstand ein kleiner Bot, der täglich den Mensaplan der Uni Ulm abgrast und die Ergebnisse bei Twitter veröffentlicht. So besteht nicht nur die Möglichkeit, durch das Folgen des Bots bei Twitter täglich über die Tageskarte informiert zu werden, sondern es entsteht quasi als "Abfallprodukt" ein bisher nicht existenter RSS-Feed.
Das kleine Projekt zeigt sehr schön, wie man mithilfe der mächtigen CPAN-Module in Perl alltägliche Aufgabe sehr effizient und straight forward lösen kann. Zum Parsen der HTML-Seite, die als Quelle benutzt wird, wird das Paket XML::LibXML benötigt. Hiermit lassen sich per XPath direkt die interessanten Inhalte extrahieren. Die leichtgewichtige Twitter-Library Net::Twitter::Lite sorgt zudem für eine einfach Twitter-Anbindung:
#!/usr/bin/perl
use strict;
use DateTime;
use Net::Twitter::Lite;
use XML::LibXML;
#Get date
my $today = DateTime->today();
die "No working day!\n" if($today->day_of_week()>5);
#Fetch url and load document as DOM tree
my $url = sprintf("http://www.uni-ulm.de/mensaplan/%04d-%02d-%02d.html",$today->year, $today->month,$today->day);
my $doc = XML::LibXML->new()->parse_html_file($url) or die "Error while fetching/parsing document!\n";
#Gather all list entries and extract mealtype and actual meal
my @meals = $doc->findnodes('//div[@class="meal"]');
my @tweets;
foreach (@meals)
{
my ($mealtype, $meal) = ($_->find('./div[@class="mealtype"]'),$_->find('./div[@class="item"]'));
$meal = (length($meal)+length($mealtype) > 138 ? substr($meal,0,136-length($mealtype)).".." : $meal);
push(@tweets, $mealtype.": ".$meal);
}
die "Error while fetching meals!\n" if(length(@tweets) == 0);
#Login to twitter and post entries in reverse order
my $nt = Net::Twitter::Lite->new(username => 'username', password => '...', clientname => "MensaBot",source => "web") or die "Error during twitter login procedure!\n";
$nt->update("="x 40);
foreach (reverse(@tweets))
{
my $result = $nt->update($_);
}
$nt->update("Mensaplan Uni Ulm am ".$today->day.".".$today->month.".".$today->year.": #uni #ulm #uulm #mensa #mensaplan");
exit;
Zugehöriger Crontab-Eintrag, wobei 1-5 für Werktage steht und 0 10 für 10:00 Uhr:
0 10 * * 1-5 /path/to/script.pl
Hiermit wird das Skript regelmäßig zu den gewünschten Zeiten ausgeführt.
-29-
11
2009
11
2009
Semantic Mashup
Aus meiner Seminararbeit zum Thema Semantic Mashups aus dem vergangenen Sommersemester ist nun ein kleiner Technical Report geworden. Im Paper werden Mashups – also Anwendungen, die Informationen verschiedener Webseiten vermischen – analysiert und verschiedene technische Grundlagen, die hierfür nötig sind erläutert. Desweiteren werden existierende Mashup-Engines und Architekturen vorgestellt, sowie Herausforderungen und Probleme beim Erstellen von Mashups aufgezeigt.

Abstract:
Benjamin Erb, Jan-Patrick Elsholz, Franz J. Hauck: Semantic Mashup: Mashing up Information in the Todays World Wide Web – An Overview. VS-R08-2009, 2009. [pdf] [bib]

Abstract:
Nowadays, the World Wide Web has become the most important source of information for many people and is nearly indispensable. However, the information is spread on billions of web pages. So there is an increasing demand to combine the data of different web pages for an acquisition of information. Mashup applications assist the user at this task. This paper will give an overview about how to extract structured and semantical data out of web pages using different technologies and also shows, what types of mashup applications already exist. Furthermore we take a look at mashup architectures and engines and unresolved issues for mashup applications.
Benjamin Erb, Jan-Patrick Elsholz, Franz J. Hauck: Semantic Mashup: Mashing up Information in the Todays World Wide Web – An Overview. VS-R08-2009, 2009. [pdf] [bib]
Geschrieben von Benjamin Erb
am
29.11.2009 in Programmierung, Studium, Web Kommentare: (0)
Trackbacks: (0)
-29-
08
2009
08
2009
Word-Cloud – Seminararbeit "Semantic Mashup"
Hier eine Word-Cloud (erzeugt mit Wordle) zu einer Seminararbeit von mir aus dem vergangenen Semester:


-01-
08
2009
08
2009
Represent your University
-18-
04
2009
04
2009
Skript: Java Grundlagen
Für die Wahl eines Informatikstudiums sollte es völlig irrelevant sein, ob man bereits erste Programmiererfahrungen besitzt oder noch nie eine Zeile Code geschrieben hat. Analytisches und logisches Denkvermögen sowie fehlende Berührungsängste mit Mathematik sind um einiges wichtiger als Wissen zu aktuellen Programmiersprachen, denn Programmierung ist selbst eher ein Werkzeug der Informatik, als zentraler Lehrinhalt eines universitären Studiums. Genauso wenig ist ein sonderlich profundes Vorwissen über Computer notwendig, wie bereits ein bekannter niederländischer Informatiker sagte:
Trotzdem muss man natürlich lernen, seine Werkzeuge beherrschen zu können. Und leider haben erfahrungsgemäß Studierende im ersten Semester ohne Programmiererfahrungen einen zusätzlichen Aufwand dadurch, parallel zu den Vorlesungen, die eben keinen Programmierkurs darstellen, sondern eher abstrakte Konzepte vermitteln, auch noch das ganz praktische und angewandte Programmieren zu erlernen.
Aus diesem Grund wurde an der Uni Ulm vor einem Jahr auf Initiative von uns, der Fachschaft Informatik, ein aus Studiengebühren finanzierter Kurs eingeführt, der in die Java-Programmierung einführt und wirklich im wahrsten Sinne des Wortes bei null anfängt. Bei diesem freiwilligen Kurs werden Studierende intensiv bei ihren ersten Programmierschritten begleitet, was vor allem durch ein hohes Betreuungsverhältnis mit vielen Tutoren möglich ist. Neben Übungsblättern entstand nun bei der zweiten Durchführung der sogenannten „Programmierstarthilfe“ auch ein Skript als Einführung in die Java-Programmierung. Da ich als Tutor diese Veranstaltung in ihrem ersten Jahr mitbetreut habe, war ich auch an der Entstehung dieses Skripts beteilgt, an dem ansonsten vor allem Guido und Marcus gearbeitet haben, aber auch die übrige Team. Wir haben uns dazu entschlossen, das entstandene Werk unter einer Creative Commons-Lizenz der Öffentlichkeit zugänglich zu machen. Es entstand zwar in oben genanntem Kontext, kann aber auch völlig losgelöst zum Selbststudium gelesen werden. Es richtet sich weder ausschließlich an InformatikerInnen, noch sind irgendwelche Vorkenntnisse notwendig. Somit sollte es mit diesem Skript für quasi jeden möglich sein, erste Erfahrungen mit der Programmierung und dem Programmieren in Java zu machen
Auf 90 Seiten werden unter anderem grundlegende Konzepte wie Datentypen, Kontrollstrukturen, Schleifen, Arrays, Methoden, Rekursion oder einfache Objektorientierung erklärt. Ein weiteres Kapitel zeigt außerdem auf, in welche Richtungen es noch weitergeht. Hier werden Themen wie Vererbung, Interfaces, Autoboxing, Enum-Typen, Generics, Collections, Multithreading und GUI-Programmierung angerissen. Dieses weiterführende Kapitel sowie die Kapiel über abstrakte Datenstrukturen und über API-Dokumentation stammen übrigens von mir.
Download: Skript: Java Grundlagen - Programmierstarthilfe (PDF)
Das Skript steht unter der Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Lizenz und kann in der Version vom April 2009 heruntergeladen werden.
„Computer science is no more about computers than astronomy is about telescopes."
Edsger Dijkstra
Trotzdem muss man natürlich lernen, seine Werkzeuge beherrschen zu können. Und leider haben erfahrungsgemäß Studierende im ersten Semester ohne Programmiererfahrungen einen zusätzlichen Aufwand dadurch, parallel zu den Vorlesungen, die eben keinen Programmierkurs darstellen, sondern eher abstrakte Konzepte vermitteln, auch noch das ganz praktische und angewandte Programmieren zu erlernen.
Aus diesem Grund wurde an der Uni Ulm vor einem Jahr auf Initiative von uns, der Fachschaft Informatik, ein aus Studiengebühren finanzierter Kurs eingeführt, der in die Java-Programmierung einführt und wirklich im wahrsten Sinne des Wortes bei null anfängt. Bei diesem freiwilligen Kurs werden Studierende intensiv bei ihren ersten Programmierschritten begleitet, was vor allem durch ein hohes Betreuungsverhältnis mit vielen Tutoren möglich ist. Neben Übungsblättern entstand nun bei der zweiten Durchführung der sogenannten „Programmierstarthilfe“ auch ein Skript als Einführung in die Java-Programmierung. Da ich als Tutor diese Veranstaltung in ihrem ersten Jahr mitbetreut habe, war ich auch an der Entstehung dieses Skripts beteilgt, an dem ansonsten vor allem Guido und Marcus gearbeitet haben, aber auch die übrige Team. Wir haben uns dazu entschlossen, das entstandene Werk unter einer Creative Commons-Lizenz der Öffentlichkeit zugänglich zu machen. Es entstand zwar in oben genanntem Kontext, kann aber auch völlig losgelöst zum Selbststudium gelesen werden. Es richtet sich weder ausschließlich an InformatikerInnen, noch sind irgendwelche Vorkenntnisse notwendig. Somit sollte es mit diesem Skript für quasi jeden möglich sein, erste Erfahrungen mit der Programmierung und dem Programmieren in Java zu machen
Auf 90 Seiten werden unter anderem grundlegende Konzepte wie Datentypen, Kontrollstrukturen, Schleifen, Arrays, Methoden, Rekursion oder einfache Objektorientierung erklärt. Ein weiteres Kapitel zeigt außerdem auf, in welche Richtungen es noch weitergeht. Hier werden Themen wie Vererbung, Interfaces, Autoboxing, Enum-Typen, Generics, Collections, Multithreading und GUI-Programmierung angerissen. Dieses weiterführende Kapitel sowie die Kapiel über abstrakte Datenstrukturen und über API-Dokumentation stammen übrigens von mir.
Download: Skript: Java Grundlagen - Programmierstarthilfe (PDF)
Das Skript steht unter der Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Lizenz und kann in der Version vom April 2009 heruntergeladen werden.
-18-
04
2009
04
2009
Halbjahreszeugnis
Geschrieben von Benjamin Erb
am
18.04.2009 in Studium Kommentar: (1)
Trackbacks: (0)
Tags für diesen Artikel: studium
-21-
02
2009
02
2009
Studiengang Psychologie in Ulm schon 2009
Wie aus den offiziellen Stellenbeschreibungen hervorgeht, die vor wenigen Tagen veröffentlich wurden, wird der Bachelor-Studiengang Psychologie in Ulm mit Schwerpunkt im Bereich der Kognitionswissenschaften schon bereits zum kommenden Wintersemester 2009/2010 anlaufen, und nicht wie bisher beschrieben erst 2010.
Die Stellenbeschreibungen der ersten beiden Professuren, die im Übrigen beide mit Leitungsfunktionen verbunden sind, lautet wie folgt:
Es bleibt also spannend, wie sich die Psychologen samt erstem Jahrgang an Studierenden in die Fakultät für Ingenieurwissenschaften und Informatik noch dieses Jahr eingliedern werden.
Die Stellenbeschreibungen der ersten beiden Professuren, die im Übrigen beide mit Leitungsfunktionen verbunden sind, lautet wie folgt:
W3-Professur für Allgemeine Psychologie
Der Stelleninhaber/die Stelleninhaberin soll in der Lehre das Fach Allgemeine Psychologie vertreten sowie Aufgaben in der Methodenlehre und in einem weiteren Fach übernehmen.
[...]
W3-Professur für Sozialpsychologie
Der Stelleninhaber/die Stelleninhaberin soll in der Lehre das Fach Sozialpsychologie und ein weiteres Grundlagenfach oder ein Anwendungsfach (bspw. Arbeits-, Betriebs- und Organisationspsychologie oder Klinische Psychologie) vertreten sowie Aufgaben in der Methodenlehre übernehmen.
[...]
Es bleibt also spannend, wie sich die Psychologen samt erstem Jahrgang an Studierenden in die Fakultät für Ingenieurwissenschaften und Informatik noch dieses Jahr eingliedern werden.
« vorherige Seite
(Seite 1 von 5, insgesamt 42 Einträge)
nächste Seite »
Benjamin Erb ist 24 Jahre alt und studiert an der 



