Home | Lehre | Videos | Texte | Vorträge | Software | Person | Impressum, Datenschutzerklärung | Blog RSS

Stand: 2013-10-26

Themen und Termine

Bitte möglichst zu allen Vorlesungs- und Seminarterminen einen Notebook-Computer mit der IAR Embedded Workbench Kickstart mitbringen.

Bitte die Grundlagenvideos vor dem jeweiligen Termin ansehen. Die Videos mit „A“ und „B“ in der Nummer sind Zusätze aus vergangenen Durchgängen, die mit „C“ aus dem aktuellen Durchgang.



Beispiele aus Seminar und Praktikum:
P01 Fotowiderstand mit Servo nachführen
P02 Reaktionszeit messen
P03 Ein-Knopf-Taschenrechner
P04 Klangausgabe
P05 Infrarot-Fernbedienung
S03 Temperatursensor des MSP430
Praktikumsaufgaben WS 2011/2012
P1B Zahlenschloss mit Display und Joystick programmieren
P2B Tic tac toe mit Microcontroller als Gegner
P3B Quicksort, Selection Sort, Bubble Sort; Laufzeitkomplexität


Mi, 2. Okt 13

1

Was ist ein Computer? Erste Schritte.
Skript

Grundlagen:
S01 TI LaunchPad, erstes Programm 10:45 (Achtung: ältere Version der Workbench)
01.01 Was ist ein Computer? 7:04
01.02 Binärsystem, Bit 5:17
01.03.1 Byte, Kilobyte 5:50
01.03.2 weiter Byte, Kilobyte 7:55
01.04 PC versus Embedded 10:04
01.05.1 C, Variablen, Typen 10:45
01.05.2 weiter C, Variablen, Typen 4:34
01.06.1 if-Verzweigung 10:22
01.06.2 weiter if-Verzweigung 1:47
01.07.1 while-Schleife 8:21
01.07.2 weiter while-Schleife, Endlosschleife 4:09

Ergänzungen:
01A.1 Terabyte und Tebibyte 9:18
01A.2 ein Zeichen gleich ein Byte, oder auch nicht 11:31
01A.3 Simulator, Debugger, Einzelschritt 14:56
01A.4 if-else-Verzweigung 17:55
Material
01B.1 Erste C-Programme, Zuweisung, Einzelschritt-Debugger, while, if 44:24
Material
S01B Wurzelberechnung in ganzen Zahlen; int, if, while 35:52
Material


Mi, 9. Okt 13

2

Operatoren, Programmiersprachen, Ablaufdiagramme
Skript

Grundlagen:
02.01 Zahlensysteme in C 8:51
02.02.1 Operatoren in C 10:13
02.02.2 Operatoren in C, Short Circuit, Präzedenz 10:12
02.03 Inkrement, Dekrement, Compound Assignment 4:57
02.04.1 Zoo der Programmiersprachen 8:42
02.04.2 JavaScript, PHP, BASIC, Assembler, MATLAB(R) 9:50
02.04.3 grafische Programmierung, Simulink, Datenflussdiagramm 3:33
02.04.4 Pseudocode 1:48
02.05 imperative Programmiersprachen, Skriptsprachen, dynamische Typisierung 9:26
02.06_7 Flussdiagramm, Struktogramm 9:56

Ergänzungen:
02A.1 Programmablaufplan, Flussdiagramm, Activity Diagram, Maximum bestimmen 27:44
02A.2 Flussdiagramm, Primzahltest 24:28
Material
02B.1 Operatoren, Präzedenz, Short-Circuit-Auswertung 22:08
02B.2 Flussdiagramm, Struktogramm, Eingabe in Schleife 24:04


Mi, 16. Okt 13

3

Seminar am Mo, 14. Okt 2013 muss verlegt werden
for-Schleife, Unterprogramme, Funktionen

Skript
Material

Grundlagen:
03.01.1 while-, do...while-, for-Schleifen 12:11
03.01.2 Schleifen, Sichtbarkeit, break, continue 3:41
03.02 Unterprogramme, prozedurale Programmierung 12:32
03.03 Code Recycling, API 10:11
03.04.1 Funktionen in C, return 11:37
03.04.2 Funktionen, void, main 12:23
03.04.3 mehrere Parameter, return als GOTO 7:05
03.05 Call by Value, statische Variablen 6:01
03.06 Deklaration, Definition 3:18

Ergänzungen:
03.06a.1 nochmal Funktion, Deklaration, Definition 14:04
03.06a.2 nochmal Funktion 3:29
03A.1 Programmierbeispiel Teil 1, Top-Down-Entwicklung, MSP430-Projekt einrichten, C-Funktionen 33:10
03A.2 Programmierbeispiel Teil 2, Funktionsdefinition, Funktionsdeklaration, Header-Datei 40:40
03A.3 Programmierbeispiel Teil 3, Include-Guards, Präprozessor.avi 13:28
03A.4 break, continue, return in Schleifen
12:44
Material
S02B nächste Zweierpotenz, Schleifen, while, do, for 49:59
Material
03B.1 Funktionen in C, Deklaration, Definition; while, do, for 48:03
Material
S03B.1 Fibonacci-Folge, Rekursion, statische Variablen 28:08
S03B.2 C-Funktionen entrümpeln 14:31
Material


Mi, 23. Okt 13

4

Präprozessor, Compiler, Linker
Skript
Material

Grundlagen:
04.01 Übersetzung, Compiler, Interpreter 9:29
04.02.1 Übersetzung von C und C++ 14:03
04.02.2 weiter Übersetzung von C und C++ 4:01
04.03.1 Präprozessor, #include, #define 14:50
04.03.2 weiter Präprozessor, #include-Guards 14:41
04.04 C-Compiler, Fehler, Warnungen 11:24
04.05 Linker, Funktionsnamen 8:07
04.06 Sichtbarkeit static, extern 14:23

Ergänzungen:
04A.1 Compiler, Linker; Funktionsweise, Fehler9:14
04A.2 static-Variablen in Funktionen 26:39
Material
04B.1 mehrere C-Dateien, Header-Dateien, #include, Include-Guards 55:26
Material
04B.2 extern; zwei Verwendungen von static; Linker-Fehlermeldungen 25:36
Material


Mi, 30. Okt 13

5

Zahlentypen, mathematische Funktionen
Skript
Material

Grundlagen:
05.01.1 Ganzzahlige Typen, Zweierkomplement 14:10
05.01.2 weiter Zweierkomplement 6:11
05.02 signed und unsigned char, short, int, long, long long 13:39
05.03.1 Überlauf, Teilen durch Null 5:05
05.03.2 automatische Umwandlungen bei Ganzzahlen 11:50
05.03.3 weiter automatische Umwandlungen bei Ganzzahlen 4:42
05.04.1 Festkomma und Gleitkomma 13:59
05.04.2 float und double 13:01
05.04.3 keine FPU 4:09
05.05.1 eingebaute mathematische Funktionen 11:07
05.05.2 Division Gleitkomma und Integer, Casting 7:40
05.06 Rundungsfehler, Infinity (INF), Not a Number (NaN) 7:53

Ergänzungen:
05A.1 Beispiele Zweierkomplement, Überlauf, signed und unsigned 27:50
05A.2 Gleitkommazahlen, float, double, Rundungsfehler, INF, NaN
23:28
05B.1 bitweise logische Operationen; hexadezimal 11:23
05B.2 Beispiele Zweierkomplement; negative Binärzahlen 11:44


Mi, 6. Nov 13

6

Seminar am Mo 4. Nov muss verlegt werden
Arrays
Skript
Material

Grundlagen
06.01.1 Arrays 1D, 2D, 3D 10:34
06.01.2 weiter Arrays 12:07
06.02.1 Arrays initialisieren 10:34
06.02.2 Arrays kopieren, memcpy 9:46
06.03 Übergabe und Rückgabe von Arrays 12:27
06.03a Arrays in Aktion 6:11

Ergänzungen:
06A.1 größten Wert in Array bestimmen 9:43
06A.2 zweidimensionales Array, stückweise lineare Funktion, lineare Interpolation 23:41
Material
S04B Array; summieren; Maximum bestimmen 41:31
Material
S05B.1 Ist Eintrag zweimal in Array 12:12
Material


Mi, 13. Nov 13

7

Zeichenketten
Skript
Material

Grundlagen:
07.01 Zeichenketten (Strings) 14:55
07.02.1 Strings verarbeiten: strlen, strcmp, strcpy 15:25
07.02.2 strcat, Strings anhängen 6:18
07.03.1 puts, printf, Zeichenketten ausgeben 10:54
07.03.2 atoi, sprintf, Umwandlung Zeichenketten, Zahlen 13:02

Ergänzungen:
07A.1 Suchen und Ersetzen in Zeichenketten in C, Teil 1 65:42
Material
07A.2 Suchen und Ersetzen in Zeichenketten in C, Teil 2, genaue Grenzen, Off-by-one-Fehler
32:42
Material
07B.1 Arrays und Zeichenketten; strlen 47:17
Material
S05B.2 Suche in Zeichenkette; UND mit short circuit
Material


Mi, 20. Nov 13

8

Seminar am Mo 18. Nov und Vorlesung am 20. müssen verlegt werden
Strukturen, Aufzählungen
Skript
Material

Grundlagen:
08.01.1 struct, Initialisierung 13:39
08.01.2 struct zuweisen, übergeben, vergleichen 11:53
08.01.3 Array aus struct 4:53
08.02.1 enum, Aufzählungen 13:08
08.02.2 switch, weiter enum, Aufzählungen 12:55

Ergänzungen:
08A.1 struct und enum am Beispiel Katalog und Warenkorb 38:23
Material
08A.2 Kästchenroboter, Teil 1, 2D-Array, struct, enum 57:22
Material
08A.3 Kästchenroboter, Teil 2, switch, putchar 49:23
Material
08A.4 Kästchenroboter, Teil 3, Schleifen, struct verwenden 38:16
Material
08B.1 struct für Buch; ISBN-Nummer prüfen 50:24
Material
S06B struct für Massenpunkte; Schwerpunktsberechnung; Header 36:47
Material


Mi, 27. Nov 13

9

Vorlesung muss verlegt werden
Zeiger, dynamischer Speicher
Skript
Material

Grundlagen:
09.01.1 Zeiger, Pointer 14:43
09.01.2 NULL, ungültige Zeiger 2:49
09.02.1 Zeigerarithmetik 10:50
09.02.2 weiter Zeigerarithmetik 10:13
09.03.1 Dynamischer Speicher, Variable Length Arrays 4:04
09.03.2 weiter dynamischer Speicher, malloc, free 14:23
09.03.3 weiter dynamischer Speicher, malloc, free 14:28
09.03.4 dynamischer Speicher für struct 11:25

Ergänzungen:
09A.1 Kästchenroboter, Teil 4, malloc, Zeiger wie Arrays24:59
Material
09B.1 Fingerübungen zu Zeigern und Arrays 19:28
Material
09B.2 Zeiger verwenden, Speicher reservieren 51:20
Material


Mi, 4. Dez 13

10

Zusammenfassung: die Sprache C
Skript
Material

Grundlagen:
10.01.1 Präprozessor, Compiler, Linker, include 10:43
10.01.2 weiter include, Header 7:00
10.01.3 static, extern 11:04
10.02.1 grundlegende Typen, char, short, int, long, bool, float, double 7:36
10.02.2 Operatoren, Präzedenz 20:34
10.02.3 enum, Arrays 10:48
10.02.4 Zeichenketten, struct 8:46
10.03 if, switch, while, for, Verzweigungen, Schleifen 15:05
10.04.1 Funktionen, Deklaration, Definition, return, mathematische Funktionen 15:32
10.04.2 Funktionen für Ausgabe, Strings, main 9:45
10.05 Zeiger, NULL, malloc, free 37:26

Ergänzungen:
S07B Binärzahl aus Zeichenkette in Integer wandeln 19:42
Material
10B.1 Morse-Code per Programm; Array von struct 38:48
Material
S08B Festkommazahlen; Wurzel selbstprogrammiert 41:50
Material


Mi, 11. Dez 13

11

Was ist Informatik?
Skript

Grundlagen:
11.01 Theoretische, technische, praktische, angewandte Informatik 11:14
11.02 Computer Science, Software Engineering, Information Technology 10:09


Mi, 18. Dez 13

12

Datenstrukturen und Algorithmen
Skript

Grundlagen:
12.01.1 Datenstrukturen, Array, Queue, Stack 15:46
12.01.2 Baum als Datenstruktur 12:47
12.02 Algorithmen 12:27
12.02.1 Bubblesort, Quicksort, Laufzeit 29:23
12.02.2 Iteration und Rekursion 6:27
12.02.3 Komplexität, P und NP 6:45
12.02.4 Optimierung, Profiler 5:02

Ergänzungen:
12A.1 Informatik, Datenstrukturen, Array, struct, Warteschlange, Stack, Baum 15:02
12A.2 Datenstruktur Sparse Matrix, dünn besetzte Matrix; Implementierung in C; malloc 50:15
Material
12A.3 Algorithmen, Suchen und Sortieren, Bubble Sort, Quicksort, Laufzeit, O(n log(n)) 76:17
Material
12B.1 Warteschlange mit Array programmieren 36:29
Material
S09B Warteschlange mittels struct als Bibliotheksfunktion; Zeiger; malloc 45:12
Material
S10B Datumsberechnungen selbstprogrammiert 29:28
Material
S11B Weg aus Labyrinth programmieren 52:24
Material
S12B binäre Suche programmieren; Laufzeitkomplexität 38:51
Material


Mi, 8. Jan 14

13

Automaten und formale Sprachen
Skript
Material

Grundlagen:
13.01 Endliche Automaten 35:16
13.02.1 Formale Sprachen, Syntaxdiagramm, akzeptierende Automaten 33:41
13.02.2 HTML, XML, JSON 14:31

Ergänzungen:
13A.1 Formale Sprachen, reguläre Ausdrücke, endliche Automaten, Pumping-Lemma 66:51
Material
13A.2 kontextfreie Sprachen, Syntaxdiagramme für C, Nichtterminalsymbole, Pumping-Lemma 37:25
13A.3 Parsen und Auswerten von arithmetischen Ausdrücken, Implementierung 31:36
Material
13B.1 Aufzugtür als endlicher Automat in C 35:31
Material


Mi, 15. Jan 14

14

Fehler vermeiden, Fehler finden
Skript
Material

Grundlagen:
14.01 Turings Halteproblem 29:29
14.02 Code Conventions, Styleguides, ungarische Notation, MISRA 29:02
14.03 defensive Programmierung, assert 18:09

Ergänzungen:
14B.1 Programmierfehler finden; Maximum bestimmen 2:56
14B.2 Programmierfehler finden; auf Quadratzahl prüfen 6:47
14B.3 Programmierfehler finden; auf Zehnerpotenz prüfen 9:30
14B.4 Programmierfehler finden; Binomialkoeffizienten berechnen 6:51
Material


Mi, 22. Jan 14


Klausurvorbereitung

Ergänzungen:
K01 Überlauf bei Multiplikation 6:18
K02 if zu switch umwandeln 8:31
K03 struct und Array verschachtelt 27:15
K04 Gleichzeichen in Flussdiagramm und Struktogramm 1:10
K05 Zeiger und Arrays 24:08