Pseudocode in der Abschlussprüfung

In letzter Zeit habe ich von vielen Prüflingen die Frage gestellt bekommen, ob ich nicht eine Einführung in das Schreiben von Pseudocode geben könnte. Ich frage dann immer direkt zurück, was denn so schwierig an Pseudocode sei. Wie ich bereits in einem anderen Artikel erklärt habe, würde ich für die Programmieraufgaben in der Abschlussprüfung immer Pseudocode verwenden und niemals Struktogramme oder Programmablaufpläne. Die Diagramme sind meist deutlich aufwändiger zu erstellen und bei Fehlern sehr schwer zu korrigieren. Mit Pseudocode ist das deutlich einfacher. Dennoch scheinen viele Azubis Probleme mit Pseudocode zu haben.

Standards

Ehrlich gesagt habe ich mich noch nie intensiv mit Pseudocode auseinandergesetzt. Erst in der Mail eines Zuhörers habe ich erfahren, dass es sogar Standards für Pseudocode gibt (z.B. Jana, Pascal-Style oder nach Leierson, siehe Pseudocode). Ich habe weder in meiner eigenen Prüfung noch in der Prüfungsvorbereitung mit meinen Azubis das Thema Pseudocode jemals intensiv behandelt. Ich empfehle immer, anstatt sich eine eigene Syntax für den Pseudocode auszudenken, einfach normalen Code in der Prüfung zu schreiben.

Da es für Pseudocode keine allgemeinverbindlichen Vorgaben in der Prüfung gibt, kannst du auch einfach „echten“ Quellcode in irgendeiner Programmiersprache verwenden. Wichtig ist, dass die Prüfer verstehen, was du erreichen möchtest. Im Zweifel verstehen Prüfer das mit einer echten Programmiersprache sogar besser, als wenn du erzwungenen Pseudocode, den du dir selbst ausgedacht hast, verwendest.

Meine Empfehlung

Um dir die Arbeit etwas zu erleichtern, lass einfach alle geschweiften Klammern weg. Auch sonstige Syntaxelemente wie Semikolons am Ende der Zeile sind überflüssig. Achte darauf, dass dein Programm gut zu verstehen ist und überfrachte den wenigen Platz, den du auf dem Lösungsbogen zur Verfügung hast, nicht mit Textelementen, die zur eigentlichen Logik nichts beitragen.

Fokussiere dich stattdessen darauf, die gestellte Aufgabe zu lösen, also den Algorithmus abzubilden. Niemand interessiert sich in der Prüfung dafür, ob du die Syntax einer Programmiersprache beherrschst. Das ist nur Handwerkszeug. Deine eigentliche Fähigkeit, die du unter Beweis stellen musst, ist das Lösen von Problemen.

Ich bringe meinen Auszubildenden die Programmierung meist erstmal bei, indem sie Aufgaben auf Papier lösen sollen. Wenn du z.B. nicht einmal mit einem Bleistift auf einem Blatt Papier die Quadratwurzel einer Zahl berechnen kannst, wie willst du es dann einem Computer beibringen? Du musst das Problem verstanden haben, und wissen, wie man es lösen kann. Wenn du diesen Algorithmus in deinem Kopf hast, kannst du ihn auch in ein Programm überführen. Die konkrete Syntax, mit der du dies tust, ist dann irrelevant. Und darum geht es in der Prüfung.

Meine ganz einfache Empfehlung ist also: Benutze Java, und lass alle unnötigen Elemente weg. Also Klammern, Semikolons und so weiter. Aber achte auf eine korrekte Einrückung!

Beispiel

Aus diesem echten Java-Programm:

public int berechneAlter(Date datum, Date geburtsdatum)
{
    int alter = datum.getYear() - geburtsdatum.getYear();
    if (datum.getMonth() < geburtsdatum.getMonth())
    {
        alter--;
    }
    else
    {
        if (datum.getMonth() == geburtsdatum.getMonth())
        {
            if (datum.getDay() < geburtsdatum.getDay())
            {
                alter--;
            }
        }
    }
    return alter;
}

Wird dieser „Pseudocode“:

int berechneAlter d, g
    alter = d.year - g.year
    if d.month < g.month
        alter--
    else
        if d.month == g.month
            if d.day < g.day
                alter--
    return alter

Das könnte schon fast als Ruby-Code durchgehen 😉

Fazit

Da Pseudocode nicht standardisiert ist, kannst du in der Abschlussprüfung irgendeine Programmiersprache verwenden, die dir gut bekannt ist und in der du dich wohlfühlst. Konzentriere dich auf das Lösen des Problems und die nachvollziehbare Beschreibung deiner Problemlösung. Dann werden die Prüfer dir alle notwendigen Punkte geben.


Welche Form wirst du in der Abschlussprüfung verwenden? Setzt du auf Pseudocode oder wirst du eine Programmiersprache nutzen? Hast du vielleicht noch Tipps für eine Einführung in das Thema Pseudocode? Ich würde mich über deinen Kommentar freuen.

Weitere Hilfen zur IHK-Prüfung

Du suchst noch mehr Tipps rund um die Vorbereitung auf die schriftliche IHK-Prüfung? Dann schau doch mal in diese Artikel- und Podcast-Kategorie: Alle Artikel rund um die schriftliche IHK-Prüfung.

Und kennst du schon meine Übungsaufgaben für die Abschlussprüfung? Unter dieperfekteihkpruefung.de kannst du sie herunterladen.

Polyglot Clean Code Developer
About the Author
Ausbildungsleiter für Fachinformatiker Anwendungsentwicklung und Systemintegration, IHK-Prüfer und Hochschuldozent für Programmierung und Software-Engineering.

6 comments on “Pseudocode in der Abschlussprüfung

  1. Christoph Dietrich sagt:

    Hallo,

    Ersteinmal vielen Dank, für das was Sie tun, Ihre Websetie hilft mir sehr bei der Vorbereitung auf die Abschlussprüfung dieses Jahr!

    Mir ist jedoch aufgefallen, dass auf der Webseite der IHK Darmstadt Rhein Main Neckar ziemlich klar geschrieben steht, dass man keine echte Programmiersprache nutzen darf.

    „Nur für Fachinformatiker/-innen Anwendungsentwicklung:
    Wenn in einer Aufgabenstellung der Ganzheitlichen Aufgabe I eine Programmierung gefordert ist, darf keine Programmiersprache verwendet werden. Die Lösung ist in UML oder Pseudocode darzustellen.“
    Quelle: https://www.darmstadt.ihk.de/produktmarken/aus_und_weiterbildung_channel/pruefungen/downloads/Muther/IT_Hinweise_Teil_A/2551066

    Ist diese Regel je nach IHK unterschiedlich? mich verwirrt das ganze jetzt etwas…

    Grüße

  2. Stefan Macke sagt:

    Hallo Christoph,

    interessant! Höre ich zum ersten Mal! 🙂 Danke für den Link!

    Die Frage ist doch: Was ist überhaupt Pseudocode? Dafür gibt es keinen Standard! Also gilt meiner Meinung nach alles, was einen Programmablauf strukturiert beschreibt, als Pseudocode. Und wenn du bei deiner Lieblingsprogrammiersprache die unnötigen Klammern und Semikolons weglässt, hast du doch schon Pseudocode! Wenn du magst, kannst du die Befehle ja noch auf Deutsch übersetzen, damit es auf keinen Fall nach einer echten Programmiersprache aussieht. 😉

    Viele Grüße!
    Stefan

  3. York-Victor Reith sagt:

    Ich nehme an, dass vom Prüfer nicht erwartet werden kann, dass er sämtliche Programmiersprachen (mit Syntax und Schlüsselbezeichnungen) beherrscht, weshalb zur Darstellung der Programmierlogik „allgemein verständlicher“ Pseudocode gefordert wird.

    Beste Grüße

    YVR

  4. Stefan Macke sagt:

    Da stimme ich dir zu. Ich denke aber nicht, dass ein Prüfling Exoten wie LISP oder Prolog verwenden würde, sondern eher C-ähnliche Sprachen wie Java, C#, PHP usw. Und die sollte jeder Prüfer verstehen können. Denn die eingebauten abstrakten Funktionen, die ggfs. seltsame Namen haben (PHP lässt grüßen), dürfen in den IHK-Aufgaben meist eh nicht verwendet werden, weil genau diese in den Aufgaben nachprogrammiert werden sollen, z.B. String.contains(), oder Array.sort().

  5. Ich bin auch IHK Prüfer in Bremen und mir geht es darum, dass ich im Code erkenne wie der Prüfling an den Algorithmus rangegangen ist. In der Prüfungsvorbereitung empfehle ich das gleiche wie Stefan Macke und fordere auf mehr Begriffe wie:
    – solange i kleiner 15
    – Iteriere über das Array
    etc. zu benutzen. Das zeigt deutlicher das Ansinnen unabhängig einer konkreten Programmiersprache. Wir akzeptieren aber auch Lösungen, die in einer konkreten Programmiersprache geschrieben sind, wenn es C-Syntax ist 🙂

  6. Stefan Macke sagt:

    wenn es C-Syntax ist

    Sehr schön! 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax