Hardwarenahe Programmierung
Lehrveranstaltung im Wintersemester 2016/17
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:
- 10.10.2016: Einführung, Einführung in C (bis Schleifen)
- 17.10.2016: Einführung in C (Funktionen bis Arrays)
- 24.10.2016: Einführung in C (Strings)
- 31.10.2016: Einführung in C (ab Strukturen), Bibliotheken einbinden und verwenden
- 07.11.2016: Bibliotheken (Präprozessor, make), Algorithmen (Differentialgleichungen)
- 14.11.2016: Algorithmen (Rekursion)
- 21.11.2016: Algorithmen (Aufwandsabschätzungen), Hardwarenahe Programmierung (Bit-Operationen, I/O-Ports)
- 28.11.2016: Algorithmen (Aufwandsabschätzungen), Hardwarenahe Programmierung (Interrupts)
- 05.12.2016: Hardwarenahe Programmierung (volatile-Variable, Byte-Reihenfolge – Endianness)
- 12.12.2016: Hardwarenahe Programmierung (Speicherausrichtung – Alignment), Objektorientierte Programmierung (dynamische Speicherverwaltung, Konzepte und Ziele)
- 19.12.2016: Hardwarenahe Programmierung (Binärdarstellung von Zahlen), Objektorientierte Programmierung (Unions, GUI)
- 02.01.2017: Special: Software und Urheberrecht, Exploits
- 09.01.2017: Objektorientierte Programmierung (virtuelle Methoden, C++), Datenstrukturen (Stack und FIFO)
- 16.01.2017: Datenstrukturen (Stack und FIFO, verkettete Listen)
- 23.01.2017: Datenstrukturen (verkettete Listen, Bäume)
- alle in 1 Datei
Tafelbilder:
- 07.11.2016: Differentialgleichung „von Hand“ lösen
- 09.11.2016: schräger Wurf
- 21.11.2016: Bit-Operationen
- 12.12.2016: Termine für Praktika und Klausurtutorien
- 12.12.2016: links: Alignment; rechts: Array von Zeigern auf unterschiedliche Objekte
- 14.12.2016: Binärdarstellung negativer Zahlen (1)
- 14.12.2016: Binärdarstellung negativer Zahlen (2)
- 14.12.2016: Binärdarstellung negativer Zahlen, Endianness und Alignment
- 19.12.2016: Praktikum, Binärdarstellung negativer Zahlen, Array mit Zeigern auf Objekte
- 02.01.2017: SQL Injection
- 09.01.2017: Virtuelle Methodentabellen
- 23.01.2017: Binärer Baum, Klausur-WLAN, Praktikumstermin
- 30.01.2017: Musterlösung zu den Übungen vom 23.1.2017
- 30.01.2017: Erläuterungen zu Übungsaufgabe 4 vom 19.12.2016
Übungsaufgaben:
- 03.10.2016: Hello, world!, Grafik-Bibliotheken
- 10.10.2016: Multiplikationstabelle, Fibonacci-Zahlen, Schaltjahr ermitteln
- 17.10.2016: Fehlerhaftes Programm, Hello, world!, Primfaktorzerlegung
- 24.10.2016: ROT13-Verschlüsselung, Programm analysieren, Kalender-Berechnung
- 31.10.2016: Datum-Bibliothek, Fehlerhaftes Programm
- 07.11.2016: Strings, Text-Grafik-Bibliothek
- 14.11.2016: Fakultät, Strings, Text-Grafik-Bibliothek
- 21.11.2016: Zahlensysteme, Mikro-Controller
- 28.11.2016: Länge von Strings, fehlerhaftes Programm, Mikro-Controller
- 05.12.2016: Trickprogrammierung, Ausgabe von Hexadezimalzahlen, Thermometer-Baustein an I²C-Bus
- 12.12.2016: Daten im Speicher, Zeigerarithmetik, XBM-Grafik
- 19.12.2016: Bürgerentscheid, Lokale Variable im Speicher, Blinkende LEDs, Objektorientierte Tier-Datenbank
- 09.01.2017: Objektorientierte Programmierung mit dem C-Datentyp union, Objektorientierte Tier-Datenbank
- 16.01.2017: Stack-Operationen, Iterativer Floodfill, Doppelt verkettete Listen
- 23.01.2017: Ternäre Bäume, Aufräumen
Musterlösungen zu den Übungsaufgaben:
- 10.10.2016: Multiplikationstabelle, Fibonacci-Zahlen, Schaltjahr ermitteln
- 17.10.2016: Fehlerhaftes Programm, Hello, world!, Primfaktorzerlegung
- 24.10.2016: ROT13-Verschlüsselung, Programm analysieren, Kalender-Berechnung
- 31.10.2016: Datum-Bibliothek, Fehlerhaftes Programm
- 07.11.2016: Strings, Text-Grafik-Bibliothek
- 14.11.2016: Fakultät, Strings, Text-Grafik-Bibliothek
- 21.11.2016: Zahlensysteme, Mikro-Controller
- 28.11.2016: Länge von Strings, fehlerhaftes Programm, Mikro-Controller
- 05.12.2016: Trickprogrammierung, Ausgabe von Hexadezimalzahlen, Thermometer-Baustein an I²C-Bus
- 12.12.2016: Daten im Speicher, Zeigerarithmetik, XBM-Grafik
- 19.12.2016: Bürgerentscheid, Lokale Variable im Speicher, Blinkende LEDs, objektorientierte Tier-Datenbank
- 09.01.2017: Objektorientierte Programmierung mit dem C-Datentyp _union, objektorientierte Tier-Datenbank
- 16.01.2017: Stack-Operationen, Iterativer Floodfill, Doppelt verkettete Listen
- 23.01.2017: Ternäre Bäume, Aufräumen
Praktikumsunterlagen:
- Versuch 1: RSA-Verschlüsselung
- Versuch 2: Basketball-Simulation
- Versuch 3: Druckknopfampel
- Versuch 4: 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
Low-Level Programming
Course in winter semester 2016–17
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.