Subversion mit BlueJ, die Fortsetzung

Ich habe vor ein paar Jahren schon mal über Subversion mit BlueJ geschrieben, inzwischen habe ich das mit Schülern weiter erprobt und mit Peter Brichzin einen Workshop dazu auf der INFOS15 gehalten. Subversion: So heißt ein verbreitetetes System, mit dem verschiedene Autoren gleichzeitig an einem aus vielen Dateien bestehenden Progammierprojekt arbeiten können, so dass jeder jeweils die aktuelle Fassung der anderen Teammitglieder zur Verfügung hat. Für den Workshop habe ich eine kleine Broschüre gemacht (ich mag Broschüren), hier ist deren Inhalt, falls mal jemand danach sucht. Teil 1 – Auschecken Teamarbeits-Menü einschalten Bevor man den in BlueJ integrierten SVN-Client benutzen … Continue reading „Subversion mit BlueJ, die Fortsetzung“

Mittlere Mathematik: Audioanalyse & Linktipp zu Fourier-Transformation

Wie es angefangen hat, weiß ich nicht mehr. Irgendwann in der Mitte wollte ich jedenfalls wissen, wie das mit dem automatischen Erkennen von Musikstücken geht – man spielt zehn oder zwanzig Sekunden eines Liedes vor, und das Handy meldet sich danach und sagt einem, von wem das Lied ist und wie es heißt. Beim Googeln stieß ich auf diese phantastische Seite darüber, wie einer genau das in Java nachbaute. Einfach, nachvollziehbar, übersichtlich. Allerdings ist der Code nicht vollständig, das hängt auch mit Drohungen des Marktführers zusammen, das gegen Patente verstoßen werde. Nicht glaubwürdig, aber ich verstehe sehr gut, dass man … Continue reading „Mittlere Mathematik: Audioanalyse & Linktipp zu Fourier-Transformation“

Wer ist wichtig in einem Netz?

In der 11. Klasse beschäftigen sich Schüler in Informatik mit Graphen. Keine Funktionsgraphen, wie man sie aus der Mathematik kennt, sondern Graphen, die aus einem Haufen Knoten bestehen, die durch einen Haufen Kanten mehr oder weniger miteinander verbunden sind. Es geht dabei vor allem darum, Situationen mit Graphen zu modellieren (also: Textaufgaben), und dieses Modell dann mit einem Computer umzusetzen. Nach dem Erzeugen des Graphen sollen die Schüler außerdem einige Methoden programmieren können, die man bei Graphen einsetzen kann. Hier ist ein Beispielgraph: Die Kanten sind der Einfachheit halber ungerichtet, gelten also in beide Richtungen, und ungewichtet, sind also alle … Continue reading „Wer ist wichtig in einem Netz?“

Codefunde, und Programmieranregungen

Zwei Funde aus der letzten Zeit, und beide kurz, quelloffen und verständlich. 1. A Dark Room Ein minimalistisches Spiel, das mit Maus und später ein wenig Tastatur im Browser bedient wird. Nach den ersten Klicks befindet man sich in vertrauter Atmosphäre, ein textbasiertes City-Building-Spiel also, und doch… man beginnt in einem dark room, und muss erst einmal das Feuer anheizen. Eine Fremde kommt in die Hütte, wärmt sich, und stellt sich als builder heraus, die mit dem gesammelten Holz einfache Dinge bauen kann. Nach und nach kommen weitere Wanderer, eine zweite Hütte wird gebaut. Bereits bei den ersten, der interactive … Continue reading „Codefunde, und Programmieranregungen“

Programmierprojekte, Ideen gesucht, und zwei tolle Programme für die Schule

Studierende für das Lehramt Informatik müssen laut Lehramtsprüfungsordnung ein Programmierprojekt vorweisen. Mit diesem zeigen sie, dass Sie selbstständig Prinzipien der Softwareentwicklung anwenden können – Entwicklungsmodelle, Testverfahren, Entwurfsmuster. Inhaltlich kann das alles mögliche sein, solange die Studierenden einen Betreuer für das Projekt finden. Ein potentieller solcher Betreuer bin ich. Ab und zu werde ich auch nach möglichen Themen für solche Programmierprojekte gefragt. Programmieraufträge, die mich interessieren, betreffen hauptsächlich Software, die man irgendwie für die Schule nutzen könnte. Und oft, wenn mir da etwas Schönes einfällt, das es noch nicht gibt und das ein Student in einem Semester programmieren könnte und das … Continue reading „Programmierprojekte, Ideen gesucht, und zwei tolle Programme für die Schule“

Ein Taschenrechner mit Java in der 10. Klasse (1)

Mit meiner 10. Klasse habe ich im ersten Halbjahr einen Taschenrechner programmiert, ziemlich bald, als Einstieg in die Algorithmik, die ich dafür dieses Jahr vorgezogen habe. Als BlueJ-Projekt sieht der Rechner so aus: Objektorientiert programmieren heißt, dass man die Programmieraufgabe auf verschiedene, relativ unabhängige Einheiten verteilt. Der Bauplan für diese Einheiten heißt „Klasse“, und eben diese programmiert man. 1. Die Klasse GUI Die Klasse GUI kann ein guter Schüler machen. Sie übernimmt das, was vom Programm äußerlich sichtbar ist. (GUI steht für Graphical User Interface.) Das ist quasi das Plastik-und-Alu-Gehäuse des Rechners. Den hat ein freiwilliger Schüler schon gleich am … Continue reading „Ein Taschenrechner mit Java in der 10. Klasse (1)“

Interactive Fiction in der Schule

Ich glaube, ich habe da etwas entdeckt, das mir viel Spaß machen wird. Über Text Adventures/Interactive Fiction habe ich ja vor ein paar Tagen geschrieben. Im Englischunterricht habe ich auch schon gelegentlich eine Zork-Stunde eingeschoben, und mit einer Unterstufenklasse, die ich in Informatik und Englisch hatte, habe ich selber mit dem Schreiben experimentiert. Aber da geht noch mehr. Einmal für den Literatur- und Fremdsprachenunterricht. Es gibt tolle Spiele: Manchmal muss man viele Rätsel lösen; bei anderen Spielen geht es darum, das historische New York kennenzulernen. Man schlüpft in die Rollen von Papageien oder Kleinkindern im Krabbelalter, mit entsprechend eingeschränkten Möglichkeiten, … Continue reading „Interactive Fiction in der Schule“

Processing

Bei Zurück in die Schule gefunden: Processing, eine Java-Programmierumgebung, mit der man Bilder erzeugen kann. Processing ist eine Lernumgebung und Einführung in das (Java-)Programmieren. Man kann damit einerseits voll objektorientiert schreiben, andererseits kann man genauso gut ohne Objektkrams die vorhanden Methoden benutzen, deren Überbau wunderschön transparent ist. (Fußnote: Transparent heißt überall anders soviel wie: „Durchsichtig, so dass man ins Innere blicken und die Zusammenhänge verstehen kann.“ In der Informatik heißt transparent allerdings: „Durchsichtig, so dass man hindurchschaut und nichts sieht, also quasi unsichtbar und vor leicht zu verwirrenden Augen verborgen.“) Man kann mit Processing neue Bilder zeichnen oder bestehende Bilder … Continue reading „Processing“

Zustandsautomaten in der 10. Klasse

Erst etwas Theorie, später gibt es etwas zu sehen. In der 10. Klasse entwirft und programmiert man einfache Zustandsautomaten. Die sehen auf dem Papier gerne mal so aus: Der Automat (hier ein Fahrstuhl) kann sich in verschiedenen Zuständen befinden. Er beginnt im Zustand Erdgeschoss (deshalb zeigt da ein Pfeil hin). Es gibt noch zwei weitere Zustände, Keller und 1. Stock. Der Automat kann seinen Zustand ändern, das sind die Pfeile zwischen den Zuständen. Wenn der Automat im Zustand „Erdgeschoss“ ist und die Aktion „Pfeil nach oben drücken“ eintritt, dann springt der Automat in den Zustand „1. Stock“. Es geht aber … Continue reading „Zustandsautomaten in der 10. Klasse“

Programmierprojekt in der Q11

Zum Ende der 11. Jahrgangsstufe müssen die Schüler im Informatik-Kurs an einem Projekt arbeiten. Dabei sollen die im Laufe des Jahres gelernten Datenstrukturen (Listen, Bäume) ebenso verwendet werden wie eine SQL-Datenbank, ansonsten ist man thematisch frei. Vorgeschlagen sind Sachen wie Reiseauskunft oder Kontoverwaltung, meine Schüler wollten etwas anderes machen. Ich hatte zwei Gruppen. Die erste entwickelte ihr Kriegergame weiter, entstanden aus einer einfachen Übung zur Vererbung am Schuljahresanfang. Als Spiel simpel: zwei Rollenspielfiguren rüsten sich aus und hauen dann mit verschiedenen Methoden abwechseln aufeinander ein, bis einer verloren hat. Der Gewinner kriegt Geld und Erfahrungspunkte und kann sich mehr Ausrüstung … Continue reading „Programmierprojekt in der Q11“