Programmierung - Eine Einleitung

Dieser Beitrag soll dazu dienen, falsche Erwartungen an den Kurs "Grundlagen der Programmierung" auszuräumen.

   Was ist eigentlich ein Programmierer?
   Programmierer vs. Kodierer
   Vergleich mit einer Elektrofirma
   Einstieg in das Thema
   Warum HTML?
   Unterrichtsinhalte
   Wozu brauche ich das?
   Beispiel aus SQL
   Fazit

Was ist eigentlich ein Programmierer?

Fragt man einen ITler, wird man vielleicht so etwas hören:

"Ein Programmierer ist eine biologische Maschine, die Koffein unter Ausschluss von Tageslicht und Sauerstoff in Binärcode umwandelt."

Etwas verständlicher für Nicht-ITler:

"Ein Programmierer ist ein Nerd, der mit einer über den Kopf gezogenen Kapuze und Sonnenbrille in einem dunklen Keller vor einem Bildschirm mit grünen Zahlenkolonnen sitzt und über eine Tastatur unverständliche Dinge eintippt. Er ernährt sich überwiegend von Kaffee und kalter Pizza und vermeidet Frischluft, unnötige Bewegung sowie direktes Sonnenlicht."


 

Und jetzt kommen wir zur Realität:

"Ein Programmierer ist ein Mensch, der sich eine Lösung zu einer Aufgabe oder einem Problem überlegt und die erdachte Lösungsstrategie so eindeutig, präzise und logisch korrekt formuliert, dass ein Computer sie verstehen und umsetzen kann."


 

Es gibt einen deutlichen Unterschied zwischen den weitverbreiteten Klischees und der Realität. Auch wenn das eine oder andere Klischee zufällig doch mal zutrifft.

↑ Nach oben ↑

Programmierer vs. Kodierer

Zum besseren Verständnis müssen wir zwei Begriffe voneinander abgrenzen: Programmierung und Kodierung.

Ein reiner Programmierer benötigt für seine Tätigkeit keine Tastatur, sondern nur ein Blatt Papier und einen Stift. Denn er plant lediglich eine Vorgehensweise, um ein bestimmtes Ziel zu erreichen. Dieser Plan wird auch als Algorithmus bezeichnet, die Darstellung erfolgt oft in grafischer Form.

Die spätere Umsetzung dieses Plans in Programmcode mit der Syntax einer bestimmten Sprache, z.B. Java oder Python, wird als "Kodierung" und die durchführende Person als "Kodierer" bezeichnet.

In der beruflichen Praxis sind diese beiden Tätigkeiten - "Programmierung" und "Kodierung" - üblicherweise in einer Person vereint.

↑ Nach oben ↑

Vergleich mit einer Elektrofirma

Um den Unterschied zwischen diesen beiden Begriffen zu verdeutlichen, stellen wir uns eine Firma vor, die elektronische Geräte herstellt. Dort gibt es einmal die Entwickler, die in einem technischen Büro sitzen und am Zeichenbrett einen Schaltplan entwickeln. Sie geben in dem Plan beispielsweise an, an welchen Stellen einer Platine welche Bauteile eingelötet werden müssen. Den Entwicklern ist wichtig, dass die technischen Daten stimmen. Von welchem Hersteller bestimmte Widerstände oder Kondensatoren kommen, spielt dabei keine Rolle.

In unserem Beispiel entspricht dieser Entwickler einem Programmierer. Sein "Schaltplan" ist die Formulierung oder grafische Darstellung eines Algorithmus. Damit plant er einen Ablauf und legt fest, wie sich ein Programm unter welchen Voraussetzungen verhält und was dann weiter passieren soll.

Gibt der Entwickler der Elektrofirma den fertigen Schaltplan an die Kollegen in der Werkstatt, kann dort ein anderer Mitarbeiter das Gerät ausgehend vom Schaltplan zusammenbauen. Die Bauteile und deren Funktion kennt er und er kann löten. Warum bestimmte Komponenten an bestimmten Stellen verbaut werden sollen, kann ihm theoretisch egal sein. Er setzt nur das um, was er auf dem Plan sieht.

Das entspricht in unserem Beispiel einem Kodierer, der sich mit dem "Wie" und "Warum" auch nicht weiter auseinandersetzen muss. Er kennt die zu benutzende Programmiersprache, liest den auf Papier vorliegenden Algorithmus ab und tippt ihn in Form von Programmcode in den Computer ein.

↑ Nach oben ↑

Einstieg in das Thema

Im Unterricht "Grundlagen der Programmierung", der üblicherweise über zwei Wochen geht, wird nach IHK-Vorgaben ausschließlich die Programmierung behandelt. Die Kodierung ist in diesem Kurs nicht vorgesehen, es wird sich also nur mit der allgemeinen Logik und weniger mit der Syntax einer bestimmten Sprache beschäftigt. Daher ist der Unterricht zunächst einmal rein theoretisch, es werden lediglich Papier und Stifte benötigt.

Es muss darauf hingewiesen werden, dass die Programmieraufgaben in der Abschlussprüfung der IHK auch nur mit Papier und Stift zu lösen sind - ein Computer zum Austesten steht dort ebenfalls nicht zur Verfügung.

Allerdings haben sich die meisten Teilnehmer vor Beginn ihrer Ausbildung noch nie mit der Programmierung beschäftigt, für sie wäre dieser Unterricht sehr trocken. Außerdem können praktische Beispiele den Lerneffekt erhöhen. Daher wird im Unterricht ein wenig von diesen Vorgaben abgewichen.

Am ersten Tag des Kurses gibt es eine Grundeinführung in HTML. Natürlich ist HTML keine Programmiersprache, da man mit ihr weder berechnen noch vergleichen kann. Mit HTML kann man lediglich Webseiten formatieren, mehr nicht. So kann z.B. ein mit HTML abgefragtes Passwort für eine Webseite nicht auf Korrektheit geprüft werden, solange keine zusätzliche Programmiersprache mit eingebunden wird.

↑ Nach oben ↑

Warum HTML?

Einmal wird mit HTML das grundsätzliche Konzept einer Syntax mit festen Regeln verdeutlicht. Was sind Befehle? Was sind Parameter? Was sind Werte? Was sind Tags und Container? Wie beendet man Befehle? Nebenbei wird eine effiziente Fehlersuche erlernt, denn unbeabsichtigte Tippfehler sind durchaus die Regel.

Ein weiterer Grund für die Einbeziehung von HTML in einen Programmierkurs ist, dass HTML-Grundkenntnisse eine wichtige Basis für die nachfolgende Erweiterung um echte Programmiersprachen sind.

Als Programmiersprachen werden im Unterricht clientseitig JavaScript und serverseitig PHP verwendet. Beide sind weitverbreitete, leicht zu lernende Programmiersprachen und beide sind sich in der Syntax relativ ähnlich. Wenn HTML am Ende des ersten Unterrichtstages grundsätzlich bekannt ist, werden am zweiten Tag bis zum Mittag grundlegende Beispiele zur Einbindung von JavaScript und PHP gezeigt. Nur so viel, dass die Auszubildenden später in der Lage sind, die selbstentwickelten einfachen Algorithmen nachträglich in Programmcode umzusetzen. So können die gelösten Aufgaben auf Funktionalität getestet und besser verstanden werden.

Die Einbindung von PHP hat den weiteren Vorteil, dass im späteren Unterricht "Datenbankabfragen mit SQL" neben MS Access auch mal per PHP auf eine webbasierte MySQL-Datenbank zugegriffen werden kann. So lernt man gleich mehrere Datenbanksysteme kennen.

All das wäre ohne die Grundeinführung in HTML nicht möglich.

↑ Nach oben ↑

Unterrichtsinhalte

Nach dieser Kurzeinführung folgen die eigentlichen Inhalte:

Diese Liste ist nur ein Auszug und erhebt keinen Anspruch auf Vollständigkeit. Auch zeigt sie nicht die exakte Reihenfolge der Themen im Unterrichtsverlauf.

Wie man sieht, sind die zwei Wochen dieses Kurses gut mit Inhalten gefüllt. Neben zusätzlichen Übungen bleibt noch ein klein wenig Zeit für etwas Praxis. Es sollte aber klar sein, dass dieser Kurs überwiegend theoretischer Natur ist.

↑ Nach oben ↑

Wozu brauche ich das?

Diese Frage wird im Unterricht regelmäßig gestellt. In dem Zusammenhang fallen dann auch schon mal die nachfolgenden Kommentare:


 

Wer so denkt, sollte sich ernsthaft überlegen, ob der richtige Ausbildungsberuf gewählt wurde.

Zunächst einmal benötigt man die Kenntnisse der Programmiergrundlagen für die Abschlussprüfungen der IHK. Und zwar in allen deutschen IT-Ausbildungsberufen, das gilt sogar für IT-Kaufleute!

In diesem Kurs wird bestimmt niemand zum Programmierer gemacht. In den zwei Wochen werden lediglich die absoluten Grundlagen zum allgemeinen Verständnis der Programmierung vermittelt. Und selbst davon nur ein Bruchteil, der gerade so zum Bestehen der IHK-Prüfung am Ende der Ausbildung nötig ist. Ein echter Programmierkurs wäre deutlich herausfordernder.

Davon abgesehen können die in diesem Kurs erlangten Kenntnisse zum Verständnis an anderen Stellen der Ausbildung beitragen, beispielsweise hier:

Gerade das Beispiel der KI-Benutzung ist erwähnenswert, da die Nutzung dieser noch relativ neuen Technik immer mehr zunimmt. Manch Auszubildender wundert sich nämlich, warum eine KI-Antwort nicht korrekt oder vollständig ist und ahnt nicht, dass es an der Fragestellung und nicht der KI lag.

Grund ist oft ein ungenauer Prompt, also eine nicht logisch korrekt und vollständig formulierte Aufgabe an die KI. Damit das nicht passiert, muss man "wie ein Computer denken". Und genau das lernt man im Programmierkurs.

↑ Nach oben ↑

Beispiel aus SQL

Um das Problem besser zu verstehen, ziehen wir mal ein Beispiel aus dem später folgenden Datenbankkurs heran.

Stellen Sie sich vor, auf Ihrem Tisch liegt eine ausgedruckte Tabelle mit Kundenadressen. Nun stellt man Ihnen die Aufgabe: "Nennen Sie alle Kunden aus Hamburg und Bremen."

Sie wüssten jetzt genau, was zu tun ist und könnten zeitnah die Namen der gewünschten Personen nennen.

Ein Computer könnte das nicht. Er hätte die Anfrage aus mehreren Gründen nicht verstanden.

Zur Erklärung bauen wir die umgangssprachlich formulierte Anfrage in SQL-Syntax um. Sie würde dann lauten:

SELECT * FROM Kunden WHERE „Hamburg“ AND „Bremen“;

Problem 1: Was ist „Hamburg“? Soll das ein Nachname sein? Oder ein Vorname? Oder ein Ort?

Sie als Mensch wissen, dass sich die Formulierung "aus Hamburg" auf den Ort bezieht. Der Computer ist aber "dumm" und kann das nicht wissen. Wir müssen es ihm erklären.

Die SQL-Abfrage müsste nach einer ersten Korrektur so lauten:

 SELECT * FROM Kunden WHERE Ort LIKE "Hamburg" AND "Bremen"; 

Problem 2: Was ist Bremen? Nachname, Vorname, Straße? Theoretisch könnte in Hamburg nach einer Person mit dem Nachnamen "Meier" gesucht werden. Woher soll der Computer also wissen, dass "Bremen" nicht ein Nachname ist?

Mit der nächsten Korrektur wird die Anfrage vervollständigt und damit eindeutiger:

 SELECT * FROM Kunden WHERE Ort LIKE "Hamburg" AND Ort LIKE "Bremen"; 

Problem 3: Noch immer hat der Computer ein Problem. Genauer gesagt hat jetzt nur noch der Benutzer ein Problem, denn der Computer führt den Befehl korrekt aus. Mit der Folge, dass kein einziger Datensatz gezeigt wird. Der Computer wurde nämlich beauftragt, alle Personen aus Hamburg und Bremen anzuzeigen.

Wir Menschen wissen, wie das gemeint ist:

Aber wir haben die beiden Kriterien mit einem UND verknüpft! Das bedeutet für den logisch arbeitenden Computer, dass beide Kriterien GLEICHZEITIG zutreffen müssen! Somit werden nur die Personen ausgegeben, die gleichzeitig in Hamburg und in Bremen wohnen. Aber solche Personen gibt es nicht.

Statt einer UND- muss eine ODER-Verknüpfung verwendet werden:

 SELECT * FROM Kunden WHERE Ort LIKE "Hamburg" OR Ort LIKE "Bremen"; 

Erst jetzt ist alles korrekt formuliert und wir bekämen die gewünschte Ausgabe.

↑ Nach oben ↑

Fazit

Zurück zu uns Menschen. Niemand würde die Aufgabe gegenüber einem anderen Menschen so formulieren:
"Nenne mir alle Informationen von allen Personen aus dem Ort Hamburg oder aus dem Ort Bremen."

Aber genau so eine Vorgehensweise ist für die Arbeit mit Computern - und in besonderem Maße für die Arbeit mit KI-Systemen - unbedingt nötig.

Damit wird hoffentlich deutlich, dass die Grundlagen der Programmierung zur Erlangung eines ausreichenden Logikverständnisses unbedingt nötig sind.

Kurzum: Die Grundlagen der Programmierung sind mehr als nur ein "notwendiges Übel" für die Abschlussprüfung der IHK.

↑ Nach oben ↑