Hardwarenahe Programmierung
Lehrveranstaltung im Wintersemester 2017/18
Hochschule Bochum, Campus Velbert/Heiligenhaus
Prof. Dr. rer. nat. Peter Gerwinski
Copyright © 2012–2017 Peter Gerwinski
Diese Lehrmaterialien sind freie Software.
Sie dürfen diese gemäß den jeweils angegebenen Lizenzen
(CC-BY-SA 3.0,
GNU GPL 3+,
modified BSD License)
studieren, kopieren, modifizieren und/oder weitergeben.
Für Details siehe common/README.
Vortragsfolien:
- 09.10.2017: Einführung, Einführung in C (bis Schleifen)
- 16.10.2017: Ergänzungen zu printf() und scanf(), Seiteneffekte, Funktionen
- 23.10.2017: Zeiger, Arrays und Strings, Strukturen, Dateien und Fehlerbehandlung
- 06.11.2017: Bibliotheken, Differentialgleichungen
- 13.11.2017: Parameter des Hauptprogramms, String-Operationen, Präprozessor-Macros, make
- 20.11.2017: Hardwarenahe Programmierung: Bit-Operationen, Output-Ports
- 27.11.2017: Hardwarenahe Programmierung: Input-Ports, Interrupts, volatile-Variable
- 04.12.2017: I/O-Ports, Pull-Up- und Pull-Down-Widerstände, Interrupts, volatile-Variable, Endianness
- 11.12.2017: Endianness, Alignment, Differentialgleichungen, Rekursion
- 18.12.2017: volatile-Variable (Ergänzung), Aufwandsabschätzungen
- 08.01.2018: Aufwandsabschätzungen, objektorientierte Programmierung in C
- 15.01.2018: Objektorientierte Programmierung in C: unions, virtuelle Methoden, Einführung in C++
- 22.01.2018: Datenstrukturen: Stack und FIFO, verkettete Listen
- 29.01.2018: Datenstrukturen: Bäume
- 30.10.2017: Sonderveranstaltung: E-Mail Verschlüsselung
- alle in 1 Datei
Übungsaufgaben:
- 09.10.2017: Hello-World-Programme, Multiplikationstabelle, Schaltjahr ermitteln
- 16.10.2017: Fibonacci-Zahlen, fehlerhaftes Programm, "Hello, world!"
- 23.10.2017: ROT13-Verschlüsselung, Programm analysieren, Kalender-Berechnung
- 06.11.2017: Strings, Text-Grafik-Bibliothek
- 13.11.2017: Datum-Bibliothek, Primzahlen, rotierender Würfel
- 20.11.2017: Zahlensysteme, Mikro-Controller, Länge von Strings
- 27.11.2017: Ausgabe von Hexadezimalzahlen, Mikro-Controller
- 04.12.2017: Trickprogrammierung, Thermometer-Baustein an I²C-Bus, XBM-Grafik
- 11.12.2017: Daten im Speicher, Zeigerarithmetik, Text-Grafik-Bibliothek
- 18.12.2017: Fakultät, Strings, Länge von Strings (Neuauflage)
- 08.01.2018: Lokale Variable im Speicher, blinkende LEDs, objektorientierte Tier-Datenbank
- 15.01.2018: Objektorientierte Programmierung mit dem C-Datentyp union, objektorientierte Tier-Datenbank
- 22.01.2018: Stack-Operationen, iterativer Floodfill
- 29.01.2018: Doppelt verkettete Liste, ternärer Baum
Tafelbilder:
- 09.10.2017: gcc für verschiedene Betriebssysteme
- 30.10.2017: E-Mail-Verschlüsselung: Zertifizierungsmodelle: Hierarchische Struktur (S/MIME) vs. Web Of Trust (OpenPGP)
- 06.11.2017: Fadenpendel: Aufstellung der Differentialgleichung
- 20.11.2017: Rechnen im Hexadezimalsystem, Bit-Operationen
- 27.11.2017: Bitweise und logische Und-Verknüpfung
- 04.12.2017: Pull-Down- und Pull-Up-Widerstände
- 11.12.2017: Abfrage eines Input-Ports mittels bitweiser Und-Verknüpfung
- 13.12.2017: Schema zur Funktionsweise des Data Direction Registers (DDR) bei ATmega-Mikrocontrollern
Praktikumsunterlagen:
- Versuch 1, 11. und 18.10.2017: RSA-Verschlüsselung
- Versuch 2, 8. und 15.11.2017: Basketball-Simulation
- Versuch 3, 13. und 20.12.2017: Druckknopfampel
- Versuch 4, 10. und 17.1.2018: Objektorientiertes Grafik-Programm
Skript:
Original-Materialien einschließlich Beispiel-Programme und LaTeX-Quelltexte:
- common – gemeinsame Dateien für Skript und Vortragsfolien
- script – Skript zur Lehrveranstaltung
- 201????? – Vortragsfolien und Beispiele
- branch 2016ws – vollständige Lehrmaterialien vom Wintersemester 2016/17
Low-Level Programming
Course in winter semester 2017–18
Bochum University of Applied Sciences, Campus Velbert/Heiligenhaus
Prof. Dr. rer. nat. Peter Gerwinski
Copyright © 2012–2017 Peter Gerwinski
These teaching materials are Free Software.
You may study, copy, modify, and/or distribute them
according to their respective licences
(CC-BY-SA 3.0,
GNU GPL 3+,
modified BSD License).
See the file common/README for details.