First LEGO League Junior an der Eule / Zauberschule Informatik

In dieser Woche läuft die Wahlpflichtwoche für alle Schülerinnen und Schüler der zweiten bis vierten Klasse der Grundschule Eulenkrugstraße.

Mit zwei Projekten unterstütze ich dort das Angebot der Schule:

  • Zauberschule Informatik
  • LEGO Forscher

In der Zauberschule Informatik lernen die Kinder spielerisch die Welt der Informatik kennen – und zwar ganz ohne Computer. Das Kursprogramm orientiert sich dabei am gleichnamigen Angebot der RWTH Aachen und den Beispielen der Website Computer Science Unplugged. Die für die Projektwoche erstellten Materialen stelle ich auf Anfrage gerne bereit.

Der zweite Kurs hatte natürlich, wie könnte es auch anders sein, mit LEGO Robotern zu tun. Um es diesmal etwas spannender zu gestalten, habe ich das Team bei der First LEGO League Junior (FLL) angemeldet. Das Thema der Saison 2017/18 ist „Aqua Adventure“. Leider können wir nicht mehr an einer Ausstellung teilnehmen; die letzte fand voriges Wochenende statt. Was nicht heißen soll, dass die Kinder keinen Spaß gehabt hätten.

LEGO-Roboter bauen und programmieren – Workshop in der Bücherhalle Hamburg Volksdorf

Am 5. Januar 2018 findet der Workshop „LEGO Roboter bauen und programmieren“ in der Bücherhalle Hamburg Volksdorf statt. Der Kurs war leider innerhalb kürzester Zeit ausgebucht.

Aufgrund des großen Interesses wird es bestimmt noch einen weiteren Termin dort geben (nach dem Umzug der Bücherhalle).

Flyer "LEGO Roboter bauen und programmieren"

Flyer „LEGO Roboter bauen und programmieren“

Volles Haus auf der Code Week 2017

Am Samstag (7.10.2017) startete die Code Week 2017 in der Zentralbibliothek der Hamburger Bücherhallen. Ich habe mich unter dem Dach der Kids4IT mit einem LEGO WeDo Workshop daran beteiligt. Um 14 Uhr begann der Aufbau und vor der Glastür versammelten sich immer mehr und mehr Kinder und Jugendliche (im gleichen Raum gab es noch einen LEGO Mindstorms Workshop, die Möglichkeit, einen digitalen Blumentopf zu bepflanzen oder einen Internet-Surf-Führerschein zu machen).

Um 14:30 Uhr wurden die Türen aufgemacht und Sekunden später wimmelte es vor neugierig-interessierten Kindern, die sich auch sofort über die Baukästen her machten. Den Plan, die Kinder verschiedene Modelle bauen zu lassen, habe ich sofort verworfen und mich auf das Einführungsmodell (Forschungssonde „Milo“) beschränkt. So konnten nach 20 bis 30 Minuten die nächsten zwei/drei Kinder loslegen. Mein Lob an alle Kinder die dabei waren: Danke, dass ihr den Platz für die nächsten Kinder frei gemacht habt. Es scheint sogar kein LEGO Steinchen verloren gegangen zu sein – schon ein Wunder, wenn man sich die Bilder einmal anschaut. 

Ein Fernsehteam vom NDR Hamburg Journal war ebenfalls da und im Nachrichtenblock gab es dann Abends sogar einen kurzen Beitrag über die Code Week und „Milo“ ist jetzt auch ein richtiger Fernsehstar… ;-). Das ich für ein Interview keine Zeit hatte, hat das Team auch gleich gemerkt. 2 1/2 Stunden und wohl an die 80 Kinder später war ich dann doch schon recht erschöpft. Was für ein Abenteuer! 

P.S.
Der nächste Workshop findet im Rahmen der Devoxx4Kids Ende November statt.

 

 

Milo spielt „Alle meine Entchen“

Wer sagt denn, das „Milo“, der freundliche Roboter aus dem LEGO Education WeDo 2.0 Set nicht auch Musik machen kann?

Mithilfe des von LEGO bereitgestellten SDK lässt sich der Piezo-Player im SmartHub ansprechen und so zum Beispiel dazu bringen, das Kinderlied Alle meine Entchen abzuspielen.

Jeden Tag etwas dazu lernen: Versehentliche Abhängigkeiten erkennen und verhindern (Maven Enforcer Plugin)

Das Enforcer-Plugin von Maven kann sicherstellen, dass bestimmte Abhängigkeiten zu anderen Bibliotheken (jars) nicht in der finalen auszuliefernden Datei landen, zum Beispiel Bibliotheken, die nur für automatisierte Tests benötigt werden.

Beispiel für eine Konfiguration des Plugins:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-enforcer-plugin</artifactId>
  <executions>
    <execution>
      <id>enforce-banned-dependencies</id>
      <goals>
        <goal>enforce</goal>
      </goals>
      <configuration>
        <rules>
          <bannedDependencies>
            <excludes>
              <exclude>junit:*:*:*:compile</exclude>
              <exclude>org.hamcrest:*:*:*:compile</exclude>
              <exclude>org.mockito:*:*:*:compile</exclude>
              <exclude>*:JUnitParams:*:*:compile</exclude>
              <exclude>*:hamcrest-date:*:*:compile</exclude>
              <exclude>*:*:*:test-jar:compile</exclude>
              <exclude>*:snh-commons-test:*:*:compile</exclude>
            </excludes>
          </bannedDependencies>
        </rules>
        <fail>true</fail>
      </configuration>
    </execution>
  </executions>
</plugin>

Diese Konfiguration stellt sicher, dass die gängigen Test-Bibliotheken nicht im produktiven Code verwendet werden.

 

„Milo“ hat Nachwuchs bekommen

Verkleinertes Modell des LEGO-WeDo Roboters "Milo"

Mini-Milo

Hallo!

Darf ich mich vorstellen: Ich bin „Mini-Milo“ der Sohn von meinem Papa „Milo“ (der berühmt-beliebte Roboter aus dem LEGO WeDo 2.0 Set). Ich erkunde gerade die Welt und hab auch schon eine ganz schöne Blume gefunden…

Ich bestehe schon aus 31 handverlesenen LEGO-Steinen und werde bestimmt noch wachsen. Wenn ich groß bin, möchte ich auch so ein toller Roboter wie mein Papa sein!

Code Week 2017

Vom 7. bis 22. Oktober 2017 findet wieder die Code Week statt. Auf der Code Week, die Informatik-Projekte in ganz Europa anbietet, können Kinder und Jugendliche selbst programmieren oder Roboter bauen.

Der kids4IT e.V. wird auch wieder einige Beiträge dazu beisteuern, u.a. wird es am 7. Oktober einen LEGO Education WeDo 2.0 Workshop geben.

Update: Der Workshop findet von 14:30 Uhr bis 17 Uhr in den Bücherhallen Hamburg, Hühnerposten 1, statt. Weitere Informationen gibt es hier.

Code Week Hamburg 2016: Mit dabei, der Teddybär von Larissa (Foto: Sandra Schink, Körber-Stiftung)

Einen Video-Rückblick von der letzten Code Week 2016 gibt es hier.

Unit-Testing: Exceptions testen [Java 8 Update]

In meinem Beitrag Unit-Testing: Exceptions testen habe ich gezeigt, wie sich Exceptions mit JUnit testen lassen, ohne dabei die Teststruktur verändern zu müssen (Arrange-Act-Assert; Given-When-Then) oder zusätzliche Bibliotheken verwenden zu müssen:

@Test
public void methodThrowsException() {
   IllegalArgumentException ex = foo(someIllegalArgument);
   assertThat(ex.getMessage(), is("foobarfoo"));
}

private Exception foo(FooBarFoo fooBarFoo) {
   try {
      subjectUnderTest.foo(someIllegalArgument);
      return null;
   } catch (IllegalArgumentException ex) {
      return ex;
   }
}

Dank Java 8 und Lambdas lässt sich der Code vereinfachen:

@Test
public void methodThrowsException() {
   Exception ex = tryCall(() -> subjectUnderTest.foo(someIllegalArgument));
   assertThat(ex.getMessage(), is("foobarfoo"));
}

private Exception tryCall(Callable<?> callable) {
   try {
      callable.call();
      return null;
   } catch (Exception ex) {
      return ex;
   }
}

Die Vereinfachung besteht nun darin, dass die Methode tryCall in eine Hilfsklasse ausgelagert werden kann – sie ist jetzt unabhängig vom konkreten Testfall.

Veröffentlicht unter Blog | Verschlagwortet mit