Anmeldung Registrierung
Auto Hell Dunkel
Erweiterte Suche

Herzbergs Hörsaal: Informatik studieren mit den Ohren Archiv

107 Episoden
29 Minuten
Enumerationstypen kann man gut gebrauchen, wenn es um eine feste Anzahl von Aufzählungswerten geht -- man nennt sie auch Enumerationskonstanten. Da Enumerationen vom Klassenkonstrukt abgeleitet sind, kann man mit ihnen sehr interessante Sachen machen. Man kann einen privaten Konstruktor, finale Variablen und weitere Methoden hinzufügen. Und was weitere Möglichkeiten eröffnet: Jeden Enumerationswert kann man mit einer anonymen Klassendeklaration versehen, der den Enumerationstyp erweitert. All das erläutere ich Ihnen an praktischen Beispielen.

Begleitmaterial zur Episode: https://drive.google.com/file/d/1mi4vG8x0BIniB0zkY6fzos7oaU3G-vPN/view?usp=sharing
30 Minuten
Es gibt in Java vier Varianten von sogenannten geschachtelten Klassen, also Klassen, die keine Top-Level-Klassen in einer Java-Datei sind. In einer Klassendeklaration kann als Member eine Klasse deklariert werden, entweder als static oder "normal" ohne static. Das sind die ersten beiden Varianten, die statisch geschachtelte Klasse und die innere Klasse. Die dritte Variante: Innerhalb eines Codeblocks kann eine Klasse deklariert als sogenannte lokale Klasse deklariert werden. Und zu guter Letzt: Die anonyme Klasse kann überall dort deklariert und gleichzeitig instanziiert werden, wo der new-Operator zum Einsatz kommen kann. Die anonyme Klasse implementiert entweder ein Interface oder sie erweitert eine Klasse.

Begleitmaterial zur Episode: https://drive.google.com/file/d/1-aLi6LDtsM8aYaY5tSV0Nxd-SJaBIXqu/view?usp=sharing
14 Minuten
Eine Bachelor- oder Masterarbeit braucht Begleitung durch eine hochschulseitige Betreuungsperson, meist eine Professorin oder ein Professor. Wieviel Zeit hat er oder sie für die Betreuung Ihrer Abschlussarbeit? Um es vorweg zu nehmen: Die Verordnungen wollen nicht, dass Ihre Betreuungsperson so viel Zeit für Sie hat, wie Sie sich das vielleicht wünschen. Wenn er oder sie Ihnen dennoch viel mit Rat und Tat zur Seite steht, verändert das die Erwartungshaltung an Sie.
8 Minuten
Der Titel Ihrer Bachelorarbeit ist wichtiger als Sie denken -- weil nur wenige Menschen Ihre Abschlussarbeit lesen, aber deutlich mehr Menschen sich für den Titel Ihrer Abschlussarbeit interessieren. Welche Menschen das sind, das verrät Ihnen diese Episode.
31 Minuten
Programme, die generisch sind, sind für die Verwendung mit verschiedenen Typen konfiguriert. Ohne generische Typen würde das Programmieren in Java keinen Spaß machen -- man müsste entweder Code permanent doppeln, was fehleranfällig und wenig wartbar ist; oder man müsste z.B. Variablen oder Methoden auf den "höchsten" Typen (also Object) hin auslegen und viel casten, was ebenfalls fehlerträchtig ist. Bei generischer Programmierung darf man auf die Hilfe des Compiler setzen, muss sich dafür aber in die Feinheiten von Typhierarchien bei generischen Typen hineindenken. Doch soweit kommt es in dieser Episode nicht, ich versuche hier ein Grundverständnis zu wecken.

Begleitmaterial: https://docs.oracle.com/javase/tutorial/java/generics/
33 Minuten
Wir verlassen heute die unmittelbare Codeebene und nehmen einmal eine Adler-Perspektive ein, eine sogenannte Entwurfssicht. Aus dieser Entwurfssicht organisieren wir die Aufteilung unseres Codes in Komponenten, ordnen den Komponenten Rollen zu und regeln die Art und Weise der Zusammenarbeit der Komponenten. Ich stelle das Presentation Model vor und erkläre ein sehr bekanntes und populäres Entwurfsmuster, das dabei im Hintergrund zur Anwendung kommt: das Beobachter-Muster.

Begleitmaterial zur Episode: https://drive.google.com/file/d/1Fjy7X8ElctG29H_iMEyFkzugskHe3B2f/view?usp=sharing
11 Minuten
Der krönende Abschluss Ihres Studiums ist die Abschlusspräsentation Ihrer Arbeit im Kolloquium. Da geht es um eine verkürzte Darstellung Ihrer Bachelor- bzw. Masterarbeit. Aus vielen Jahren Erfahrung mein Tipp: Zäumen Sie das Pferd von hinten auf! Stellen Sie die Präsentation "auf den Kopf"! Springen Sie zu den Ergebnissen und Erkenntnissen, die Ihre Arbeit auszeichnen. Warum? Damit Ihnen die Zeit nicht wegläuft für die wichtigen und interessanten Fragen, die Ihre Betreuungspersonen stellen möchten. Das kommt Ihrer Note zugute!
52 Minuten
Die Nebenläufigkeit ist der Normalzustand unserer Welt. Bei der Programmierung hingegen macht Sie uns Kopfschmerzen. Statt sich im Detail mit Threads in Java zu befassen, gibt diese Episode einen Überblick zu Begrifflichkeiten und Konzepten. Das Fazit: Wenn Sie Nebenläufigkeit benötigen, nutzen Sie eine Bibliothek oder ein Framework, das zu Ihrer Problemstellung passt. Wenn möglich, vermeiden Sie den direkten Umgang mit Threads. Es sei denn, Sie wollen Thread-Spezialist:in werden ;-)

Das Begleitmaterial zur Episode finden Sie unter https://drive.google.com/file/d/1whewUV1rVsFTGnrnhOHEyQtZ1QeR0-U2/view?usp=sharing  
1 Stunde 23 Minuten
Notizzettel sind diese kleinen, überall präsenten und doch leicht zu übersehenden Schriftstücke, mit denen sich bislang niemand wissenschaftlich auseinandergesetzt hat. Nun hat Hektor Haarkötter ein überaus lesenswertes und erkenntnisreiches Werk vorgelegt: Notizzettel -- Denken und Schreiben im 21. Jahrhundert, jüngst erschienen im S. Fischer-Verlag in der Rubrik Wissenschaft. Es geht um das Notieren, den Notizzettel, das Sudel- und Notizbuch, das Denken und das Schreiben. "Wer den Menschen beim Notieren zusieht, der kann ihnen beim Denken zusehen." Das ist so überraschend wie einleuchtend zugleich, wenn Hektor Haarkötter davon erzählt, was Leonardo da Vinci oder auch Ludwig Wittgenstein so alles notiert haben. Und wie Arno Schmidt oder Niklas Luhmann ihre Notizen organisiert haben. Das sind alles Beispiele dafür, dass Notizen ein Medium des Denkens sind und nicht der Kommunikation dienen.

Hektor Haarkötter ist Professor für Kommunikationswissenschaft an der Hochschule Bonn-Rhein-Sieg. Er studierte u.a. Philosophie, Geschichte, Germanistik und Soziologie in Rom, Düsseldorf und Göttingen. Vor seiner Berufung war er als Journalist und Fernsehregisseur tätig.

Webseite Hektor Haarkötter: https://www.h-brs.de/de/sv/hektor-haarkoetter und http://www.haarkoetter.de/

Webseite zum Buch: https://www.fischerverlage.de/buch/hektor-haarkoetter-notizzettel-9783103973303
1 Stunde 8 Minuten
Diese Episode ist eine Studie zur Gestaltung von Interfaces in Java -- als Beispiel dient das Spiel Tic-Tac-Toe. Was könnte so schwer daran sein, ein Programmier-Interface für Tic-Tac-Toe zu erstellen? Schwer ist es nicht, aber zu verstehen, was man da macht, welche Vorstellungsbilder mit einem Interface-Entwurf und einer Implementierung verbunden sind, das ist elementar, um die Praktische Informatik als Gestaltungswissenschaft zu verstehen. Denn das Schreiben von Code ist mehr als ein routiniertes Aneinanderreihen von Anweisungen und Ausdrücken.

Begleitmaterial zur Episode: https://drive.google.com/file/d/18S3IbKEDFJJKKv9V1RgFjNfjNCKB4-8t/view?usp=sharing

Wenn Sie mehr über die dahinterliegende Design-Theorie erfahren wollen: Sie finden hier in Herzbergs Hörsaal ein ausführliches Gespräch, das ich mit dem Design-Wissenschaftler und Philosophen Holger van den Boom geführt habe.

https://anchor.fm/dominikusherzberg/episodes/Das-Gesprch-Holger-van-den-Boom----Design-als-Mittel-der-Erschlieung-von-Welt-e111nuj
2 Stunden 22 Minuten
Design als Mittel der Erschließung von Welt. Das ist ein Design-Verständnis, das mein Gesprächsgast Prof. Dr. van den Boom über viele Jahre und Bücher hinweg entwickelt und das mein Interesse geweckt hat. Ehrlich gesagt hat es mich in seinen Bann gezogen.

Holger van den Boom ist emeritierter Professor für Industrial Design. Er hat von 1982 bis 2008 an der Hochschule für Bildende Künste in Braunschweig gelehrt und war dort Gründer und Leiter der Arbeitsstelle für Designinformatik. Er hat sein Berufsleben als Grafikdesigner begonnen und seine Studien in Philosophie, Mathematik, Theoretischer Physik, Linguistik und Psychologie führten ihn 1974 zur Promotion und 1982 zur Habilitation. Das verbindende Thema seiner Studienvielfalt ist die Semiotik, wie mir Herr van den Boom am Anfang des Gesprächs verrät.

Unser Gespräch greift das jüngst erschienene Buch von Holger van den Boom auf: “Einsteins Marmor: Eine Studie über Kosmologie und Design” (2021), Berlin: Logos. Ein Werk, das es mir wahrhaft angetan hat. Wir sprechen über Semiotik und darüber, was das Zeichen im Text zu leisten vermag und was in der Darstellung, im Bild anders ist. Es geht um das Trivium und das Quadrivium, konzeptuellen Überschuss, Operatoren, Invarianz, Referenzrahmen, um Mathematik und Naturwissenschaft … und es deutet sich eine Skizze eines Erkenntnisprogramms durch Design an. Gegen Ende versuche ich mich darin, sein Design-Verständnis auf die Informatik zu übertragen. Den Schluss bilden Gedanken zum Design-Begriff in den Bildungswissenschaften.

Einige der Werke von Holger van den Boom sind online verfügbar; das Stöbern und Lesen lohnt sich: https://www.uni-kassel.de/ub/index.php?id=39129&f_a=Boom%2C+Holger+van+den

Link zum Buch “Einsteins Marmor”: https://www.logos-verlag.de/cgi-bin/buch/isbn/5284

Homepage von Holger van den Boom: http://www.holgervandenboom.de/
23 Minuten
Das zentrale Konstrukt funktionaler Programmiersprachen ist die Funktion. Wie Sie wissen, ist Java nicht funktions- sondern objektorientiert. Die Übernahme dieses Konstruktes hat konsequenterweise dazu geführt, dass man Funktionen in Java als Funktionsobjekte realisiert hat. Notiert werden sie durch sogenannte Lambda-Ausdrucke, was ebenfalls ein Begriff aus der Welt der funktionalen Programmiersprachen ist.

Begleitmaterial: https://drive.google.com/file/d/1i_ESgfff8VmCQk7kN8QFopR5Yqxi7fa_/view?usp=sharing
41 Minuten
Die Collection-Bibliothek stellt Ihnen die wichtigsten Datenstrukturen bereit, die Sie im Programmieralltag mit Java benötigen. Diese Episode bietet Ihnen einen Einstieg in die Nutzung der Interfaces und Klassen dieser Bibliothek.

Foliensatz zur Episode: https://drive.google.com/file/d/1C8Jmp9Wkz84eBMYN23jWpDlbCUgutNfR/view?usp=sharing
43 Minuten
Gleichheit und Identität sind wichtige, elementare Konzepte in der Informatik. Im Programmieralltag ist man immer wieder gefordert, die Gleichheit per equals()-Methode zu implementieren und die hashCode()-Methode umzusetzen. Und -- falls das Sinn macht -- sind auch Vergleiche der Ordnungsfolge ("Größenvergleich") mit der compareTo-Methode zu realisieren. Wie man die Methoden geschickt und sauber implementiert, das erklärt Ihnen diese Espisode.

Material zu dieser Episode: https://drive.google.com/file/d/1kYmFtx-mALCyR1FSVfQ6RgzbIrv4Sa-M/view?usp=sharing
1 Stunde 13 Minuten
Ein wesentliches Merkmal der Objektorientierung ist die sogenannte Vererbung. Eine Bezeichnung, die etwas unglücklich gewählt ist, zumal Java selber das Schlüsselwort "extends" verwendet. Es ist verständlicher, von der Klassenerweiterung zu sprechen.

In dieser Episode bekommen Sie einen sehr technischen Einblick in die Klassenerweiterung, was Ihnen aber hilft, Java in seinem Objektmodell zu verstehen. Dafür muss man wissen, dass es zwei Kernklassen gibt, Object und Class, die man (streng genommen) immer mitdenken muss.

Der Foliensatz zur Episode: https://drive.google.com/file/d/1opUgTTgBygXcfnjEkHy--h6MvH9VbFYW/view?usp=sharing