Ingenieurinformatik 2: Imperative und Objektorientierte Programmierung für Mechatroniker (MEC 5/6)


Aktuelles  

  • Diese Seite ist in den Learning-Campus umgezogen!
  • Vorlesung 11:30-13:00
  • Ihre Erwartungen



Vorlesung - Inhalt und Termine

I. Imperative Programmierung in C  -  Wintersemester
Organisatorisches... und Installationshinweise

Installationssupport im Praktikum (Bitte vorher installieren (siehe MATERIALIEN) und mich nur bei Problemen kontaktieren)
7.10.

7.10.

1. Was ist ein Computer? Erste Schritte.V01: 14.10. | Ü 01-04
2. Operatoren, Programmiersprachen, AblaufdiagrammeV02: 21.10. | Ü 05-07
3. for-Schleife, Unterprogramme, FunktionenV03: 28.10. | Ü 08-09
4. Präprozessor, Compiler, LinkerV04: 4.11. | Ü 10-11
5. Zahlentypen, mathematische FunktionenV05: 11.11. | Ü 12-14
6. Arrays V06: 18.11. | Ü 15-18
7. Zeichenketten
V07: 25.11. | Ü 19-20
8. Strukturen, Aufzählungen
9. Zeiger, dynamischer SpeicherV08: 2.12. | Ü 21-24
10. Zusammenfassung: die Sprache CV09: 9.12.
weiterführend (optional):
11. Was ist Informatik?
weiterführend

12. Datenstrukturen und Algorithmen

Termin zum Aufholen der Übungen, Ausblick Java
V10: 16.12. | Ü 25-26

23.12.
weiterführend (optional):
13. Automaten und formale Sprachen
14. Fehler vermeiden, Fehler finden
weiterführend            
zusätzliches Material zum Selbststudium:
  • Übungsaufgaben Ü 27-31 unter MATERIALIEN
  • Videos unter "Ergänzungen" in der jeweiligen Vorlesung
  • Online-Buch "C von A bis Z" mit vielen Programm-Beispielen
Wichtig: 
  • Der erste Termin im SS zu dem Sie sich vorbereiten müssen ist bereits in der ersten Woche!
  • Da Java am Anfang sehr ähnlich zu C ist, gehen wir durch die Kapitel 1.-6. sehr schnell durch.
  • Es bietet sich daher an, dass Sie einen Teil dieser Kapitel in den Semesterferien vorarbeiten.
II. Objektorientierte Programmierung in Java  -  Sommersemester
1. JDK, Eclipse und Hello WorldV11: tba, erste Woche ab 15.3.
2. Objekte und Klassen
3. Typen und Variablen
4. Kontrollstrukturen: Verzweigungen und SchleifenV12: 25.3.
5. Arrays
6. Konsolenprogramme
7. KonstruktorenV13: 8.4.

8. Methoden
9. lokale Variablen, Attribute und statische AttributeV14: 15.4.
10. Datenkapselung und Sichtbarkeit von Attributen und Methoden
11. ListenV15: 22.4.
12. VererbungV16: 29.4.
13. InterfacesV17: 6.5.
14. Generics
15. Exceptions
GUI-Programmierung mit JavaFX
16. Installation JavaFX SDK, Scene Builder und e(fx)clipse-PluginV18: 20.5.
17. Erste Schritte mit JavaFX
18. Properties und Bindings
19. FXMLV19: 27.5.
20. Layout-Container
21. Controls
22. SceneBuilder und MVC
23. DiagrammeV20: 10.6.
24. Tabellen
optional: Weiterführende Themen
Fragen, Probleme, Diskussion!17.6.
Projektstudienarbeit - Meilensteine
Prüfungsanmeldungsiehe OSC
Abgabe Abstract

Abgabe über Upload: Bitte rechtzeitig vor Abgabe
  • eine Email mit Thema und Namen der Teammitglieder an mich. 
  • Sie bekommen dann einen Link zu einem Upload-Ordner zum Hochladen der Dateien.
6.5. bis 23:59
Abgabe
  • Schriftliche Ausarbeitung
  • Source-Code
  • ausführbare Programme (C-EXE, Java-JAR, Start-Batch etc.)
Wichtig! Alles mit Autor versehen (getrennte Bewertung):
  • Abschnitte in schriftlicher Ausarbeitung
  • Source-Code-Dateien
So 27.6.
bis 23:59
Projekt-Präsentationen
  • Vorstellung Projektergebnis
  • 5 min. pro Person
    • Inhaltliche Ergebnisse mit Folien
    • Code-Walkthrough durch das Projekt
    • Demo der Funktionalität
Di 29.6. & Do 1.7.



Literatur


Weitere Infos

Tipps zu den Lernmaterialien
Inverted Classroom
Weiterführende Empfehlungen




I. Imperative Programmierung in C



Vorlesung 1

1. Was ist ein Computer? Erste Schritte.
Hinweis: Die Programmierung eines Microcontrollers lernen Sie später in der Vorlesung "Mikrocomputertechnik". Ignorieren Sie im folgenden Begriffe wie Watchdogtimer, Taste, Pins, Register und im Code deren vordefinierte Variablennamen, z.B. WDTCTL, WDTPW, WDTHOLD, P1IN, P1DIR, P1OUT usw.

Ergänzungen (optional zum Üben und Vertiefen):
Lcd
Schalldarstellung static
  • Microcontroller MSP430 auf dem LaunchPad (von Texas Instruments):
  • Mainboard eines PC:
ASRock K7VT4A Pro Mainboard Labeled German
  • Intel Chipsatz: 
Typical intel chipset


Vorlesung 2

2. Operatoren, Programmiersprachen, Ablaufdiagramme
Flowchart de
Zählschleife: Die Zählvariable i wird vor Beginn der Schleife auf ihren Startwert i=1 gesetzt. Danach wird die erste Anweisung der Schleife, das Ausgeben der Variable i, ausgeführt. Die nachfolgende zweite Anweisung ist eine Auswahl, die prüft, ob i den Wert 39 besitzt. Falls dies der Fall ist, wird i auf den Wert 61 gesetzt und die Schleife beginnt mit dem nächsten Durchlauf. Falls i nicht 39 ist, wird i in der nachfolgenden Anweisung um eins erhöht und anschließend geprüft, ob die Schleifenfortsetzungsbedingung i≤100 gültig ist. Falls ja, erfolgt ein nochmaliger Schleifendurchlauf. Ausgegeben würden alle natürlichen Zahlen von 1 bis 39 sowie 61 bis 100 (jeweils einschließlich).


Ergänzungen (optional zum Üben und Vertiefen):

     z.B. Addition aller Werte vom Stack (angelehnt an Intel-x86-Assembler):

PUSH 3      ; Lege den Wert 3 auf den Stack
PUSH 2      ; Lege den Wert 2 auf den Stack
PUSH 1      ; Lege den Wert 1 auf den Stack
MOV $3, 0   ; Speicherstelle 3 zurücksetzen
LBL start   ; Sprungmarke setzen
POP B       ; Wert vom Stack in B
JR  ende    ; Ende, wenn Stack leer
ADD $3, B   ; Inhalt von B zu $3 addieren
JMP start   ; Schleife: nächsten Wert verarbeiten
LBL ende    ; Sprungmarke setzen
HLT         ; Programm beenden



Vorlesung 3

3. for-Schleife, Unterprogramme, Funktionen

Ergänzungen (optional zum Üben und Vertiefen):



Vorlesung 4

4. Präprozessor, Compiler, Linker

Ergänzungen (optional zum Üben und Vertiefen):



Vorlesung 5

5. Zahlentypen, mathematische Funktionen

Ergänzungen (optional zum Üben und Vertiefen):
IEEE-754-single
Bei einem 32-bit Float werden die Bits wie folgt aufgeteilt: 1 Bit Vorzeichen + 8 Bit Exponent + 23 Bit Mantisse, z.B. 0 10000011 00100110011001100110011 ist die Dezimalzahl +1,00100110011001100110011 * 2^(131-127) = 18,39999961853



Vorlesung 6


Vorlesung 7

7. Zeichenketten (Teil 2)

8. Strukturen, Aufzählungen

Ergänzungen zu Zeichenketten (optional zum Üben und Vertiefen):
Ergänzungen zu Strukturen, Aufzählungen (optional zum Üben und Vertiefen):


Vorlesung 8


Vorlesung 9


Weiterführend (optional):


Vorlesung 10

12. Datenstrukturen und Algorithmen
Bubble-sort-example-300px
Bubble Sort in Action

Ergänzungen (optional zum Üben und Vertiefen):



Weiterführend (optional):

13. Automaten und formale Sprachen

Ergänzungen (optional zum Üben und Vertiefen):

14. Fehler vermeiden, Fehler finden



II. Objektorientierte Programmierung in Java



Vorlesung 11

Zu den Übungsaufgaben in Teil II.:
  • Corona-Update: Sie sollen vorab alle Übungen bearbeiten und sich die Lösungen ansehen. Fragen notieren und im Online-Meeting klären!
  • Die Aufgabenstellung samt Lösung finden Sie sofern nicht anders vermerkt in den Videos.
  • Sie können im Praktikum an Ihrem Projekt arbeiten bzw. Fragen mit mir klären.
  • Es gibt Aufgaben, 
    • welche Sie vorher machen müssen (HA-Ü = Hausfgaben-Übung) und 
    • welche wir in der Präsenzveranstaltung (Ü) machen.
  • Sie müssen sich für die Präsenzübung (Ü) die Aufgabenstellung vorab ansehen
  • Die Lösung der Präsenzübung (Ü) erarbeiten Sie sich (mit meiner Hilfe) in der Präsenzveranstaltung, also Vorlesung/Praktikum
  • Den ausführlichen Lösungsvorschlag im Video müssen Sie nacharbeiten

Zur Motivation: Java Code Hard - Rap

1. JDK, Eclipse und Hello World
2. Objekte und Klassen

Dieses Konzept ist neu und wichtig! Von der Datenhaltung her ist eine Klasse ähnlich zu der Structure aus C:
3. Typen und Variablen

Bitte Zeit nehmen! Es wird viel wiederholt, was Sie aus der Programmierung von C schon kennen sollten bzw. ähnlich ist!


Vorlesung 12

Bitte Zeit nehmen! Es wird viel wiederholt, was Sie aus der Programmierung von C schon kennen sollten bzw. ähnlich ist!

4. Kontrollstrukturen: Verzweigungen und Schleifen
5. Arrays
6. Konsolenprogramme


Vorlesung 13

7. Konstruktoren
8. Methoden


Vorlesung 14

9. lokale Variablen, Attribute und statische Attribute
10. Datenkapselung und Sichtbarkeit von Attributen und Methoden


Vorlesung 15

11. Listen


Vorlesung 16

12. Vererbung


Vorlesung 17

13. Interfaces
14. Generics
15. Exceptions


Vorlesung 18

16. Installation JavaFX SDK, Scene Builder und e(fx)clipse-Plugin

    • Bei Fehler: Error: JavaFX runtime components are missing, and are required to run this application 
      • gehe zu "Run > Run Configurations... > Java Application" und 
      • trage folgende "VM arguments" ein: 
        • --module-path "\path\to\javafx-sdk-12.0.1\lib" --add-modules javafx.controls,javafx.fxml
  • bereits in der Installation dabei: Installation e(fx)clipse-Plugin
    • Video-Anleitung (ca. 8 min.) ab 1:44
    • Falls es Fehler gibt muss man evtl. noch angeben, wo das JavaFX SDK und Scene Builder sich befinden: 
      • "Window > Preferences > JavaFX" 
      • unter "SceneBuilder executable" und "JavaFX 11+ SDK"

optional: weiterführende JavaFX-Dokumentation

17. Erste Schritte mit JavaFX

18. Properties und Bindings
optional: Nodes



Vorlesung 19

19. FXML
20. Layout-Container
21. Controls
22. SceneBuilder und MVC


Vorlesung 20


24. Tabellen

Fortführung PÜ-32 Projekt TemperatureData-GUI

Weitere JavaFX-Komponenten

Zur Anzeige gibt es viele fertige Komponenten, siehe z.B.
Overview aus dem Projekt https://github.com/HanSolo/Medusa

Overview aus dem Projekt https://github.com/HanSolo/tilesfx



optional: Weiterführende Themen

optional: CSS
optional: Nebenläufige Programmierung
optional: Shapes
optional: Effekte
optional: Events
optional: Diverses
optional: Dialoge
optional: HTML und Medien
optional: Gluon: JavaFX for Mobile
optional: spezielle Themen



No comments:

Post a Comment