# Setup

Quelle: https://inf.zone/extras/setup/

**Wozu das Ganze?**

Für die Übungen brauchen Sie einen Compiler und die Prüfprogramme von CS50 wie `check50`. Diese Werkzeuge laufen unter Linux. CS50 stellt deshalb eine fertig eingerichtete Umgebung bereit, die Sie über den Editor VS Code bedienen: entweder im Browser, auf einem Rechner von GitHub (Variante 1), oder in einem Container auf Ihrem eigenen Rechner (Variante 2). VS Code sieht in beiden Fällen gleich aus, und die Befehle aus den Übungen funktionieren gleich. Die Einrichtung machen Sie einmal zu Beginn des Semesters.

In Inf-Einf-B verwenden wir eine von Harvard CS50 bereitgestellte, angepasste Umgebung für den Code-Editor Visual Studio Code (VS Code). Es gibt folgende von uns unterstützte Möglichkeiten, um diese Umgebung zu nutzen:

## Variante 1. Online-Nutzung: GitHub Codespaces

**Diese Variante wird für einen unkomplizierten Einstieg empfohlen.** Der CS50-Codespace, mit angepasster Umgebung, kann direkt in einem Browser genutzt werden. Es ist auch möglich, mit einer lokalen VS-Code-Installation auf den CS50-Codespace zuzugreifen. In beiden Fällen ist während der Benutzung von VS Code eine Internetverbindung erforderlich. Außerdem setzt die Nutzung von GitHub Codespaces einen kostenlosen GitHub-Account voraus.

- [>> Zur Anleitung für GitHub Codespaces](https://inf.zone/extras/setup/./codespace-cloud)
- [>> Zur Video-Anleitung für GitHub Codespaces](https://inf.zone/extras/setup/./codespace-cloud-video)

### Backup und Download von Dateien

Wir empfehlen Ihnen, sich von Ihren Dateien regelmäßig Backups zu machen. Dazu laden Sie den Inhalt des Codespaces am besten auf Ihren Rechner herunter.

Die Vorgehensweise erläutern wir unter [Download von Dateien aus dem Codespace](https://inf.zone/extras/setup/codespace-download/).

## Variante 2. Offline-Nutzung: Dev Container

Alternativ lässt sich die CS50-Umgebung mithilfe von Docker auch offline auf dem eigenen Rechner betreiben. In diesem Fall ist nach der Einrichtung zum Programmieren keine Internetverbindung mehr erforderlich (zum Testen mit `check50` und zum Abgeben schon), es wird nichts in der Cloud verarbeitet und es ist kein GitHub-Zugang erforderlich. Unter Windows 11 richtet ein Skript von uns alles Nötige mit einem Befehl ein (nicht unter Windows 10). Falls Ihr Rechner keinen Intel- oder AMD-Prozessor hat (etwa ARM-CPUs wie Apple M1, M2, etc.), können Sie bei dieser Variante den Debugger von VS Code nicht benutzen.

- [>> Zur Anleitung für Dev Container](https://inf.zone/extras/setup/./devcontainer-local)
- [>> Zur Video-Anleitung für Dev Container (Windows)](https://inf.zone/extras/setup/./devcontainer-local-video)

## Abgabewerkzeug `inf`

Ihre Übungen geben Sie im Terminal mit `inf` ab. Es kommt mit der Einrichtung nach einer der beiden Anleitungen, Sie installieren es nicht eigens. Wie Sie damit abgeben: [Abgeben mit `inf`](https://inf.zone/faq/uebung-solutions/#inf-einrichtung).

## Wenn etwas nicht klappt

Bei Problemen mit der Einrichtung müssen Sie nicht allein weitersuchen. Hilfe bekommen Sie zum Beispiel hier:

- **Die Tutorinnen und Tutoren:** Fragen Sie im Tutorium, dort schauen sie sich Ihren Rechner direkt mit an. Oder stellen Sie Ihre Frage anonym über den Knopf unten rechts bzw. eine markierte Stelle in der Anleitung; sie wird dann im Tutorium besprochen.
- **Susi, der Chatbot der Kursseite:** antwortet sofort, über denselben Knopf oder eine markierte Stelle. Fragen Sie am besten von der Seite der Anleitung aus, die Sie gerade befolgen; Susi bekommt diese Seite mit und kennt dann die Schritte.

Wenn Sie schriftlich fragen, an die Tutoren oder an Susi, kopieren Sie Fehlermeldungen wörtlich in Ihre Frage.

## Allgemeine Hinweise

Wir erwarten grundsätzlich, dass Studierende ihre eigenen Rechner verwenden. Besonders hohe Anforderungen an den Laptop gibt es – insbesondere bei der Nutzung von GitHub Codespaces – nicht, solange ein aktuelles Betriebssystem zum Einsatz kommt.

Im Bedarfsfall kann der Lehrstuhl eine kleine Anzahl von Laptops als Leihgeräte zur Verfügung stellen, die während des Kurses oder zur Klausurvorbereitung auch für den Heimgebrauch ausgeliehen werden können. Wenn Sie einen Laptop benötigen, wenden Sie sich bitte an das Lehrstuhl-Team.

In den PC-Pool-Räumen ist die Nutzung der CS50-Umgebung in VS Code nur im Browser über GitHub möglich.
