Programmieren 2: Lösung ADRELI_4_GUI geleakt?

Wie Sie schon festgestellt habven: von Projekt zu Projekt werden die Adreli-Projekte umfangreicher, was die Code-Zeilen angeht, kurz LOC genannt (LOC=Lines of Code). Natürlich bauen die Projekte aufeinander auf, so das zu einem gewissen Teil Code-Sequenzen aus dem Vorgängerprojekt mitgenommen werden können, also nur ein gewisses Delta dazukommt, weil wir neue Features und Java-Klassen in das bisherige Projekt einbauen.

„Programmieren 2: Lösung ADRELI_4_GUI geleakt?“ weiterlesen

Programmieren 1: Semesterprojekt, eine Sommer-Episode

Das Semesterprojekt läuft. Wir sprechen Dienstags darüber. Und vorher schon hier und auf YouTube. Primär geht es zunächst mal darum, wie die Aufgabenstellung zu verstehen ist. Wenn das Verständnis nicht stimmt – stimmt in der Folge alles weitere nicht. Das Verständnis-Fundament muss alles andere tragen. Wie eben beim Haus auch: stimmt das Fundament nicht, so wird das Gebäude darüber einstürzen – eines der häufigsten Probleme bei Softwareprojekten: “Die Programmierer/innen haben den Auftraggeber nicht richtig verstanden!”. Wir vermeiden das, weil wir über das Projekt sprechen.

Die Episode 1

YouTubeTalk-about-it-1:  youtubeJAVA_1_Semesterprojekt.

Es geht um einige Erläuterungen, die das Verständnis vertiefen. Dass im Video vom WS1617 die Rede ist, stört Sie nicht. Der Inhalt gilt auch für das WS1718.

Java1_Semesterprojekt_01
Java1_Semesterprojekt_01

Dass alle Termine für das WS1718 aktuell den Aushängen und dem Felix zu entnehmen sind, wissen Sie. Insgesamt handelt es sich hier um die erste Episo deyoutubeJAVA_Semesterprojekt_01_Intro” aus einer Serie von Videos zu diesem Semesterprojekt.

Die zweite Episode dürfen Sie sich auch gleich “reinziehen”:

Die Episode 2

YouTubeTalk-about-it-2:  youtubeJAVA_1_Semesterprojekt.

In diesem Video sehen Sie im Part 1 (in den ersten 10 Minuten), wie ein laufende friends-Programm aussieht und funktioniert.

Java1_Semesterprojekt_02
Java1_Semesterprojekt_02

Im Part 2 sehen Sie den Einstieg in die Entwicklung. Machen Sie sich die Tipps aus der zweiten EpisodeJAVA_Semesterprojekt_02_Intro” zu eigen – Sie werden Ihr Projekt effizienter realisieren können.

Die Episode 3

Im Part 3 ist die Entwicklung praktisch schon in vollem Gange. Wir kümmern uns in der dritten Episode um den Einbau von Arrays als Puffer und Container “JAVA_Semesterprojekt_03_Intro_data+funct“. Neben den ersten Methoden sind nun auch die ersten Daten eingerichtet.

Episode_3
Episode_3: Die Semesterprojekt-Architektur ist fertig

Die Episode 4

In der Interimsversion v00 haben wie die Spec besprochen und das Projekt in Eclipse eingerichtet. Die wichtigsten Programmschritte waren die Menü-Dialog-Schnittstelle in der Methode main_menu() zu programmieren und dann diese Methode im main() einzubauen. Damit hatten wir eine sehr embryonale Interimslösung, übersetzbar und testbar.
In der darauf folgenden Interimslösung v01 haben wir begonnen die Daten zu modellieren und in einer switch-case-Konstruktion die User-Reaktion abzufangen und mit adäquaten Methoden darauf zu reagieren. Na ja, wir haben die Methoden vorbereitet. Auch diese Interimslösung ist übersetzbar und testbar.
Jetzt, in der Interimslösung v02 implementieren wir die Methoden funct_1(), funct_2() und pers_append(). Damit haben wir 50% aller benötigten Methoden implementiert.

Episode 4 youtube Das Semesterprojekt ist jetzt zur Hälfte fertig

Die Episode 5

Erfahrungsgemäß die kritischsten Operationen: Personenrecords in die Datei sichern und aus der Datei laden. Hier sieht man wie’s geht.

Episode 5 youtube Das Dateihandling wird fast fertig gestellt.

Die Episode 6

Die letze File-Operation ist eingebaut: das Löschen der Datenbasis-Datei personenDB.csv als funct_5(). Damit ist das Semesterprojekt so gut wie fertig! Das Grooming fehlt noch.

Episode 6 youtube Das Dateihandling ist fertig gestellt.

Damit ist das Semesterprojekt so gut wie fertig! Das Grooming fehlt noch, dazu gehört z.B. das Umbenennen der Methoden. Wir hatten von Anfang an etwas synthetische Dateinamen, die nicht wirklich sprechend ware.

Insgesamt haben wir damit eine Semester-Projekt-Lösung, die von mir so geplant war, dass wir mit einer einzigen Klasse auskommen. Mehr wie eine Klasse gibt die Aufgabenstellung nicht her: wir haben zwei sehr bedeutungsvolle Datenkonstrukte und ein halbes Dutzend Methoden – genug für eine Klasse. Mehr Klassen für diese kleine Anwendung zu erfinden, wäre nicht wirklich sinnvoll.

Programmieren 2: Lesson 5 – GUI, G.U.Y. wer oder was?

Der GUI-GUY wartet ja schon lange darauf: endlich der Applikation eine GUI geben, ein graphical user interface. Weg vom langweiligen Menue. Deutlich flexibler und interaktiver. Spontaner. Gleich sehen, was machbar ist. Lust auf einen Klick!

„Programmieren 2: Lesson 5 – GUI, G.U.Y. wer oder was?“ weiterlesen

Programmieren 1: Lesson 6 – Zusammengesetzte Datentypen: das Array

Neben den  skalaren Datentypen (sicherheitshalber nochmal nachlesen!) gibt es im Sprachkern von Java auch einen strukturierten Datentyp: das Array. Wir haben es schon gehört: das ist einer der prominentesten Datentypen überhaupt. Gibt’s in jeder Programmiersprache und in nahezu jedem Programm – aus so ziemlich den gleichen Gründen, warum Sie im “echten Leben” entsprechende Äquivalenzen benutzen – zum Beispiel beim Einkauf im Supermarkt. Wetten?

„Programmieren 1: Lesson 6 – Zusammengesetzte Datentypen: das Array“ weiterlesen

Programmieren 1: Lesson 5 – Algorithmus + Kontrollstrukturen sattelfest?

Das Array ist eine der prominentesten Datenstrukturen! Ein zusammengesetzter Datentyp, den es in allen gängigen Programmier-Hochsprachen gibt und damit natürlich auch in Java!

Aber lassen Sie uns nochmals innehalten und die Kontrollstrukturen “überfliegen”, um das Thema Algorthmus als einen der programmiersprachlich großen BUILDING-BLOCKS abzuschließen.

Algorithmus und Kontrollstruktur
Kontrollstruktur und Algorithmus (klicken Sie auf’s Bild!)

Wie wäre die Welt einfach, gäbe es nur die großen BUILDING-BLOCKS! Darüberhinaus gibt es aber noch zahlreichen Detailregelungen, die sogenannten  Nitty-Gritty Details – häufig “Kleinigkeiten” – die aber eben auch zum Funktionieren unerlässlich sind. Oder “Hintergrundwissen”, das für ein fundiertes Verständnis unerlässlich ist. Schnuppern wir hier mal rein!

Nitty-Gritty Details
Nitty-Gritty Details (klicken Sie auf’s Bild)

Programmieren 1: Lesson 4 – GAME of CODES – aus Algorithmus wird Programm-Code

Bevor mit dem Codieren (egal, in welcher Programmiersprache) begonnen werden kann, muss der Algorithmus klar sein, der als Programm formuliert werden soll. Was aber ist ein Algorithmus?

„Programmieren 1: Lesson 4 – GAME of CODES – aus Algorithmus wird Programm-Code“ weiterlesen