zum Inhalt springen

MN-GM-DATPRO

Basismodul: Datenverarbeitung und Programmieren
Kennnummer

MN-GM-
DATPRO
Workload

180 h
Leistungs-
punkte

6 LP
Studien-
semester

2. oder 3.
Semester
Häufigkeit des
Angebots

Jedes WiSe
Dauer

1 Semester
1 Lehrveranstaltungen
a) Vorlesung
b) Übung
Kontaktzeit
45 h
30 h
Selbststudium
45 h
60 h
geplante
Gruppengröße

50
2 Ziele des Moduls und zu erwerbende Kompetenzen

Die Studierenden sollen im Teil „Programmieren“ lernen, einfache bis mittelschwierige praktische Problemstellungen aus den Bereichen Mathematik, Physik, Geophysik und Meteorologie mit geeigneten Programmiermethoden zu lösen. Dafür werden sie zunächst mit Matlab/Octave vertraut gemacht, da diese Software zum Lösen von Problemen der Linearen Algebra und zum Plotten auch in den Wahlmodulen der Geophysik und Meteorologie eingesetzt wird. Mit Fortran95 und C werden zwei Sprachen mit unterschiedlichen Schwerpunkten vermittelt (Fortran95: mathematisch-physikalisch- numerische Berechnungen, C: systemnahe, zeigerorientierte Anwendungen). Daneben sollen die Studierenden im Teil „Datenverarbeitung“ lernen, wie moderne Computer aufgebaut sind und funktionieren. Als Synthese beider Teile endet das Modul mit einer Einführung in das Programmieren parallelisierter Anwendungen (mit Multithreading und MPI).

Den Studierenden sollen die folgende Kompetenzen vermittelt werden:
  • Geeignete Algorithmen zur Lösung von Problemstellungen aus den Bereichen Mathematik, Physik, Geophysik und Meteorologie zu finden
  • Algorithmen in den Programmiersprachen C und Fortran95 implementieren zu können
  • Methodenkompetenzen:
    • Auswahl der geeigneten Programmiersprache zur Lösung eines Problems
    • Auswahl eines geeigneten Algorithmus zur Lösung eines Problems
    • Auswahl der geeigneten Methode zur Parallelisierung von Programmen

Darüber hinaus werden allgemeine Kompetenzen gestärkt, wie z. B. :
  • Durchhaltevermögen
  • Selbständiges Arbeiten
  • Zeitmanagement und Projektplanung
  • Abstraktionsvermögen, konzeptionelles, analytisches und logisches Denken
3 Inhalte des Moduls
Datenverarbeitung
  1. Darstellung von Zahlen
    • 1.1 Ganzzahlen
    • 1.2 Negative Ganzzahlen
    • 1.3 Fließkommazahlen
  2. Rechnerhardware
    • 2.1 Aufbau einer CPU
    • 2.2 Aufbau eines Rechners, Zusammenspiel CPU, Hauptspeicher und Busse
    • 2.3 Interrupts, DMA, Busarbitrierung
    • 2.4 Caches
  3. Betriebssystemkern
    • 3.1 Aufbau des Unix-Kernels
    • 3.2 Virtuelle Adressen
    • 3.3 Multitasking
    • 3.4 Netzwerk (TCP/IP)
    • 3.5 Lokale Dateisysteme
  4. Symmetrisches Multi-Prozessing
    • 4.1 Hardware (Busarbitrierung, Cache Snooping)
    • 4.2 Betriebssystem (Locks, Multithreading)
  5. Ausgewählte Kapitel Computeranwendungen, zum Beispiel:
    • 5.1 Shells und Shell-Skripte
    • 5.2 Kryptographie
  6. Softwareentwicklung
    • 6.1 Software Validation and Verification
    • 6.2 Software Configuration Management
    • 6.3 Versionskontrolle mit RCS
    • 6.4 Make und Makefiles
  7.  
 

Programmierung  
  1. Programmieren in Matlab/octave
    • 1.1 Lösen von Problemen der Linearen Algebra mit Matlab/octave
    • 1.2 Plotten mit Matlab/octave
    • 1.3 Numerisches Lösen von gewöhnlichen Differentialgleichungen
  2. Programmieren in Fortran 90
    • 2.1 Entwicklung der Sprache Fortran, Kompatibilität zu früheren Versionen
    • 2.2 Typen, Variablen und Parameter
    • 2.3 Ausdrücke
    • 2.4 Programmsteuerung
    • 2.5 Ein- und Ausgabe
    • 2.6 Programmeinheiten (PROGRAM, FUNCTION, SUBROUTINE)
    • 2.7 Felder und Parallelisierung
    • 2.8 Objektorientiertes Programmieren (Module, benutzerdefinierte Typen und Operatoren, Überladen von Operatoren, Zuweisungen und Funktionen
    • 2.9 Zeiger
    • 2.10 Zugang zur Numerischen Umgebung
  3. Programmieren in C
    • 3.1 Präprozessoranweisungen
    • 3.2 Datentypen und Operatoren
    • 3.3 Programmsteuerung
    • 3.4 Zeiger, dynamische Speicherverwaltung
    • 3.5 Strukturen und Unionen
    • 3.6 Zeiger auf Zeiger, Zeiger auf Funktionen
    • 3.7 ANSI-C Routinen (Auswahl)
    • 3.8 Argumentübergabe
  4. Parallelisieren
    • 4.1 Das Message Passing Interface (MPI)
    • 4.2 Multithreading
  5.  
4 Lehr- und Lernformen

Die theoretischen Inhalte werden in der Vorlesung vermittelt. In den Präsenzübungen wird das theoretisch Erlernte von den Studierenden unter Anleitung an praktischen Beispielen umgesetzt. An den Präsenzübungen besteht Teilnahmepflicht. Hausaufgaben (Übungen) dienen dem weiteren Selbststudium zum Vertiefen des Stoffes.
5 Modulvoraussetzungen

Keine
6 Form der Modulabschlussprüfung

Das Modul wird mit einer Klausur abgeschlossen. Zu Beginn des Folgesemesters wird eine Wiederholungsprüfung angeboten. Zulassungsvoraussetzung für die Klausur sind die bestandenen Übungen (mindestens 50 % der in den Übungen zu erreichenden Punkte sind erforderlich).
7 Voraussetzungen für die Vergabe von Leistungspunkten

Bestandene Übungen (mindestens 50 % der in den Übungen zu erreichenden Punkte sind erforderlich) sowie eine bestandene Klausur.
8 Verwendung des Moduls (in anderen Studiengängen)

Das Modul kann in anderen mathematisch-naturwissenschaftlichen Fächern als Grundlagenmodul zur Vermittlung von Kenntnissen in Datenverarbeitung und Programmieren verwendet werden.
9 Stellenwert der Modulnote für die Fachnote

Gewicht von 6/180
10 Modulbeauftragte/r

A. Wennmacher
11 Sonstige Informationen