TeachingSS05CPP

Chair for Computer Aided Medical Procedures & Augmented Reality
Lehrstuhl für Informatikanwendungen in der Medizin & Augmented Reality

Graphikprogrammierung in C++

von Nassir Navab & Marco Feuerstein & Stefan Wiesner

Leider sind alle Plätze belegt!

Typ: Programmierpraktikum Grundstudium
Generelle Studienplaneinordnung: BS-INF WA ab 2, INF. prakt. WP ab 2
Vorbesprechung: Dienstag, 01. Februar 05, 15:00 Uhr (MI02.13.008) - Anwesenheitspflicht für alle Teilnehmer.
ECTS: 6 Credits
Wöchentliches Treffen: Di 16:00-18:00 Uhr MI 02.13.010
Erstes Treffen: Di 12.04.2005, 16:00 Uhr s.t., MI 02.13.010

grand_canyon.jpg grand_canyon2.jpg

Inhalt

C++: Programmer's Weapon of Choice. Insbesondere auf dem Gebiet der Computer Graphik (Game Programming, etc.) wird die Prgrammiersprache C++ der Alternative Java in jedem Fall vorgezogen. In diesem Praktikum wird grundlegendes Wissen zur Programmierung mit C++ vermittelt. Alle Beispielaufgaben für das Praktikum kommen aus dem Gebiet Computer Grafik und Computer Vision. Für die Bearbeitung und Implementierungen werden Teams zu je zwei bis drei Personen gebildet. Die Aufgaben werden mit GNU Compiler Collection (g++,gcc) bearbeitet.
Das Praktikum ist in zwei Abschnitte unterteilt.
Im ersten Abschnitt werden grundlegende Konzepte der C++ Programiersprache, OpenGL und Team Based Software Engineering behandelt. Themen hierbei sind
  1. Präprozessor
  2. der C++ Compiler
  3. Linker/Einbinden von Bibliotheken
  4. Pointer, Felder und Strukturen
  5. Standard Template Library
  6. Makefiles
  7. aktuelle IDEs (Visual Studio/Eclipse)
  8. Debuggen
  9. Objektorientierung
  10. Grundlagen von OpenGL
Im zweiten Abschnitt des Praktikums wird sukzessive eine komplexere Aufgabenstellung erarbeitet. Die hierfür benötigten Programmiertechniken bauen auf den in Abschnitt eins des Praktikums erarbeitet Techniken auf.

Programmierberatung (02.13.008)

Bitte bei Erscheinen vorher kurz per email anmelden!!!

Wöchentlicher Ablauf

  • Montag 12:00 – Neues Aufgabenblatt ist online verfügbar.
  • Dienstag 16:00-18:00 – Wöchentliches Treffen
  • Dienstag-Montag – Implementierung der Aufgaben in Teams
  • Montag 12:00 - Abgabe der Aufgaben (SVN commit)

Aufgaben

Datum Thema Aufgabe Merkblatt/Lösungshinweise
12.04.05 Header-files, Praeprozessor, Compiler, Linker, SVN Übungsblatt 1 Merkblatt 1 Lösungshinweise 1
19.04.05 Funktionen, Attribute, Kontrollstrukturen, Makefiles, VS .NET 2003 Übungsblatt 2 Merkblatt 2 Lösungshinweise 2
26.04.05 Pointer, Arrays, Bildmanipulation Übungsblatt 3 Lösungshinweise 3
03.05.05 Objektorientierung, Transformationen und 2D in OpenGL Übungsblatt 4 Lösungshinweise 4
10.05.05 3D in OpenGL Übungsblatt 5 Lösungshinweise 5
17.05.05 entfällt (Pfingstferien)    
24.05.05 Szenen, Lighting und Texture Mapping Übungsblatt 6  
31.05.05 kein wöchentliches Treffen    
07.06.05 Weiteres zu OpenGL Übungsblatt 7  
14.06.05 kein wöchentliches Treffen    
21.06.05 Projektaufgabe: OpenGL Spiel Übungsblatt 8  
28.06.05      
05.07.05      
12.07.05 Testate und Präsentationen der Projektaufgabe    

Teams

  • Team1 - Florian Thomas Wendel/ Michael Reinhold Lellmann
  • Team2 - Tobias Röhm/ Ferdinand Beyer/ Pavlo Kerestey
  • Team3 - Stefan Josef Edbauer/ Kevin Müller
  • Team4 - Martin Dummer/ Arno Scherhorn/ Carmen Rudolph
  • Team5 - Kristina Bokor/ Christoph Kaser/ Oscar Bertin
  • Team6 - Asli Okur/ Alexander Sporn/ Bernhard Häupler
  • Team7 - Plamen Hristov/ Xinxing Feng/ Jinhui Zhu
  • Team8 - Markus Wagler/ Markus Sander

Voraussetzungen

Es wird kein C++ Wissen vorausgesetzt. Das Praktikum soll eine grundlegende Einführung in die C++ Programmiersprache geben. Java-Kenntnisse können von Nutzen sein. Konzepte der Programmierung und der Objektorientierung, soweit in "Einführung in die Informatik I & II" behandelt, werden vorausgesetzt.

Voraussetzungen für den Schein

  • Einreichung der Aufgaben in Teamarbeit von zwei bis drei Teilnehmern bis spätestens Montag
  • Mindestens 8 von 9 Aufgabenblättern wurden korrekt bearbeitet
  • Aktive Mitarbeit bei den wöchentlichen Treffen
  • Abgabe der Projektaufgabe
  • Bestehen eines 10min Testats

Weiterführende Literatur und Tutorials

C++ Tutorials

C++ Referenzen

Advanced Programming with C++

OpenGL

  • Dave Shreiner, Mason Woo, Jackie Neider, OpenGL Programming Guide 'The Red Book' kann auch hier eingesehen werden. Grundlegendes Buch für die Open Graphics Library, einer Softwareschnittstelle zur Graphik Hardware. Behandelte Themen sind u.a. das Zeichnen geometrischer Objekte, Farben, der Einfluss auf Licht auf eine Szene, die Representation von Kameras, mit der eine Szene betrachtet werden kann und auch Hardware-nähere Techniken wie Antialiasing, Texture Mapping, oder Framebuffer Control
  • Dave Shreiner, OpenGL Reference Manual 'The Blue Book' kann auch hier eingesehen werden. Es wurde von den OpenGL Software-Architekten geschrieben und sollte erst verwendet werden, wenn eine gewisse Sicherheit im Umgang mit C++ erreicht wurde. Es enthält alle relevanten OpenGL Methodiken und dazu Code-Beispiele
  • NEHE - An Excellent OpenGL Web Tutorial Tutorials und mehr zu OpenGL

English Version

General content

The course is intended to teach you the basic concepts of C++. All assignments will focus on computer graphics applications. You will be confronted with preprocessing, compiling, linking, the language itself, version control (SVN), makefiles, modern IDEs (Visual Studio), debugging, and a little on object orientation.

Prerequisites

The course is intended to teach C++, so knowledge of it is not necessary. Knowledge of JAVA would be of great advantage. The concepts of OO Programming and other concepts as conducted in the Introduction to CS lecture are assumed.

Schein requirements

Active participation in the weekly meeting, submission of the implementation of the weekly assignments of part I, and the presentation of the final assigment.

TeachingForm
Title: Graphikprogrammierung in C++
Professor: Nassir Navab
Tutors: Marco Feuerstein, Stefan Wiesner
Type: Programmierpraktikum
Information: Programmierpraktikum Grundstudium, ECTS: 6 Credits
Term: 2005SoSe
Abstract:  


Edit | Attach | Refresh | Diffs | More | Revision r1.35 - 16 Jan 2006 - 15:46 - MarcoFeuerstein

Lehrstuhl für Computer Aided Medical Procedures & Augmented Reality    rss.gif