Blog


Binäre Klassifikation

Wenn es um Klassifikation geht, dann sind binäre Klassifikationen die am weit verbreitetsten. Sie unterscheiden nur zwei Zustände. Entweder trifft eine Eigenschaft zu oder sie tut es nicht. Das klingt zwar sehr simpel, kann jedoch beliebig komplex werden. Beispielsweise sind Suchergebnisse das Resultat einer binären Klassifikation. Zu einem bestimmten Suchwort […]


Quantencomputer für Angeber

In ein paar Jahren dürfte es soweit sein, dass die ersten Quantencomputer einsatzbereit sind. Während aktuell hauptsächlich Physiker mit der Quantentechnologie arbeiten werden dann auch erste Informatiker anfangen Algorithmen für die neue Technologie zu schreiben. Aktuelle Programmiersprachen wie QASM sind sehr schlicht aufgebaut und erlauben nur rudimentäre Operationen. Dies ist […]


Review: Warren Buffett – Das Leben ist wie ein Schneeball

Warren Buffett ist einer der großen Namen der internationalen Finanzindustrie und zählt zu den reichsten Menschen der Welt. Seit seiner Kindheit investiert er in Aktien und hat dadurch ein immenses Wissen auf diesem Gebiet aufgebaut. Seine Strategien und Börsenweisheiten sind unter Investoren weit verbreitet und werden viel diskutiert. Sein Privatleben […]


SOLID-Prinzipien

Objektorientierte Programmiersprachen dominieren seit langem den Markt. Ob Java, C#, Python und sogar JavaScript. Unter den beliebtesten Programmiersprachen lässt sich keine finden, die nicht zumindest mit Objekten umgehen kann. Ein Grund für die Popularität der Objektorientierung ist die einfache Erlernbarkeit und Verständlichkeit. Nichtsdestotrotz kann man bei der Entwicklung mit objektorientierten […]


Automatisches Differenzieren

Durch das automatische Differenzieren (autoDiff) ist es Programmen möglich mathematische Funktionen abzuleiten. Je nach Anwendungsfall kann dabei vorwärts oder rückwärts differenziert werden. Ich erkläre anhand eines Beispiels beide Vorgehensweisen und gehe auf die Vor- und Nachteile ein. (1)   Die obige Formel soll durch einen Algorithmus differenziert werden. Für ein […]


Java Virtual Machine

Java-Programme werden im Gegensatz zu nativen Programmen nicht direkt durch das Betriebssystem ausgeführt, sondern von der Java Virtual Machine (JVM). Die JVM kümmert sich um die korrekte Ausführung des Programms auf dem jeweiligen Betriebssystem. Der Programmierer muss also nicht auf spezifische Eigenschaften eines Betriebssystems Rücksicht nehmen sondern kann sich darauf […]


Tensorflow GPU installation unter Windows 10

Tensorflow ist das mit Abstand beliebteste Framework um neuronale Netze zu entwickeln. Es besitzt eine starke Community und wird vom Softwaregiganten Google gestützt.  Es ist daher nicht verwunderlich, dass Cloud-Dienste wie AWS oder Google Cloud Platform Tensorflow-Umgebungen anbieten. Wer nicht auf die Cloud-Dienste angewiesen sein und Tensorflow dennoch testen möchte, […]


Sortierverfahren: Quicksort

Quicksort ist ein Sortierverfahren, welches wie Mergesort nach dem teile und hersche Prinzip arbeitet. Quicksort arbeitet inplace ist jedoch nicht stabil. Quicksort wurde 1961 von Tony Hoare publiziert und gewann schnell an Beliebtheit, da es weitaus schneller sortierte als Heap- oder Mergesort. Angeberwissen: QuicksortTony Hoare entwickelte Quicksort als er als […]


Sortierverfahren: Mergesort

Mergesort ist ein stabiles Sortierverfahren, welches nach dem Teile-und-herrsche-Verfahren (divide and conquer) arbeitet. Ein zu sortierendes Feld wird dabei in zwei gleich große Felder geteilt. Beide Felder werden im Anschluss wieder rekursiv in den Algorithmus gesteckt. Dies geschieht so lange, bis alle Felder in ihre einzelnen Elemente zerteilt wurden. Beide […]


Sortierverfahren: Bubblesort

Bubblesort ist das wohl am einfachsten zu implementierende Sortierverfahren. Es ist jedoch zu ineffektiv um es praktisch einzusetzen und hat daher nur einen geringen Stellenwert. Der Bubblesort-Algorithmus geht Element für Element einzeln durch und prüft ob das aktuelle Element kleiner ist als dessen Vorgänger. Ist dies der Fall, dann werden […]