Posts Tagged ‘Informatik’
WPF: Web Data Mining – Community Discovery

Im Rahmen meines Wahlpflichtfaches Web Data Mining an der FH Köln, ist nun auch meine Ausarbeitung zu dem Thema Community Discovery online. Wer sich diese gerne einmal anschauen möchte, hier der Link dazu:

-> http://wikis.gm.fh-koeln.de/wiki_ir/Category/CommunityDiscovery

Oder alternativ auf Anfrage auch als PDF erhältlich. ;)

Rückblick 2. Semester

Die Semesterferien stehen kurz vor der Tür. Nächste Woche steht die Klausurphase noch an und dann beginnen endlich die Ferien. Daher ist es Zeit einen Rückblick auf das 2. Semester zu werfen:

Algorithmen und Programmierung 2:

AP2 war im 2. Semester das interessanteste Fach überhaupt, vermutlich lag es auch an unserem Dozenten, der sich nicht nur während der Vorlesung alle Mühe gab, sondern dazu eine sehr gute Betreuung während den Praktika leistete.
Hauptsächlich drehte sich in AP2 alles um Java und die objektorientierte Programmierung. Dabei ging es um polymorphe Algorithmen und Datenstrukturen, sowie um abstrakte Klassen und verkettete Listen. Hinzu kamen die Themen rund um die Iteratoren, Stacks und Queues. Das Ganze wurde zum Semesterende mit dem Themen Bereich Such- und Sortieralgorithmen abgerundet und beendet. Hier lernte man neben einfachen Suchen, auch die Implementierung der Breiten-, Tiefen-, und Binärsuche kennen. Komplexer wurde es dann bei der Implementierung von den Suchalgorithmen. Hier kannte man bisher hauptsächlich die Bubblesort-Methode, welche mit einer Laufzeit von O(n²) nicht wirklich schnell ist im Vergleich zu Quick- und Mergesort. Die beiden zuletzt genannten Suchalgorithmen sind in ihrer Ausführung sehr effizient und erreichen fast immer eine Laufzeit von O(n*log n).

Paradigmen der Programmierung:

In PP hatten wir denselben Dozenten wie in AP2. Daher braucht man an dieser Stelle nicht mehr viel zur Durchführung der Vorlesung zu sagen. ;-)
Die PP Vorlesung war durch die Einführung in funktionale sowie logische Programmiersprachen geprägt. Hierfür wurden Scheme und Prolog verwendet. Hinzu kamen noch die Themen Prädikatenlogik und die Einführung in generische Datentypen. Zum Abschluss lernten wir die Implementierung des Backtracking-Verfahrens in Prolog und Java auf Basis des Damenproblems kennen.

BWL 2:

Auch hier hatten wir einen guten Dozenten, der es immer wieder mit Witzen und Anekdoten schaffte die Aufmerksamkeit der  Studenten bei dem trockenen Thema Rechnungswesen zu wecken. Die folgende kurze Auflistung soll einen Überblick über die behandelten Themen geben:

  • Ökonomische Entscheidungen
  • Wertschöpfung
  • Bilanz – Eigenkapital
  • Jahresabschluss – Bewertungen
  • Kalkulatorische Kosten
  • Kostenarten

Mathematik 2:

Mathematik 2 beinhaltete sehr interessante Themenblöcke für das 2. Semester. Besonders gefallen haben mir „Funktionen mehrerer Verändlicher“ mit den untergeordneten Themen: Totales Differential, LS-Methode und Lagrange. Sehr großes Interesse hat der Themenblock Graphentheorie bei mir geweckt. Einige der in diesem Block behandelten Themen waren der Euler-Zug,  der Shannon-Fano & Huffman-Code,  der Algorithmus von Kruskal und der Algorithmus von Dijkstra. Leider wurde während des Semesters mit Beginn des Themas Statistik der Dozent gewechselt, da sich unser bisheriger Dozent stärker der Forschung widmen wollte. In diesen Sinne kam es wie es kommen musste und was ich schon befürchtet hatte, die Qualität der Vorlesung nahm deutlich ab und die recht interessanten Themen der Statistik, der Komplexen Zahlen sowie der Differentialgleichung wurden mit, so schien es mir zu mindestens, weniger Einsatz gelehrt. Daher saß ich in den folgenden Vorlesungen auch weniger interessiert im Hörsaal.

Theoretische Informatik:

Nachdem das 1. Semester noch relativ uninteressant für mich war, da ich die Themen schon kannte, zog der Schwierigkeitsgrad im 2. Semester doch schon ordentlich an. Zu den großen Themenblöcken zählten Reguläre Sprachen, kontextfreie Sprachen (Stapel-Kellerautomaten, Parser, nicht deterministische und deterministische Kellerautomaten) und kontextsensitive Sprachen (Typ-1 und Typ-0 Grammatiken, Turingautomaten). Leider konnte der Dozent auch hier nicht die Themen interessant genug vermitteln.

Shannon-Fano in Maple

Hier folgt nun meine Implementierung des Shannon-Fano Algorithmus für Maple, die wir bezüglich unseres Mathematik-Praktikums “Tag7″ programmieren sollten!

Aufgabe 1 (Shannon-Fano)
Implementieren Sie einen Algorithmus zur Shannon-Fano Kodierung und berechnen Sie eine Kodierung für das Beispiel 21.1.

Beispiel 21.1: [[a,41],[b,33],[c,23],[d,25],[e,100]]

Prozedur:

restart:
with(GraphTheory):
with(Logic):
with(networks):

##Aus dem Mapleskript zum Sortieren von Listen!
comp2 :=proc(a::list,b::list)
if a[2] < b[2] then true else false fi;
end:

##Der Graph muss vor der Prozedur initialisiert werden!
global G2:
G2:=Digraph():

########################################################################

##Prozedur Shannon-Fano!
ShaFa:=proc(L::listlist)
global prev, ECKE, KANTE, G2;
local i,j,k,l,v,S,Sl,Sr,hauf1,hauf2,hauf3,hauf4,hauf5;

##Sortierung der Liste!
S := sort( L , comp2);

##Lokale Variablen initialisieren!
hauf1:=0;
hauf2:=0;
hauf3:=0;
hauf4:=0;
hauf5:=0;
Sl:={};
Sr:={};
ECKE:={};
KANTE:={};

##Gesamthäufigkeit von S!
i:=1;
while(i<=nops(S)) do
 hauf1:=hauf1+S[i][2];
 i:=i+1;
od:

##Festlegen einer Grenze für die Häufigkeit, damit Sl und Sr ungefähr die gleiche Häufigkeit haben!
hauf3:=((hauf1/2))+(S[nops(S)][2]/nops(S));

##Algorithmus der S in Sl und Sr überführt!
j:=1;
while(j<=nops(S)) do
 hauf2:=hauf2+S[j][2];
 if(hauf2<=hauf3) then
  Sl:=[op(Sl),S[j]];
 fi;
 if(hauf2>hauf3)then
  Sr:=[op(Sr),S[j]];
 fi;
 j:=j+1;
od:
##Kontrolle ob auch alles funktioniert!
print(S);
print(“linkerTeilbaum:”, Sl);
print(“rechterTeilbaum:”, Sr);

##Gesamthäufigkeit von Sl! Wird beim Erstellen der Ecken und Kanten gebraucht!
k:=1;
while(k<=nops(Sl)) do
 hauf4:=hauf4+Sl[k][2];
 k:=k+1;
od:

##Gesamthäufigkeit von Sr! Wird beim Erstellen der Ecken und Kanten gebraucht!
l:=1;
while(l<=nops(Sr)) do
 hauf5:=hauf5+Sr[l][2];
 l:=l+1;
od:

##Welche Ecken sind in G2 vorhanden!
v:=Vertices(G2);

##Wenn nicht in G2, dann initialisiere die Wurzel!
if not member(hauf1, v) then
 ECKE:=[op(ECKE),hauf1];
fi;

##rechter Teilbaum: Fügt entweder eine endgültige Ecke oder eine weitere Ecke hinzu, an der weitere Ecken folgen können!
if(nops(Sr)=1) then
 ECKE:=[op(ECKE),Sr[1][1]];
 KANTE:=[op(KANTE),[hauf1,Sr[1][1]]];
else
 ECKE:=[op(ECKE), hauf5];
 KANTE:=[op(KANTE),[hauf1,hauf5]];
fi;

##linker Teilbaum: Fügt entweder eine endgültige Ecke oder eine weitere Ecke hinzu, an der weitere Ecken folgen können!
if(nops(Sl)=1) then
 ECKE:=[op(ECKE),Sl[1][1]];
 KANTE:=[op(KANTE),[hauf1,Sl[1][1]]];
else
 ECKE:=[op(ECKE),hauf4];
 KANTE:=[op(KANTE),[hauf1,hauf4]];
fi;

##Kontrolle ob auch alles funktioniert!
print(“Ecken:”,ECKE);
print(“Kanten:”,KANTE);

##Die Ecken und Kanten werden dem Graphen G2 hinzugefügt!
G2:=AddVertex(G2,ECKE);
G2:=AddArc(G2, KANTE);

##rekursiver Aufruf bis Sl und Sr =1 sind!
if(nops(Sr)>1) then ShaFa(Sr); fi;
if(nops(Sl)>1) then ShaFa(Sl); fi;

##Rückgabe des Graphen G2 zum Zeichnen!
return G2;

end:

########################################################################

Aufruf:

S:=ShaFa([[a,41],[b,33],[c,23],[d,25],[e,100]]);

Graphzeichnen:

DrawGraph(S);

Erstes Gummersbacher Informatikforum

Morgen Nachmittag findet das erste Gummersbacher Informatikforum unter dem Motto “Informatik der Zukunft – Zukunft der Informatik” statt. Wie letzten Freitag werde ich mir dieses Event nicht entgehen lassen! Weitere Informationen sind unter http://www.f10.fh-koeln.de/…/flyer.pdf erhältlich!

Steve Ballmer live in Köln

Im Rahmen der Veranstaltungsreihe “innovation live” des Ministerium für Innovation, Wissenschaft, Forschung und Technologie, die gestern ihren Auftakt in Köln hatte, ergab sich die Möglichkeit Steve Ballmer, CEO von Microsoft, live zu sehen. Ich kann nur sagen wer ihn noch nicht live gesehen hat, sollte jede Gelegenheit nutzen, um dies nachzuholen. Es lohnt sich!

-> http://www.heise.de/newsticker/Steve-Ballmer-Charme-Attacke-in-Koeln–/meldung/136758
-> http://www.ksta.de/html/artikel/1238966872731.shtml

2404200907824042009077

 

Am gestrigen Abend stand noch das Communitytreffen Ruhrgebiet des MCSEboard.de an. Als Vortrag für den Abend hatten zwei Mitglieder den ThinClient der Firma Axel vorgestellt. Ich bin schwer beeindruckt was dieser kleine Kasten alles kann, insbesondere im Zusammenhang mit der damit ausgelieferten Verwaltungssoftware! Mal abgesehen davon das ein fertigkonfigurierter Terminalserver vorhanden sein muss, ist die Konfiguration dieses ThinClients innerhalb von weniger als 5 Minuten erledigt! Topsache!

\\ice:2009 in Lingen

Am 22.08.2009 findet wieder die ice in Lingen statt! Weitere Infos unter www.ice-lingen.de oder blog.ice-lingen.de.

ice2009

Microsoft Surface – CeBIT 09

Wer die CeBIT dieses Jahr besucht kann auf dem Microsoft Stand in Halle 4 an mehreren Tischen auf dem Stand Microsofts Surface antesten. Sehr interessant dabei ist, dass die Software Virtual Earth von Microsoft keinerlei Anpassungen braucht, um mit dieser Technologie zu funktionieren. Das Zoomen funktioniert hier bei wie bei Apples iPhone!
Nach weiteren Informationen ist Microsofts Surface ab sofort für ca. 5000€ erhältlich. Allerdings soll Surface erst einmal nur Firmenkunden vorbehalten sein, bevor der Endverbrauchermarkt erschlossen wird. Es ist auf jedenfall eine sehr interessante Technik, die man unbedingt angetestet haben sollte!

ms_surface_02ms_surface_01

Weitere Informationen unter:
-> http://www.zdnet.de/news/wirtschaft_cebit_cebit_microsoft_surface_ab_sofort_in_deutschland_erhaeltlich_story-39002393-41001129-1.htm