Posts

All posts on this blog in chronological order with newest first.

CUDA 8.0 on Mac OS X 10.12 gave me the following error The version ('80000') of the host compiler ('Apple clang') is not supported

So there is a mismatch between the new Xcode 8.1 and the new CUDA 8.0.

Today I released an updated version of the library of geometric algorithms.

Die Folien für den Kurzvortrag beim Kultur-Hackathons Coding da Vinci Nord 2016 sind jetzt online.

Im Rahmen des Kultur-Hackathons Coding da Vinci Nord 2016 habe ich eine Web-Applikation für die Analyse und Visualisierung der Verbreitung von Familiennamen erstellt.

Hierzu habe ich u. a. Node.js, Express, Mocha, AngularJS, D3.js, Java 8, Neo4J, MariaDB und docker verwendet.

In CUDA 8.0 C++ 11 lambdas can be used on the device. See the following code.

Im Roman “The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win” wird der Protagonist Bill gegen seinen Willen befördert und muss in seinem Unternehmen ab sofort den IT-Betrieb übernehmen, verantworten und am Laufen halten. Hierbei stößt er natürlich auf eine ganze Menge Probleme.

Das Spock-Framework ist momentan meiner Meinung nach das komfortabelste Test-Framework für die Java-Plattform. Da es auf der Sprache Groovy aufbaut ist es sehr ausdruckstark.

In “Agile Estimating and Planning” erklärt Mike Cohn auf hervorragende Weise die Probleme bei der Projektplanung und Aufwandsschätzung und präsentiert die “agile Schätzung und Planung” als Lösungsansatz.

Wenn man sich die Entwicklung des deutschen Aktienindex (DAX) anguckt, dann kann man nur über das scheinbar grenzenlose Wachstum staunen. Eine Wirtschaft kann aber nach dem gesunden Menschenverstand nur dann wachsen, wenn sie etwas besser macht als vorher. Wenn z. B. die Produktivität der Mitarbeiter durch den Einsatz von Software gesteigert wurde.

Jeder Multiplayer-Spieler kennt es: “Lag”. Wenn man den gegnerischen Spieler zu spät sieht oder man sich sicher ist, ihn hundertprozentig getroffen zu haben, aber das Spiel anders entscheidet: Der Schuldige ist klar “Lag”.

Der Begriff “geistiges Eigentum” (engl. intellectual property, IP) ist sehr umstritten, auch weil er gar nicht so einfach zu definieren ist. Es werden auch sehr unterschiedliche Konzepte unter diesem Begriff zusammengefasst: Patente, Copyright, Geschäftsgeheimnisse und Trademarks/Warenzeichen. Stephan N. Kinsella definiert ihn in seinem Buch “Against Intellectual Property” anhand der “Knappheit”.

Neal Ford und Nathaniel Schutta haben zu ihrem 2012 erschienenen Buch “Presentation Patterns: Techniques for Crafting Better Presentations” eine Video-Schulung erstellt.

Mit dem Computerspiel Human Resource Machine kann man die Grundlagen der maschinennahen Programmierung spielerisch erlernen.

Matt Ridley erläutert in “The Rational Optimist: How Prosperity Evolves”, dass der Handel mit Gütern und Dienstleistungen die Basis der menschlichen Zivilisation ist und dass die Menschheit aufgrund des bisher erreichten Fortschritts Grund hat, optimistisch in die Zukunft zu schauen.

Die Menschheit ist in der Informations- und Wissensgesellschaft angekommen. Kaum sind die ersten Änderungen verdaut, schon tauchen weitere Neuigkeiten am Horizont auf: das Internet der Dinge, Big Data, Data Science, intelligente Roboter und selbstfahrende Autos mit künstlicher Intelligenz.

Wie soll man diese Technologien bewerten? Welche Folgen werden sie haben?

George Gilder erläutert in Knowledge and Power: The Information Theory of Capitalism and How it is Revolutionizing our World, dass die Stärke des Kapitalismus seiner Meinung nach darin liegt, dass nur die erfolgreichen Unternehmen, die Gewinne machen, die Möglichkeit erhalten, weitere Produkte herzustellen. Sie haben ja ihre Nützlichkeit bewiesen, ihre Produkte wurden gekauft.

“Business Model Generation” ist ein hervorragender Einstieg in das komplexe Thema “Geschäftsmodelle”. Das Buch behandelt Geschäftsmodelle, deren Erstellung und weitere Anpassung mit Hilfe des “Business Model Canvas”.

Es ist sicher, dass es eine nächste Krise geben wird [1], nur der Zeitpunkt ist offen [2]. Wie überlebt man als Firma eine solche Krise?

Die Manipulation des Leitzins durch die Zentralbanken löst viele Fehlinvestitionen aus. Diese müssen dann während einer Krise korrigiert werden [1]. Der genaue Zeitpunkt der nächsten Krise ist nicht vorhersagbar, da die Wirtschaft ein sehr komplexes System ist [2]. Lassen sich denn die Folgen der nächsten Krise vorhersagen? Lässt sich vorhersagen, wer die Krise besser übersteht als andere?

Im letzten Artikel [1] habe ich erklärt, warum eine Festsetzung des Leitzins eine Krise hervorruft. Es ist also sicher, dass eine Krise kommt, aber kann man den Zeitpunkt vorher bestimmen?

Seit dem Anfang der letzten Wirtschaftskrise am Ende des Jahres 2008 beschäftige ich mich in meiner Freizeit mit der Ursache dieser Krisen, wie man sie vorhersagen könnte und welche Folgen sie haben.

Folien zu einer Einführung über Geschäftsmodelle und Geschäftsmodellmuster.

Gerard Casey ist ein Philosoph und Professor am University College Dublin. Sein Buch “Libertarian Anarchy: Against the State” beinhaltet recht kontroverse aber dafür interessante Thesen.

While I was reading the excellent book by Kevin Suffern "Ray tracing from the ground up", I implemented a ray tracer in Java and wrote a DSL in Groovy, to describe scenes more easily and dynamically.

Das Thema "Kovarianz und Kontravarianz" wird zwar auch bei Wikipedia erklärt, ich versuche es hier mit eigenen Worten und Scala.

I explain "covariance and contravariance" with some simple Scala examples.

Wer die Grundlagen von Spark lernen möchte, ist mit dem Buch “Learning Spark” gut beraten. Mir hat besonders gut gefallen, dass das Buch sehr praxisorientiert ist und man nebenbei mit der Spark-Shell die Beispiele ausprobieren und nachvollziehen kann.

This article shows how to use k-d-trees with Apache Spark.

Scala ist ein wichtiger Meilenstein bei der Fusion von funktionaler und objektorientierter Programmierung. Diese Fusion ist noch nicht abgeschlossen, sondern ein “Entdeckungs-Prozess”, der noch ein paar Jahre andauern wird.

Das Hadoop-Ökosystem ist im Laufe der Zeit erheblich gewachsen. “Hadoop: The Definitive Guide” bietet einen Überblick über die wichtigsten Themen und Projekte des Frameworks.

This is the last part in a series of four. It show how to analyse the emails with Kibana.

This is the third part in a series of four. It explains the technical background.

This is the second part in a series of four. It shows installation and usage.

This article shows how to use Elastiksearch database with Spring Boot. It is the first in a series of four.

In “Data driven - Creating a Data Culture” erläutern die Autoren, was sie unter einer “Datenkultur” verstehen.

In dem schon 2003 geschriebenen Buch “Beyond Fear: Thinking Sensibly About Security in an Uncertain World” schreibt _ Bruce Schneier_ ganz allgemein über Sicherheit. Hier ist die englische “security” gemeint und nicht die “safety”, d. h. die Zuverlässigkeit.

The implementation of the heat diffusion equation on multiple GPUs is explained in the talk (in german).

Chris Anderson beschreibt in “Makers: Das Internet der Dinge: die nächste industrielle Revolution” wie industrielle Fertigungsprozesse mit CAD, dem 3D-Druck und/oder durch Outsourcing auch von Kleinunternehmern durchgeführt werden können.

During my talk at the parallel 2015 conference i was asked how one can measure traffic on the PCI express bus. For multi GPU computing it is very important to control the amount of data exchanged on the PCIe bus.

Hier sind die Folien meines Vortrags auf der parallel 2015.

JavaScript hat einen Prototyp-basierten Ansatz zur Objektorientierung. Damit unterscheidet es sich stark von den üblichen objektorientierten Programmiersprachen, wie z. B. Java, C++ und Ruby.

With Babel you can test many features of the upcoming next version of JavaScript called ECMAScript 6 now.

MapReduce ist ein “Korsett” und zwingt den Entwickler in enge Grenzen. Daher macht es Sinn, “MapReduce Design Patterns” zu lesen, damit man schnell die üblichen Tricks und Kniffe kennenlernt. Ähnlich ist es ja beim Lernen von anderen Paradigmen auch, wie z. B. Devide-and-Conquer oder Rekursion. Man begreift das allgemeine Prinzip schnell, man muss aber lernen, wann und wie man es am besten einsetzt.

“C++ AMP: Accelerated Massive Parallelism with Microsoft Visual C++” ist eine gute Einführung in die Programmierung mit C++ AMP. Leider ist das Buch zum Zeitpunkt der Rezension das einzige Buch über C++ AMP, so dass ich es nur mit anderen Büchern über CUDA und OpenCL vergleichen kann.

I tested the parallel ray tracer on all NVIDIA cards i bought. This page contains the results.

I wanted to learn some frameworks for parallel computing and i decided to implement a simple ray tracer as a "visual benchmark".

Das Besondere an “OpenCL in Action: How to Accelerate Graphics and Computation” ist, das der Autor Matthew Scarpino versucht, die Programme wirklich zu erklären. Man erfährt die Gründe für seine Design-Entscheidungen.

Ich benutze git zwar schon ein paar Jahre, wollte aber mehr Hintergrundwissen haben und komplexere Abläufe kennenlernen. Das ist dem Buch “Git in Practice” zum einen gelungen, trotzdem habe ich irgendwie das Gefühl, dass das nicht alles gewesen sein kann.

“Understanding PaaS” ist ein sehr kleines Büchlein über die Grundlagen des Cloud Computings. Es kann gelesen werden, um sehr schnell in die Thematik einzusteigen. Es ist eher für Entwickler geschrieben, als für CEOs.

Beim Stöbern in “CUDA Fortran for Scientists and Engineers” habe ich gesehen, dass die Autoren wertvolle Optimierungstipps geben. Da bin ich neugierig geworden.

In “Bit by Bit: How P2P Is Freeing the World” erläutert Jeffrey Tucker die weltanschaulichen Hintergründe von Peer-to-Peer-Netzwerken und von Bitcoin. Der Autor konzentriert sich hier auf seine philosophische und ökonomische Sichtweise, dem Libertarismus, einer Marktwirtschaft mit Privateigentum ohne Staat.

“MongoDB: The Definitive Guide” ist ein gelungener Überblick auf MongoDB sowohl aus Entwickler- als auch als DBA-Perspektive. Jedenfalls soweit ich das als MongoDB-Einsteiger mit mehr als 11 Jahren Data-Warehousing-Projekterfahrung sagen kann.

Im ersten Teil von “The Elegant Universe: Superstrings, Hidden Dimensions, and the Quest for the Ultimate Theory” werden die Grundlagen der Relativitätstheorie und der Quantenmechanik anschaulich und mit tollen Beispielen erklärt. Es ist die beste Einführung, die ich bisher gelesen habe und klar 5 Sterne.

James Gleick ist ein wahnsinnig belesener Mensch, der in diesem umfangreichen und lesenswerten Buch “The Information : a history, a theory, a flood” die Geschichte der Information und der Informationsverarbeitung darstellt. Äußerst bemerkenswert ist, dass sich der Autor in beiden “Kulturen”, den Geisteswissenschaften und den Naturwissenschaften, sehr gut auskennt.

Wenn man Java 8 lernen will, ist “Java 8 in Action: Lambdas, Streams, and Functional-Style Programming” das eine Buch, was man gelesen haben sollte.

Wenn es “anspruchsvolle” Literatur gibt, dann gibt es jetzt auch “anspruchsvollen” Code. “If Hemingway Wrote JavaScript” enthält viele lustige und lehrreiche Beispiele.

Das Buch “Ready Player One” hatte fast das Potential ein absoluter Klassiker zu werden in der Größenordnung eines “Hitchhiker’s Guide trough the Galaxy”.

Die geniale Idee des Autors ist es, 80er-Jahre-Nostalgie und ein Massively Multiplayer Online Game (MMO, MMOG) mitander zu verknüpfen und zum Gegenstand eines Romans zu machen.

Wer sich schnell mal ein paar typische Denkfehler angucken möchte, dem sei “Die Kunst des klaren Denkens” empfohlen.

Hier sind die Folien meines Vortrags auf der parallel 2014.

Das Buch “GPU Computing Gems (Emerald Edition)” ist eine Sammlung von 50 wissenschaftlichen Artikeln über Erfahrungen bei der Verwendung des GPU-Computing in verschiedenen Fachgebieten.

Ich hatte schon viele Artikel der Reihe „CUDA, Supercomputing for the Masses“ von Rob Farber auf der Dr. Dobb’s Webseite gelesen und war recht angetan. Das war damals 2009 eine der wenigen Möglichkeiten, etwas anspruchsvolleres über CUDA zu lesen.

Mit CUDA ist es einfach, eine Berechnung um den Faktor 2-5 zu beschleunigen. Wie man höhere Speedups erreicht, lernt man in “CUDA Programming” von Shane Cook.

Nicholas Wilt zeigt sich in “The CUDA Handbook” sehr kompetent und experimentierfreudig bei der Optimierung von Kerneln. Das Buch kann von vielen Fortgeschrittenen mit Gewinn gelesen werden.

“Using OpenMP” ist eine gute Einführung und enthält ein paar gute Performancetipps.

Wenn man ein wenig Systematik in seine parallelen Programmierkünste bringen will, ist “Structured Parallel Programming: Patterns for Efficient Computation”
das Buch zum Einsteigen.

Ich hatte damals 1992 schon die zweite Auflage gelesen. Seit dem hat sich sehr viel zum Positiven geändert, sowohl bei C++ als auch bei diesem „Klassiker“.

In diesem kleinen Buch gibt der Erfinder von C++ einen Überblick auf die Neuigkeiten von C++ 11 und der STL.

An “The Definitive Guide to Grails 2” kommt keiner vorbei, der Grails lernen will.

Ich habe “Learn You a Haskell for Great Good” zur Auffrischung meiner Haskell-Kenntnisse gelesen. Während meines Studiums in den neunziger Jahren war ich begeisterter funktionaler Programmierer. Meine Diplomarbeit habe ich 1997-98 über „Geometrische Algorithmen in Haskell“ geschrieben.

Das Buch “Bärentango: Mit Risikomanagement Projekte zum Erfolg führen” ist vor 10 Jahren erschienen und ich habe es mir jetzt (2013) wieder durchgelesen, um zu entscheiden, ob ich es nicht evtl. entrümpeln sollte.

Das Buch “97 Things Every Programmer Should Know” besteht aus 97 Abschnitten von unterschiedlichen Autoren zu oft auftretenden Fragen bei der Softwareerstellung.

Das kleine Buch “NoSQL Distilled:” bietet einen guten Überblick auf die verschiedenen NoSQL-Datenbanken.

Die Kernaussage des Buchs “Die Gemeinwirtschaft: Untersuchungen über den Sozialismus” ist, das keine Gesellschaft ohne Märkte funktioniert, weil nur ein Markt den Preis bzw. die Kosten ermittelt.

“API Design for C++” ist eine hervorragende Einführung in die Implementierung von APIs mit C++.

Guter Überblick

“Polygon Mesh Processing” ist ein “research monograph”’ über die Verarbeitung von Polygonnetzen (“‘polygon mesh’”).

“The Income Tax: Root of All Evil” stellt eine interessante Gegenposition zum heute üblichen Standpunkt auf, das Steuern in der Regeln gut sein und der Gesellschaft und den Armen zu Gute kommen.

Hier sind die Folien meines Vortrags auf der parallel 2012.

Wie man spannende Vorträge hält, erfährt man in “Resonate: Present Visual Stories that Transform Audiences”.

“Patterns for Parallel Programming” ist ein wichtiges Werk für ‘parallele Programmierer’.

Was “Programming Massively Parallel Processors: A Hands-On Approach” von anderen Büchern unterscheidet, ist die genaue Beschreibung der Funktionsweise der Hardware.

In “Economics for Real People” geht es um ‘Wirtschaftslehre für echte Menschen’ und nicht für den homo oeconomicus oder andere mathematische Modelle.

“Slide:ology: The Art and Science of Presentation Design” ist ein sehr gut designtes und gut zu lesendes Buch. Es wird seinem Untertitel auf jeden Fall gerecht.

“100 Things Every Designer Needs to Know About People” ist eine Sammlung von doch recht nützlichen Informationen über Menschen.

Ich habe zum Buch “Presentation Zen: Simple Ideas on Presentation Design and Delivery” eine geteilte Meinung und gebe daher nur 3 Sterne.

Wirtschaft aus der “bottom up”-Perspektive

Das Buch “Kasino-Kapitalismus” bietet einen sehr guten Überblick über die Ursachen, die zur Finanzkrise geführt haben. Die für die Krise relevanten Zusammenhänge aus der Finanzwelt werden präzise erklärt. Der Autor schlägt im letzten Kapitel auch Maßnahmen vor, um solche Krisen in Zukunft zu verhindern.

These slides are for a course about parallel computing.

“Head First jQuery” ist im “Heads First”-Stil gehalten und richtet sich an Anfänger und Quereinsteiger, die bereits über Grundkenntnisse in HTML und CSS und Programmierkenntnisse verfügen.

Das Buch “Getting Started with Roo” hat nur etwas über 50 Seiten und beinhaltet eine kurze und oberflächige Einführung in die Benutzung von Spring ROO.

Die Programmierung von parallelen und nebenläufigen Programmen mit Shared-Memory und Threads ist kompliziert und sehr fehleranfällig. Als Lösungsansätze wurden z. B. Software-Transactional-Memory (STM), Message-Passing-Architekturen und Aktoren-Modelle entwickelt. In “Programming Concurrency on the JVM” werden diese für die Java-Plattform vorgestellt.

Im Zeitalter des Multi-Tasking und der ständigen Unterbrechungen ist es schwierig, seinen richtigen Arbeitsrhythmus zu finden, den Überblick zu behalten und keine Aufgaben zu vergessen oder aufzuschieben.

Eine Lösung bietet die “Pomodoro Technique Illustrated: The Easy Way to Do More in Less Time”, die der Autor in diesem Buch erklärt und mit vielen Illustrationen veranschaulicht.

Mit dem Titel “The Art of Concurrency” wird ein hoher Anspruch geweckt, der nicht erfüllt wird. Der Untertitel “A Thread Monkey’s Guide to Writing Parallel Applications” wird dem Inhalt schon eher gerecht, aber auch hier gibt es noch einige Kritikpunkte.

“Dieses Buch wird Ihnen helfen, ein besserer Programmierer zu werden” steht als erster Satz in der Einleitung des Buchs “Der Pragmatische Programmierer”. Und ich bin der Meinung, dass es stimmt.

“Complexity - A Guided Tour” ist eine lesenswerte und interessante Einführung. “Komplexität” ist ein Querschnittsthema und durchzieht viele Fachbereiche, wie z. B. die Biologie (Immunsystem, Gehirn, Evolution), Wirtschaftswissenschaften, Informatik und Künstliche Intelligenz.

Das Buch “Real-time Rendering” ist der perfekte Start in das Themengebiet, wenn man Vorkenntnisse in Linearer Algebra und Softwareentwicklung hat. Es ist auf der Höhe der Zeit (April 2009) und enthält aktuelle Referenzen zu Literatur und Spielen.

Der Titel des Buches “Technisches Schreiben: (nicht nur) für Informatiker” ist viel zu allgemein. Der Autor betrachtet ausschließlich die akademische Seite der Informatik und auch nur die deutsche Sprache.

“Cuda by Example” ist der perfekte Start in CUDA für Einsteiger. Aber auch manche Fortgeschrittene und Profis könnten Ihre Freude an den guten Erklärungen und Beispielen haben.

“Ray Tracing from the Ground Up” ist ein hervorragendes Buch für Einsteiger und Fortgeschrittene. Man merkt, dass sich der Autor viele Jahre mit dem Thema beschäftigt hat und dass er selber Ray Tracer geschrieben hat.

During the christmas holidays i tried out Scala and TestNG with Gradle.

Am 1. April hat Sony ein Update für die Playstation 3 herausgegeben, mit dem der Support für Linux eingestellt wird. Das hat viele verärgert und teilweise heftige Reaktionen und Diskussionen entfacht.

Von 2002-2006 habe ich bei einem kanadischen Hersteller einer spalten-orientierten Datenbank gearbeitet.

During the christmas holidays i rewrote my ray tracer for the NVIDIA CUDA architecture.

Diese Schulung vermittelt die testgetriebene Entwicklung mit dem Schwerpunkt auf JUnit 4. Andere Frameworks wie JUnit 3 und TestNG werden kurz eingeführt (Stand 2009).

In der Schulung über Subversion geht es um die Versionsverwaltung.

Ant bietet immens viele Möglichkeiten, die den meisten nicht bekannt sind. Diese Schulung geht in die Tiefen von Ant (Stand 2009).

I installed Snow Leopard on my laptop yesterday. I was very curious about OpenCL and installed the drivers and the GPU Computing SDK from NVIDIA.

I have got a new computer. As alway i build it myself. How much faster is it?

The functional programming language Haskell provides a very easy way of parallelization.

Ray tracer running on an Intel Core i7 920 @2.67 MHz with Windows Vista Ultimate 64. The ray tracer uses the pthreads library for parallelization.

I tested my ray tracer on my Mac Book Pro. The peak performance is achieved with 7 threads. Programmed in C++ using the pthreads library.

I wanted to learn about the cell broadband engine used in the Playstation 3 and wrote a parallel ray tracer for it.

I am fascinated by the possibilities of modern computer graphics. It all began while playing the game Little Big Planet. It does not look like a computer game. It looks like the results of handicraft work with scissors, glue, paper, drapery, etc.

Almost 10 years after the initial release, i released an updated version of the library of geometric algorithms in Haskell. It now builds with Cabal and requires the Glasgow Haskell Compiler.

Remark: This post was adapted to the new blog format in November 2016.

Memoization is a well known optimization technique to avoid repeated calculations. With dynamic programming languages like Groovy it is possible to extend the behaviour of an already exisiting class at runtime.

The german magazine JavaSpektrum organized the "Dynamic Languages Shootout" contest for the OOP 2008 conference. The challenge was to create a computer game similiar to Scrabble in a dynamically typed programming language.

JRuby provides access to Java packages, so it is possible to use packages created with the Eclipse Modeling Framework (EMF).

The german magazine JavaSpektrum organized the “Dynamic Languages Shootout” contest for the OOP 2008 conference. The task was the creation of a computer game similiar to Scrabble in a dynamically typed programming Languages.

Writing plugins for Eclipse with other languages than Java is not officially supported, but there is a way to write an Eclipse plugin with Groovy only. As prerequisites you need Eclipse with a JDT and the Groovy Eclipse plugin.

The UML2 project provides an EMF based implementation of the UML 2.x metamodel in Java. With the EMFBuilder it is possible to create and process UML2 models.

While i was cleaning up my hard disk on my Linux in 2007, i needed a program that displays the disk usage graphically. I didn't find a suitable one on the web. At that time i was learning Groovy and it's for rapid application development, isn't it. So i gave it a try.

This article shows how Groovy can be used to work with the Eclipse Modeling Framework (EMF).

The Common Warehouse Metamodel (CWM) is a standard by the Object Management Group (OMG). The intention of CWM is to define a standard for metadata in Data Warehouses and Business Intelligence applications.

Here’s my second solution for the quiz No 74. It generates text with a first or higher order Markov chains. See also the first order version.

Here’s my solution for the quiz No 74. It generates text with a first order Markov chain.

When i first heard of the Eclipse Modeling Framework (EMF) i got really excited, i tried it out and i wanted to use it.

Ich wollte herausfinden, wie schwer es ist, in Eclipse einen Editor für eine Programmiersprache zu schreiben. Ich kannte damals keinen Open-Source-SQL Editor (auch für Eclipse gab es noch keinen) und somit fing ich mit einem kleinen Prototypen zu Testzwecken an.

Über Weihnachten 2004 schrieb ich ein EMF-Plugin für Familenstammbäume. Ostern 2005 fand ich dann die Zeit dafür, einen GEF-Editor dafür zu entwickeln.

Von 1999 - 2005 habe ich Informationen zum Thema "Fraud detection" auf einer Webseite gesammelt. Als ich 1999 damit als wissenschaftlicher Mitarbeiter der Uni Karlsruhe anfing, gab es zum Thema "Data Science" noch nicht viel Informationen. Es hieß damals auch eher "Knowledge Discovery in Databases" (KDD) in akademischen Kreisen oder "Data Mining" in der Wirtschaft.

In meiner Diplomarbeit habe ich 1998 die Potentiale der funktionalen Programmierung bei der Implementierung von geometrischen Algorithmen untersucht. Den Source-Code habe ich veröffentlicht.

In meiner Diplomarbeit habe ich 1998 die Potentiale der funktionalen Programmierung bei der Implementierung von geometrischen Algorithmen untersucht.

In my diploma thesis (written in German) I investigate the application of the functional programming paradigm in the context of geometric algorithms.

In dieser Seminararbeit für mein Hauptstudium habe ich 1996 Algorithmen für das Scheduling in verteilten Realzeitsystemen im Rahmen meines Informatikstudiums behandelt.

In dieser Seminararbeit für mein Hauptstudium habe ich 1995 das grundlegende Präfixsummen (prefix sum) im Rahmen meines Informatikstudiums behandelt.