Informatik 6: Informatischer Funktionsbegriff: Unterschied zwischen den Versionen
Kleine Zwischenüberschriften vereinheitlicht |
Keine Bearbeitungszusammenfassung |
||
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
← [[Informatik 6. Klasse| | ← [[Informatik 6. Klasse|Zurück zur 6. Klasse]] | ||
<div style="border:1px solid #a2a9b1; background:#f8f9fa; padding:1em; margin:0 0 1.5em 0;"> | |||
'''Worum geht es?''' | |||
Du lernst Funktionen als klar abgegrenzte, wiederverwendbare Teilprogramme mit Eingaben, Verarbeitung und Ergebnissen kennen und setzt sie zur Strukturierung von Programmen ein. | |||
</div> | |||
== | == Lernziele == | ||
Nach diesem Kapitel kannst du: | |||
* den informatischen Funktionsbegriff in eigenen Worten erklären. | * den informatischen Funktionsbegriff in eigenen Worten erklären. | ||
| Zeile 18: | Zeile 23: | ||
* den Nutzen von Funktionen für Übersicht, Ordnung und Wiederverwendung beschreiben. | * den Nutzen von Funktionen für Übersicht, Ordnung und Wiederverwendung beschreiben. | ||
== | === Anschluss an die 5. Klasse === | ||
Variablen, Kontrollstrukturen und Algorithmen sind bekannt. Funktionen helfen dir nun, größere Programme in überschaubare und wiederverwendbare Teile zu gliedern. | |||
== | == Lerninhalte == | ||
=== Kompaktüberblick === | |||
{| class="wikitable" | |||
! Funktionsbestandteil | |||
! Bedeutung | |||
! Beispiel | |||
|- | |||
| Name | |||
| beschreibt die Aufgabe | |||
| berechnePreis | |||
|- | |||
| Parameter | |||
| Eingabewerte | |||
| preis, menge | |||
|- | |||
| Verarbeitung | |||
| Anweisungen innerhalb der Funktion | |||
| preis * menge | |||
|- | |||
| Rückgabewert | |||
| Ergebnis der Funktion | |||
| gesamtpreis | |||
|- | |||
| Aufruf | |||
| Funktion wird verwendet | |||
| berechnePreis(5,3) | |||
|} | |||
= | <div style="border-left:4px solid #36c; background:#f8f9fa; padding:.8em 1em; margin:1em 0;"> | ||
'''Merke:''' Funktionen zerlegen Programme in verständliche, wiederverwendbare Teilaufgaben. | |||
</div> | |||
=== Grundidee einer informatischen Funktion === | |||
Eine informatische Funktion hilft dabei, größere Probleme in kleinere, klar benannte und wiederverwendbare Einheiten zu zerlegen, damit Programme verständlicher, strukturierter und leichter veränderbar werden. | |||
Eine Funktion ist in der Informatik ein klar abgegrenzter Teil eines Programms, der eine bestimmte Aufgabe übernimmt. Sie kann etwa Zahlen addieren, ein Licht einschalten, einen Text prüfen, eine Figur bewegen oder auf einen Tastendruck reagieren. Statt denselben Ablauf immer wieder neu zu schreiben, wird die Aufgabe in einer Funktion zusammengefasst und bei Bedarf erneut aufgerufen. Das macht Programme kürzer, übersichtlicher und besser wartbar. | |||
Beispiele, begruessen(), rechne_summe(), pruefe_passwort(), zeige_meldung(). | |||
=== Funktion als Eingabe, Verarbeitung, Ausgabe === | |||
Die Grundidee einer Funktion lässt sich besonders gut über Eingabe, Verarbeitung und Ausgabe verstehen, weil damit sichtbar wird, dass eine Funktion Informationen aufnimmt, etwas damit macht und anschließend ein Ergebnis oder eine Wirkung erzeugt. | |||
Viele Funktionen | Viele Funktionen folgen vereinfacht dem Muster Eingabe, Verarbeitung, Ausgabe. Eine Funktion erhält Daten oder Auslöser, verarbeitet diese nach festen Regeln und liefert danach ein Ergebnis zurück oder führt eine Wirkung aus. Beispiel: Eine Funktion bekommt zwei Zahlen, addiert sie und gibt die Summe aus. Ein anderes Beispiel: Eine Funktion erhält einen Text, prüft seine Länge und gibt „zu kurz“ oder „passt“ zurück. Auch in Geräten ist dieses Muster sichtbar: Ein Tastendruck wird erkannt, verarbeitet und löst eine Reaktion aus. Beispiele, Taschenrechner, Passwortprüfung, Tastenreaktion, Temperaturanzeige. | ||
=== | === Funktionsdefinition und Funktionsaufruf === | ||
Der Unterschied zwischen dem Festlegen einer Funktion und ihrem späteren Verwenden ist zentral, weil erst dadurch klar wird, dass Funktionen einmal beschrieben und danach mehrfach an verschiedenen Stellen eingesetzt werden können. | |||
Bei der Funktionsdefinition wird festgelegt, was eine Funktion tun soll. Beim Funktionsaufruf wird diese Funktion tatsächlich ausgeführt. In den didaktischen Unterlagen wird genau dieser Unterschied am Beispiel von Funktionen in Python und JavaScript hervorgehoben: Zuerst wird eine Funktion definiert, später wird sie von einer anderen Stelle aus aufgerufen. Lernende sollen erkennen, dass beim Definieren eine gewisse Wahlfreiheit besteht, während der Aufruf an den festgelegten Namen gebunden ist. Beispiele, Funktion festlegen, Funktion starten, Ereignis reagiert, Taste drückt Aktion aus. | |||
=== Namen und Verständlichkeit von Funktionen === | |||
Gute Funktionsnamen sind ein wichtiger Teil informatischen Denkens, weil sie nicht nur technische Ordnung schaffen, sondern auch anderen Menschen sofort zeigen, welche Aufgabe eine Funktion übernimmt. | |||
Ein Funktionsname sollte möglichst klar, passend, eindeutig sein. Namen wie rechne_punkte(), spiele_ton(), oeffne_datei() oder setze_startwert() sind aussagekräftiger als unklare Bezeichnungen wie mach1() oder funktionneu(). In den didaktischen Materialien wird betont, dass die Vergabe desselben Namens für unterschiedliche Funktionen aus didaktischer Sicht ungünstig ist, weil dadurch das Verständnis erschwert wird. Gute Namen helfen deshalb bei Lesbarkeit, Erklärung und Fehlersuche. Beispiele, addiere(), zeichne_kreis(), sende_nachricht(), pruefe_eingabe(). | |||
=== Funktionen mit Eingaben und Ergebnissen === | |||
Viele Funktionen werden besonders anschaulich, wenn sie nicht immer dasselbe tun, sondern mit übergebenen Werten arbeiten und aus diesen Werten ein neues Ergebnis erzeugen. | |||
Eine Funktion kann Parameter oder Eingabewerte erhalten. Diese Werte beeinflussen, was genau berechnet oder ausgeführt wird. Beispiel: Eine Funktion addiere(a,b) arbeitet je nach Zahlenpaar mit anderen Werten. Eine Funktion male_quadrat(farbe) kann dieselbe Grundaufgabe ausführen, aber mit unterschiedlichen Farben. Eine Funktion begruesse(name) gibt je nach Name einen anderen Text aus. So wird sichtbar, dass Funktionen allgemeine Werkzeuge sein können, die auf wechselnde Eingaben reagieren. Beispiele, Zahlen addieren, Namen einsetzen, Farben wechseln, Bewegungen variieren. | |||
=== | === Orientierung auf einen Blick === | ||
{| class="wikitable" | |||
! Ohne Funktion | |||
! Mit Funktion | |||
|- | |||
| Code wird wiederholt | |||
| Code wird einmal definiert | |||
|- | |||
| Änderungen an vielen Stellen | |||
| Änderung an einer Stelle | |||
|- | |||
| lange Abläufe | |||
| übersichtliche Teilaufgaben | |||
|} | |||
=== | === Funktionen ohne Rückgabewert und mit Wirkung === | ||
Nicht jede Funktion muss ein sichtbares Ergebnis als Zahl oder Text zurückgeben, denn manche Funktionen bewirken vor allem eine Aktion im System oder an einem Gerät. | |||
Manche Funktionen berechnen Werte, andere lösen Handlungen aus. Eine Funktion kann ein Licht einschalten, einen Ton abspielen, eine Figur bewegen oder eine Anzeige aktualisieren. In Alltagsgegenständen erfüllen eingebettete Computersysteme ebenfalls bestimmte Funktionen, etwa Navigation, Temperaturregelung oder Erinnerung an Medikamenteneinnahmen. Solche Beispiele helfen zu verstehen, dass eine Funktion nicht nur „rechnet“, sondern allgemein eine klar beschriebene Aufgabe übernimmt. Beispiele, Ton abspielen, Anzeige ändern, Licht schalten, Nachricht senden. | |||
=== | === Funktionen und Wiederverwendung === | ||
Der | Der besondere Nutzen von Funktionen zeigt sich dann, wenn dieselbe Teilaufgabe mehrfach gebraucht wird und nicht jedes Mal neu geschrieben oder erklärt werden muss. | ||
Wiederverwendung bedeutet, dass eine einmal definierte Funktion an mehreren Stellen im Programm erneut eingesetzt werden kann. Das spart Arbeit, vermeidet doppelte Schreibarbeit und erleichtert Änderungen. Muss zum Beispiel die Begrüßung geändert werden, genügt oft eine Anpassung in der Funktion statt an vielen Stellen im Programm. Dasselbe gilt für wiederkehrende Prüfungen, Berechnungen oder Ausgaben. Beispiele, Begrüßung mehrfach nutzen, Spielfigur wiederholt bewegen, Punkte immer gleich berechnen, Meldungen zentral steuern. | |||
=== Funktionen in blockbasierten und textnahen Darstellungen === | |||
Der Funktionsbegriff sollte nicht an eine einzige Programmiersprache gebunden werden, weil dieselbe Grundidee in Blocksprachen, textnahen Notationen und Ereignissystemen unterschiedlich dargestellt, aber ähnlich verstanden werden kann. | |||
In blockbasierten Umgebungen erscheinen Funktionen oft als eigene Blöcke oder benannte Abläufe. In textnahen Sprachen werden sie durch definierende Schreibweisen und spätere Aufrufe sichtbar. Die didaktischen Materialien zum hybriden Arbeiten mit Block-, Python- und JavaScript-Ansichten zeigen, dass Lernende gerade durch den Vergleich der Darstellungen erkennen können, wo eine Funktion definiert und wo sie aufgerufen wird. Dadurch wird der Funktionsbegriff sprachübergreifend verständlich. Beispiele, Scratch-Blöcke, MakeCode, Python-Funktion, JavaScript-Aufruf. | |||
=== Funktionen im Alltag und in digitalen Geräten === | |||
Alltagsnahe Beispiele fördern das Verständnis besonders stark, weil sie zeigen, dass „Funktion“ nicht nur ein Programmierwort ist, sondern auch bei Geräten und digitalen Systemen als gezielte Teilaufgabe verstanden werden kann. | |||
Ein Smartphone nutzt Funktionen für Kamera, Navigation, Nachrichtensenden oder Entsperren. | |||
Eine Smartwatch misst Schritte und Herzfrequenz. Ein intelligenter Medikamentendispenser erinnert an Zeitpunkte und gibt Medikamente nach Plan aus. Solche Beispiele aus den DGB-Unterlagen zeigen, dass Computersysteme in Alltagsgegenständen bestimmte Funktionen erfüllen. Für den informatischen Unterricht ist daran wichtig: Auch in Programmen werden Teilaufgaben als klar beschriebene Funktionen gedacht und umgesetzt. Beispiele, messen, anzeigen, erinnern, navigieren, steuern. | |||
=== | === Abgrenzung zu mathematischen Funktionen === | ||
Ein klares Begriffsverständnis entsteht besser, wenn zwischen mathematischer und informatischer Verwendung unterschieden wird, ohne den Zusammenhang völlig zu trennen. | |||
In der Mathematik beschreibt eine Funktion meist die Zuordnung von einem Wert zu einem anderen Wert. In der Informatik kann eine Funktion ebenfalls Eingaben in Ergebnisse überführen, sie kann aber zusätzlich Aktionen auslösen, Geräte steuern, Texte ausgeben oder Ereignisse verarbeiten. Die mathematische Sicht hilft beim Verstehen von Eingabe und Ergebnis, die informatische Sicht erweitert dies um Ablauf, Wiederverwendung und technische Wirkung. Beispiele, f(x)=2x, Zahl verdoppeln, Text prüfen, Figur bewegen, Ton starten. | |||
=== Warum der Funktionsbegriff informatisch wichtig ist === | |||
=== | |||
Programme werden verständlicher und besser planbar, wenn wiederkehrende oder klar abgrenzbare Teilaufgaben als Funktionen organisiert werden und nicht als lange, unübersichtliche Gesamtabläufe. | |||
Der Funktionsbegriff unterstützt Struktur, Übersicht, Arbeitsteilung, Wiederverwendung, Fehlersuche. Wer ein größeres Programm in kleinere Funktionen gliedert, kann einzelne Teile besser testen und erklären. Auch Teamarbeit wird einfacher, wenn verschiedene Personen an unterschiedlichen Funktionen arbeiten. So verbindet der Funktionsbegriff technisches Denken mit Klarheit der Darstellung. Beispiele, Spielprogramm gliedern, Eingabe trennen, Auswertung trennen, Ausgabe trennen, Fehler gezielt suchen. | |||
=== | === Kurz zusammengefasst === | ||
{| class="wikitable" | |||
! Begriff | |||
! Kern | |||
|- | |||
| Definition | |||
| Funktion wird beschrieben | |||
|- | |||
| Aufruf | |||
| Funktion wird ausgeführt | |||
|- | |||
| Parameter | |||
| Werte werden übergeben | |||
|- | |||
| Rückgabe | |||
| Ergebnis wird geliefert | |||
|} | |||
''' | <div style="border-left:4px solid #fc3; background:#fff9e6; padding:.8em 1em; margin:1em 0;"> | ||
'''Merke:''' Die wichtigsten Zusammenhänge solltest du nicht nur wiedergeben, sondern an einem neuen Beispiel erklären und anwenden können. | |||
</div> | |||
== Weiterführende Links == | |||
* [https://docs.python.org/3/tutorial/controlflow.html#defining-functions Python Functions] | |||
* [https://www.w3schools.com/python/python_functions.asp W3Schools Python Functions] | |||
''' | '''Passende LearningSnacks''' | ||
* [https://www.learningsnacks.de/share/25642 Python 3 - Funktionen] | |||
* [https://www.learningsnacks.de/share/26370 Weißt Du, was eine Funktion ist?] | |||
== Übungen == | |||
Die Aufgaben setzen die Inhalte praktisch um. Bei jeder Aufgabe ist der konkrete Arbeitsauftrag ausdrücklich gekennzeichnet. | |||
=== Funktionen im Alltag entdecken === | |||
''' | '''Ziel/Fokus:''' Begriff, Alltag | ||
'''Arbeitsauftrag:''' Die Lernenden sammeln in Partnerarbeit Funktionen von Alltagsgeräten, etwa fotografieren, navigieren, rechnen, erinnern oder Musik abspielen. Danach ordnen sie jeder Funktion eine mögliche Eingabe, eine Verarbeitung und eine Ausgabe oder Wirkung zu. Anschließend formulieren sie in einem Satz, warum diese Teilaufgabe als Funktion beschrieben werden kann. | |||
'''Material/Beispiele:''' Smartphone, App, Taschenrechner, Kamera, Smartwatch | |||
'''Sicherung/Reflexion:''' Sammlung, Zuordnung | |||
=== Gute und schlechte Funktionsnamen vergleichen === | |||
'''Ziel/Fokus:''' Namen, Verständlichkeit | |||
''' | '''Arbeitsauftrag:''' Die Klasse erhält Karten mit unterschiedlich guten Funktionsnamen. Die Lernenden markieren, welche Namen verständlich und welche unklar sind. Danach verbessern sie unpassende Beispiele und begründen ihre Wahl. Anschließend ordnen sie ausgewählten Namen eine wahrscheinliche Aufgabe zu und prüfen, ob Name und vermutete Funktion zusammenpassen. | ||
'''Material/Beispiele:''' mach1, pruefe_passwort, neu2, addiere_zahlen, starte_spiel | |||
''' | '''Sicherung/Reflexion:''' Vergleich, Merksatz | ||
=== Definition und Aufruf unterscheiden === | |||
''' | '''Ziel/Fokus:''' Definition, Aufruf | ||
'''Arbeitsauftrag:''' Die Lernenden erhalten kleine Beispiele wie begruesse(), male_kreis() oder spiele_ton(). Zuerst markieren sie, wo eine Funktion definiert wird und wo sie nur aufgerufen wird. Danach formulieren sie selbst eine kurze Definition in Alltagssprache und schreiben an zwei anderen Stellen auf, wann diese Funktion aufgerufen werden soll. Abschließend vergleichen sie ihre Zuordnungen. | |||
'''Material/Beispiele:''' Blocksprache, Pseudocode, Funktionskarten | |||
'''Sicherung/Reflexion:''' Unterschied, Anwendung | |||
=== Eingabe, Verarbeitung und Ausgabe zuordnen === | |||
'''Ziel/Fokus:''' EVA, Funktion Material, Vorlagen Name, Zahl, Text, Ergebnis, Wirkung | |||
''' | '''Arbeitsauftrag:''' Die Gruppen bearbeiten Beispiele wie „zwei Zahlen addieren“, „Passwort prüfen“, „Namen begrüßen“ oder „Farbe wechseln“. Zu jeder Funktion notieren sie die Eingabe, beschreiben die Verarbeitung und benennen die Ausgabe oder Wirkung. Danach übertragen sie ein Beispiel in eine kleine Darstellung mit drei Feldern oder Pfeilen. | ||
'''Sicherung/Reflexion:''' Zuordnung, Schema | |||
=== Eine Funktion aus Wiederholungen ableiten === | |||
'''Ziel/Fokus:''' Wiederholung, Nutzen | |||
'''Arbeitsauftrag:''' Die Lernenden erhalten einen kurzen Ablauf mit mehreren gleichen oder sehr ähnlichen Handlungen, etwa dreimal dieselbe Begrüßung oder wiederholtes Bewegen einer Figur. Zunächst markieren sie die Wiederholungen. Danach formulieren sie eine passende Funktion, die diese Teilaufgabe übernimmt, und ersetzen die Wiederholungen durch einen oder mehrere Funktionsaufrufe. Anschließend erklären sie den Vorteil. | |||
'''Material/Beispiele:''' Begruessung, Ton, Bewegung, Ausgabe | |||
''' | '''Sicherung/Reflexion:''' Auslagern, Vereinfachung | ||
=== Funktionen in Blockprogrammen erkennen === | |||
''' | '''Ziel/Fokus:''' Blocksprache, Erkennen | ||
'''Arbeitsauftrag:''' Die Lernenden öffnen ein vorbereitetes Blockprogramm mit benannten Funktionen oder eigenen Blöcken. Sie markieren die Stellen, an denen Funktionen definiert und an denen sie aufgerufen werden. Danach erklären sie in Partnerarbeit, welche Teilaufgabe jeder Block übernimmt und warum diese Aufgabe nicht jedes Mal neu gebaut werden muss. Optional verändern sie einen Funktionsblock und beobachten die Wirkung. | |||
''' | '''Material/Beispiele:''' Scratch, MakeCode, Open Roberta | ||
'''Sicherung/Reflexion:''' Block, Wirkung | |||
=== Eigene einfache Funktionen entwerfen === | |||
'''Ziel/Fokus:''' Entwurf, Eigenleistung Material, Aufgaben Spiel, Begruessung, Rechnen, Zeichnen | |||
'''Arbeitsauftrag:''' Jede Gruppe wählt eine kleine Aufgabe, etwa eine Begrüßung ausgeben, eine Figur springen lassen, zwei Zahlen addieren oder ein Symbol zeichnen. Danach legt sie einen passenden Funktionsnamen fest, beschreibt Eingabe und Ausgabe und formuliert die Funktion in einer einfachen Schrittliste oder Blockstruktur. Anschließend stellt die Gruppe ihre Funktion kurz vor. | |||
'''Sicherung/Reflexion:''' Name, Aufbau | |||
=== Fehlerhafte Funktionen prüfen und verbessern === | |||
'''Ziel/Fokus:''' Fehler, Korrektur | |||
''' | '''Arbeitsauftrag:''' Die Lehrkraft stellt kurze problematische Beispiele bereit, etwa eine Funktion ohne verständlichen Namen, einen Aufruf mit fehlendem Wert oder eine Funktion, deren Ausgabe nicht zum Namen passt. Die Lernenden markieren die Fehler, beschreiben die Folgen und schreiben eine verbesserte Fassung. Danach prüfen sie gemeinsam, ob Name, Aufgabe und Ergebnis nun stimmig sind. | ||
'''Material/Beispiele:''' unklarer Name, falscher Aufruf, fehlende Eingabe, falsche Ausgabe | |||
''' | '''Sicherung/Reflexion:''' Fehlerarten, Verbesserung | ||
=== Funktionen für andere erklären === | |||
''' | '''Ziel/Fokus:''' Erklaeren, Fachsprache | ||
'''Arbeitsauftrag:''' Die Lernenden erstellen in Gruppen ein kurzes Erklärprodukt zu einer einfachen Funktion, etwa begruesse(name), addiere(a,b) oder pruefe_passwort(text). Darin sollen Funktionsname, Aufgabe, Eingabe, Verarbeitung und Ergebnis kurz und verständlich beschrieben werden. Eine andere Gruppe liest oder betrachtet das Produkt und meldet zurück, ob die Erklärung klar genug ist. | |||
'''Material/Beispiele:''' Plakat, Karteikarte, Erklaerblatt, Mini-Poster | |||
'''Sicherung/Reflexion:''' Rueckmeldung, Ueberarbeitung | |||
=== Kurzabfragen und Transfersituationen === | |||
'''Abruf, Transfer | '''Ziel/Fokus:''' Abruf, Transfer | ||
''' | '''Arbeitsauftrag:''' Zum Stundenende beantworten die Lernenden kurze Fragen wie „Was ist eine Funktion?“, „Was unterscheidet Definition und Aufruf?“, „Warum sind gute Namen wichtig?“ oder „Nenne eine Eingabe und eine Ausgabe einer Funktion“. In einer zweiten Runde formulieren sie selbst ein kleines Funktionsbeispiel mit Name und Aufgabe oder ordnen einem Namen eine passende Teilaufgabe zu. | ||
Quiz, Exit-Ticket, Karten, Whiteboard | '''Material/Beispiele:''' Quiz, Exit-Ticket, Karten, Whiteboard | ||
''' | '''Sicherung/Reflexion:''' Lernstand, Festigung | ||
== Kompetenzcheck == | |||
Überprüfe am Ende selbst, ob du die zentralen Kompetenzen dieses Kapitels sicher anwenden kannst: | |||
{| class="wikitable" | |||
! Ich kann … | |||
! Ja | |||
! Noch üben | |||
|- | |||
| den informatischen Funktionsbegriff in eigenen Worten erklären. | |||
| ☐ | |||
| ☐ | |||
|- | |||
| zwischen Alltagssprache, mathematischer Funktion und informatischer Funktion unterscheiden. | |||
| ☐ | |||
| ☐ | |||
|- | |||
| beschreiben, dass Funktionen Teilaufgaben in Programmen übernehmen. | |||
| ☐ | |||
| ☐ | |||
|- | |||
| erklären, dass Funktionen aufgerufen werden können. | |||
| ☐ | |||
| ☐ | |||
|- | |||
| einfache Eingaben, Ausgaben und Ergebnisse einer Funktion benennen. | |||
| ☐ | |||
| ☐ | |||
|- | |||
| den Zusammenhang von Funktion, Verarbeitung und Ergebnis erklären. | |||
| ☐ | |||
| ☐ | |||
|- | |||
| erkennen, dass Funktionen Wiederholungen im Programm vermeiden können. | |||
| ☐ | |||
| ☐ | |||
|- | |||
| einfache Funktionen an Beispielen aus Alltag und Programmierung erläutern. | |||
| ☐ | |||
| ☐ | |||
|- | |||
| Funktionsnamen verständlich und passend formulieren. | |||
| ☐ | |||
| ☐ | |||
|- | |||
| zwischen Funktionsdefinition und Funktionsaufruf unterscheiden. | |||
| ☐ | |||
| ☐ | |||
|- | |||
| einfache Funktionen in Ablaufdarstellungen, Blocksprachen oder textnahen Darstellungen erkennen. | |||
| ☐ | |||
| ☐ | |||
|- | |||
| den Nutzen von Funktionen für Übersicht, Ordnung und Wiederverwendung beschreiben. | |||
| ☐ | |||
| ☐ | |||
|} | |||
[[Kategorie:Informatik | [[Kategorie:Informatik]] | ||
Aktuelle Version vom 15. September 2026, 10:47 Uhr
Worum geht es? Du lernst Funktionen als klar abgegrenzte, wiederverwendbare Teilprogramme mit Eingaben, Verarbeitung und Ergebnissen kennen und setzt sie zur Strukturierung von Programmen ein.
Lernziele
[Bearbeiten]Nach diesem Kapitel kannst du:
- den informatischen Funktionsbegriff in eigenen Worten erklären.
- zwischen Alltagssprache, mathematischer Funktion und informatischer Funktion unterscheiden.
- beschreiben, dass Funktionen Teilaufgaben in Programmen übernehmen.
- erklären, dass Funktionen aufgerufen werden können.
- einfache Eingaben, Ausgaben und Ergebnisse einer Funktion benennen.
- den Zusammenhang von Funktion, Verarbeitung und Ergebnis erklären.
- erkennen, dass Funktionen Wiederholungen im Programm vermeiden können.
- einfache Funktionen an Beispielen aus Alltag und Programmierung erläutern.
- Funktionsnamen verständlich und passend formulieren.
- zwischen Funktionsdefinition und Funktionsaufruf unterscheiden.
- einfache Funktionen in Ablaufdarstellungen, Blocksprachen oder textnahen Darstellungen erkennen.
- den Nutzen von Funktionen für Übersicht, Ordnung und Wiederverwendung beschreiben.
Anschluss an die 5. Klasse
[Bearbeiten]Variablen, Kontrollstrukturen und Algorithmen sind bekannt. Funktionen helfen dir nun, größere Programme in überschaubare und wiederverwendbare Teile zu gliedern.
Lerninhalte
[Bearbeiten]Kompaktüberblick
[Bearbeiten]| Funktionsbestandteil | Bedeutung | Beispiel |
|---|---|---|
| Name | beschreibt die Aufgabe | berechnePreis |
| Parameter | Eingabewerte | preis, menge |
| Verarbeitung | Anweisungen innerhalb der Funktion | preis * menge |
| Rückgabewert | Ergebnis der Funktion | gesamtpreis |
| Aufruf | Funktion wird verwendet | berechnePreis(5,3) |
Merke: Funktionen zerlegen Programme in verständliche, wiederverwendbare Teilaufgaben.
Grundidee einer informatischen Funktion
[Bearbeiten]Eine informatische Funktion hilft dabei, größere Probleme in kleinere, klar benannte und wiederverwendbare Einheiten zu zerlegen, damit Programme verständlicher, strukturierter und leichter veränderbar werden.
Eine Funktion ist in der Informatik ein klar abgegrenzter Teil eines Programms, der eine bestimmte Aufgabe übernimmt. Sie kann etwa Zahlen addieren, ein Licht einschalten, einen Text prüfen, eine Figur bewegen oder auf einen Tastendruck reagieren. Statt denselben Ablauf immer wieder neu zu schreiben, wird die Aufgabe in einer Funktion zusammengefasst und bei Bedarf erneut aufgerufen. Das macht Programme kürzer, übersichtlicher und besser wartbar.
Beispiele, begruessen(), rechne_summe(), pruefe_passwort(), zeige_meldung().
Funktion als Eingabe, Verarbeitung, Ausgabe
[Bearbeiten]Die Grundidee einer Funktion lässt sich besonders gut über Eingabe, Verarbeitung und Ausgabe verstehen, weil damit sichtbar wird, dass eine Funktion Informationen aufnimmt, etwas damit macht und anschließend ein Ergebnis oder eine Wirkung erzeugt.
Viele Funktionen folgen vereinfacht dem Muster Eingabe, Verarbeitung, Ausgabe. Eine Funktion erhält Daten oder Auslöser, verarbeitet diese nach festen Regeln und liefert danach ein Ergebnis zurück oder führt eine Wirkung aus. Beispiel: Eine Funktion bekommt zwei Zahlen, addiert sie und gibt die Summe aus. Ein anderes Beispiel: Eine Funktion erhält einen Text, prüft seine Länge und gibt „zu kurz“ oder „passt“ zurück. Auch in Geräten ist dieses Muster sichtbar: Ein Tastendruck wird erkannt, verarbeitet und löst eine Reaktion aus. Beispiele, Taschenrechner, Passwortprüfung, Tastenreaktion, Temperaturanzeige.
Funktionsdefinition und Funktionsaufruf
[Bearbeiten]Der Unterschied zwischen dem Festlegen einer Funktion und ihrem späteren Verwenden ist zentral, weil erst dadurch klar wird, dass Funktionen einmal beschrieben und danach mehrfach an verschiedenen Stellen eingesetzt werden können.
Bei der Funktionsdefinition wird festgelegt, was eine Funktion tun soll. Beim Funktionsaufruf wird diese Funktion tatsächlich ausgeführt. In den didaktischen Unterlagen wird genau dieser Unterschied am Beispiel von Funktionen in Python und JavaScript hervorgehoben: Zuerst wird eine Funktion definiert, später wird sie von einer anderen Stelle aus aufgerufen. Lernende sollen erkennen, dass beim Definieren eine gewisse Wahlfreiheit besteht, während der Aufruf an den festgelegten Namen gebunden ist. Beispiele, Funktion festlegen, Funktion starten, Ereignis reagiert, Taste drückt Aktion aus.
Namen und Verständlichkeit von Funktionen
[Bearbeiten]Gute Funktionsnamen sind ein wichtiger Teil informatischen Denkens, weil sie nicht nur technische Ordnung schaffen, sondern auch anderen Menschen sofort zeigen, welche Aufgabe eine Funktion übernimmt.
Ein Funktionsname sollte möglichst klar, passend, eindeutig sein. Namen wie rechne_punkte(), spiele_ton(), oeffne_datei() oder setze_startwert() sind aussagekräftiger als unklare Bezeichnungen wie mach1() oder funktionneu(). In den didaktischen Materialien wird betont, dass die Vergabe desselben Namens für unterschiedliche Funktionen aus didaktischer Sicht ungünstig ist, weil dadurch das Verständnis erschwert wird. Gute Namen helfen deshalb bei Lesbarkeit, Erklärung und Fehlersuche. Beispiele, addiere(), zeichne_kreis(), sende_nachricht(), pruefe_eingabe().
Funktionen mit Eingaben und Ergebnissen
[Bearbeiten]Viele Funktionen werden besonders anschaulich, wenn sie nicht immer dasselbe tun, sondern mit übergebenen Werten arbeiten und aus diesen Werten ein neues Ergebnis erzeugen.
Eine Funktion kann Parameter oder Eingabewerte erhalten. Diese Werte beeinflussen, was genau berechnet oder ausgeführt wird. Beispiel: Eine Funktion addiere(a,b) arbeitet je nach Zahlenpaar mit anderen Werten. Eine Funktion male_quadrat(farbe) kann dieselbe Grundaufgabe ausführen, aber mit unterschiedlichen Farben. Eine Funktion begruesse(name) gibt je nach Name einen anderen Text aus. So wird sichtbar, dass Funktionen allgemeine Werkzeuge sein können, die auf wechselnde Eingaben reagieren. Beispiele, Zahlen addieren, Namen einsetzen, Farben wechseln, Bewegungen variieren.
Orientierung auf einen Blick
[Bearbeiten]| Ohne Funktion | Mit Funktion |
|---|---|
| Code wird wiederholt | Code wird einmal definiert |
| Änderungen an vielen Stellen | Änderung an einer Stelle |
| lange Abläufe | übersichtliche Teilaufgaben |
Funktionen ohne Rückgabewert und mit Wirkung
[Bearbeiten]Nicht jede Funktion muss ein sichtbares Ergebnis als Zahl oder Text zurückgeben, denn manche Funktionen bewirken vor allem eine Aktion im System oder an einem Gerät.
Manche Funktionen berechnen Werte, andere lösen Handlungen aus. Eine Funktion kann ein Licht einschalten, einen Ton abspielen, eine Figur bewegen oder eine Anzeige aktualisieren. In Alltagsgegenständen erfüllen eingebettete Computersysteme ebenfalls bestimmte Funktionen, etwa Navigation, Temperaturregelung oder Erinnerung an Medikamenteneinnahmen. Solche Beispiele helfen zu verstehen, dass eine Funktion nicht nur „rechnet“, sondern allgemein eine klar beschriebene Aufgabe übernimmt. Beispiele, Ton abspielen, Anzeige ändern, Licht schalten, Nachricht senden.
Funktionen und Wiederverwendung
[Bearbeiten]Der besondere Nutzen von Funktionen zeigt sich dann, wenn dieselbe Teilaufgabe mehrfach gebraucht wird und nicht jedes Mal neu geschrieben oder erklärt werden muss.
Wiederverwendung bedeutet, dass eine einmal definierte Funktion an mehreren Stellen im Programm erneut eingesetzt werden kann. Das spart Arbeit, vermeidet doppelte Schreibarbeit und erleichtert Änderungen. Muss zum Beispiel die Begrüßung geändert werden, genügt oft eine Anpassung in der Funktion statt an vielen Stellen im Programm. Dasselbe gilt für wiederkehrende Prüfungen, Berechnungen oder Ausgaben. Beispiele, Begrüßung mehrfach nutzen, Spielfigur wiederholt bewegen, Punkte immer gleich berechnen, Meldungen zentral steuern.
Funktionen in blockbasierten und textnahen Darstellungen
[Bearbeiten]Der Funktionsbegriff sollte nicht an eine einzige Programmiersprache gebunden werden, weil dieselbe Grundidee in Blocksprachen, textnahen Notationen und Ereignissystemen unterschiedlich dargestellt, aber ähnlich verstanden werden kann.
In blockbasierten Umgebungen erscheinen Funktionen oft als eigene Blöcke oder benannte Abläufe. In textnahen Sprachen werden sie durch definierende Schreibweisen und spätere Aufrufe sichtbar. Die didaktischen Materialien zum hybriden Arbeiten mit Block-, Python- und JavaScript-Ansichten zeigen, dass Lernende gerade durch den Vergleich der Darstellungen erkennen können, wo eine Funktion definiert und wo sie aufgerufen wird. Dadurch wird der Funktionsbegriff sprachübergreifend verständlich. Beispiele, Scratch-Blöcke, MakeCode, Python-Funktion, JavaScript-Aufruf.
Funktionen im Alltag und in digitalen Geräten
[Bearbeiten]Alltagsnahe Beispiele fördern das Verständnis besonders stark, weil sie zeigen, dass „Funktion“ nicht nur ein Programmierwort ist, sondern auch bei Geräten und digitalen Systemen als gezielte Teilaufgabe verstanden werden kann.
Ein Smartphone nutzt Funktionen für Kamera, Navigation, Nachrichtensenden oder Entsperren.
Eine Smartwatch misst Schritte und Herzfrequenz. Ein intelligenter Medikamentendispenser erinnert an Zeitpunkte und gibt Medikamente nach Plan aus. Solche Beispiele aus den DGB-Unterlagen zeigen, dass Computersysteme in Alltagsgegenständen bestimmte Funktionen erfüllen. Für den informatischen Unterricht ist daran wichtig: Auch in Programmen werden Teilaufgaben als klar beschriebene Funktionen gedacht und umgesetzt. Beispiele, messen, anzeigen, erinnern, navigieren, steuern.
Abgrenzung zu mathematischen Funktionen
[Bearbeiten]Ein klares Begriffsverständnis entsteht besser, wenn zwischen mathematischer und informatischer Verwendung unterschieden wird, ohne den Zusammenhang völlig zu trennen.
In der Mathematik beschreibt eine Funktion meist die Zuordnung von einem Wert zu einem anderen Wert. In der Informatik kann eine Funktion ebenfalls Eingaben in Ergebnisse überführen, sie kann aber zusätzlich Aktionen auslösen, Geräte steuern, Texte ausgeben oder Ereignisse verarbeiten. Die mathematische Sicht hilft beim Verstehen von Eingabe und Ergebnis, die informatische Sicht erweitert dies um Ablauf, Wiederverwendung und technische Wirkung. Beispiele, f(x)=2x, Zahl verdoppeln, Text prüfen, Figur bewegen, Ton starten.
Warum der Funktionsbegriff informatisch wichtig ist
[Bearbeiten]Programme werden verständlicher und besser planbar, wenn wiederkehrende oder klar abgrenzbare Teilaufgaben als Funktionen organisiert werden und nicht als lange, unübersichtliche Gesamtabläufe.
Der Funktionsbegriff unterstützt Struktur, Übersicht, Arbeitsteilung, Wiederverwendung, Fehlersuche. Wer ein größeres Programm in kleinere Funktionen gliedert, kann einzelne Teile besser testen und erklären. Auch Teamarbeit wird einfacher, wenn verschiedene Personen an unterschiedlichen Funktionen arbeiten. So verbindet der Funktionsbegriff technisches Denken mit Klarheit der Darstellung. Beispiele, Spielprogramm gliedern, Eingabe trennen, Auswertung trennen, Ausgabe trennen, Fehler gezielt suchen.
Kurz zusammengefasst
[Bearbeiten]| Begriff | Kern |
|---|---|
| Definition | Funktion wird beschrieben |
| Aufruf | Funktion wird ausgeführt |
| Parameter | Werte werden übergeben |
| Rückgabe | Ergebnis wird geliefert |
Merke: Die wichtigsten Zusammenhänge solltest du nicht nur wiedergeben, sondern an einem neuen Beispiel erklären und anwenden können.
Weiterführende Links
[Bearbeiten]Passende LearningSnacks
Übungen
[Bearbeiten]Die Aufgaben setzen die Inhalte praktisch um. Bei jeder Aufgabe ist der konkrete Arbeitsauftrag ausdrücklich gekennzeichnet.
Funktionen im Alltag entdecken
[Bearbeiten]Ziel/Fokus: Begriff, Alltag
Arbeitsauftrag: Die Lernenden sammeln in Partnerarbeit Funktionen von Alltagsgeräten, etwa fotografieren, navigieren, rechnen, erinnern oder Musik abspielen. Danach ordnen sie jeder Funktion eine mögliche Eingabe, eine Verarbeitung und eine Ausgabe oder Wirkung zu. Anschließend formulieren sie in einem Satz, warum diese Teilaufgabe als Funktion beschrieben werden kann.
Material/Beispiele: Smartphone, App, Taschenrechner, Kamera, Smartwatch
Sicherung/Reflexion: Sammlung, Zuordnung
Gute und schlechte Funktionsnamen vergleichen
[Bearbeiten]Ziel/Fokus: Namen, Verständlichkeit
Arbeitsauftrag: Die Klasse erhält Karten mit unterschiedlich guten Funktionsnamen. Die Lernenden markieren, welche Namen verständlich und welche unklar sind. Danach verbessern sie unpassende Beispiele und begründen ihre Wahl. Anschließend ordnen sie ausgewählten Namen eine wahrscheinliche Aufgabe zu und prüfen, ob Name und vermutete Funktion zusammenpassen.
Material/Beispiele: mach1, pruefe_passwort, neu2, addiere_zahlen, starte_spiel
Sicherung/Reflexion: Vergleich, Merksatz
Definition und Aufruf unterscheiden
[Bearbeiten]Ziel/Fokus: Definition, Aufruf
Arbeitsauftrag: Die Lernenden erhalten kleine Beispiele wie begruesse(), male_kreis() oder spiele_ton(). Zuerst markieren sie, wo eine Funktion definiert wird und wo sie nur aufgerufen wird. Danach formulieren sie selbst eine kurze Definition in Alltagssprache und schreiben an zwei anderen Stellen auf, wann diese Funktion aufgerufen werden soll. Abschließend vergleichen sie ihre Zuordnungen.
Material/Beispiele: Blocksprache, Pseudocode, Funktionskarten
Sicherung/Reflexion: Unterschied, Anwendung
Eingabe, Verarbeitung und Ausgabe zuordnen
[Bearbeiten]Ziel/Fokus: EVA, Funktion Material, Vorlagen Name, Zahl, Text, Ergebnis, Wirkung
Arbeitsauftrag: Die Gruppen bearbeiten Beispiele wie „zwei Zahlen addieren“, „Passwort prüfen“, „Namen begrüßen“ oder „Farbe wechseln“. Zu jeder Funktion notieren sie die Eingabe, beschreiben die Verarbeitung und benennen die Ausgabe oder Wirkung. Danach übertragen sie ein Beispiel in eine kleine Darstellung mit drei Feldern oder Pfeilen.
Sicherung/Reflexion: Zuordnung, Schema
Eine Funktion aus Wiederholungen ableiten
[Bearbeiten]Ziel/Fokus: Wiederholung, Nutzen
Arbeitsauftrag: Die Lernenden erhalten einen kurzen Ablauf mit mehreren gleichen oder sehr ähnlichen Handlungen, etwa dreimal dieselbe Begrüßung oder wiederholtes Bewegen einer Figur. Zunächst markieren sie die Wiederholungen. Danach formulieren sie eine passende Funktion, die diese Teilaufgabe übernimmt, und ersetzen die Wiederholungen durch einen oder mehrere Funktionsaufrufe. Anschließend erklären sie den Vorteil.
Material/Beispiele: Begruessung, Ton, Bewegung, Ausgabe
Sicherung/Reflexion: Auslagern, Vereinfachung
Funktionen in Blockprogrammen erkennen
[Bearbeiten]Ziel/Fokus: Blocksprache, Erkennen
Arbeitsauftrag: Die Lernenden öffnen ein vorbereitetes Blockprogramm mit benannten Funktionen oder eigenen Blöcken. Sie markieren die Stellen, an denen Funktionen definiert und an denen sie aufgerufen werden. Danach erklären sie in Partnerarbeit, welche Teilaufgabe jeder Block übernimmt und warum diese Aufgabe nicht jedes Mal neu gebaut werden muss. Optional verändern sie einen Funktionsblock und beobachten die Wirkung.
Material/Beispiele: Scratch, MakeCode, Open Roberta
Sicherung/Reflexion: Block, Wirkung
Eigene einfache Funktionen entwerfen
[Bearbeiten]Ziel/Fokus: Entwurf, Eigenleistung Material, Aufgaben Spiel, Begruessung, Rechnen, Zeichnen
Arbeitsauftrag: Jede Gruppe wählt eine kleine Aufgabe, etwa eine Begrüßung ausgeben, eine Figur springen lassen, zwei Zahlen addieren oder ein Symbol zeichnen. Danach legt sie einen passenden Funktionsnamen fest, beschreibt Eingabe und Ausgabe und formuliert die Funktion in einer einfachen Schrittliste oder Blockstruktur. Anschließend stellt die Gruppe ihre Funktion kurz vor.
Sicherung/Reflexion: Name, Aufbau
Fehlerhafte Funktionen prüfen und verbessern
[Bearbeiten]Ziel/Fokus: Fehler, Korrektur
Arbeitsauftrag: Die Lehrkraft stellt kurze problematische Beispiele bereit, etwa eine Funktion ohne verständlichen Namen, einen Aufruf mit fehlendem Wert oder eine Funktion, deren Ausgabe nicht zum Namen passt. Die Lernenden markieren die Fehler, beschreiben die Folgen und schreiben eine verbesserte Fassung. Danach prüfen sie gemeinsam, ob Name, Aufgabe und Ergebnis nun stimmig sind.
Material/Beispiele: unklarer Name, falscher Aufruf, fehlende Eingabe, falsche Ausgabe
Sicherung/Reflexion: Fehlerarten, Verbesserung
Funktionen für andere erklären
[Bearbeiten]Ziel/Fokus: Erklaeren, Fachsprache
Arbeitsauftrag: Die Lernenden erstellen in Gruppen ein kurzes Erklärprodukt zu einer einfachen Funktion, etwa begruesse(name), addiere(a,b) oder pruefe_passwort(text). Darin sollen Funktionsname, Aufgabe, Eingabe, Verarbeitung und Ergebnis kurz und verständlich beschrieben werden. Eine andere Gruppe liest oder betrachtet das Produkt und meldet zurück, ob die Erklärung klar genug ist.
Material/Beispiele: Plakat, Karteikarte, Erklaerblatt, Mini-Poster
Sicherung/Reflexion: Rueckmeldung, Ueberarbeitung
Kurzabfragen und Transfersituationen
[Bearbeiten]Ziel/Fokus: Abruf, Transfer
Arbeitsauftrag: Zum Stundenende beantworten die Lernenden kurze Fragen wie „Was ist eine Funktion?“, „Was unterscheidet Definition und Aufruf?“, „Warum sind gute Namen wichtig?“ oder „Nenne eine Eingabe und eine Ausgabe einer Funktion“. In einer zweiten Runde formulieren sie selbst ein kleines Funktionsbeispiel mit Name und Aufgabe oder ordnen einem Namen eine passende Teilaufgabe zu.
Material/Beispiele: Quiz, Exit-Ticket, Karten, Whiteboard
Sicherung/Reflexion: Lernstand, Festigung
Kompetenzcheck
[Bearbeiten]Überprüfe am Ende selbst, ob du die zentralen Kompetenzen dieses Kapitels sicher anwenden kannst:
| Ich kann … | Ja | Noch üben |
|---|---|---|
| den informatischen Funktionsbegriff in eigenen Worten erklären. | ☐ | ☐ |
| zwischen Alltagssprache, mathematischer Funktion und informatischer Funktion unterscheiden. | ☐ | ☐ |
| beschreiben, dass Funktionen Teilaufgaben in Programmen übernehmen. | ☐ | ☐ |
| erklären, dass Funktionen aufgerufen werden können. | ☐ | ☐ |
| einfache Eingaben, Ausgaben und Ergebnisse einer Funktion benennen. | ☐ | ☐ |
| den Zusammenhang von Funktion, Verarbeitung und Ergebnis erklären. | ☐ | ☐ |
| erkennen, dass Funktionen Wiederholungen im Programm vermeiden können. | ☐ | ☐ |
| einfache Funktionen an Beispielen aus Alltag und Programmierung erläutern. | ☐ | ☐ |
| Funktionsnamen verständlich und passend formulieren. | ☐ | ☐ |
| zwischen Funktionsdefinition und Funktionsaufruf unterscheiden. | ☐ | ☐ |
| einfache Funktionen in Ablaufdarstellungen, Blocksprachen oder textnahen Darstellungen erkennen. | ☐ | ☐ |
| den Nutzen von Funktionen für Übersicht, Ordnung und Wiederverwendung beschreiben. | ☐ | ☐ |