13 episodes

Inhalte und Lernziele:
Die Studierenden lernen grundlegende Strukturen der Programmiersprache Java kennen und anwenden, insbesondere Kontrollstrukturen, einfache Datenstrukturen, Umgang mit Objekten, und Implementierung elementarer Algorithmen. Sie erwerben grundlegende Kenntnisse in Programmiermethodik und die Fähigkeit zur autonomen Erstellung kleiner bis mittlerer, lauffähiger Java-Programme.

Objekte und Klassen | Typen, Werte und Variablen | Methoden | Kontrollstrukturen | Rekursion | Referenzen, Listen | Vererbung | Ein/-Ausgabe | Exceptions | Programmiermethodik | Implementierung elementarer Algorithmen (z.B. Sortierverfahren) in Java
Dozentin: Jun.-Prof. Dr. Anne Koziolek | Karlsruher Institut für Technologie (KIT), Institut für Programmstrukturen und Datenorgansiation
Vorlesungsaufzeichnung: KIT | WEBCAST: http://webcast.kit.edu

Programmieren, WS16/17, Vorlesung Karlsruher Institut für Technologie (KIT)

    • Education

Inhalte und Lernziele:
Die Studierenden lernen grundlegende Strukturen der Programmiersprache Java kennen und anwenden, insbesondere Kontrollstrukturen, einfache Datenstrukturen, Umgang mit Objekten, und Implementierung elementarer Algorithmen. Sie erwerben grundlegende Kenntnisse in Programmiermethodik und die Fähigkeit zur autonomen Erstellung kleiner bis mittlerer, lauffähiger Java-Programme.

Objekte und Klassen | Typen, Werte und Variablen | Methoden | Kontrollstrukturen | Rekursion | Referenzen, Listen | Vererbung | Ein/-Ausgabe | Exceptions | Programmiermethodik | Implementierung elementarer Algorithmen (z.B. Sortierverfahren) in Java
Dozentin: Jun.-Prof. Dr. Anne Koziolek | Karlsruher Institut für Technologie (KIT), Institut für Programmstrukturen und Datenorgansiation
Vorlesungsaufzeichnung: KIT | WEBCAST: http://webcast.kit.edu

    • video
    Programmieren, Vorlesung, WS 2016/17, 08.02.2017, 13

    Programmieren, Vorlesung, WS 2016/17, 08.02.2017, 13

    13 |
    0:00:00 Starten
    0:00:46 Was erwartet Sie heute?
    0:02:04 Lernziele
    0:02:56 Wiederholung: ""Bugs""
    0:06:51 Debugging
    0:08:39 Schritte der klassischen wissenschaftlichen Methode
    0:11:02 Wissenschaftliche Methode angewendet auf Debugging
    0:12:31 Debugging - Stabilisieren des Fehlers
    0:16:09 Tipps für die Fehlersuche
    0:31:37 Zusammenfassung
    0:32:20 JUNIT
    0:33:11 Outline
    0:34:13 Foreword
    0:35:04 Classification of Tests
    0:37:19 Test-Driven Development
    0:39:36 Isolated Testing
    0:42:04 Refactoring
    0:44:50 Challenges for Testing Largo-Scale Systems
    0:47:29 Bad smells
    0:51:59 JUnit - Overview
    0:54:48 Junit 3 vs JUnit 4
    0:55:47 Terminology
    0:56:56 Structure
    0:58:01 Test Case Verdicts
    0:59:08 What is a JUnit Test?
    1:00:34 Organisation of JUnit Tests
    1:01:09 Writing a JUnit test class
    1:01:47 A simple example
    1:02:53 Assertions
    1:05:10 Test Fixture
    1:07:44 Setup and Teardown
    1:08:35 beforeClass/AfterClass
    1:09:05 Fixture - Example
    1:09:43 Expected Exception
    1:11:20 Ignore/Timeout
    1:12:54 Parameterised Tests
    1:16:44 Test Suites
    1:18:08 Running JUnit Tests
    1:18:36 Test Runners
    1:21:13 Zusammenfassung

    • 1 hr 21 min
    • video
    Programmieren, Vorlesung, WS 2016/17, 01.02.2017, 12

    Programmieren, Vorlesung, WS 2016/17, 01.02.2017, 12

    12 |
    0:00:00 Starten
    0:02:16 Überblick
    0:02:48 Motivation
    0:03:53 Halde
    0:05:21 Kellerspeicher
    0:07:17 Einsatz des Kellerspeichers
    0:09:09 Speichereinteilung
    0:10:01 Einteilung des Datenbereichs
    0:10:57 Sprünge
    0:14:36 Bedingte Sprünge - Verzweigung
    0:16:49 Kopfgesteuerte Schleife
    0:17:56 Adressierung durch 3 Basisadressen
    0:19:01 Laufzeitkeller
    0:20:09 Schritte beim Aufrufen einer Methode
    0:20:44 Schritte beim Verlassen einer Methode
    0:21:47 Zusammenfassung
    0:24:13 17 Best Practices
    0:28:38 Prinzip 1
    0:36:35 Prinzip 2
    0:42:06 Prinzip 3
    0:55:56 Prinzip 4
    0:57:54 Prinzip 5
    1:03:44 Prinzip 6
    1:13:03 Zusammenfassung

    • 1 hr 15 min
    • video
    Programmieren, Vorlesung, WS 2016/17, 18.01.2017, 11

    Programmieren, Vorlesung, WS 2016/17, 18.01.2017, 11

    11 |
    0:00:00 Starten
    0:00:10 Vorlesung 14
    0:01:29 Zerteilen (engl. ""parsing"")
    0:11:27 Suchen
    0:17:35 Sortieren
    0:27:33 Vorlesung 15
    0:30:47 Prinzip 1: (Datenkapselung)
    0:36:02 Prinzip 2: Bevorzugte Komposition gegenüber Vererbung
    0:51:20 Prinzip 3: Programmiere gegen Schnitstellen und nicht gegen eine Implementierung
    1:00:27 Ausgewählte Prinzipien für den Schnittstellenentwurf
    1:11:12 Zusammenfassung

    • 1 hr 12 min
    • video
    Programmieren, Vorlesung, WS 2016/17, 11.01.2017, 10

    Programmieren, Vorlesung, WS 2016/17, 11.01.2017, 10

    10 |
    0:00:00 Starten
    0:01:19 12 Java API
    0:01:23 Nochmals: Das Interface Collection
    0:03:08 Sub-Interfaces von Collection
    0:05:26 Das Interface Map
    0:08:47 Die Klasse Collections
    0:11:27 Das Paket java.io
    0:13:21 Ein- und Ausgabe in Java
    0:16:08 Java Puzzlers
    0:16:47 Zusammenfassung
    0:18:19 13 Testen und Assertions
    0:20:59 Softwarefehler (""Bugs"")
    0:29:40 Testen
    0:31:45 Beispiel: Klassifikation Dreiecke
    0:38:25 Kriterien für gute Testfälle
    0:41:53 Was Testen ist...
    0:45:28 Failure vs. Fault
    0:47:02 Failure vs. Fault vs. Error
    0:48:14 Beispiel: Failure vs. Fault
    0:50:57 Was Testen nicht ist...
    0:53:49 Warum Testen so schwierig ist
    0:57:09 Testselektion
    1:00:11 Teststrategien
    1:01:03 Assertions
    1:02:43 Zusicherungen
    1:07:55 Vor- und Nachbedingungen, Invarianten
    1:10:09 assert oder if-Abfrage?
    1:12:38 Statische Analyse
    1:15:07 Zusammenfassung

    • 1 hr 17 min
    • video
    Programmieren, Vorlesung, WS 2016/17, 21.12.2016, 09

    Programmieren, Vorlesung, WS 2016/17, 21.12.2016, 09

    09 |
    0:00:00 Starten
    0:00:07 Kapitel 10: Ausnahmebehandlung (Exceptions)
    0:01:54 Exceptions: Motivation
    0:02:53 Fehlerbehandlung im GOTO-Zeitalter
    0:03:14 Fehlerbehandlung - ohne GOTO, kaum besser
    0:03:24 Lokale Fehlerbehandlung
    0:03:49 Ausnahmen (Exceptions)
    0:05:30 Exceptions in Java
    0:11:54 Auszug aus der Exception-Hierarchie
    0:14:58 Ausnahmebehandlung in Java
    0:18:37 Kontrollfluss bei Exceptions
    0:22:20 Ausnahmebehandlung
    0:23:42 Deklarieren von Ausnahmen
    0:26:23 Error und Exception
    0:28:39 Behandeln von Ausnahmen
    0:30:37 Werfen von Ausnahmen
    0:33:21 Eigene Exceptions
    0:34:51 Verwendung von Exceptions
    0:38:04 Faustregeln
    0:40:02 Frühe Fehlererkennung (""fail fast"")
    0:42:17 Schlechtes Beispiel: java.util.Properties
    0:43:45 Zusammenfassung Exceptions
    0:45:23 Kapitel 11: Rekursion
    0:45:45 Motivation: Divide and Conquer
    0:50:34 Rekursion
    0:51:26 Rekursive Methoden
    0:52:47 Beispiel: Fakultätsfunktion
    0:57:11 Binomialfunktion
    1:00:52 Instanzen der Methode binom(n,k)
    1:03:54 Binomialfunktion mit Caching
    1:04:41 Rekursion - Zusammenfassung
    1:06:13 Rekursion vs. Iteration
    1:08:16 Die Kochsche Schneeflockenkurve
    1:09:15 Kapitel 12: Java API
    1:09:50 Java API
    1:12:25 Das Java Collections Framework
    1:14:53 Das Interface Collection
    1:18:01 Exkurs: Wildcards in generischen Typen
    1:20:06 Exkurs: Kovarianz / Invarianz
    1:24:47 Exkurs: Wildcards mit generischen Typen
    1:25:31 Nochmals: Das Interface Collection
    1:25:47 Sub-Interfaces von Collection
    1:26:08 Das Interface Map
    1:26:24 Zusammenfassung

    • 1 hr 27 min
    • video
    Programmieren, Vorlesung, WS 2016/17, 14.12.2016, 08

    Programmieren, Vorlesung, WS 2016/17, 14.12.2016, 08

    08 |
    0:00:00 Starten
    0:00:13 8. Vererbung
    0:02:44 Up- and Down-Casts
    0:03:42 Die Klasse Object
    0:05:46 Auszug Java-Klassenhirarchie
    0:06:56 Inhaltliche Gleichheit: equals (Object obj)
    0:13:36 Grenzen der Vererbbarkeit: final
    0:15:54 Abstrakte Klassen
    0:19:29 Quiz
    0:27:32 Zusammenfassung
    0:28:55 9. Interfaces, Generics
    0:29:37 Debugging
    0:30:26 Motivation - Interfaces
    0:32:19 Interfaces als Schnittstellenbeschreibung
    0:36:58 Interfaces - Syntax
    0:41:19 Beispiel - Liste
    0:43:47 Interfaces - Übersicht
    0:44:50 Abstrakte Klassen vs. Interfaces
    0:45:59 Quiz
    0:48:35 Motivation - Generische Klassen
    0:51:09 Generics - Konzept
    0:53:29 Syntax - Polymorphie in Java
    0:55:21 Generische Listen
    1:02:08 Mehrere Typ-Parameter
    1:02:45 Vergleichen von Objekten
    1:08:19 Einschränkungen
    1:09:43 Wrapper-Objekte, Autoboxing
    1:11:27 Generische Methode
    1:13:01 Zusammenfassung
    1:15:48 10 Ausnahmebehandlung (Exceptions)
    1:16:27 Exeptions: Motivation
    1:17:47 Fehlerbehandlung im GOTO-Zeitalter
    1:20:16 Lokale Fehlerbehandlung
    1:21:08 Ausnahmen (Exceptions)

    • 1 hr 22 min

Top Podcasts In Education

The Mel Robbins Podcast
Mel Robbins
The Jordan B. Peterson Podcast
Dr. Jordan B. Peterson
Mick Unplugged
Mick Hunt
Do The Work
Do The Work
Coffee Break Spanish
Coffee Break Languages
TED Talks Daily
TED

More by Karlsruher Institut für Technologie

The Karlsruhe Institute of Technology (KIT)
Karlsruher Institut für Technologie (KIT)
Kulturwissenschaft gestern und morgen
Karlsruher Institut für Technologie (KIT)
Fossile Rohstoffe ade! Forschung auf dem Weg in die Bioökonomie
Karlsruher Institut für Technologie (KIT)
Forschungspodcast »Selbstbewusste KI«
Karlsruher Institut für Technologie (KIT)
WIKA Workshop 2018: Models of future cultural relations
Karlsruher Institut für Technologie (KIT)
Thorium: Atomkraft ohne Risiko?
Karlsruher Institut für Technologie (KIT)