Lehrzeit

Schule & Informatik

Kategorie: Aufgaben (Seite 2 von 32)

Grundwissen 1

Ungefähr 90% der Schüler in der zehnten Klasse haben nie zuvor programmiert oder Java programmiert. Diejenigen, die in JavaScript, C#, C++, Python bereits Erfahrungen gesammelt haben, haben mit dem Lernen von Java kaum Probleme – wenn man mal von ihrer Einstellungen „Das geht aber in der Sprache ….. viel besser.“ absieht. Das Programmiersprachen nicht eindeutig gut oder schlecht sind, ist bei diesen Schülern dann das vorrangige Ziel: Es gibt nur für ein Problem ungeeignete Programmiersprachen.

Für den 90%igen großen Rest ist das Programmieren mit Java oder überhaupt Programmieren auch nach knapp 3 Monaten ein Mysterium, das sich nur langsam lüftet. In der Hoffnung auf mehr Verständnis und schnellerer Selbstständigkeit, habe ich mit meinen Schüler dieses Jahr deswegen gleich mal ein etwas größeres Projekt vorprogrammiert und versucht dabei die Grundlagen für die kommenden Projekte zu legen.

Das Projekt war das Speichern von Hausaufgaben bzw. Freunden. Genaugenommen von 1 Hausaufgabe und 1 Freund. Die Erweiterung auf mehrere Freunde und Hausaufgaben kommt dann beim Einführen von Arrays. Wobei letzteres ja jetzt durch meine 11. Klasse nochmals abgeändert und angepasst wurde.

Im Anschluss an das Vorprogrammieren habe ich dann eine Zusammenfassung „Was du alles wissen musst“ ausgeteilt und habe diese, mit den Schülern nochmals zusammen ausgefüllt. So haben die Schüler nochmals den Stoff reflektiert und schriftlich festgehalten.

bildschirmfoto-2016-12-17-um-10-32-56

Die entsprechende Datei stelle ich hier als Word-Dokument zur Verfügung. Vielleicht mag der ein oder anderen Kollegen die Datei auch Verwenden. Entweder zum gleich Austeilen oder um die Antworten zu entfernen oder die Datei zu erweitern (dann wäre es schön, wenn ich sie wieder bekommen könnte): was-du-bis-jetzt-können-musst

Im Anschluss an die Besprechung haben die Schüler die Aufgabe bekommen, ein kleines Programm zu schreiben mit dem die Oberfläche, Volumen und Kantenlänge eines Quaders berechnet werden kann. Die GUI hatte ich bei diesem Projekt noch vorgegeben: Quader mit GUI  Die einzelnen Aspekte des Programms habe ich als Kommentare hinzugefügt.

Das zweite Projekt ist das gleiche nur mit einer Kugel. Die GUI ist dadurch entsprechend einfach und kann mit dem Java-Editor erstellt werden.

Im nächsten Schritt wird es wieder schwieriger. Jetzt geht es um das Volumen einer Pyramide mit regelmäßigem n-Eck als Grundfläche… und für die besseren Schüler noch in der Variante Pyramidenstumpf und/oder unregelmäßiges n-Eck.

Programmieraufgabe 91

Wie versprochen kommt hier nun eine Programmieraufgabe MIT Lösung – wobei ich schon gar nicht mehr weiß, ob ich diese Aufgabe nicht schon mal gestellt habe..

Aufgabe

Erstelle ein Programm zur Verwaltung der Fahrzeuge auf einer Fähre mit Hilfe der Datenstruktur  Warteschlange. Benutze bei der Implementierung das Kompositum-Entwurfsmuster – keine ArrayLists oä. Achte auf eine Trennung von Struktur und Inhalt.

Weiter soll es eine Methoden geben, die das Gesamtgewicht aller Fahrzeuge durch Ausnutzung der rekursiven Datenstruktur berechnet.

Das zugehörige Klassendiagramm in BlueJ sieht wie folgt aus, allerdings habe ich unnötige Verbindungen in der Darstellung gelöscht, um die prinzipielle Struktur besser hervorzuheben.

fahere

Die Trennung zwischen Struktur und Inhalt (oben und unten) lässt sich gut erkennen und ist ja mit ein Ziel dieses Entwurfmusters.

Selbstverständlich kann man die Aufgabe noch beliebig erweitern:

  • Sitzplätze zählen,
  • Sortieren der Elemente,
  • Suchen von Elementen,
  • Implementierung als Stapel,
  • Gruppieren der Elemente (Clustering) etc.
  • GUI

Und hier nun der versprochen Lösungsansatz ohne Berücksichtigung der Erweiterungsmöglichgkeiten: faehrefinal

Programmieraufgabe 89

So, die erste Schulwoche ist vorüber und nächste Woche bin ich 1 Woche auf Fortbildung zum Thema „Netzwerksicherheit und Datenschutz“. Nachdem wir nun den zweiten iPad-Koffer haben, muss möchte ich mich da einfach fortbilden, um nicht irgendwelche Fallen und Probleme zu übersehen. Regelmäßig SemperVideo zu schauen, hilft zwar, aber ich möchte noch mehr zum Themenbereich Schule wissen.

Damit meine elfte Klasse die Zeit solange nutzen kann, habe ich ihnen die erste Junioraufgabe des aktuellen Bundeswettbewerbs Informatik gegeben: Die Luftballonverpackungsmaschine.

Aufgabe

Aus 10 Fächern, in denen zufäälig zwischen 2  und 20 Luftballons liegen, sollen soviele Fächer ausgewählt werden, dass die Summe möglichst 20 ergibt. Ist 20 nicht möglich, so sollen es möglichst wenige Luftballons sein.

Die Mindestanzahl von 2 ist meine Anpassung, um den Fall, dass sich nicht mindestens 20 Luftballons bilden lassen, auszuschließen. Das halte ich in der Realität zwar für unwahrscheinlich, aber halt nicht für unmöglich. Aber die Aufgabe bezieht sich auf das Öffnen der richtigen Fächer und nicht auf das sinnvolle Befüllen.

Ausnahmsweise habe ich die Lösung schon mal programmiert (Dauer 30 Minuten für einen simplen Ansatz; ca. 2 Stunden für eine komplexere Lösung). Die Ergebnisse sehen dann bei mir so aus:

    Fächer: 20 7 11 16 7 7 10 11 17 10 
    Es lässt sich bilden: 20
    Nach der Entnahme: 0 7 11 16 7 7 10 11 17 10

Oder auch so:

    5 18 11 16 7 7 18 11 17 9 
    20
    5 18 0 16 7 7 18 11 17 0

Hier wurde nun das dritte und letzte Fach kombiniert,

Leider darf ich keinen Lösungshinweis geben. Ich werde aber, wenn es dann irgendwann erlaubt ist und ich es bis dahin nicht vergessen habe, eine Lösung präsentieren.

Ältere Beiträge Neuere Beiträge

© 2017 Lehrzeit

Theme von Anders NorénHoch ↑