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.
| Informatik - ein Überblick | 01:35:20 | |
|---|---|---|
| Organisatorisches | 00:12:01 | |
| Was ist Informatik? | 00:17:04 | |
| Teilgebiete der Informatik | 00:13:40 | |
| Technische Informatik | 00:08:36 | |
| 100 Jahre IBM | 00:18:21 | |
| Programmierbarkeit; Geschichte | 00:07:32 | |
| Praktische Informatik | 00:08:49 | |
| Theoretische Informatik | 00:09:17 |
| Inhalt der Lehrveranstaltung & Informationsverarbeitung | 01:33:41 | |
|---|---|---|
| Ablauf Programmiertechnik I | 00:19:47 | |
| Inhalt: Unit 1-4 | 00:19:53 | |
| Inhalt: Unit 5-8 | 00:17:24 | |
| Inhalt: Unit 9-14 | 00:13:47 | |
| Information und Daten | 00:08:47 | |
| Hexziffern | 00:14:03 |
| Aussagenlogik, Schaltnetze, Register & von Neumann Rechner | 01:25:41 | |
|---|---|---|
| Aussagenlogik | 00:15:12 | |
| Schaltungslogik | 00:20:20 | |
| Register | 00:13:47 | |
| Addition | 00:07:21 | |
| Multiplikation | 00:11:45 | |
| Informationsverarbeitung im Computer | 00:17:16 |
| Von-Neumann-Rechner & ALU | 01:26:23 | |
|---|---|---|
| Von-Neumann-Rechner | 00:10:04 | |
| Zentrale Verarbeitungseinheit | 00:11:06 | |
| ALU und Rechenwerk | 00:13:22 | |
| 4-Bit ALU | 00:11:22 | |
| Registersatz | 00:12:10 | |
| Steuerwerk | 00:15:41 | |
| Fetch und Execute | 00:12:38 |
| Befehlssatz | 00:48:39 | |
|---|---|---|
| Rückblick | 00:04:19 | |
| Befehlssatz | 00:11:33 | |
| Typen von Instruktionen | 00:14:31 | |
| Ein PDP-11 Assembler-Beispiel | 00:09:20 | |
| Geräte und Schnittstellen | 00:08:56 |
| Informationsdarstellung | 01:29:06 | |
|---|---|---|
| Datenpräsentation | 00:12:10 | |
| Dezimale Zahlendarstellung | 00:15:54 | |
| Vorzeichenbehaftete Zahlen | 00:17:17 | |
| Reelle Zahlen | 00:15:42 | |
| Rundungseffekte | 00:14:21 | |
| Unicode | 00:13:42 |
| Spezifikation, Algorithmen, Programme | 00:41:16 | |
|---|---|---|
| Ablauf | 00:05:49 | |
| Spezifikationen | 00:16:12 | |
| Algorithmus | 00:12:29 | |
| Programmiersprachen | 00:06:46 |
| Formale Beschreibung von Programmiersprachen | 01:29:22 | |
|---|---|---|
| Kontrollstrukturen | 00:20:04 | |
| Lexikalische Regeln | 00:10:12 | |
| Backus Naur Form | 00:16:55 | |
| EBNF-Regel | 00:14:00 | |
| Mehrdeutigkeiten von Grammatiken | 00:12:21 | |
| Vom Algorithmus zum Programm | 00:15:50 |
| Programmieren in C | 01:20:30 | |
|---|---|---|
| Assembler-Beispiel | 00:11:00 | |
| Link/Loader | 00:23:57 | |
| Laufzeitsystem | 00:08:24 | |
| Portabilität | 00:15:35 | |
| Programmierumgebungen | 00:08:16 | |
| Boolesche Werte | 00:13:18 |
| Imperative, deklarative und objektorientierte Programmierung | 01:29:14 | |
|---|---|---|
| Richtige Datenstrukturen wählen | 00:14:50 | |
| Typecast - Anwendung | 00:14:30 | |
| Operationen auf Zeichenketten | 00:14:56 | |
| Kontrollstrukturen | 00:14:15 | |
| C | 00:10:43 | |
| Deklarative Programmierung | 00:13:58 | |
| Objektorientierte Programmierung | 00:06:02 |
| Betriebssysteme | 01:34:00 | |
|---|---|---|
| Ablauf | 00:05:14 | |
| Evolution von Software | 00:11:00 | |
| Betriebssystem | 00:16:27 | |
| Aufgaben des Betriebssystems | 00:17:42 | |
| Unix | 00:09:55 | |
| Entwicklung von Unix | 00:16:53 | |
| Variablen und Ersetzungen | 00:16:49 |
| Shell-Programmierung | 01:28:23 | |
|---|---|---|
| Sondervariablen und Muster für Dateinamen | 00:19:25 | |
| Initialisierung | 00:12:25 | |
| Spezialkommandos | 00:12:26 | |
| Eckige-Klammer-links | 00:18:11 | |
| Directory anlegen | 00:08:15 | |
| Steuerkommandos | 00:07:20 | |
| Job Control und Signale | 00:10:21 |
| Shellskripte & C | 01:30:32 | |
|---|---|---|
| Übung und Hausaufgaben | 00:07:27 | |
| Compiler | 00:13:08 | |
| GNU Compiler Collection | 00:11:07 | |
| Ein Parser als Shellskript | 00:16:12 | |
| Ein erstes C Programm | 00:18:01 | |
| Technologieprogramm make | 00:07:21 | |
| make (contd.) | 00:17:16 |
| Make & Git | 01:25:46 | |
|---|---|---|
| Muster in Regeln | 00:14:31 | |
| make (contd.) | 00:14:06 | |
| Variablen in Makefiles | 00:18:07 | |
| Quellcodeverwaltung | 00:17:30 | |
| Versionierung - die Idee | 00:13:35 | |
| Einrichtung | 00:07:57 |
| Git, Debugger: gdb & Test: Check, CUnit | 01:26:25 | |
|---|---|---|
| Die drei Zustände | 00:15:40 | |
| Verzweigungen (branches) | 00:13:05 | |
| Debugger: gdb pt. 1 | 00:18:03 | |
| Debugger: gdb pt. 2 | 00:15:02 | |
| Gdb anwenden | 00:09:02 | |
| Automatisierte Tests | 00:15:33 |
| Programmiersprache C - integrale Datentypen | 01:29:30 | |
|---|---|---|
| Datenstruktur | 00:14:08 | |
| Größe ermitteln | 00:15:36 | |
| Aufzählungskonstanten | 00:15:40 | |
| Relationale/logische Operatoren | 00:14:39 | |
| Inkrement/Dekrement | 00:08:30 | |
| Bitweise Operatoren | 00:13:04 | |
| Zuweisungsoperator | 00:07:53 |
| Programmiersprache C - Kontrollfluss | 01:31:04 | |
|---|---|---|
| Anweisungen und Blöcke | 00:18:16 | |
| if-else-Anweisung | 00:08:17 | |
| switch-Anweisungen | 00:19:48 | |
| Einschub: Codegenerierung | 00:14:09 | |
| Schleifen - while and for | 00:15:32 | |
| goto und Marken (labels) | 00:15:02 |
| Programmiersprache C - Funktionen und Programmstruktur | 01:17:02 | |
|---|---|---|
| Unterprogramme | 00:18:52 | |
| Referenzparameter simulieren | 00:13:58 | |
| Externe Variablen | 00:15:43 | |
| Initialisierung | 00:12:45 | |
| Makro-Expansion | 00:15:44 |
| Programmiersprache C - Zeiger und Felder | 01:24:28 | |
|---|---|---|
| Ablauf | 00:05:30 | |
| Speicher eine UNIX-Prozesses | 00:21:48 | |
| Dynamik | 00:18:34 | |
| Zeiger und Felder | 00:11:00 | |
| Formale Argumente | 00:12:03 | |
| Speicherverwaltung | 00:15:33 |
| Mehrdimensionale Felder - Komplizierte Deklarationen | 01:29:04 | |
|---|---|---|
| Zeiger und Felder | 00:18:46 | |
| Übungsaufgaben | 00:13:29 | |
| Speicherverwaltung (richtig) | 00:14:47 | |
| Felder von Zeigern | 00:19:29 | |
| Zeiger auf Funktionen | 00:11:19 | |
| Komplizierte Deklarationen | 00:11:14 |
| Programmiersprache C - Strukturen | 01:26:49 | |
|---|---|---|
| Grundlagen | 00:16:01 | |
| Verschachtelte Strukturen | 00:19:29 | |
| Strukturen und Funktionen | 00:13:36 | |
| Felder von Strukturen | 00:17:07 | |
| Zeiger auf Strukturen | 00:06:41 | |
| Unions | 00:13:55 |
| Datentypen & Strukturen | 01:26:09 | |
|---|---|---|
| Einschub: Konstruktion von Datentypen | 00:15:16 | |
| Dateien | 00:09:10 | |
| Umgang mit Dateien | 00:16:14 | |
| Beispiel Induktive Definition pt.1 | 00:15:43 | |
| Beispiel Induktive Definition pt.2 | 00:09:24 | |
| Definition von Typen | 00:10:05 | |
| Doppelt verkettete Liste | 00:10:17 |
| Klausurvorbereitung | 01:27:11 | |
|---|---|---|
| Zur Klausur pt.1 | 00:19:37 | |
| Zur Klausur pt.2 | 00:22:01 | |
| Zur Klausur pt.3 | 00:20:56 | |
| Zur Klausur pt.4 | 00:05:02 | |
| Unions | 00:06:52 | |
| Objekte | 00:12:43 |