Projekte im Sommercamp 2011
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
- Distributed Computing mit MapReduce
- jRobots
- Entwicklung sensor-unterstützter Android Apps
- App Entwicklung mit dem Android SDK
- Shell-Programmierung
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!?
- Die Erklärung des Prinzips "Raytracing".
- Die Vorstellung von POVRAY (Persistence of Vision Raytracer), einem Public-Domain-Raytracer.
- Eine Einführung in die Beschreibungssprache; die Beschreibung einfacher und zusammengesetzter Objekte sowie einfacher Szenen.
- Rekursion als Prinzip in der Informatik und die Verwendung von Rekursion zur Beschreibung von komplexen Objekten.
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?
- Einführung in das MapReduce-Programmiermodell
- Vorstellung der benutzten Programmierwerkzeuge
- Erstellen einfacher MapReduce-Programme
- Einsatz von MapReduce zur Analyse der “Friend-of-a-friend”-Beziehung in sozialen Netzwerken
- Bei Interesse: Ansätze zur Visualisierung / interaktiven Navigation der Ergebnisse
Java- bzw. Programmierkenntnisse
Grundlegende Java-Kenntnisse sind Voraussetzung; alternativ sind auch fortgeschrittene Kenntnisse in anderen Programmiersprachen nutzbar.
jRobots
Worum geht es?
Was wollen wir machen?
- 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.
- 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.
- 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.
Java- bzw. Programmierkenntnisse
Entwicklung sensor-unterstützter Android Apps
Worum geht es?
Was wollen wir machen?
- Einführung in den Umgang mit Google App Inventor anhand eines kleinen Projekts
- Einarbeitung in Eclipse und Android SDK
- 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
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?
- Die Schüler machen sich mit Eclipse und dem SDK bekannt. Das Spiel Mastermind wird erläutert. Gruppen werden gebildet.
- Die grundlegende Klassenstruktur und ein Prototyp der GUI wird erstellt. Verwendung der Touch API.
- 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?
Was wollen wir machen?
- Linux Selbstverständnis (insb. everything is a file) und Dateisystemstruktur
- Einführung in Linux Shells (insb. Bash & Z shell)
- Verwendung von Linux Standardtools (wie z.B. cat, less, more, grep, find, sed, ...)
- Manpages und weitere gute Hilfeseiten
- Grundlagen der Shell Programmierung
Java- bzw. Programmierkenntnisse
keine; wichtig ist Interesse an Betriebssystemen aus dem Unix Umfeld (insb. Linux)