Projekte im Sommercamp 2012

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.

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

Distributed Computing mit MapReduce

Worum geht es?

Beim Distributed Computing (auf deutsch: “Verteiltes Rechnen”) geht es um das parallele Rechnen auf mehreren PCs in einem Netzwerk. Ziel ist es, schwierige Aufgaben zu lösen, die auf einem einzelnen Rechner überhaupt nicht oder nur sehr langsam bearbeitet werden können. Der MapReduce-Ansatz ermöglicht dabei, komplexe Algorithmen relativ einfach zu beschreiben und zu implementieren.

Was wollen wir machen?

Java- bzw. Programmierkenntnisse

Grundlegende Java-Kenntnisse sind Voraussetzung; alternativ sind auch fortgeschrittene Kenntnisse in anderen Programmiersprachen nutzbar.

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.

Java- bzw. Programmierkenntnisse

Grundlagen in Java

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.

App Entwicklung mit dem Android SDK

Projektseite mit mehr Informationen

Worum geht es?

Die Projektteilnehmer erlernen grundlegende Techniken im Umgang mit dem Android SDK. Um sich diese anzueignen, wird das bekannte Spiel Mastermind implementiert.

Was wollen wir machen?

  1. Die Schüler machen sich mit Eclipse und dem SDK bekannt. Das Spiel Mastermind wird erläutert. Gruppen werden gebildet.
  2. Die grundlegende Klassenstruktur und ein Prototyp der GUI wird erstellt. Verwendung der Touch API.
  3. Erarbeiten von Lösungsstrategien (AI) und Fertigstellung der Implementierung.

In der Abschlussveranstaltung präsentieren die einzelnen Gruppen ihr Ergebnis.

Java- bzw. Programmierkenntnisse

Grundlagen in Java wünschenswert.

Linux Shell Programmierung

Worum geht es?

Viele komplexe Aufgaben können unter Unix (bzw. Linux) einfach durch die Verknüpfung von GNU Tools und einer Shell (zum Beispiel Bash, Z shell) gelöst werden. In diesem Projekt erlernen die Teilnehmer diese Tools einzusetzen um effizient zu arbeiten.

Was wollen wir machen?

Java- bzw. Programmierkenntnisse

Keine; wichtig ist Interesse an Betriebssystemen aus dem Unix Umfeld (insb. Linux)