JAVA Online-Tutoren WS1718

Beim aktivitätsorientierten, selbstverantwortlichen Lernen werden die Dinge selbst in die Hand genommen! Hier zeigen die Onlinetutoren, dass sie anpacken können! Die Onlinetutoren sind – im Gegensatz zu den Präsenztutoren – nicht nur am Tag des Praktiums erreichbar, sonder online eben dann, wenn die Frage auftaucht! So der Plan. So wurde es im Sommersemester 2017 erfolgreich praktiziert.

„JAVA Online-Tutoren WS1718“ 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 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

Programmieren 1: Lesson 3 – Objektorientierung, Grammatik, Syntax und Basisdatentypen

Statisch wird die Objektorientierung vor allem durch eine syntaktische Struktur gekennzeichnet. Mit Hilfe des Skripts haben Sie Kapitel 5 samt Fragestellung „5. Einführung Objektorientierung (was kennzeichnet OO?)“ vorbereitet und sind sicherlich dabei auch auf die erwähnte syntaktische Struktur (einer Klassendeklaration) gestossen. Der Clou: Daten und Algorithmen (Java-Methoden) werden in einer gemeinsamen „Kapsel“ deklariert – eben der Klasse. „Ordnung ist das halbe Programmierer/innen Leben“, könnte man sagen. „Programmieren 1: Lesson 3 – Objektorientierung, Grammatik, Syntax und Basisdatentypen“ weiterlesen

Programmieren 1: Lesson 2

Möglichst rasch praktisch und operabel zu werden, war schon unser Ziel beim Einstieg in den Kurs „Programmieren 1 (mit Java)“.

  1. In der Lesson 1 haben wir zuerst das JDK installiert (siehe hier) und danach
  2. IDE Eclipse (siehe hier).  Damit war dann auch schon die „Übung 0“ erledigt.
  3. EinigesWissenswertes über JAVA? Sicherlich auch schon das Eine oder das Andere bekannt. Gehört ja schliesslich zum Hintergrundwissen, eignet sich gut zum Small Talk und läßt sich selbst bei Prüfungen verwenden!  (Siehe hier)
  4. Die „Short-Story“: was bis zur Jahrtausendwende geschah.

Noch ein Wort zu den Übungen. In aller Regel gibt es vor den Übungen die „Programmieren 1: Lesson 2“ weiterlesen

Programmieren 1: Lesson 1

Programmiere 1 (mit Java)- Lesson 1: das didaktische Konzept zur HFU/WIB1-Veranstaltung „Programmieren1“ ist hinreichend bekannt, in den ersten beiden Lifesessions hinreichend vorgestellt und im Skript beschreiben worden.

Programmieren ist ein dynamischer Prozess: die Lösung wird modelliert. Dem fertigen Programm sieht man den Entstehungsprozess nicht mehr an.

„Programmieren 1: Lesson 1“ weiterlesen