Programmiersprachen

Im vorigen Unterkapitel hatten wir die Skriptsprache des Internets ("HTML") kennengelernt. HTML ist jedoch keine Programmiersprache, da man mit ihr keine komplexen Rechenvorschriften formulieren kann, die in Form von Algorithmen dann vom Computer ausgeführt werden können. In diesem Unterkapitel werden wir die Programmiersprachen C++ und Python kennenlernen. Beide Programmiersprachen sind bereits auf den Rechnern des Instituts für Theoretische Physik installiert und Sie können diese mittels Ihres ITP-Accounts und einer SSH-Verbindung nutzen (siehe Unterpunkt "Nutzung von C++ und Python auf den ITP-Rechnern"). Es ist jedoch ratsam sich diese Programmiersprachen auch auf dem eigenen Computer zu installieren und die Installation von C++ und Python ist auf allen gängigen Betriebssystemen möglich und wird am Beispiel des Betriebssystems Linux im Unterpunkt "Installation von C++ und Python unter Linux" kurz beschrieben. Die Programmiersprache C++ ist eine kompilierte Programmiersprache, d.h. der vom Programmierer geschriebene Quelltext des Computerprogramms muss zunächst mittels eines Compilers in ein ausführbares Programm umgewandelt werden, damit es genutzt werden kann. Python hingegen ist eine Skriptsprache, die den Quelltext des Programms zuerst in einen plattformunabhängigen Bytecode übersetzt, welcher dann von einem Interpreter ausgeführt wird.

Installation von C++ und Python unter Linux

Um ein C++ Programm ausführen zu können, benötigt man einen C++ Compiler, der den Quelltext des Computerprogramms in ein ausführbares Programm umgewandelt. Um zusätzliche Programme unter Linux zu installieren, benutzt man gewöhnlich den Linux-Befehl sudo apt-get install ..., wobei die ... als Platzhalter für das zu installierende Programm stehen. Es gibt eine Vielzahl an C++-Compilern und wir werden in dieser Vorlesung den Compilierungsprozess meist mit dem "Gnu Compiler g++" machen. Für die Installation von diesem und einigen anderen Compilern gibt man den folgenden Befehl in das Linux-Terminal ein: sudo apt-get install build-essential. Es handelt sich bei diesem Installationspaket um die Gnu Compiler Collection.

Die Programmiersprache Python ist normalerweise in einer Ubuntu-Standardinstallation bereits enthalten. Falls nicht, kann man Python 3 einfach mittels des folgenden Befehls installieren: sudo apt-get install python3 Zusätzlich ist es empfohlen, das Standardverwaltungswerkzeug für Python-Module (pip, Pip Installs Python) zu installieren: sudo apt-get install python3-pip Gewöhnlich reicht eine solche Installation um Python Skripte ausführen zu können. Da wir im Laufe der Vorlesung auch sogenannte Python Jupyter Notebooks ausführen möchten, ist es zusätzlich nötig Jupyter zu installieren. Mittels pip ist eine solche Installation mit folgendem Befehl einfach durchzuführen: pip install notebook Weitere, im Laufe der Vorlesung benötigte Python-Module/Bibliotheken kann man auf die gleiche Weise installieren. Die Python Visualisierungsbibliothek matplotlib installiert man z.B. mit pip install matplotlib.

Nutzung von C++ und Python auf den ITP-Rechnern

Wie schon oben erwähnt, sind die Programmiersprachen C++ und Python bereits auf den Rechnern des Instituts für Theoretische Physik installiert und Sie können diese mittels Ihres ITP-Accounts und einer SSH-Verbindung nutzen.

Sie bauen zunächst eine SSH-Verbindung mit einem ITP-Rechner auf und extrahieren das zip-File, wie im vorigen Kapitel Anwendungsbeispiel: Erstellen einer eigenen Internet-Homepage besprochen. Gehen Sie nun mit cd ~/VPROG/C++/ in das Verzeichnis "C++" und listen mit ls die im Ordner befindlichen Dateien (siehe untere linke Abbildung). Man erkennt, dass sich eine Datei HelloWorld.cpp darin befindet. Es handelt sich hierbei um den Quelltext eines C++ Programms, welches wir in der nächsten Vorlesung im Detail besprechen werden und der Inhalt der Datei ist in der linken unteren Abbildung dargestellt.

HelloWorld.cpp
#include <iostream>                           // Ein- und Ausgabebibliothek
using namespace std;                          // Benutze den Namensraum std

int main(){                                   // Hauptfunktion
    cout << "Hallo, du schöne Welt!" << endl; // Ausgabe eines Textes
}

Um zu sehen, was das C++ Programm macht, muss man es zunächst kompilieren; dies macht man mit dem Befehl g++ HelloWorld.cpp Während des Kompilierung-Prozesses wurde eine neue, Datei mit dem Namen "a.out" erzeugt, welche das ausführbare Programm darstellt. Führt man das Programm schließ lich mit dem Befehl ./a.out aus, so erscheint die folgende Ausgabe auf der Shell-Konsole: "Hallo, du schöne Welt!" Man kann sich die Terminalausgabe auch in eine Textdatei (z.B. in "textfile.txt") umleiten lassen, wenn man den folgenden Befehl ausführt: ./a.out > textfile.txt

Gehen Sie nun mit cd ~/VPROG/Python_Skripts/ in das Verzeichnis "Python_Skripts" und listen mit ls die im Ordner befindlichen Dateien (siehe untere linke Abbildung). Man erkennt, dass sich eine Datei HelloWorld.py darin befindet. Es handelt sich hierbei um den Quelltext eines Python Skripts, welches in der linken unteren Abbildung dargestellt ist. Um zu sehen was das Python Skript macht, gibt man den Befehl python3 HelloWorld.py ein und es erscheint die folgende Ausgabe auf der Shell-Konsole: "Hallo, du schöne Welt!"

HelloWorld.py
print("Hallo, du schöne Welt!")

Das sich im Ordner "Jupyter_Notebooks" befindende Datei HelloWorld.ipynb stellt den Quelltext eines Python Jupyter_Notebooks dar, welches wir im nächsten Unterpunkt besprechen.

Jupyter Notebooks und Installation von C++ und Python unter dem eigenen Betriebssystem

Da Jupyter Notebooks eine grafische Benutzeroberfläche benötigen, ist es mittels einer normalen SSH-Verbindung nicht möglich diese Remote zu benutzen. Einen grafischen Remote Login von dem Heimcomputer zu den ITP-Computern ist jedoch möglich (näheres siehe Graphical Remote Login with xrdp). Sie können nun entweder einen solchen Remote Login aufbauen und die Jupyter-Notebooks mittels des Befehles jupyter-notebook starten, oder Sie installieren sich die gesamte Python Umgebung mittels ANACONDA bzw. Miniconda auf ihrem Heimrechner (für Windows und MacOS User empfohlen).

Für das Betriebssystem Windows 10 und 11 kann ein Linux-Betriebssystem ohne groß en Aufwand mittels Windows Subsystem for Linux (WSL) hinzugefügt werden. Die Installation wird hier Windows Subsystem for Linux erläutert. Es wird ein eigenes Dateisystem für Linux erstellt. Standardmäß ig wird Ubuntu zur Verfügung gestellt, was sich gut für den Einstieg eignet. Nun kann im Linux-Subsystem die Einrichtung der Entwicklungsumgebung wie bei einer normalen Installation vorgenommen werden. Aus Windows heraus können auf Dateien im Linuxsystem zugegriffen werden, und umgekehrt. Linux- und Windows-Befehlen lassen sich auß erdem kombinieren.

Haben Sie bereits Linux als Zweitsystem auf Ihrem eigenen Rechner installiert, dann starten Sie das Jupyter Notebbook "HelloWorld" mit dem Befehl jupyter-notebook HelloWorld.ipynb In den Tutorien zu dieser Vorlesung wird auf die oben genannten Punkte noch genauer eingegangen. Die folgende Abbildung zeigt das Jupyter Notebbok "HelloWorld.ipynb".

Weitere Jupyter Notebooks finden Sie z.B. auf den folgenden Seiten:
Allgemeine Relativitätstheorie mit dem Computer
Physik der sozio-ökonomischen Systeme mit dem Computer
Die Installation von C++ und Python auf den Betriebssystemen Windows und MacOS und die Installation von geeigneten Editoren/Entwicklungsumgebung, zum Betrachten und Schreiben von C++ Programmen wird in den Tutorien besprochen. Gerade hinsichtlich der Entwicklungsumgebung ist es ratsam, sich ein individuell passendes Tool auszusuchen. Welches Tools ihr zum Programmieren verwenden wollt, ist euch freigestellt. Theoretisch reichen das Terminal, ein Compiler, ein Texteditor und Jupyter für die Vorlesung aus. Moderne integrierte Entwicklungsumgebungen (IDE) können euch jedoch helfen, Probleme in eurem Code zu erkennen und schneller zu programmieren. Ein Beispiel für eine anfängerfreundliche IDE ist Visual Studio Code. Solche IDEs werden in allen Bereichen von Forschung und Wirtschaft beim Programmieren verwendet, weshalb es sinnvoll ist, sich damit vertraut zu machen. Solltet ihr beim Installieren oder bei der Nutzung auf Probleme stoß en, könnt ihr euch an eure*n Tutor*in wenden.
Am einfachsten ist es, wenn ihr von eurem eigenen Computer/Lapotp entwickelt. Solltet ihr nur ein Windows oder macOS Betriebssystem zur Verfügung haben, müsst ihr zur Nutzung des Terminals ggf. einige Anpassungen vornehmen. Hierzu gibt es sehr viele Tutorials im Internet, eure*euer Tutor*in kann euch hierbei auch behilflich sein. Steht euch kein Computer zur Verfügung, oder ihr möchtet mit einem bereits fertig eingerichteten System arbeiten, so gibt es die Möglichkeit an den PCs im übungsraum zu arbeiten. Diese haben ein Ubuntu-Betriebssystem und alle notwendigen Programme bereits installiert.