Ursprungsmitteilung
Thema Begrifflichkeiten Funktion (Befehl old fashion) 
Autor Stephan H. 
Eingangsdatum 2019-11-02 13:27:54.0 
Mitteilung Hallo zusammen
Bei der Einführung über Parameter wird leider nicht mehr von Funktionen() gesprochen sondern von Befehlsnamen. Beizeichner einer Funktion ist schon eine Hürde. Ich finde das schade, da für Anfänger eine klare Begrifflichkeit für das Verständnis wichtig sind. Nehmt doch die selben Begriffe. Funktionsbefehl wäre eine Variante aber Befehl tönt sowieso veraltet. Eine Funktion aufrufen und eigene oder allgemeine Funktionen aus einem Katalog aufrufen.
Meine Empfehlung: Den Begriff "Befehl" überall zu ersetzen. Im Script-Bereich ist für mich Befehl ok, da es als isolierter Aufruf dasteht. Aber in einer Programmiersprache wäre es nicht nötig. Bsp. welcher mich in der Ausbildung störte:

Parameter sind Platzhalter .... den Befehlsnamen in einem Klammerpaar an.
def befehlsname(parameter):

Aber Grundsätzlich möchte ich euch einen riesig grossen Dank aussprechen, was ihr hier Aufgebaut habt! Das ist echt GENIAL! 
 
      
Antworten
Thema Begrifflichkeiten Funktion (Befehl old fashion)  
Autor Tobias Kohn 
Eingangsdatum 2019-11-02 17:48:09.0 
Mitteilung Guten Tag Stephan

Vielen Dank erst einmal für das Kompliment. Es freut uns immer sehr, wenn unsere Materialien tatsächlich auch gebraucht werden und Ihr positives Feedback ist sehr motivierend.

Leider ist die Geschichte mit den Begriffen nicht ganz so einfach. So wie Sie jetzt angeben, mit "Funktion" einfach den korrekten Begriff zu verwenden haben uns andere bereits geraten, als korrekten Begriff von "Methode", "Subroutine" oder "Prozedur" zu sprechen. Es herrscht also schon innerhalb der Informatik keine Einigkeit, was die Sache etwas schwierig macht.

Gerade bei "Funktion" kommt dann aber auch noch dazu, dass sich das Konzept von Funktionen im Programmieren massiv vom gleichnamigen Konzept in der Mathematik unterscheidet. Mitunter führt das bei Schülerinnen und Schülern zu (versteckten) Missverständnissen. Es ist uns daher erst recht wichtig, bei der Begrifflichkeit möglichst klar zu unterscheiden zwischen einerseits Anweisungen/Befehlen/Prozeduren, die eine Aktion ausführen, und andererseits Funktionen, die einen "berechneten" Wert zurückgeben. In Python sind natürlich auch solche Prozeduren oder Befehle als Funktionen implementiert und geben einfach `None` zurück. Nur erschien es uns etwas zu weit zu gehen, das gleich von Anfang an zu thematisieren.

Schliesslich gibt es auch noch verschiedene Ansätze, um das Konzept selbst überhaupt einzuführen. Für Vertreter der funktionalen Programmierung steht sowieso das Funktionskonzept mit Rückgabewerten im Vordergrund. Im Bereich der objektorientierten Programmierung geht es um Methoden, Interfaces und das "Verhalten" von Objekten. In der klassischen prozeduralen Programmierung liegt der Fokus auf Subroutinen. Unser Ansatz beruht weitgehend auf dem prozeduralen, wobei wir anstelle von "Prozedur" halt eben eher von "Befehlen" sprechen - das ist nicht intrinsisch besser oder schlechter, sondern einfach einer der möglichen Wege und Ansätze.

Wir möchten Sie aber dazu einladen, das Material zu übernehmen und dabei für Ihre Zwecke die Bezeichnungen einfach so abzuändern, dass sich für Ihren Unterricht eine konsistente und sinnvolle Begrifflichkeit bildet.

Mit herzlichen Grüssen
Tobias Kohn und das TigerJython-Team