Programmieraufgabe: Unterschied zwischen den Versionen

Aus ZUM-Unterrichten
main>Ugh
K (→‎Spiele=: Lunar Lander)
(l)
Markierung: 2017-Quelltext-Bearbeitung
 
(26 dazwischenliegende Versionen von 9 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Sie suchen Ideen, welche Programmieraufgaben Sie ihren Schülern geben können. Unabhängig von der Sprache sind meist die gleichen Aufgaben verwendbar.
'''Programmieraufgaben''' im [[Informatik]]unterricht sind sind zumeist unabhängig von der [[Programmiersprache]] verwendbar.
 
Hier sind einige Ideen für Programmieraufgaben genannt. Weitere Ideen dürfen gerne ergänzt werden.


==Übungen zu algorithmischen Grundelementen==
==Übungen zu algorithmischen Grundelementen==
===Ein- und Ausgabe von Text/Zahlen===
===Ein- und Ausgabe von Text/Zahlen===
* {{wp|wikipedia:de:Wikipedia:Hallo-Welt-Programm|Hallo-Welt-Programm}} - Babylonische Sprachverwirrung in der Ausgabe
 
* mit Variablen: "Hallo Benutzer" - mit Benutzereingabe in Textvariable
*{{wpde|Hallo-Welt-Programm}} - Babylonische Sprachverwirrung in der Ausgabe
* siehe [[Cäsar Chiffre (JavaScript)]]
*mit Variablen: "Hallo Benutzer" - mit Benutzereingabe in Textvariable
*[[JavaScript/Cäsar Chiffre]]


===Variablen===
===Variablen===
* x um 1 erhöhen (x=x+1) - Unterschied Mathe - Informatik
 
* Typkonvertierungen
*x um 1 erhöhen (x=x+1) - Unterschied Mathe - Informatik
*Typkonvertierungen


===if-Abfrage===
===if-Abfrage===
*Mini-Quiz mit fester Anzahl an Fragen
*Mini-Quiz mit fester Anzahl an Fragen
*Berechnung der Lösungen von quadratischen Gleichungen mittels pq-Formel
*Berechnung der Lösungen von quadratischen Gleichungen mittels pq-Formel
::Mittels zweier if-Abfragen wird festgestellt, wie viele Lösungen die Geichungen hat und diese dann ausgegeben.
::Mittels zweier if-Abfragen wird festgestellt, wie viele Lösungen die Geichungen hat und diese dann ausgegeben.


===Schleifen===
===Schleifen===


Lassen Sie von
{{Aufgabe|'''1'''
 
Lasse von
# -100 bis 100 zählen,
# -100 bis 100 zählen,
# nur gerade,
# nur gerade,
# nur ungerade Zahlen,
# nur ungerade Zahlen,
# Mit Modulo (benötigt if, Modulo oder Runden): Zahlenzensur: immer wenn eine Zahl durch 7 teilbar ist, soll PIEP statt der Zahl auf dem Bildschirm erscheinen (Hinweis: Setzen Sie % ein oder lassen Sie eine zweite Variable immer bis 7 zählen).
# Mit Modulo (benötigt if, Modulo oder Runden): Zahlenzensur: immer wenn eine Zahl durch 7 teilbar ist, soll PIEP statt der Zahl auf dem Bildschirm erscheinen (Hinweis: Setze % ein oder lasse eine zweite Variable immer bis 7 zählen).
}}
 
{{Aufgabe|'''2'''
 
Schreibe ein Programm, das dich solange nach der Geheimzahl „123“ fragt, bis sie richtig eingegeben wird. Dann soll auf dem Bildschirm erscheinen: Tresor ist geöffnet.
}}


* Schreiben Sie ein Programm, das Sie solange nach der Geheimzahl „123“ fragt, bis sie richtig eingegeben wird. Dann soll auf dem Bildschirm erscheinen: Tresor ist geöffnet.
{{Aufgabe|'''3'''


Geben Sie von 1 bis zu einer einzugebenden Zahl n alle natürlichen Zahlen und  
Gebe von 1 bis zu einer einzugebenden Zahl n alle natürlichen Zahlen und  
# Ihre Quadrate – (Zahl mit sich selbst multiplizieren! 1,4,9,16…)
# Ihre Quadrate – (Zahl mit sich selbst multiplizieren! 1,4,9,16…)
# Ihre Zweierpotenzen – ( 2,4,8,16,32…)
# Ihre Zweierpotenzen – ( 2,4,8,16,32…)
# Ihre Fakultät (1, 1*2, 1*2*3, 1*2*3*4, …)
# Ihre Fakultät (1, 1*2, 1*2*3, 1*2*3*4, …)
aus.
aus.
}}


* Uhrsimulation: Verschachtelte Schleifen
{{Aufgabe|'''4'''
Uhrsimulation: Verschachtelte Schleifen
}}


====Teilbarkeit und Primzahl====
====Teilbarkeit und Primzahl====
Benötigt Schleifen, Abfragen und abrunden bzw. Modulo
Benötigt Schleifen, Abfragen und abrunden bzw. Modulo
* Teilbarkeit prüfen
 
* Primzahlen bestimmen  
*Teilbarkeit prüfen
* Alle Teiler einer Zahl
*Primzahlen bestimmen
* ggT und kgV bestimmen
*Alle Teiler einer Zahl
* Eukl. Algorithmus
*ggT und kgV bestimmen
*Eukl. Algorithmus


====Große Zahlen====
====Große Zahlen====
Thematisieren: Überlauf und Genauigkeit
Thematisieren: Überlauf und Genauigkeit
* Wer wird Millionär: Zinseszins bis 1 Mio. Euro per Schleife (oder die Abwärtsspirale bei nicht bezahlter Handyrechnung)
 
* Schachbrettaufgabe: Verdoppeln einer Grundzahl nach Schachbrettreislegende
*Wer wird Millionär: Zinseszins bis 1 Mio. Euro per Schleife (oder die Abwärtsspirale bei nicht bezahlter Handyrechnung)
*Schachbrettaufgabe: Verdoppeln einer Grundzahl nach Schachbrettreislegende


====Schleife und Zufallszahl (Würfelbecheraufgaben)====
====Schleife und Zufallszahl (Würfelbecheraufgaben)====
* Lassen Sie so lange die aktuellen x-Werte auf dem Bildschirm ausgeben, bis die 6 gefallen ist. Lassen Sie am Ende anzeigen, wie oft gewürfelt wurde.
 
* Lassen Sie aus 100 x-Werten auszählen, wie oft die 6 vorkam. Wie oft kamen die anderen Zahlen vor?
{{Aufgabe|
* Lassen Sie solange x ausgeben, bis 10mal die 6 gefallen ist.
Lasse so lange die aktuellen x-Werte auf dem Bildschirm ausgeben, bis die 6 gefallen ist. Lasse am Ende anzeigen, wie oft gewürfelt wurde.}}
* Schreiben Sie den "Paschbestimmer". Sie benötigen dazu einen zweiten Würfel.
 
{{Aufgabe|
Lasse aus 100 x-Werten auszählen, wie oft die 6 vorkam. Wie oft kamen die anderen Zahlen vor?
}}
 
{{Aufgabe|
Lasse solange x ausgeben, bis 10-mal die 6 gefallen ist.
}}
 
{{Aufgabe|
Schreibe den "Paschbestimmer". Du benötigst dazu einen zweiten Würfel.
 
Er soll entweder: Kein Pasch oder Pasch ausgeben.
Er soll entweder: Kein Pasch oder Pasch ausgeben.
* Stochastische Feststellung: Kommt die 7 wirklich am häufigsten vor?  
}}
 
{{Aufgabe|
Stochastische Feststellung: Kommt die 7 wirklich am häufigsten vor?  
 
Wenn man mit 2 Würfeln würfelt, so tritt die 7 am häufigsten auf.
Wenn man mit 2 Würfeln würfelt, so tritt die 7 am häufigsten auf.
Wie oft tritt welche Zahl auf, wenn man 100 mal würfelt?
Wie oft tritt welche Zahl auf, wenn man 100 mal würfelt?
}}


====Spiele====
====Spiele====
* Dart: 301 Herunterzählautomat
* Lunar Lander


====KleineProjekte====
*Dart: 301 Herunterzählautomat
* Roulette: Sichere Strategie?! Es wird nur auf Farbe gesetzt. Man verliert nie, wenn man bei jeder Runde, in der man verloren hat, den Einsatz verdoppelt, um so beim ersten richtigen Tipp dann mit dem gewonnenen Geld nach Hause geht. Zeigen Sie: Mit beliebig viel Geld ist man immer irgendwann pleite, wenn man diese Strategie verfolgt. Fachübergreifend: Gesetzt der großen Zahlen (Mathe).
*Lunar Lander
 
====Kleine Projekte====
 
*Roulette: Sichere Strategie?! Es wird nur auf Farbe gesetzt. Man verliert nie, wenn man bei jeder Runde, in der man verloren hat, den Einsatz verdoppelt, um so beim ersten richtigen Tipp dann mit dem gewonnenen Geld nach Hause geht. Zeigen Sie: Mit beliebig viel Geld ist man immer irgendwann pleite, wenn man diese Strategie verfolgt. Fachübergreifend: Gesetz der großen Zahlen (Mathe).


===Funktionen===
===Funktionen===
...




===Rekursion===
...


===Rekursion===
==Idee==
===Rundkurs===
{{Idee|
Aufgabe: Zeichne ein "Objekt" und einen "Rundkurs". Erstelle ein Script, das dein Objekt über den Rundkurs bewegt, ohne diese zu verlassen.
 
Diese Aufgabe kann man z.B. in etwa 3-4 Schulstunden mit blutigen Anfängern (Jahrgangsstufe 5) lösen, wobei die erste Stunde schon mal mit Erkärung/Erforschen der Oberfläche und Malen der Objekte vergeht.}}
 
==Übungen==
{{Idee|Im Folgenden werden mögliche Aufgaben beschrieben, nach denen man eine Unterrichtsreihe ausrichten kann.
;Aufgaben
# Ein- & Ausgabe, Variablen: Hallo Welt, (Variablen), Hallo Benutzername, Addieren zweier Werte, ...
# Variablentypen boolean und integer: Zuweisungen und Ausgaben mit boolean. Wann welche Variable?, ...
# if: Teilbarkeit prüfen (mit MOD), BodyMassIndex, ...
# while: Solange eine bestimmte Zahl nicht genannt ist, fortsetzen; Endlosschleifen und Verhalten des Computers (inkl. Taskmanager), Grafische Spielereien
# Die Schleifen im Vergleich, Primzahlenbestimmung
# Kleines Programmierprojekt mit Einzelprozeduren. 
}}


==Allgemeine Ideen==
==Turtle-Grafik==
==Turtle-Grafik==
Der Vorteil der Turtle-Grafik ist, dass die Programme "hübsche" Ergebnisse liefern und deshalb für die Schüler meist interessanter sind, als einfache Textausgaben. Außerdem sind die Programme leicht am eigenen Körper erlebbar und nachvollziehbar.
* Dreieck
* Viereck
* n-Eck (Benutzereingabe, Schleife, Funktionen mit Parameter-Übergabe)
* Haus vom Nikolaus (Wurzel für Diagonale)
* [http://www.drittereihe.de/projekte/JSTurtleGrafikZorn/03a_Die%20Schnecke.html Schnecke] (Beispiel in JavaScript)
* Spirale


===Mit Rekursion===
*[[Turtle-Grafik]]
* [http://www.zitadelle.juel.nw.schule.de/if/java/tgrafik/Koch.html Kochkurve] Java
 
* Pythagoräische Dreiecke
*[[JavaScript/Von-Neumann-Rechner-Simulation]]
 
==Weblinks==
 
*Eine große Sammlung zu Programmiersprachen unabhängigen Aufgaben (vor allem zu obigen Themen) finden wir auf der Seite [http://www.programmieren-lernen.ch Programmieren lernen] die zum [http://www.ofv.ch/index.php?&ID=bkDet&nr=14505 gleichnamigen Buch] ISBN 978-3-280-04066-9 erschienen ist.
 
*Unter [http://trainyourprogrammer.de/ trainyourprogrammer.de] werden viele Programmieraufgaben mit Lösungen zum Üben angeboten. Jeder kann seine Lösungen hochladen und mit anderen Lösungen vergleichen.


===Weblinks zu Beispielen===
==Siehe auch==
* [http://www.bildung.hessen.de./abereich/inform/skii/material/delphi/rekgraf3.htm Rekursive Grafiken]


== Siehe auch ==
*[[Programmiersprache]]
* [[Informatik]]
*[[Programmierlernumgebung]]
* [[Programmiersprachen]]




[[Kategorie:Informatik]]
[[Kategorie:Informatik]]
[[Kategorie:Programmierlernumgebung]]
[[Kategorie:Programmiersprache]]
[[Kategorie:Programmiersprache]]
[[Kategorie:Unterrichtsidee]]

Aktuelle Version vom 4. Mai 2022, 16:50 Uhr

Programmieraufgaben im Informatikunterricht sind sind zumeist unabhängig von der Programmiersprache verwendbar.

Hier sind einige Ideen für Programmieraufgaben genannt. Weitere Ideen dürfen gerne ergänzt werden.

Übungen zu algorithmischen Grundelementen

Ein- und Ausgabe von Text/Zahlen

Variablen

  • x um 1 erhöhen (x=x+1) - Unterschied Mathe - Informatik
  • Typkonvertierungen

if-Abfrage

  • Mini-Quiz mit fester Anzahl an Fragen
  • Berechnung der Lösungen von quadratischen Gleichungen mittels pq-Formel
Mittels zweier if-Abfragen wird festgestellt, wie viele Lösungen die Geichungen hat und diese dann ausgegeben.

Schleifen

Aufgabe

1

Lasse von

  1. -100 bis 100 zählen,
  2. nur gerade,
  3. nur ungerade Zahlen,
  4. Mit Modulo (benötigt if, Modulo oder Runden): Zahlenzensur: immer wenn eine Zahl durch 7 teilbar ist, soll PIEP statt der Zahl auf dem Bildschirm erscheinen (Hinweis: Setze % ein oder lasse eine zweite Variable immer bis 7 zählen).


Aufgabe

2

Schreibe ein Programm, das dich solange nach der Geheimzahl „123“ fragt, bis sie richtig eingegeben wird. Dann soll auf dem Bildschirm erscheinen: Tresor ist geöffnet.


Aufgabe

3

Gebe von 1 bis zu einer einzugebenden Zahl n alle natürlichen Zahlen und

  1. Ihre Quadrate – (Zahl mit sich selbst multiplizieren! 1,4,9,16…)
  2. Ihre Zweierpotenzen – ( 2,4,8,16,32…)
  3. Ihre Fakultät (1, 1*2, 1*2*3, 1*2*3*4, …)

aus.


Aufgabe

4 Uhrsimulation: Verschachtelte Schleifen

Teilbarkeit und Primzahl

Benötigt Schleifen, Abfragen und abrunden bzw. Modulo

  • Teilbarkeit prüfen
  • Primzahlen bestimmen
  • Alle Teiler einer Zahl
  • ggT und kgV bestimmen
  • Eukl. Algorithmus

Große Zahlen

Thematisieren: Überlauf und Genauigkeit

  • Wer wird Millionär: Zinseszins bis 1 Mio. Euro per Schleife (oder die Abwärtsspirale bei nicht bezahlter Handyrechnung)
  • Schachbrettaufgabe: Verdoppeln einer Grundzahl nach Schachbrettreislegende

Schleife und Zufallszahl (Würfelbecheraufgaben)

Aufgabe
Lasse so lange die aktuellen x-Werte auf dem Bildschirm ausgeben, bis die 6 gefallen ist. Lasse am Ende anzeigen, wie oft gewürfelt wurde.


Aufgabe

Lasse aus 100 x-Werten auszählen, wie oft die 6 vorkam. Wie oft kamen die anderen Zahlen vor?


Aufgabe

Lasse solange x ausgeben, bis 10-mal die 6 gefallen ist.


Aufgabe

Schreibe den "Paschbestimmer". Du benötigst dazu einen zweiten Würfel.

Er soll entweder: Kein Pasch oder Pasch ausgeben.


Aufgabe

Stochastische Feststellung: Kommt die 7 wirklich am häufigsten vor?

Wenn man mit 2 Würfeln würfelt, so tritt die 7 am häufigsten auf.

Wie oft tritt welche Zahl auf, wenn man 100 mal würfelt?

Spiele

  • Dart: 301 Herunterzählautomat
  • Lunar Lander

Kleine Projekte

  • Roulette: Sichere Strategie?! Es wird nur auf Farbe gesetzt. Man verliert nie, wenn man bei jeder Runde, in der man verloren hat, den Einsatz verdoppelt, um so beim ersten richtigen Tipp dann mit dem gewonnenen Geld nach Hause geht. Zeigen Sie: Mit beliebig viel Geld ist man immer irgendwann pleite, wenn man diese Strategie verfolgt. Fachübergreifend: Gesetz der großen Zahlen (Mathe).

Funktionen

...


Rekursion

...

Idee

Rundkurs

Unterrichtsidee

Aufgabe: Zeichne ein "Objekt" und einen "Rundkurs". Erstelle ein Script, das dein Objekt über den Rundkurs bewegt, ohne diese zu verlassen.

Diese Aufgabe kann man z.B. in etwa 3-4 Schulstunden mit blutigen Anfängern (Jahrgangsstufe 5) lösen, wobei die erste Stunde schon mal mit Erkärung/Erforschen der Oberfläche und Malen der Objekte vergeht.


Übungen

Unterrichtsidee

Im Folgenden werden mögliche Aufgaben beschrieben, nach denen man eine Unterrichtsreihe ausrichten kann.

Aufgaben
  1. Ein- & Ausgabe, Variablen: Hallo Welt, (Variablen), Hallo Benutzername, Addieren zweier Werte, ...
  2. Variablentypen boolean und integer: Zuweisungen und Ausgaben mit boolean. Wann welche Variable?, ...
  3. if: Teilbarkeit prüfen (mit MOD), BodyMassIndex, ...
  4. while: Solange eine bestimmte Zahl nicht genannt ist, fortsetzen; Endlosschleifen und Verhalten des Computers (inkl. Taskmanager), Grafische Spielereien
  5. Die Schleifen im Vergleich, Primzahlenbestimmung
  6. Kleines Programmierprojekt mit Einzelprozeduren.


Turtle-Grafik

Weblinks

  • Eine große Sammlung zu Programmiersprachen unabhängigen Aufgaben (vor allem zu obigen Themen) finden wir auf der Seite Programmieren lernen die zum gleichnamigen Buch ISBN 978-3-280-04066-9 erschienen ist.
  • Unter trainyourprogrammer.de werden viele Programmieraufgaben mit Lösungen zum Üben angeboten. Jeder kann seine Lösungen hochladen und mit anderen Lösungen vergleichen.

Siehe auch