Projekte im Sommercamp 2010

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!?

Hier ein kleines Tutorial. Auf dieser Seite finden Sie Infos und Bilder des Projektes Virtuelle Welten aus vorhergehenden Jahren.

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

Verdreht, verrückt, verformt - Erkennung von Objekten mittels Kamera

Worum geht es?

Unser Alltag ist voll von Formen, Farben, Größen, die das menschliche Gehirn automatisch und ohne zu zögern erkennen und zuordnen kann. Diese komplexen Vorgänge laufen völlig unbewusst ab - sei es beim Einkauf im Supermarkt der bloße Blick ins Obstregal, der uns an Hand von Form und Farbe die Früchte im Blickfeld unterscheiden lässt, am Fußballrasen das Erkennen des Balls im Tor oder die Bestimmung von Löchern, Rissen oder Flecken auf Stoffen und Oberflächen. All die genannten Beispiele sind typisch für Bildverarbeitungsaufgaben.

Was wollen wir machen?

In diesem Projekt werden wir die für den Mensch selbstverständlichen Abläufe genauer unter die Lupe nehmen und Bilder am Computer unter den genannten Gesichtspunkten untersuchen. Ziel ist es dabei, nicht nur Art und Lage von Gegenständen unter der Kamera zu erkennen, sondern auch Angaben zu Größe und Richtung machen zu können. Diese Aufgabe ist eine der wichtigsten Fragestellungen in der industriellen Qualitätssicherung.

Java- bzw. Programmierkenntnisse

wenig

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.

Shell-Programmierung

Worum geht es?

In diesem Projekt erlernen die Teilnehmer die Grundlagen im Umgang mit den GNU/Linux Shells (insb. Bash & Z shell). Es werden kleinere Projekte mit Hilfe der Shellprogrammierung umgesetzt und das nötige Wissen vermittelt, um eigene Ideeen verwirklichen zu können.

Was wollen wir machen?

Java- bzw. Programmierkenntnisse

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

Gestenerkennung mittels tragbarer Sensoren

Worum geht es?

In diesem Projekt werden die Grundlagen von Gestenerkennung mittels am Körper tragbarer Beschleunigungssensoren vermittelt. Ziel ist es, eine Steuerung für einfache Spiele (beispielsweise Pong) zu entwerfen, die nicht auf Keyboard- oder Mauseingaben, sondern auf Körpergesten basiert.

Was wollen wir machen?

  1. Einführung in die verwendete Hard- und Software
  2. Grundlagen der Bewegungs- und Gestenerkennung
  3. Umsetzen der erlangten Kenntnisse in eine Spielsteuerung

Programmierkenntnisse

von Vorteil, aber nicht notwendig.

Sortieralgorithmen

Worum geht es?

Ein Sortieralgorithmus ist ein Verfahren, das eine Liste von Objekten gemäß einer gegebenen Ordnung sortiert. Einfaches Beispiel ist das numerische Sortieren natürlicher Zahlen. Sortieralgorithmen gehören zu den grundlegenden Algorithmen, die man im Informatik-Grundstudium erlernt.

Was wollen wir machen?

Wir werden innerhalb einer grafischen Java-Applikation verschiedene Sortieralgorithmen implementieren, visualisieren und diskutieren. Dabei werden wir die bekanntesten Algorithmen auf die einzelnen Teilnehmer aufteilen, so dass jeder seinen eigenen Algorithmus programmieren und präsentieren kann.

Java- bzw. Programmierkenntnisse

Die Teilnehmer sollten schon einmal etwas von Arrays und Schleifen gehört haben (egal, welche Programmiersprache). Ansonsten sind keine Programmierkenntnisse notwendig.