Skip to content

Evaluation Detailkonzepte

Mit diesem Eintrag ist auch die Ausarbeitung der Detailkonzepte abgeschlossen. Die Ausarbeitung der Lernziele, der Lerninhalte, der Lernformen und der Lernmedien hat für das weitere Vorgehen eine ausreichende Basis geschaffen. Somit kann im nächsten Schritt die Umsetzung der Lerneinheit begonnen werden. Davor werde ich jedoch die einzelnen Punkte nochmal durchdenken und überprüfen, um nichts wichtiges auszulassen.

Lehr-/ und Lernmedien

Für die Umsetzung der Lernziele sind selbstverständlich Lernmedien erforderlich, welche ich selbst erstellen werde. Was mir an dieser Stelle zugute kommt ist, dass ich auch die Referenzlösungen erarbeiten muss. Deswegen ist die Wahrscheinlichkeit wichtige Informationen auszulassen als eher gering einzuschätzen. Problematisch könnte an dieser Stelle eher der dafür notwendige Zeitaufwand werden. Naben der Lernplattform muss auch gleichzeitig der Blog programmiert werden. Diese Schwierigkeit wird leicht dadurch abgemildert, dass die Lernplattform in den Blog integriert werden kann, womit einige Redundante Schritte eingespart werden können.

Die einzelnen Einheiten werden aus textbasierten Beiträgen bestehen. An sinnvollen Stellen werden SVG Grafiken eingesetzt werden, um bestimmte Sachverhalte grafisch zu erläutern. Die Konzentration auf Texte hat den Vorteil, dass die Lernplattform im Nachhinein auch als Nachschlagwerk genutzt werden kann. 

Lehr-/ und Lernformen

Die Umsetzung der Lerninhalte soll in Form einer Lernplattform erfolgen. Diese bietet die Möglichkeit, die einzelnen Lerneinheiten zu absolvieren und dabei Punkte zu sammeln. Das Punktesystem dient hierbei als Motivation und Fortschrittsanzeige. Die einzelnen Lerneinheiten können als erledigt markiert werden. Es soll zudem möglich sein einzelne Lerneinheiten zu überspringen oder später nachzuarbeiten. Durch die parallele Erledigung der Lerneinheiten durch mich steht eine separate Git Repository bereit, bei welcher über die Branches der Code für die jeweilige Einheit ausgecheckt werden kann. Dies ist besonders nützlich, wenn einzelne Lerneinheiten übersprungen wurden. 

Die Umsetzung als Lernplattform ermöglicht die asynchrone Bearbeitung der Aufgaben. Somit können die Teilnehmer/innen nach eigenem Tempo den Kurs durcharbeiten. Die einzelnen Kapitel bestehen aus einer Einführung, einer Aufgabe und der Referenzlösung. In der Einführung findet die Erklärung der Lerneinheit statt und ein Beispiel-Problem gelöst. Dort wird auch auf hilfreiche und manchmal auch notwendige Ressourcen verwiesen. 

Die Aufgabe stellt immer eine Transferleistung dar. Es soll ein ähnlich gelagertes Problem, für dessen Lösung alle notwendigen Mittel bereits bekannt sind, gelöst werden. Manchmal ist für die Lösung die Nutzung der verlinkten Ressourcen erforderlich. Der Grund dafür ist vergleichsweise einfach: In der Webentwicklung ist es immer wieder erforderlich, Dokumentationen zu lesen, um zu erfahren welche Mittel für die Lösung eines Problems genutzt werden können.

Zum Schluss wird eine gut kommentierte Referenzlösung angezeigt. Diese stellt nicht die einzige Lösungsmöglichkeit dar, orientiert sich aber sehr stark an Best Practices.

Von dieser Vorgehensweise wird nur bei den problemorientierten Zusatzaufgaben abgewichen. Diese werden keine Erklärung und auch keine Lösung enthalten, da für die Lösung dieser in der Regel alle notwendigen Mittel bereits bekannt sein sollten. 

Lehr-/ und Lerninhalte

In diesem Beitrag soll es um die konkreten Lerninhalte gehen. Diese werden an dieser Stelle nur als Stichpunkte dargestellt und sollten als ein roter Faden durch den Kurs führen. Die Lerninhalte werden dabei in der Umsetzung nicht unter diesen Überschriften anzutreffen sein. Vielmehr werden die einzelnen Erklärungstexte und Aufgaben diese einzelnen Punkte abdecken und mit zunehmendem Verlauf immer mehr in die Tiefe gehen. Die Lerninhalte sehen dabei wie folgt aus:

Laravel (Backend)

  • Composer
  • Initiierung des Projektes
  • Artisan
  • Authentifizierung
  • Datenbankmigrationen
  • Datenbankrelationen
  • Datenbankseeds
  • Model
  • Eloquent
  • View
  • Controller
  • Validierung
  • Middleware
  • Tinker
  • Sessions
  • Verschlüsselung
  • CSRF
  • Throtteling
  • REST
  • Unittests
  • Integrationtest
  • Routing
  • Konfigurationsdateien
  • ENV

Frontend

  • HTML
  • CSS
  • SCSS
  • JavaScript
  • Critical Rendering Path
  • Webpack

Organisation

  • Git
  • Git commits
  • Git branches

Exkurse

  • HTTP
  • DNS

Deployment

  • Laravel Forge
  • Manuelles deployment
  • Nginx
  • sshd
  • fail2ban
  • Let’s Encrypt
  • Monitoring

Lehr-/ und Lernziele

In diesem Beitrag soll es um die konkreten Lernziele der Lernanwendung gehen. Der Teilnehmer oder die Teilnehmerin…

  • … besitzen die Fähigkeit ein Laravel Projekt zu initiieren.
  • … kennen das MVC-Pattern und können es praxisorientiert anwenden.
  • … wissen was artisan ist und wie es die Arbeit mit Laravel erleichtert.
  • … können tinker nutzen, um die eigene Webanwendung interaktiv zu entdecken.
  • … haben ein Verständnis dafür was eine Middleware ist und warum diese für komplexere Anwendungen unentbehrlich sind.
  • … kennen die wichtigsten Aspekte für die Absicherung einer Laravel Anwendung vor böswilligen Anfragen und wissen, warum eine Validierung von Benutzereingaben stets erfolgen sollte.
  • … können Datenbankmigrationen schreiben und kennen die Relationen einer SQL-Datenbank.
  • … haben ein grundsätzliches Verständnis zu Session und wissen wie diese in der Praxis genutzt werden können.
  • … wissen was Routing ist und wie dieses REST konform umgesetzt werden kann.
  • … haben Erfahren, warum Unit- und Integrationstests einem das Entwickeln erleichtern und wie diese zu erstellen sind.
  • … können die Blade Engine nutzen, um Views zu schreiben und diese mit dynamischen Daten aus der Datenbank zu nutzen.
  • … wissen, dass das Einbinden dynamischer Daten in Views Risiken mit sich bringt.
  • … haben Erfahrungen mit der semantischen Strukturierung von HTML gesammelt.
  • … könne barrierefreies HTML schreiben.
  • … wissen was CSS ist.
  • … haben Erfahrungen mit SASS als CSS Preprozessor gesammelt.
  • … wissen was der Critical Rendering Path ist und warum dieser sehr wichtig ist.
  • … wissen, dass JavaScript eine mächtige Sprache ist, welche jedoch nur genutzt werden sollte, falls die Lösung auf einem anderen Wege nicht erreicht werden kann.
  • … können Webpack nutzen, um SASS-Dateien in CSS-Dateien umzuwandeln und das JavaScript zu minimieren.
  • … wissen was Git ist und wie es genutzt werden kann, um die Entwicklung zu vereinfachen.
  • … können die Anwendung auf einem Server mit Laravel Forge ausrollen.
  • … wissen, dass Laravel Forge für das Ausrollen nicht notwendig ist.
  • … kennen die wichtigsten Vorsichtsmaßnahmen für den Betrieb eines eigenen Servers und wie dieser überwacht werden kann.

Evaluation Gesamtkonzept

Mit diesem Beitrag schließe ich die Ausarbeitung des Gesamtkonzeptes ab. Ich konnte die Idee weiter konkretisieren und die Ziele, die didaktische Vorgehensweise und das Gesamtkonzept ausarbeiten. Hierdurch konnte ich die Idee weitestgehend konkretisieren und weitere Ansatzpunkte für das weitere Vorgehen sammeln. Insbesondere die Formulierung der Ziele dürfte bei der anstehenden Sammlung von Lerninhalten hilfreich sein.

Das Gesamtkonzept

An dieser Stelle möchte ich auf das Gesamtkonzept eingehen. Die Lerneinheit soll im Wesentlichen aus zwei großen Teilen bestehen:

In dem lösungsorientiertem Teil soll es darum gehen den Teilnehmern und den Teilnehmerinnen die notwendigen Werkzeuge und Kenntnisse in die Hand zu geben, um selbstständig arbeiten zu können. Dieser Teil soll zuerst das Problem erklären, dass es zu lösen gilt. Direkt danach wird ein möglicher Lösungsansatz dargelegt werden, welcher nicht zwangsweise befolgt werden muss. Darauf hin soll eine Aufgabe aus dem Problembereich gelöst werden. Zum Schluss gibt es eine Referenzlösung, welche bei Problemen als Orientierung genutzt werden kann. Ob die jeweilige Lerneinheit erfolgreich absolviert worden ist, kann vergleichsweise einfach selbst getestet werden: Entweder die Lösung funktioniert, oder sie funktioniert noch nicht.

Der problemorientierte Teil wird zum Schluss genutzt, um die Kompetenzen in der Problemlösung zu erweitern. In der Praxis wird einem selten eine Lösung vorgegeben, vielmehr muss diese aufwendig erarbeitet werden. Scheitern und wieder von vorne beginnen ist an dieser Stelle ein integraler Bestandteil des Lernprozesses, daher wird in diesem Schritt auf die Bereitstellung einer Referenzlösung verzichtet, weswegen der zweite Teil auf freiwilliger Auseinandersetzung mit der Webentwicklung beruht. Hier geht es mir darum, Möglichkeiten aufzuzeigen das Projekt zu erweitern beziehungsweise Herausforderungen anzubieten, welche gelöst werden können. 

Für die Umsetzung der beiden Teile soll wiederum eine Webanwendung entstehen, welche als Plattform dient und mit Hyperlinks die einzelnen Einheiten miteinander verbindet. Diese soll zudem ein Punktesystem bereitstellen, um den Fortschritt greifbarer zu machen.

Die einzelnen Lerneinheiten sollen aus Texten und Bildern bestehen. Auf eine Verwendung von Videos möchte ich weitestgehend verzichten, zum einen um persönliche Ressourcen zu schonen und zum anderen, weil diese das Problem mit sich bringen, dass die gewünschten Informationen schwer aufzufinden sind. 

Nach der Absolvierung des ersten Teils soll eine funktionierende Webanwendung stehen, welche optional auch auf einem Server ausgerollt werden könnte. 

Der didaktische Ansatz

Die Didaktik für die Lerneinheit ist ein vergleichsweise schweres Thema. Normalerweise würde man nach dem Schema F Vorgehen und zuerst die Theorie anhand von Beispielen lehren, dann eine Transferleistung oder Lösung einer ähnlichen Aufgabe erarbeiten lassen und zu guter Letzt eine Lösungsmöglichkeit präsentieren.

Auch wenn ich schon oft nach diesem recht simplen Konzept neue Sachen autodidaktisch gelernt habe, will es mir immer nicht so recht gefallen. Es ist meiner Meinung nach wenig sinnvoll die Lösung eines Problems dem eigentlichen Problem vorwegzunehmen, da dabei das selbstständige Denken auf der Strecke bleibt.

Auf der anderen Seite ist ein problemorientiertes Vorgehen auch nicht das gelbe vom Ei. Das didaktische Konzept dahinter mag zwar überzeugen, aber es kann sehr schnell zur Überforderung kommen. Solch ein vorgehen lässt sich höchstens in den letzten Lerneinheiten nutzen, wenn alle notwendigen Werkzeuge für die Lösung des Problems bei dem Teilnehmer oder der Teilnehmerin vorhanden sind.

Die Ziele

Die Lerneinheit hat das grob formulierte Hauptziel dem Teilnehmer oder der Teilnehmerin die notwendigen Kenntnisse zu vermitteln, um selbstständig einfachere Webprojekte mit dem Laravel Framework umzusetzen. Dazu soll insbesondere das MVC-Pattern, Unit- und Integrationstests erklärt und angewandt werden.

Darüber hinaus soll ein grundsätzliches Verständnis von der Arbeitsweise im Bereich der Webentwicklung vermittelt werden. Dieses soll sich auf die Arbeitsfelder der Frontend- und Backend Entwicklung konzentrieren. Wünschenswert wären auch noch Exkursionen zu den grundlegenden Funktionsweisen des Internets, sowohl als Auflockerung des Kurses als auch zur Steigerung des Wissens um die technische Funktionsweise des Internets.

Neben der Arbeitsweise soll auch auf die Organisation und die damit verbundenen Methoden eingegangen werden. Hierbei soll hauptsächlich um die Organisation von Workflows gehen. Git, ein Werkzeug zur Versionskontrolle von Code, soll an dieser Stelle explizit erklärt werden. 

Zuletzt soll noch auf das Deployment eingegangen werden. Ohne das Endprodukt ausrollen zu können die Kenntnisse nicht praktisch angewandt werden. Hierbei soll dann auch auf ein bisschen auf die Architektur und Absicherung von Servern eingegangen werden.

Die Ziele des Kurses sollen sein…

  • … die wichtigsten Konzepte des Laravel Framework zu erlernen.
  • … die Unterteilung der Webentwicklung in Front- und Backend zu verstehen
  • … die Methoden und Best Practices der Backend-Entwicklung zu lernen.
  • … das MVC-Pattern zu verstehen und anwenden zu können.
  • … die Entwicklung mit Unit- und Integrationstests zu vereinfachen.
  • … einige Grundlagen über Protokolle und das DOM zu erfahren.
  • … die Organisation und Versionierung von Code mit Git zu verstehen und anwenden zu können.
  • … zu lernen, wie die fertige Lösung ausgerollt werden kann.
  • … zu verstehen, welche grundsätzlichen Vorsichtsmaßnahmen bei dem Betrieb eines eigenen Servers vorzunehmen sind.

Evaluation Analyse

Da ich jetzt die einzelnen Schritte der ersten Phase abgearbeitet habe, ist es Zeit, das Vorgehen zu evaluieren. Die Idee, der Bildungsbedarf, die Zielgruppe und der Kontext des Lernangebotes sind hinreichend genug konkretisiert, um in die nächste Phase „Gesamtkonzept“ zu wechseln. Ich gehe davon aus, dass im weiteren Verlauf neue Einfälle zu den einzelnen Punkten hinzukommen werden. Es sind auch nicht alle erstellten Notizen und Gedanken in die Blog-Einträge eingeflossen, da diese ansonsten eine vernünftige Länge überschreiten würden und meine persönliche Vorgehensweise weniger textlastig ist.

Zur Werkzeugleiste springen