Einführung in die Programmiertechnik I (Wintersemester 2012/2013)
Lecturer:
Prof. Dr. Andreas Polze
(Betriebssysteme und Middleware)
Course Website:
http://www.dcl.hpi.uni-potsdam.de/teaching/pt1/
General Information
- Weekly Hours: 4
- Credits: 6
- Graded:
yes
- Enrolment Deadline: 1.10.2012 - 31.10.2012
- Teaching Form: VU
- Enrolment Type: Compulsory Module
Programs, Module Groups & Modules
- Grundlagen IT-Systems Engineering
- HPI-PT1 Programmiertechnik I
Description
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
Literature
- 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
Examination
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.
Dates
Vorlesung:
- Di 9:15-10:45, HS1
- Do 11:00-12:30, HS1
Die erste Vorlesung findet am 16.10.2017 statt.
Übungen finden alle 2 Wochen zum Vorlesungstermin am Donnerstag statt.
Am 19.10.2017 findet aufgrund der Klausurtagung des HPI-Forschungskollegs keine Vorlesung statt.
Zurück