Einführung in die Programmierung

Die Programmierung ist eine entscheidende Fähigkeit in der modernen Welt, die es uns ermöglicht, Softwarelösungen zu entwickeln, die in nahezu jedem Aspekt unseres täglichen Lebens und unserer Arbeit Anwendung finden. Dieser Kurs führt Sie in die Grundlagen der Programmierung ein und deckt verschiedene Programmierparadigmen sowie wichtige Konzepte und Werkzeuge ab.

Zu Beginn werden wir die Grundlagen verstehen und dann praktische Programmieraufgaben durchführen, beginnend mit einer einfachen Übung in Scratch.

Beachten Sie: Bei der Lösung der Aufgaben dürfen Sie gerne generative KI-Tools einsetzen, um neue Ideen zu generieren oder Ihre Ansätze zu verbessern. Empfohlene Plattformen hierfür sind ChatGPT, Perplexity AI, und Blackbox AI.

Scratch-Aufgabe 1: Hallo Welt

Erstellen Sie ein Scratch-Projekt, in dem eine Katze "Hallo Welt!" auf dem Bildschirm anzeigt, wenn auf sie geklickt wird. Dies wird Ihnen helfen, die interaktive Umgebung von Scratch kennenzulernen und die Grundlagen der Ereignishandhabung in einer einfachen Programmiersprache zu verstehen.

Programmierparadigmen

Programmierparadigmen bieten unterschiedliche Ansätze zur Strukturierung und Ausführung von Programmen. Sie beeinflussen die Art und Weise, wie Software entwickelt wird, und haben direkte Auswirkungen auf die Effizienz und Verständlichkeit des Codes.

Dieser Abschnitt führt die wichtigsten Paradigmen ein, wie imperatives und deklaratives Programmieren, und diskutiert deren Vor- und Nachteile.

Deklarative und Imperative Programmierparadigmen

Quelle: ionos.de

Imperatives Programmieren (Prozedural, Strukturiert)

Im imperativen Paradigma gibt der Programmierer explizite Anweisungen, was der Computer tun soll. Jeder Schritt ist eine direkte Anweisung an den Computer, um bestimmte Operationen in einer bestimmten Reihenfolge auszuführen.

Beispiel in Scratch: Ein Scratch-Projekt, das eine Schleife verwendet, um eine Figur zehnmal über den Bildschirm zu bewegen, illustriert imperatives Programmieren. Der Code könnte so aussehen: "Wiederhole 10 mal: Bewege Figur um 10 Schritte".

Deklaratives Programmieren (Funktional, Logikbasiert)

Das deklarative Paradigma konzentriert sich darauf, was das Programm tun soll, ohne genau zu beschreiben, wie es zu tun ist. Der Programmierer schreibt Ausdrücke, um das gewünschte Ergebnis zu definieren, ohne die Schritte explizit zu steuern.

Beispiel in Scratch: Ein Scratch-Projekt, das zufällige Muster generiert, könnte deklaratives Programmieren illustrieren. Anstatt jede Linie und Form explizit zu definieren, könnte der Code eine Funktion nutzen, die zufällige Elemente und ihre Platzierungen generiert, wie z.B. "Erzeuge zufällige Linien mit zufälligen Farben auf dem Bildschirm".

Scratch-Aufgabe 2: Imperative Erweiterung

Erweitern Sie ihr Scratch-Projekt, sodass die Katze mit den Pfeiltasten (links, rechts) steuerbar ist.Berührt die Katze den Bildschirmrand, soll die Katze ein Aussage (bspw.: "Verloren!") machen und (automatisch) zum Ausgangspunkt zurückkehren.

Grundkonzepte der Programmierung

Um effektiv programmieren zu können, ist es wichtig, die Grundkonzepte zu verstehen, die allen Programmiersprachen gemeinsam sind. Diese umfassen Algorithmen, Variablen, Datentypen und Operatoren.

Scratch-Aufgabe 3: Programmierung einer einfachen Rechenoperation

Erweitern Sie ihr Scratch-Projekt so, das es zwei Zahlen vom Benutzer annimmt, diese Zahlen addiert und das Ergebnis auf dem Bildschirm anzeigt. Dies wird Ihnen helfen, das Konzept der Variablen, Datentypen und mathematischen Operatoren in einer einfachen Umgebung zu verstehen.

Entwicklungsphasen eines Programms

Die Entwicklung eines Programms erfolgt in mehreren Phasen. Jede Phase ist entscheidend für den Erfolg des Projekts und stellt sicher, dass das Programm korrekt, effizient und wartbar ist.

Wasserfallmodell Softwareentwicklung

Quelle: bildungsbibel.de

Compilieren vs. Interpretieren

In der Programmierung gibt es zwei Hauptmethoden, um den Quellcode eines Programms auszuführen: Compilieren und Interpretieren. Beide Methoden haben ihre eigenen Vor- und Nachteile und sind in unterschiedlichen Kontexten nützlich.

Compiler vs Interpreter

Quelle: guru99.com

Compilieren

Beim Compilieren wird der gesamte Quellcode eines Programms in Maschinensprache übersetzt, bevor das Programm ausgeführt wird. Diese übersetzte Datei kann dann direkt vom Computer ausgeführt werden.

Vorteile des Kompilierens:

Nachteile des Kompilierens:

Interpretieren

Beim Interpretieren wird der Quellcode eines Programms Zeile für Zeile zur Laufzeit übersetzt und ausgeführt. Der Interpreter liest jede Zeile des Quellcodes, übersetzt sie in Maschinensprache und führt sie dann aus.

Vorteile des Interpretierens:

Nachteile des Interpretierens:

Programmierwerkzeuge und Umgebungen

Programmierwerkzeuge und -umgebungen sind entscheidend für den Entwicklungsprozess. Sie bieten Unterstützung bei der Codebearbeitung, dem Debugging, der Versionskontrolle und vielem mehr.

Image from Medium

Quelle: medium.com