Programmiersprachen

Programmiersprachen lernen, Software

Ziel dieses Kurses

In diesem Kurs beschäftigen wir uns im weiteren Sinne mit dem Einsatz vom Computern im Bereich Cognitive Neuroscience. Es ist nicht Ziel dieses Kurses, EEG oder fMRI Daten zu analysieren (dafür gibt es eigene Kurse); wir werden uns stattdessen mit Daten aus Verhaltensexperimenten beschäftigen. Dies sind zum Beispiel binäre Antworten oder Reaktionszeiten, welche wir mit entsprechenden Modellen untersuchen werden. Unsere Anwendungsbeispiele werden immer aus der neurowissenschaftlichen Forschung stammen; der Fokus wird aber vor allem der Umgang mit Computern sein. Unser Ziel ist es, dass Sie nach dem Abschluss dieses Kurses eine neurowissenschaftliches Paper lesen können, und die darin verwendeten Experimente nachvollziehen können. Sie könnten eventuell sogar das Experiment selber programmieren, und die Daten analysieren.

Programmiersprachen

Programmiersprachen sind essentielle Werkzeuge für die Neurowissenschaftliche Forschung. Wir werden uns zuerst einen kurzen Überblick über drei häufig verwendete Programmiersprachen (Matlab, Python und R) verschaffen und kurz deren Verwendungszwecke und Vor- und Nachteile diskutieren.

Matlab

Matlab ist ein Software für numerische Anwendung, welche in den Ingenieurwissenschaften, Naturwissenschaften und der Mathematik weit verbreitet ist.

👍🏼 Stärken:

  • Leistungsstarke Matrix- und Vektoroperationen, gut geeignet für Matrix-basierte Operationen, die in der Neurowissenschaftlichen Forschung häufig vorkommen.
  • Umfangreiche Bibliothek von integrierten Funktionen für wissenschaftliches Rechnen.

👎🏼 Schwächen:

  • Teuer
  • Weniger flexibel als Python oder R in Bezug auf Datenarten und Strukturen.
  • Matlab is kommerziell und proprietär. Dies bedeutet man muss teuere Lizenzen kaufen, und der Source Code der Software ist nicht offen.

Typische Anwendung:

  • Datenverarbeitung und -analyse,
  • Signalverarbeitung
  • Visualisierung
  • Viele fMRI Forscher arbeiten mit Matlab, da es dafür eine spezielle Toolbox gibt: SPM
  • Experimente programmieren, z.B. mit Psychtoolbox

Beispielcode:

load('data.mat')
fs = 1000;
t = (0:numel(data)-1)/fs;
plot(t, data)

Python

Python ist eine allgemeine (general purpose) Programmiersprache, die in vielen verschiedenen Bereichen wie wissenschaftlichem Rechnen, Datenanalyse und maschinellem Lernen weit verbreitet ist.

👍🏼 Stärken:

  • Eine Vielzahl von Bibliotheken und Modulen wie NumPy, SciPy und Pandas, die leistungsstarke Werkzeuge für wissenschaftliches Rechnen und Datenanalyse bieten.
  • Datenanalysewerkzeuge wie Pandas-Dataframes, die Seaborn-Visualisierungsbibliothek, und Jupyter Notebooks.
  • Open-source und kostenlos

👎🏼 Schwächen:

  • Kann in einigen numerischen Berechnungen langsamer sein als Matlab.
  • Da Python eine allgemeine Sprache ist, muss man für numerische Anwendungen immer verschiedene Packages importieren (z.B.) numpy, wenn man damit rechnen will. Dies führt zu weniger gut lesbarem Code.

Typische Anwendung:

  • Datenverarbeitung und -analyse,
  • Visualisierung
  • Machine learning und Künstliche Intelligenz
  • Experimente programmieren, z.B. mit PsychoPy

Beispielcode:

import pandas as pd
import seaborn as sns
data = pd.read_csv('data.csv')
sns.lineplot(data=data, x='time', y='voltage')

R

R ist eine Programmiersprache und Umgebung für statistisches Rechnen und Grafiken.

👍🏼 Stärken:

  • Entwickelt von Statistikern für statistisches Rechnen und Grafiken.
  • Eine große Bibliothek von statistischen Werkzeugen und Paketen, einschliesslich Visualisierungspackages (grammar of graphics).
  • Open-source und kostenlos
  • tidyverse Packages für Data Wrangling (sehr elegante Syntax, um mit Daten zu arbeiten).

👎🏼 Schwächen:

  • Steilere Lernkurve als Python.
  • Kann in einigen numerischen Berechnungen langsamer sein als Matlab oder Python.
  • Entwickelt von Statistiker (nicht von Software Designers). R gilt als sehr idiosynkratisch.

Typische Anwendung:

  • Statistische Analyse
  • Datenvisualisierung. R hat eine sehr gute Bibliothek für Grafiken, die ggplot2 Bibliothek. Diese Bibliothek verwendet die sogenannte grammar of graphics (GoG) - eine Methode, um Daten in Grafiken zu visualisieren. Die GoG ist eine sehr elegante und effiziente Methode, um Daten zu visualisieren.

Beispielcode:

library(tidyverse)
data <- read.csv('data.csv')
ggplot(data, aes(x=time, y=voltage)) + geom_line()

Fazit

Matlab, Python und R sind leistungsstarke Werkzeuge für die neurowissenschaftliche Forschung. Die Wahl der Sprache hängt unter anderem von der spezifischen Aufgabe ab. Weitere Faktoren ist Tradition: bestimmte Gruppen bevorzugen eher eine Sprache als andere. So ist Matlab unter Ingenieuren weit verbreiten und R unter Statistikern. Python ist im Bereich Künstliche Intelligenz und Machine Learning die beliebteste Sprache. Eine neuere Sprache ist Julia - diese vereint die Vorteile aller oben genannten Sprachen (ohne viele deren Nachteile), ist aber weniger weit verbreitet.

Um mehr zu erfahren, erkunden Sie die umfangreichen Online-Ressourcen und Dokumentationen für jede Sprache.

In dieser Veranstaltung verwendete Software

Wir haben uns entschieden, in dieser Veranstaltung Python zu verwenden, um ein Experiment zu erstellen, und R für die Analyse der Daten. Matlab wird nicht verwendet; einerseits da es kommerziell ist, andererseits weil es aus unserer Sicht nicht die beste Wahl für die Analyse von Verhaltensdaten ist. Ausserdem ist es schon schwierig genug, eine Programmiersprache zu lernen, ohne gleichzeitig noch zwei weitere zu lernen.

Python

Wenn Sie Python suf Ihrem Rechner installieren wollen, können Sie entweder den offiziellen Installer https://www.python.org/downloads/ downloaden, oder die Anaconda Distribution https://www.anaconda.com/products/distribution verwenden. Die Anaconda Distribution ist eine Python-Distribution, die viele nützliche Pakete enthält, die für wissenschaftliches Rechnen und Datenanalyse verwendet werden. Wenn man tatsächlich mit Python arbeiten will, empfiehlt es sich, die Anaconda Distribution zu benutzen. Wir werden in dieser Veranstaltung Python benutzen, um ein Experiment zu programmieren. Dafür reicht es aus, den PsychoPy Installer zu verwenden; diesen finden Sie unter diesem Link: PsychoPy. PsychoPy ist ein Python-basiertes Tool, mit dem sich sowohl in einer grafischen Benutzeroberfläche (GUI) als auch mit Python Code Experimente programmieren lassen.

R

Ab der vierten Sitzung werden wir viel mit R arbeiten, um Daten aufzubereiten und grafisch darzustellen. Dafür müssen Sie die aktuelle Version von R installieren. Diese ist zurzeit R 4.2.2, und kann unter folgender URL geladen werden:

R 👉 https://cloud.r-project.org/

Wir empfehlen für die Arbeit mit R die RStudio IDE zu verwenden. Diese ist kostenlos und kann unter folgender URL heruntergeladen werden:

RStudio 👉 https://www.rstudio.com/products/rstudio/download/#download

Lernen

DataCamp

Reuse

CC BY-SA 4.0

Citation

BibTeX citation:
@online{ellis,
  author = {Andrew Ellis and Gerda Wyssen},
  title = {Programmiersprachen},
  url = {https://kogpsy.github.io/neuroscicomplabFS23//software.html},
  langid = {en}
}
For attribution, please cite this work as:
Andrew Ellis, and Gerda Wyssen. n.d. “Programmiersprachen.” https://kogpsy.github.io/neuroscicomplabFS23//software.html.