Quantcast
Channel: Fabian Deitelhoff » C#
Viewing all articles
Browse latest Browse all 43

AntMe: Ferienworkshop bei der VHS Unna

$
0
0

Neben meinen Bestrebungen, Kindern, Jugendlichen und Erwachsenen den LEGO Mindstorms EV3 in Volkshochschulen näher zu bringen, versuche ich mich auch an Themen, die etwas mehr in Richtung Softwareentwicklung gehen. Natürlich ist das beim LEGO Mindstorms auch der Fall. Denn ohne Programmierung tut sich bei den EV3-Modellen nicht viel bis gar nichts.

Mit etwas mehr Softwareentwicklung meine ich aber hauptsächlich eine andere Sprache. Die grafische Programmierung beim Mindstorms ist recht abstrakt. Mit meinem ersten AntMe-Kurs bei der VHS Unna habe ich die Richtung zu C# und einer gänzlich anderen Aufgabenstellung verschoben. Jetzt geht es mehr um Syntax, gemischt mit ein wenig künstlicher Intelligenz und Schwarmverhalten, sowie um Tools wie Visual Studio und natürlich AntMe an sich.

Der Kurs

Teilgenommen haben fünf junge Menschen im Alter von 10 bis 14 Jahren, wenn ich mich da noch recht erinnere. Alle ohne wesentliche Vorkenntnisse im Bereich der Softwareentwicklung. Weder mit C# noch mit einer anderen Sprache. Einige kannten Scratch, andere hatten schon mit dem LEGO Mindstorms EV3 Erfahrungen sammeln können, was das Umsetzen von Ideen in einen Programmablauf angeht. Manche hatten gar keine Erfahrungen.

VHS-Kurs "Programmieren lernen mit AntMe!"

VHS-Kurs “Programmieren lernen mit AntMe!”

Ein paar Kenntnisse in Richtung Programmablauf oder ähnliches sind natürlich wertvoll, wenn es um die Entwicklung von Algorithmen aller Art geht. Allerdings ist AntMe! so einfach gestaltet, dass die Funktionsweise schnell verstanden wird und somit auch Anfänger keinerlei Probleme bei der Einarbeitung haben.

Der Inhalt

Daher war es keine große Überraschung, dass sich die Teilnehmer zügig mit AntMe! und Visual Studio befassen konnten und auch verstanden haben, worum es geht.

Logo von AntMe!Natürlich ist die Programmierung an sich erst einmal eine kleine Hürde. Alle Zeichen müssen korrekt eingegeben werden und eine Programmiersprache wie C# meckert selbstverständlich auch bei jeder kleinsten Abweichung. Und trotzdem haben sich alle schnell an diese neuen Anforderungen gewöhnt und sie hervorragend gemeistert, nachdem ich ein paar Grundlagen zur Syntax und Visual Studio gezeigt hatte.

Konkret ging es inhaltlich um viele Dinge aus der Informatik beziehungsweise dem Berufsalltag eines Informatikers oder Softwareentwicklers. So festgeschrieben ist das in unserer Branche ja nicht. Einige der Themenschwerpunkte waren: Programmierung, Tools, Automaten, Zustandsdiagramme, analytisches Denken, Lösungskompetenz, sowie Teamarbeit und Kommunikation.

Alle Themen wurden dabei anhand der Ameisen beziehungsweisen deren gewünschten Verhalten eingeführt. Am Anfang habe ich das AntMe! Programm erklärt und zwei, drei Kleinigkeiten vorgeführt, so dass alle verstehen konnten, wie beispielsweise eine Aktion ausgeführt werden kann und wie das mit den Simulationen funktioniert. Danach war aber eigenständiges Arbeiten angesagt. Ich habe hin und wieder Anregungen eingestreut, was die Ameisen noch machen könnten oder wo es Potenzial für Verbesserungen gibt. Allerdings kamen die Teilnehmer schon selbst auf die meisten Verbesserungen. :)

Einer dieser coolen Momente war, als der jüngste Teilnehmer auf den Monitor eines anderen Teilnehmers zeigte und meinte, er hätte dort einen Programmierfehler. Es würde ein “if” fehlen. Gemeint war eine Stelle wie die folgende.

public override void Sieht(Zucker zucker)
{
    GeheZuZiel(zucker);
}

public override void Sieht(Zucker zucker)
{
    if(Ziel == null)
    { 
        GeheZuZiel(zucker);
    }
}

Die zweite Variante ist korrekt, da sich in diesem Fall eine Ameise nur zu einem Zuckerhaufen bewegt, wenn kein Ziel vorhanden ist, also beispielsweise die Ameise nicht schon am Zuckerhaufen ist oder vielleicht sogar einen weiteren sieht. Solche Stolperfallen hatten die Teilnehmer sehr schnell drauf und wussten damit umzugehen. Auch in anderen Situationen. Mit gerade einmal 10 Jahren und nach wenigen Stunden mit C# und AntMe!. :)

Ameisen vs. Ameisen

Am besten gefallen haben mir die kleinen Turniere, die als Jeder gegen Jeden-Simulationen aufgebaut waren. :) Dabei sind alle Ameisenvölker, natürlich auch mein eigenes, über 10.000 Iterationen in drei Durchläufen, gegeneinander angetreten. Danach wurde eine Rangliste anhand der Gesamtpunkte aufgestellt und der letzte musste leider für die nächste Runde aussetzen. So ging es weiter, bis die ersten drei Plätze ermittelt waren.

Nach den drei Durchläufen durften Änderungen am Ameisenvolk vorgenommen werden, um vorhandene Schwächen auszumerzen oder aktuelle Stärken weiter zu verbessern. Meistens haben diese Verbesserungen auch gegriffen und das Ergebnis wurde tatsächlich etwas besser. Ein Denk- oder Programmierfehler hat aber auch so manches Mal etwas ganz anderes verursacht, als das gewünscht war. Wie im echten Leben. 😉

Schwierigkeiten

Schwer finde ich es, Konzepte wie die objektorientierte Programmierung und alles was damit zusammenhängt einzuführen. Beispielsweise Überladung und Vererbung. Alles Konzepte, die AntMe! beziehungsweise die implementierten Ameisen verwenden. Den Grund dafür zu vermitteln finde ich aber durchaus anspruchsvoll. Bis auf Klassen an sich und Methoden habe ich während den beiden Kurstagen auch keinerlei Dinge angesprochen. Ich fand das reichte an Grundlagen aus. Für zukünftige Kurse oder welche mit mehr Zeit, müsste ich mir noch mal etwas dazu überlegen.

Fazit

Mir hat der Kurs viel Spaß gemacht und so wie mir die Teilnehmer Feedback gegeben haben, ihnen auch. :) Ich hoffe ich kann diese Art von Kursen in Zukunft öfters durchführen. Vielleicht auch im Rahmen einer AG oder ähnliches an einer Schule. Denn ich finde AntMe! als Einführung in die Welt der Programmierung/Softwareentwicklung, beziehungsweise allgemein für Informatik-Themen, wirklich sehr gut geeignet.


Viewing all articles
Browse latest Browse all 43

Latest Images





Latest Images