Hasso-Plattner-Institut
Hasso-Plattner-Institut
  
Login
  • de
 

Einführung in die Programmiertechnik I (Wintersemester 2012/2013)

Dozent: Prof. Dr. Andreas Polze (Betriebssysteme und Middleware)
Website zum Kurs: http://www.dcl.hpi.uni-potsdam.de/teaching/pt1/

Beschreibung

Die Lehrveranstaltung bietet eine Einführung in die Informatik und vermittelt Theorie und Praxis der Programmierung von Software am Beispiel der Sprachen C und Prolog. Die Vorlesung diskutiert Konzepte der strukturierten Programmierung auf Grundlage der Programmiersprache C sowie Konzepte der logischen Programmierung mit Prolog.

Objekte und Ansätze der objektorientierten Programmierung werden kurz gestreift, sollen aber erst in der nachfolgenden Veranstaltung "Programmiertechnik II" im Mittelpunkt stehen.

Unit 1: Informatik als Fachgebiet

  • Was ist Informatik?
  • Algorithmenbegriff
  • Technische Informatik
  • Theoretische Informatik
  • Praktische Informatik
  • Angewandte Informatik
  • Studium am HPI - Einordnung der LV
  • Bits, Bytes, Worte, Dateien – Information vs. Daten
  • top down vs. bottom up

Unit 2: Rechnerarchitektur

  • Aussagenlogik
  • Schaltnetze, Schaltwerke
  • Register
  • von Neumann Rechner
  • CPU, ALU, CU
  • Instruktionsverarbeitung
  • OpCode Formate, RTL
  • Instruktionsarten
  • Ein- und Ausgabe

Unit 3: Informationsdarstellung

  • Universalität binärer Daten
  • Abtasttheorem
  • ganze Zahlen
  • 1er Komplement
  • 2er Komplement
  • Gleitkommaformate
  • ASCII, EBCDIC
  • Unicode

Unit 4: Programmiersprachen

  • Spezifikation, Algorithmen, Programme
  • Imperative Programmierung: Modula, C
  • Objektorientierte Programmierung: Smalltalk, C++, Objective-C, Java
  • Logische Programmierung: Prolog
  • Funktionale Programmierung: Lisp
  • Formale Beschreibung von Programmiersprachen: EBNF
  • Ein erstes Beispiel in C

Unit 5: Werkzeuge und Technologien

  • Interpreter
  • Compiler
  • Technologieprogramme: make
  • Quellcodeverwaltung: sccs, cvs, subversion, git
  • Debugger: gdb
  • Test: Check, CUnit
  • Betriebssysteme

Unit 6: Programmiersprache C - Integrale Datentypen

  • Integrale Datentypen
  • Operatoren
  • Ausdrücke
  • Typkonvertierungen
  • Vorrangregeln

Unit 7: Programmiersprache C - Kontrollfluss

  • Anweisungen und Blöcke
  • if-else
  • else-if
  • switch
  • Schleifen: while and for, do-while
  • break and continue
  • goto and labels

Unit 8: Programmiersprache C - Funktionen und Programmstruktur

  • Grundlagen, Prinzip Funktionsaufruf, Stack
  • call-by-value, call-by-ref, call-by-copy
  • Rückgabewerte
  • externe Variablen, Scope
  • header files und Übersetzungseinheiten
  • Initialisierung
  • Rekursion
  • C Präprozessor

Unit 9: Programmiersprache C - Zeiger und Felder

  • Heap und Stack
  • Zeiger und Adressen
  • Zeiger und Funktionen (-argumente)
  • Zeiger und Arrays
  • Adreßarithmetik
  • Beispiel: malloc und Algorithmen zur Speicherallokation
  • Mehrdimensionale Felder
  • Initialisierung von Feldern
  • Kommandzeilenbearbeitung
  • Funktionszeiger
  • Komplizierte Deklarationen

Unit 10: Programmiersprache C - Strukturen

  • Grundlagen
  • Strukturen und Funktionen
  • Felder von Strukturen
  • Zeiger auf Strukturen
  • Selbstreferentielle Strukturen
  • Unions, typedefs, bit-fields
  • Objekte in C

Unit 11: Programmiersprache C - Ein- und Ausgabe (libc)

  • Standard Ein- und Ausgabe – stdio
  • Formatierte Ausgabe – printf
  • Argumentlisten variabler Länge – varargs
  • Formatierte Eingabe – scanf
  • Dateizugriff
  • Fehlerbehandlung – stderr und exit
  • Zeilenweise Ein- und Ausgabe
  • Weitere Funktionen

Unit 12: Programmiersprache C - Betriebssystemschnittstellen

  • file descriptors
  • low-level i/O - read and write
  • open, creat, close, unlink
  • lseek
  • Standard library

Unit 13: Objekte in Java - ein kurzer Überblick

  • Virtuelle Maschinen
  • Klassen, Objekte, abstrakte Datentypen
  • Vererbung, virtuelle Methoden
  • Pakete, Programmeinheiten
  • Ausnahmebehandlung

Unit 14: Logische Programmierung: Prolog (gprolog)

  • Boolesche Logik
  • Closed World Assumption
  • Fakten, Prädikate
  • Regeln
  • Listen

Literatur

  • Heinz Peter Gumm, Manfred Sommer; "Einführung in die Informatik"; 9. Auflage, Oldenburg Verlag, 2011
  • Brian W. Kernighan, Dennis M. Ritchie; "The C Programming Language"; Prentice Hall, 1988 (2000)
  • Axel T. Schreiner; "System Programmierung in UNIX"; B.G. Teubner, 1984
  • Helmut Balzert; "Lehrbuch Grundlagen der Informatik"; Elsevier 2005

Leistungserfassung

Zu den Übungen werden Übungsaufgaben ausgegeben (insgesamt 6 Serien). Diese sollen in Zweier-Gruppen bearbeitet und den Tutoren präsentiert werden. Für eine Zulassung zur Klausur ist der Erwerb von mindestens 50% aller Punkte der jeweiligen Übungsaufgaben erforderlich.

Lösungen zu den Übungsaufgaben müssen über das Abgabesystem unter https://www.dcl.hpi.uni-potsdam.de/pt1prak eingereicht werden. Sie können sich dort unter Auswahl der HPI-OpenID-Providers mit Ihrem HPI-Benutzerkonto anmelden.

Termine

Vorlesung:

  • Di 9:15-10:45, HS1
  • Do 11:00-12:30, HS1

Die erste Vorlesung findet am 16.10.2012 statt.

Übungen finden alle 2 Wochen zum Vorlesungstermin am Donnerstag statt.

Am 18.10.2012 findet aufgrund der Klausurtagung des HPI-Forschungskollegs keine Vorlesung statt.

Allgemeine Information

  • Semesterwochenstunden : 4
  • ECTS : 6
  • Benotet : Ja
  • Einschreibefrist : 1.10.2012 - 31.10.2012
  • Programm : IT-Systems Engineering BA
  • Lehrform : VU
  • Belegungsart : Pflicht

Module

  • Programmiertechnik I

Zurück