Sonntag, 30. September 2018

FIAE: Woche 10. Hardware.

(Nachtrag. Ich wollte eigentlich von Anfang an Lerntagebuchmäßig mitschreiben, aber das hat nicht geklappt. Mal sehen, was ich nachholen kann...)

Vor dieser Woche habe ich mich tatsächlich etwas gefürchtet. Die gesamte Hardware-Sache ist ein Buch mit sieben Siegeln. Meine Befürchtungen scheinen sich zu bewahrheiten, als Trainer 1 sofort wieder in seinen Frontalunterrichtsmodus einsteigt. 
Den Unterschied zwischen Datenübertragunsraten (gemessen in Kilobyte; Dezimalbasis 1kb=1000 byte) und Speichergrößen (eigentlich gemessen in Kibi, Mibi etc; Binärbasis 1 kibi = 1024 byte) hatten wir tatsächlich schon einmal in der ersten Woche. Auffrischung schadet nicht, denn umgangsprachlich wird halt ungenau mit den Einheiten umgegangen. 
Dann steigen wir ein mit Festplatten. Didaktisch wird es jetzt ... wie soll ich sagen... verbesserungswürdig. Ich zumindest brauche etwa 10 Minuten um zu begreifen, dass wir gerade Informationen über unterschiedliche Festplatten abschreiben, die man auch einfach von den Verkaufs-Informations-Datenblättern hätte abschreiben können. Sinnvoller wäre es sicher gewesen, erst einmal zu erklären (ja, auf diesem Niveau bewege ich mich, und ich bin damit nicht alleine) wie eine Festplatte überhaupt aufgebaut ist, wie sie funktioniert, und welche Parameter überhaupt eine relevante Aussage über ihre Kapazität und Einsatzgebiete erlaubt. Sowas wie Laufzeit in Stunden, Angabe der nicht-korrigierbaren Lesefehler, oder auch die Standard-APIs --- alles wird uns gleichberechtig um die Ohren gehauen, Akronyme werden mit neuen Akronymen erklärt, es ist alles sehr verwirrend. 
Immerhin, irgendwann gibt es eine nachvollziehbare Erklärung zur Write Amplification, mit der ich anfange, zu verstehen, wovon eigentlich gerade die Rede ist.
Der Teil über RAIDS ist ebenfalls etwas besser aufgebaut. Gründe für die Einführung, historische Entwicklung der Raid Level, Unterschiede und Vor-und Nachteile... das ist nicht intuitiv, aber halbwegs nachvollziehbar. Schwieriger wird es, das von der Theorie aufs (vorhandene Vorführ-) Objekt zu übertragen. Es werden allerlei Hardware-Teile herumgereicht, aber eine Erklärung, was ich da in der Hand halte, und welche Komponenten was machen, erfolgt nicht. Das ist schade, und hätte deutlich besser aufbereitet werden können.
Das Thema Datensicherung ist eher ein bisschen zum Anfassen. Die verschiedenen Sicherungsarten, der Unteschied zwischen Backup und Datensicherung... ich kann folgen. Einzelne Übungsaufgaben, die wir machen, schmeißen uns aber wiederum in kaltes Wasser. Was weiß ich denn, wie man Speicherplatz berechnet? Ich kann den Rechenweg nur raten, liege auch nicht ganz weit weg, und natürlich kann man Aufgaben nutzen als Anlass für weitere Erklärungen, aber befriedigend ist das nicht, wenn die ganze Woche schon so holperig läuft.
Auch USV (unterbrechungsfreie Stromversorgung) ist ein wichtiges Thema, kann ich verstehen. Die Erklärung ist auch in Ordnung. Aber ich bin schon froh, dass wir einen Elektriker im Kurs haben, der mir noch ein paar Standard-Grundlagen erklärt, damit ich besser die verschiedenen Bedrohungen einer stabilen Spannung verstehe.  Spannungsausfall, -stoß, einbruch, Unterspannung, Überspannung etc - das wird alles vorausgesetzt, und mein letzter Physikunterricht ist eben doch schon 25 oder 30 Jahre her.
Es wird nicht besser, dass ich die letzten zwei Tage des Moduls auch noch verpasse, weil ich ein letztes Mal (hoffentlich) meine privaten Sorgen behandeln muss. Offenbar wird der Rest des Stoffes wieder auf Referate ausgelagert, wieder mit zu wenig Vorlauf (kann man die Themen nicht am Anfang der Woche vergeben, statt am Vortag?), wieder mit zu wenig Betreuung oder Feedback (wie ich mir habe sagen lassen. Ich war ja nicht da.)
Uff. Also einiges Nachzuarbeiten.

Die Herbstferien nächste Woche habe ich mir tatsächlich verdient. Hoffentlich werden sie erholsam! (Spoiler? nicht wirklich, aber das ist eine andere Geschichte.)


 to edit

Themen:

Samstag, 22. September 2018

FIAE: Woche 7-9. Relationale Datenbanksyteme und SQL.

(Nachtrag. Ich wollte eigentlich von Anfang an Lerntagebuchmäßig mitschreiben, aber das hat nicht geklappt. Mal sehen, was ich nachholen kann...)

Neues Thema: Datenbanken und SQL, diesmal wieder bei Trainer 1, dem strukturierten Frontalunterrichter.  Und tatsächlich dauert es etwa anderthalb Wochen, bis wir den Rechner anmachen, um die ersten SQL-Befehle zu tippen.
Das ist nicht weiter schlimm, in meinen Augen, da wir (für die Prüfung! Abschlussprüfung immer vor Augen!)  eben auch verstehen müssen, was Datenbanken sind, was sie können, was sie leisten sollen, kurzum erst einmal das Prinzip verstehen sollen. Schwerpunkt liegt dabei auf den relationalen Datenbanken und ihrer Normalisierung nach Codd, und obwohl ich die Grundlagen sicher verstanden zu haben glaube, habe ich - SPOILER!- in der Abschlussklausur einige durchaus dumme Fehler dabei gemacht. 

Dumm sind in meiner Definition Fehler, bei denen man es eigentlich besser gewusst hätte. Vermeidbar sind Fehler, wo eine einfache Nachfrage das Verständnis der Aufgabe geschärft hätte. Unnötig sind Fehler, bei denen man einen Teil der Aufgabenstellung vergessen hat. Und obwohl alle diese Fehler in meiner Klausur vorkamen, bin ich mit dem Gesamtergebnis mehr als zufrieden. Der Unterricht war durch die Bank zielorientiert und zielführend. Wer aufpasst, mitmacht und Fragen stellt kann ohne Extra-Einheiten gut mitkommen.

SQL als Sprache ist so konzipiert, dass es umgangsprachlichem Englisch ähnelt, insofern sind die Schlüsselwörter alle einleuchtend und schnell zu lernen. Blöd ist nur, dass wir tatsächlich etwas langsam vorankommen, sodass wir uns hauptsächlich mit Abfragen beschäftigen, und andere Aspekte ziemlich knapp ausfallen. Wichtige Themen wie Transaktionsrechte etc wurden sogar nur über ein - nicht mehr prüfungsrelevantes - Gruppenarbeitsreferat vermittelt. Die Gruppenarbeit wiederum fand ich wenig befriedigend - zeitlich knapp, ungenügend angeleitet, unklar in der Zielsetzung. Außerdem war ich wirklich unzufrieden mit unserer Präsentation. Das war ein gruppendynamisches Fiasko, denn der Großteil meiner Gruppe sah keinen Sinn darin, "richtig" zu präsentieren - also mit Folien, Visualisierung oder ähnlichem - und die Ansage, was gewünscht war, war mir zu unklar, sonst hätte ich mich als Gruppenleiterin vielleicht besser durchgesetzt. Nun ja. Nächstes Mal. 
Eigentlich läuft alles gut. Ich bin mehr und mehr überzeugt, mich wirklich ganz richtig entschieden zu haben. Ich frage mich tatsächlich, warum ich diese Umschulung nicht schon viel früher angefangen habe. Aber das ist müßig. Jetzt fühle ich mich - allen privaten Sorgen zum Trotz - endlich wieder auf dem richtigen Weg. Überrascht bin ich, dass ich SQL mit der Kommandozeile leichter zu programmieren fand, als mit der IDE (XAMPP). Die Dokumentation der Übungen ist allerdings ziemlich aufwendig, mit Copy-Paste in CodeWriter. Und das Skript ist wirklich wirklich suboptimal. Aber ich komme gut klar.

Das geht nicht allen so, und so kam es zu Extra-Lerngruppen am Samstag. Der inzwischen eingeführte Gruppenchat bewährt sich für kurze Fragen, Vertiefungslinks und Lerngruppenorganisation. Ich beginne, für fehlende Mitschüler dort stichwortartig mitzuschreiben - davon habe ich ja selbst auch etwas, vielleicht sogar am meisten. Dennoch, die Stimmung droht bei einigen zu kippen, als ein besonders ungeduldig-unterforderter Mitschüler zunehmend unruhig wird. Nebenher Computerspiele zu spielen ist ja ein Ding, aber laut nach Schwertern gegen Zombies zu rufen? Tut das not? 

Ich muss  zudem noch den Stoff des letzten Moduls aufholen und zögere etwas, ob und wie ich die verpasste Klausur nachholen kann. Ehrgeiz siegt: den Theorieteil schreibe ich am ersten Freitag nach, während der Rest der Klasse einem Firmenfortbildungsvortrag lauscht, den Praxisteil mit Programmieraufgaben eine Woche später am Donnerstag, während der Gruppenarbeitszeit. Dabei nutze ich die Zeit komplett aus, brauche länger als der Trainer und ich selbst erwartet haben. Mein Verdacht: es war zu leicht, ich habe zu kompliziert gedacht. Immerhin, irgendwann platzten alle Knoten, alle programmierten Aufgaben brachten das erwünschte Ergebnis und liefen sogar - das wäre nicht einmal nötig gewesen, man hätte wohl auch Punkte für den Ansatz erhalten. 

Insgesamt ist das Modul dadurch für mich aber dicht, und ich komme nicht dazu, zusätzliche Lerneinheiten einzulegen. Ich will schließlich auch noch Zeit mit Junior verbringen, der in den wenigen Nachmittagsstunden zwischen Heimkehr und Abendessen/Bettgehen volle Aufmerksamkeit verlangt und verdient.

Ich freue mich aber, dass zunehmend Mitschüler mit meinen Quizlet-Karten arbeiten, zumal ich so Feedback dazu erhalte, Fehlerlein entdecke und einen Grund habe, dran zu bleiben. Spätestens bei der Wiederholung in anderthalb Jahren wird sich das echt auszahlen. Gerade die nicht-Muttersprachler sind dankbar, da  der Trainer sehr schnell spricht, eine etwas idiosynkratische Ausdrucksweise hat und es aufgrund der Dichte der Fachbegriffe für sie noch schwerer ist zu folgen als für mich. Win-Win!
Die Klausur jedenfalls war auf diese Weise gut zu meistern. Wir wurden gut vorbereitet, die Rahmenbedingungen der Prüfung waren klar kommuniziert worden. Die Gruppeneinheit am Vortag der Prüfung öffnet mir die Augen über ein Thema, das ich bis dato nicht ganz richtig verstanden hatte - gerade rechtzeitig, sehr hilfreich. Am Tag selbst gab es gab ein paar irreführend formulierte Richtig-Falsch-Fragen, aber keine absichtlichen Fallstricke. Aber in der Klasse weicht die erste Aufbruchstimmung, das Grummeln wird lauter, Anymositäten treten zutage. Man darf auf weitere Entwicklungen gespannt sein.

Themen:
Datenbanksysteme, Anforderungen, Anomalien, Normalisierung nach Codd, 1. Normalform, 2. Normalform, 3. Normalform. Funktionale Abhängigkeiten. Primär- und Fremdschlüsselbeziehungen, Kardinalitäten, Grafische Darstellung von Tabellenbeziehungen. Datenintegrität. Semantische Integrität. Deklarative und prozedurale Integrität. Referential Actions. Installation und Konfiguration einer Datenbankumgebung. Datenmodellierung. Konzeptionelle Datenbankmodelle. Entity-Relationship Modelle, Chen-Notation, Bachmann-Notation, Krähenfußnotation. Entwicklung von SQL. DDL, DML (DQL) und DCL. SELECT-Klauseln. Verbindung von Tabellen.

Nur als Gruppenarbeit/Referatsergebnis, und daher noch nachzuarbeiten:
Schlüsselfelder und Indices, Sichten, Zugriffsrechte und Benutzerverwaltung, Transaktionsverwaltung, Schnitt-,Differenz- und Vereinigungsmengen, Theta-Join und Self-Join.
 

Sonntag, 2. September 2018

FIAE: Woche 4-6. Imperative und Prozedurale Programmierung

(Nachtrag. Ich wollte eigentlich von Anfang an Lerntagebuchmäßig mitschreiben, aber das hat nicht geklappt. Mal sehen, was ich nachholen kann...)

Der Trainer bleibt, das Thema ändert sich. Am Beispiel JavaScript kommt Dynamik in unsere Webseiten, wobei wir zuerst einmal die Grundlagen der Objektorientierung und des prozeduralen Programmierens verstehen müssen.
Für mich ist dieses Modul aus ganz privaten Gründen doppelt anstrengend, da ich insgesamt 5 Fehltage ansammeln muss und die Abschlussklausur nicht mitschreiben konnte. Manchmal spielt das Leben eben so. Zum Glück hat die Schule Verständnis, macht keinen Druck, sondern unterstützt, soweit das geht. Ich fühle mich nicht nur inhaltlich sondern vor allem auch in der Wahl des Weiterbildungsträgers bestätigt. Ein gutes Gefühl.
Abgesehen von allen Sorgen macht es nämlich auch Spaß. Ich arbeite gern strukturiert, systematisch und zielorientiert - das kommt einem beim Programmieren zu gute. Logik, auch die formale Logik, macht mir auch keine großen Probleme. Faszinierend finde ich die schiere Vielfalt der Lösungswege schon bei einfachsten Problemstellungen - wir programmieren hauptsächlich Rechenaufgaben, schließlich sind Computer "Rechner". Ich plane, zu Hause als Übung einen kleinen Strickrechner zu basteln, der mir das lästige Umrechnen der Maschenproben etc abnimmt. Die gibts zwar tausendfach im Netz, aber meiner wird meiner, und außerdem: projektorientiertes Lernen macht mehr Spaß.
Inzwischen verbringen wir den Großteil der Zeit mit dem Formulieren von Code-Schnippseln am Rechner. Das Einbinden dieser -zumeist Rechenfunktionen - in eine Webseite kommt allerdings noch etwas kurz. Zeit ist endlich, und ich bin froh, dass der Unterricht darauf fokussiert, möglichst alle mitzunehmen. Dennoch: die Stimmung im Raum ändert sich - es wird teils lauter, unruhiger bei den Ungeduldigen, teils sehr still bei denen, die innerlich abschalten und ansonsten (leise) Autorennen fahren. Eigentlich sind aber alle nett und ansprechbar. Wobei ich mit der letzten Reihe noch nicht viel gesprochen habe, etwa die Hälfte der Klasse ist sehr still.
Von "oben" war uns Donnerstag nachmittags jeweils 1,5 Stunden Gruppenarbeit verordnet worden. Die ersten beiden Wochen bekamen wir noch Erklärungen (zum Lernen, Lerntypen, Lernmethoden) und Teambuilding-Einheiten samt ausgelosten Gruppenzusammenstellungen, seitdem sollen wir uns inhaltlich selbst organisieren. Als alter Bildungshase weiß ich das alles sehr zu schätzen, teile auch meine Quizlet-Karten mit der Klasse, aber erwartungsgemäß können nicht alle mit dem Format viel anfangen. Zum einen sind die Bedarfe und auch die Bedürfnisse sehr unterschiedlich, zum anderen finde ich den Zeitraum Donnerstag nachmittag (um bspw. auf eine Klausur am Freitag vormittag zu lernen) nicht so super günstig gewählt. Da ich aber bei den meisten Lerngruppenterminen gar nicht dabei sein kann, halte ich mich erst einmal raus. Schaumama, dann sehen wir schon. Das braucht alles etwas Zeit, um sich zurecht zu ruckeln. 
Inzwischen haben wir sogar ein Skript, wenn auch kein sehr nützliches, sodass mir das Nacharbeiten etwas leichter fällt. Aber vier Tage am Stück, dann später nochmal zwei Nachmittage und eben der Klausurtag fehlen mir. Ich muss ganz schon rödeln, um das alles wieder aufzuholen.


Themen:
Geschichte und Entwicklung von Programmiersprachen. Programmierparadigmen. Operatoren. EVA-Prinzip. Objektorientiertes Programmieren. Funktionen. Verzweigungen.
Sehr viele Übungen dazu.