Kontakt

E-Mail:
alexander.behringer aet informatik.hu-berlin.de

PGP-/GPG-Schlüssel: 0x91727586

Stundenplan

Internes


Besuchte Lehrveranstaltungen im Wintersemester 2012/13


Nützliche Software

Arbeitsumgebung: Ubuntu

Meine zur Zeit bevorzugte Betriebssystem-Distribution ist Ubuntu, ein GNU/Linux-System.

Textsatz: LaTeX / LyX

Für qualitativ hochwertigen Text-Satz, insbesondere für Text mit Formeln, verwende ich LyX, einem What-You-See-Is-What-You-Mean-Editor für LaTeX. LyX erfordert etwas Einarbeitung und Grundkenntnisse in LaTeX sind von Vorteil.

Versionsverwaltung: Mercurial

Ein an vielen Stellen nützliches Werkzeug ist ein (verteiltes) Versionsverwaltungssystem. Diese sind nicht nur nützlich bei der Verwaltung von Source-Code sondern auch von Dokumenten aller Art, zumindest wenn sie textbasiert sind.

Zur Zeit verwendete ich Mercurial zusammen mit der graphischen Umgebung TortoiseHG.

Andere weit verbreitete Systeme sind Bazaar und Git.

Informatik-/Mathematik-Webseiten

Algebra- und Geometrie-Rechner:

Aussagenlogik-Rechner:

Universal-Werkzeuge:


Farbmetrik und Farbwahrnehmung

Literatur

Webseiten

Wavelets und Wavelet-Transformation

Literatur

Freie Software

Literatur

Reverse-Engineering und Urheberrecht

Literatur


Programmieren in Python

Meine Lieblings-Programmiersprache ist zur Zeit Python. Siehe auch den dazu passenden Python-Wikipedia-Artikel.

Python gelingt es eine elegante und unkomplizierte Syntax mit einer hohen Flexibilität und sehr mächtigen Sprachkonstrukten zu verbinden.

Einstieg in Python

Das Python Tutorial aus der offiziellen Dokumentation gibt einen sehr guten Überblick über die Sprache.

Wie man bestimmte Standard-Konstruktionen in Python umsetzten und wie man „eleganten“ Code schreibt, erklärt „Code Like a Pythonista: Idiomatic Python“.

Fortgeschrittende Themen

Den Aufbau des Objekt-Systems und wie Attribute und Methoden in Python genau funktionieren, erläutern die folgenden beiden Artikel:

Nummerische Berechnungen

Es gibt diverse Pakete, um mit Python mathematisch-wissenschaftlich zu arbeiten. Davon möchte ich einige, die ich u. a. während meines Studiums verwendet habe, hier vorstellen.

Für Nummerische Berechnungen bietet sich SciPy an, sowie die darunterliegende Array-Implementierung NumPy. Zum Funktionsumfang gehören z. B. nummerische Integration, Differenziation, Interpolation, Curve-Fitting, lineare und nichtlineare Optimierung, Lineare Algebra, Signalverarbeitung und Statistik.

Zum Plotten verwende ich matplotlib, was sowohl ein objekt-orientiertes, wie ein an MATLAB angelehntes prozedurales Interface bietet.

Sonstiges

Ein sehr interessantes Projekt im Zusammenhang mit Python ist Cython, eine Python-ähnliche Sprache, die um C-Datentypen und -Konstrukte erweitert ist und sich in Python-Module übersetzen lässt.

Mit Cython lassen sich zeit- oder speicherkritische Teile eines Python-Programms mit relativ wenig Aufwand deutlich beschleunigen.

Programmieren in C

Auch wenn C nicht zu den schönsten Sprachen gehört, so ist sie doch der de-facto-Standard für die maschinennahe Programmierung.

C-Debugger

Eine schöne grafische Oberfläche für den GNU-Debugger (GDB) stellt das KDE-Programm KDbg dar. Eine Alternative dazu ist z. B. das GNOME-Programm Nemiver.

Programmieren in Haskell

Haskell ist eine der bedeutendsten funktionalen Programmiersprachen. Sie eignet sich daher für das Studium der funktionalen Programmierung.

Literatur

Nachfolgend zwei Bücher zum Thema, welche sowohl online unter einen freien Lizenz verfügbar als auch als Print-Exemplar käuflich zu erwerben sind:

Zum einen Learn You a Haskell for Great Good! von Miran Lipovača, welches eine sehr unterhaltsam geschriebene und für Einsteiger sehr geeignete Einführung mit Fokus auf die Sprache ist.

Zum anderen Real World Haskell von Bryan O'Sullivan, Don Stewart und John Goerzen, eine weitere Einführung mit stärkerem Fokus auf die Anwendung der Sprache.


Studienverlauf

Nachfolgend sind die von mir besuchten Vorlesungen, Seminare und Übungen (ohne die Übungen und Praktika zu den Informatik-Vorlesungen) früherer Semester aufgelistet (ohne Anspruch auf Fehlerfreiheit oder Vollständigkeit). Eine Teilnahme an einer Veranstaltung impliziert nicht die Teilnahme an der jeweiligen Prüfung. Durchgestrichene und grau markierte Veranstaltungen wurden von mir nur teilweise besucht oder vorzeitig abgebrochen.

Sommersemester 2012

Wintersemester 2011/2012

Sommersemester 2011

Wintersemester 2010/2011

Sommersemester 2010

Wintersemester 2009/10

Sommersemester 2009

Wintersemester 2008/09

Sommersemester 2008

Wintersemester 2007/08