AD Teaching Wiki
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

FrontPage

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Revision 2 as of 2009-11-25 03:13:16
AD Teaching Wiki:
  • ProgrammierenCplusplusSS2010
  • Overview

= Die neue Vorlesung Programmierung in C++ =

Inhalt

Achtung: Die Reihenfolge hier ist *nicht* die Reihenfolge wie das in der Vorlesung drankommen soll, siehe dazu (II). Es ist einfach der zu vermittelden Stoff, nach Themen geordnet.

0. Hintergründe

0.1 Was bedeuten die einzelnen Sprachkonstrukte in Maschinensprache. (Ich finde es absurd nicht damit anzufangen. So funktioneren die Dinger nun einmal.)

0.2 C++ ist eine potentiell sehr maschinennahe Sprache, trotzdem high-level Konzepte

0.3 Unterschiede C, C++, Java

1. Drumherum

1.1 Editor, syntax highlighting

1.2 Coding Styleguide, strictly adhere to one

1.3 Makefile, grundlegende Idee, Syntax und Regeln

1.4 .h. und .cpp files, warum, was wohin, Konventionen, Linker + seine Fehlermeldungen verstehen

1.5 Dokumentation, Namensbennenung, Doxygen

1.6 Debugging, gdb + cp

1.7 Code reviews

2. Sprache

2.1 grundlegendeKonstrukte: Deklaration, for, while, if then else, Ausdrücke und Operatoren

2.2 Ein / Ausgabe, Konsole und Dateien

2.3 Command-line arguments processing

2.3 #include, #define, etc.

2.4 pointers (*) und references (&), passing by reference vs. passing by value

2.5 const (wichtig!)

3. Objektorientiert

3.1 Klassen, Objekte, private, public, members functions and variables, static, explicit, Konstruktoren, Destruktoren

3.2 Vererbung, Vererbung Konstruktoren und Destruktoren, abstract + virtual verstehen (tricky!)

4. Performanz

4.1 Timing

4.2 Asymptotische performance, O-Notation, vor allem: linear vs. quadratisch

4.3 Tatsächliche performance, Verständnis grundlegender Maßzahlen für Speicher- und Dateizugriff

4.3 profiling mit gprof + co

5. Basic Software Engineering

5.1 Allgemeines: möglichst kleine Schritte, zwischendurch immer Kompilieren und Ausprobieren, dabei ruhig Sachen machen die man dann wieder löscht.

5.2 Exceptions.

5.3 Unit tests.

6. Advanced stuff (optional)

6.1 Templates

6.2 Iteratoren

6.3 Libraries, static und dynamic

6.4 Packaging

  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01