Projekte im Sommercamp 2015

Während des Sommercamps arbeiten die Schülerinnen und Schüler in Projektgruppen und bearbeiten unterschiedliche Themen. In einigen Projekten wird in Java programmiert. Hier sind Programmierkenntnisse nützlich. Andere setzen keine speziellen Informatik-Kenntnisse voraus.

Die folgenden Projekte werden im Sommercamp 2015 stattfinden:

Programmierung von Mikrocontrollern mit Arduino

Worum geht es?

Im Allgemeinen geht es um die Programmierung von eingebetteten Systeme. Eingebettete Systeme bezeichnen i.d.R. Systeme die in Geräte oder Anlagen eingebunden sind und dort spezialisierte Aufgaben übernehmen. So ein "Gerät" kann z.B. ein Auto sein das eine Vielzahl einzelner, miteinander verbundener, eingebetteter Systeme enthält. Ein einzelnes eingebettetes System in einem Auto steuert z.B. die Verbrennung des Kraftstoffs und sorgt für eine Fahrt mit geringem Kraftstoffverbrauch. Konkret geht es bei unserem Projekt um die Erfassung von Umgebungsinformationen (z.B. der Raumtemperatur) mit Sensoren, der Verarbeitung von Informationen mit einem Mikrokontroller, der Ausgabe von Informationen an den Benutzer (z.B. über LEDs oder ein Display) und die Ansteuerung von Aktoren (z.B. von Elektromotoren).

Was wollen wir machen?

In diesem Projekt erarbeiten wir uns zunächst die Grundlagen elektronischer Schaltungen und die der Programmierung von Mikrocontrollern. Aufbauend auf diesen Kenntnissen wollen wir gemeinsam ein elektronisches System mit mehreren Komponenten entwickeln, das von einem zentralen Mikrocontroller gesteuert wird.

Nötige Vorkenntnisse

Besondere Vorkenntnisse sind nicht erforderlich, da alle nötigen Kentnisse im Rahmen des Projekts gemeinsam erarbeitet werden. Wichtig ist Spaß am Lösen komplexer Aufgaben.

jRobots

Worum geht es?

Bei jRobots entwickeln die Projektteilnehmer einen Steuerungsalgorithmus für einen Java-Bot. Ziel ist es, den eigenen Bot mit ausgefeilter künstlicher Intelligenz auszustatten, so dass er sich gegen die Bots der anderen Teilnehmer im Wettkampf durchsetzen kann.

Was wollen wir machen?

  1. Die Woche beginnt mit einer Einführung in die objektorientierte Welt von Java. Auch werden geometrische Grundlagen aufgefrischt, die für Wegberechnung und Zielerfassung später wichtig sind.
  2. Nachdem die Kontrollen des jRobots erklärt sind, dürfen die Teilnehmer - in Teams aufgeteilt - ihre ersten Prototypen bauen, die sie immer weiter verfeinern werden.
  3. Während die Teams bisher unabhängig voneinander Steuerungen entwickelt haben, werden sie am Ende der Woche erstmalig im Wettbewerb auf großer Leinwand gegeneinander antreten.

Für die Abschlussveranstaltung ist geplant, alle Teilnehmerbots auf einmal gegeneinander antreten zu lassen.

Entwicklung sensor-unterstützter Android Apps

Worum geht es?

In einem ersten einführenden Schritt wird das Erstellen von Apps nach dem Baukastenprinzip vermittelt - als Entwicklungswerkzeug kommt dabei der Google App Inventor zum Einsatz.

Im Anschluss daran soll eine sensor-unterstützte App entwickelt werden, die den vollen Funktionsumfang des mobilen Gerätes wie Kamera, Beschleunigungssensoren, GPS, Kompass o.ä. ausnutzt. Grundlage hierfür ist der Einsatz der Android SDK unter Eclipse, um flexiblere und mächtigere Programme erstellen zu können.

Was wollen wir machen?

  1. Einführung in den Umgang mit Google App Inventor anhand eines kleinen Projekts
  2. Einarbeitung in Eclipse und Android SDK
  3. Implementierung einer sensor-unterstützten App mit Hilfe von Eclipse und des Android SDK unter Einbeziehung des vollen Funktionsumfangs wie Kamera, Beschleunigungssensoren, GPS, Kompass o.ä.

Java- bzw. Programmierkenntnisse

Für den Umgang mit Google App Inventor sind keine Vorkenntnisse nötig - für das Arbeiten mit Eclipse und der Android SDK sind Grundlagen in Java von Vorteil, aber nicht notwendig.

Java- bzw. Programmierkenntnisse

Grundlagen in Java

“Wo ist der nächste Parkplatz?” Android App

Worum geht es?

Zu Stoßzeiten kann es vorkommen, dass die sieben Parkhäuser in Passau an ihre Grenzen kommen. Die Autofahrer können leider nicht schon beim Start prüfen, ob das Ziel-Parkhaus noch Plätze frei hat. Falls nichts mehr frei sein sollte – mit welcher Wartezeit müssen sie rechnen? Wäre es vielleicht besser, in ein anderes Parkhaus zu fahren? Welches der Parkhäuser liegt meinem Ziel am nächsten? Könnte man gewarnt werden, falls die restliche Anfahrtszeit darauf hindeutet, dass bald keine Parkplätze mehr frei sind? Was wäre überhaupt der kürzeste Weg zum nächsten freien Parkhaus?

Was wollen wir machen?

Wir erstellen in diesem Projekt eine kontext-sensitive Android App, die auf einer Karte anzeigt wie viele Plätze gerade in den Parkhäusern der Umgebung frei sind. Sie soll den Fahrer automatisch warnen, falls mit hoher Wahrscheinlichkeit bei Ankunft kein freier Platz mehr verfügbar wäre. Wenn nichts mehr frei ist, leitet die App den Fahrer einfach in das nächstgelegene Parkhaus mit freien Plätzen um und zeigt die Fahrt- und Parkkosten an.

Was solltest du mitbringen?

Nach diesem Kurs…

Java- bzw. Programmierkenntnisse

… sind wünschenswert, aber nicht zwingend erforderlich.

Virtuelle Welten

Worum geht es?

Raytracing ist eine Methode zur Erzeugung realistischer dreidimensionaler Darstellungen von einzelnen Objekten und ganzen Szenen. Grundlage dafür ist eine Beschreibung der Anordnung von Objekten, Lichtquellen und Kameras sowie des umgebenden Raumes (z. B. Nebel); diese Beschreibung wird dann durch ein automatisches Verfahren (hier das Programm POVRAY) zur Berechnung eines Bildes oder einer Bildfolge (Trickfilm) verwendet. Die Beschreibung erfolgt in einer Sprache, die als Programmiersprache (zum Erstellen eben jener Welten) bezeichnet werden kann.

Was wollen wir machen?

In der Gruppe sollen neben den Grundlagen von Raytracing besonders die dafür verwendeten Beschreibungsmethoden betrachtet werden. Diese bieten neue Ansätze zum Verständnis des Prinzips der Rekursion, einer fundamentalen Methode der Informatik. Natürlich kommt auch der Spaß nicht zu kurz, denn wo sonst hat man die Möglichkeit, die Welt so zu gestalten, wie man es möchte!?

Java- bzw. Programmierkenntnisse

keine