\documentclass[bibBibtex]{schuleub}
\usepackage[utf8]{inputenc}
\usepackage{schulinf}

% Dieses Dokument ist in der Zusammenarbeit von Informatikreferendaren und
% ehemaligen Informatikreferendaren der Studienseminare (heute ZfsL) Arnsberg,
% Hamm und Solingen entstanden.
%
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de
%
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden,
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben
% und auf die ursprünglichen Urheber verwiesen wird.
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen.
%
% Die Namensnennung durch einen Verweis und die Lizenzangabe der ursprünglichen
% Urheber auf den Materialien für Schülerinnen und Schüler ist erforderlich.
%
% Die Sammlung der Dokumente steht unter
% http://ddi.uni-wuppertal.de/material/materialsammlung/
% zur Verfügung.
%
% Das LaTeX-Paket zum Setzen der Dokumente der Sammlung steht
% unter  http://www.ctan.org/pkg/schule
% zur Verfügung.

\hypersetup{pdfauthor={Referendare der Informatikfachseminare Arnsberg, Hamm und Solingen}}
\includexmp{lizenz}
\cclizenz{byncsaeu}
\footerQRLink{materialsammlung_qr_url.pdf}

\svnid{$Id: ub_01_einfuehrung_klassenbegriff.tex 1463 2016-03-24 15:58:08Z pieper $}

\referendar{- (Referendar)}

\seminaradresse{Studienseminar für Lehrämter an Schulen Hamm\\
Seminar für das Lehramt an Gymnasien und Gesamtschulen\\
Stadthausstr. 3\\
59065 Hamm}
\ort{Hamm}
\besuchtitel{Unterrichtsbesuch in Informatik}


\lerngruppe{Informatik GK 11}
\datum{- (Datum)}
\zeit{13.25}{14.10}
\stunde{7}
\schule{Gymnasium}
\raum{Informatikraum}
\ausbildungsl{bdU}
\ako{-}
\schulleiter{-}
\hauptseminar{-}
\fachEins{Informatik}{Dr. L. Humbert}
\fachZwei{2. Fach}{-}[in]

\thema{Einführung des \emph{Klassen}begriffs durch Gruppierung ähnlicher 
  Objekte und Zusammenfassung gemeinsamer Attribute und Methoden.}
 
\vorsitz{-}
\schulvertreter{-}
\fremderseminar{-}
\bekannterseminar{-}

\weiblich{5}
\maennlich{13}

\begin{document}

\section{Thematischer Zusammenhang}
\label{zusammenhang}

Die fachlichen Inhalte des Schulfachs Informatik unterteilen sich gemäß der Richtlinien und Lehrpläne für das Fach Informatik in der Sekundarstufe II in die zwei Kategorien \glqq Modellieren und Konstruieren\grqq\ sowie \glqq Analysieren und Bewerten\grqq\ (vgl.~\cite[S.~10]{MSWWF1999}).
Dazu gehört unter anderem der Punkt \glqq Ein Informatikmodell gewinnen: Probleme eingrenzen und spezifizieren, reduzierte Systeme definieren\grqq\ (ebenda).

Der Anfangsunterricht in der Jahrgangsstufe 11 beginnt gemäß des schulinternen Curriculums des Gymnasiums mit dem Themenkomplex \glqq Einführung in die objektorientierte Programmierung\grqq\footnote{Der Begriff der objektorientierten Programmierung kann an dieser Stelle nicht erläutert werden. Stattdessen sei auf den Eintrag \glqq objektorientierte Programmierung\grqq\ in \cite[S.~466ff]{Claus2006} verwiesen.} (OOP).

Darüber, dass der Anfangsunterricht sinnvollerweise mit dem Inhalt \glqq Objektorientierte Modellierung\grqq\ (OOM) beginnen sollte, welcher zur OOP hinführt, konnte unter den Referendarinnen und Referendaren des Fachseminars Informatik am Seminar Gymnasium/Gesamtschule des Studienseminars für Lehrämter an Schulen Hamm schnell Einigkeit erzielt werden.

Die Teilnehmerinnen und Teilnehmer des Fachseminars entwickelten verschiedene Szenarien, die als einfache oder bereits relativ komplexe Modellierungsübungen dienen können.
Dabei soll stets von Objekten ausgegangen werden, bevor später der Klassenbegriff eingeführt wird.
Durch den vorgesehenen zeitlichen Abstand soll eine Vermengung der Begrifflichkeiten \glqq Klasse\grqq\ und \glqq Objekt\grqq\ -- eine der häufigsten Fehlerquellen auch noch bei Informatikstudenten -- weitgehend ausgeschlossen werden.

\subsection{Gegenstand der Unterrichtsreihe}

Zur Vorbereitung auf eine spätere objektorientierte Implementierung erfolgt zunächst die Modellierung eines einfachen Sachverhalts: 
Bei einem Basketballturnier treten vier Mannschaften gegeneinander an (Spielmodus: Liga).
Nachdem alle Mannschaften ihre Spiele absolviert haben, soll der Gesamtsieger ermittelt werden.

Da nur eine Minderheit des Kurses (vier männliche Schüler) einen Differenzierungskurs Informatik der Jahrgangsstufen 9/10 besucht haben und nach eigenen Angaben über Vorkenntnisse im Bereich der objektorientierten Programmierung verfügen, wurde dieses einfache Problem einem möglicherweise interessanteren (aber auch komplizierterem) vorgezogen.

Anhand des Basketball-Problems soll der Vorgang der Softwareentwicklung -- ausgehend von einer Problembeschreibung über eine informatische Modellierung bis hin zur Implementierung -- nachvollzogen werden.

\subsection{Thema der Unterrichtsstunde}
\Thema

\subsection{Struktur der Unterrichtsreihe}

Nach einer Eingangsbefragung der \SuS mittels eines anonymen Fragebogens (hinsichtlich ihrer Vorkenntnisse, Erwartungen und Wünsche bezüglich des Informatikunterrichts sowie einer Aufforderung, den Begriff Informatik für sich selbst zu definieren), wurden die Teildisziplinen der Informatik kurz beleuchtet und den Schülervorstellungen zugeordnet.

Der Einstig in die OOM erfolgte durch Anwendung des Verfahrens nach \name{Abbott} für eine gegebene Problembeschreibung (Basketballturnier, siehe Anlagen).
Es wurden mögliche Objekte und deren Attribute und Methoden identifiziert und in Objektkarten eingetragen.
Dabei ergaben sich mitunter kontroverse und fruchtbare Diskussionen.

Weitere Unterrichtsgespräche wurden über die Beziehungen zwischen den Objekten und die Interobjekt-Kommunikation geführt (kombinierte Info-/Arbeitsblätter zu Objekt- und Sequenzdiagrammen finden sich im Anhang).
Die \SuS entwickelten weitgehend selbständig ein informatisches Modell des Basketballturniers und erstellten dazu ein Objektdiagramm, welches auf Tapetenrollen festgehalten wurde.

\subsection{Lernziele der Unterrichtsstunde}
\begin{description}
\item[Hauptlernziel:] Die \SuS sollen formulieren können, was eine Klasse ist und die Unterschiede zwischen Klassen und Objekten herausstellen können.
\end{description}
Feinziele:
\begin{itemize}
\item Die \SuS abstrahieren ähnliche Objekte, indem sie die Gemeinsamkeiten formulieren und Oberbegriffe finden.
\item Die \SuS leiten aus Ojekten eines Objektdiagramms die Klassen eines Klassendiagramms ab.
\item Die \SuS konzipieren Klassen ohne den Umweg über Objekte.
\end{itemize}



\section{Hausaufgaben zur Stunde}
\label{HausaufgabenZurStunde}

Die bisher erstellte Modellierung ist weitgehend tragfähig und kann vorerst als abgeschlossen gelten.\footnote{%
Einige Mängel in Hinblick auf eine effiziente und \glqq wartungsarme\grqq\ Implementierung (z.\,B. beidseitige Kennt-Beziehungen zwischen den Spielen und den Mannschaften) sind noch vorhanden, sollen jedoch erst in der Implementierungsphase aufgegriffen werden, da die Problematik zum jetzigen Zeitpunkt den \SuSn nur schwer vermittelbar wäre.}
Aus diesem Grund wurde in der vorangegangenen Stunde keine nachbereitende Hausaufgabe gestellt.

Der Übergang von Objekten zu Klassen ist ein zwingender Schritt in der eingangs erwähnten didaktischen Konzeption (vgl. Abschnitt~\ref{zusammenhang}) und somit eine konsequente Fortsetzung des bisherigen Unterrichts.

Um dennoch eine kleine Zäsur zum bisherigen Unterrichtsverlauf zu setzen (es soll deutlich herausgestellt werden, dass die Modellierung eine neue Ebene erreicht hat), wurde auch auf eine vorbereitende Hausaufgabe verzichtet.
Folglich kann die zur Verfügung stehende Unterrichtszeit vollständig für die Einführung des Klassenbegriffs genutzt werden.



\section{Geplanter Unterrichtsverlauf}

\begin{stundenverlauf}
Stundenbeginn & Begrüßung und Vorstellung der Gäste &  LV & -- \\

\hline

Einstieg \& Problemstellung & Betrachtung des abgeschlossenen Objektdiagramms; bedeutet die hohe Anzahl an Objekten einen großen Programmieraufwand oder gibt es Gemeinsamkeiten, die sich ausnutzen lassen? & UG & Objekt\-dia\-gramm an der Fachraumwand \\

\hline

Erarbeitung I & Sammeln von Gemeinsamkeiten, bilden von Kategorien (Klassen) von Objekten & UG & s.~o. \\

\hline
%%%%%%%%%%% Vertiefung?
(Vertiefung I) & Sofern dies im Unterrichtsgespräch noch nicht deutlich wurde, sollen weitere Abgrenzungen des Klassenbegriffs zum Objektbegriff herausgestellt werden & LV & -- \\

\hline

Vertiefung (II) & Erläuterungen zur grafischen Darstellung von Klassen (Klassendiagramm) & EA & AB 4 \\

\hline

Erarbeitung II & Die SuS wenden ihre neu erworbenen Kenntnisse über Klassen an (indem sie unter Zuhilfenahme des von Ihnen zuvor angefertigten Objektdiagramms ein Klassendiagramm erstellen) und präsentieren ihre Lösung & GA & AB 4, OHP-Folien (teilweise als Schablone) \\

\hline

Festigung &  Die SuS üben das direkte Modellieren einer Klasse anhand eines einfachen Beispiels (z.~B. Automobil) & UG & Tafel \\

\hline
\end{stundenverlauf}

Der Zeitbedarf für die Bearbeitung der Gruppenarbeit lässt sich im Voraus schlecht abschätzen, da insbesondere der Aufwand zur Besprechung der Schülerlösungen schlecht vorhersagbar ist.
Falls alle \SuS zu einer ähnlichen Lösung gelangen, sollte die Vorstellung einer Lösung und die Diskussion der Unterschiede zur Lösung anderer Gruppen schnell vonstatten gehen.
Andererseits könnten extrem verschiedene Lösungen eine längere Nachbesprechung erfordern.
Deshalb ist die Festigungsphase in dieser Stunde als optional anzusehen.
Mit ihr könnte die Folgestunde beginnen.

Umgekehrt kann die geplante Hausaufgabe (siehe unten) vorgezogen werden, falls der unwahrscheinliche Fall eintritt, dass die beschriebenen Phasen weniger Unterrichtszeit erfordern als vorgesehen.



\section{Geplante Hausaufgaben}

Als vorbereitende Hausaufgabe sollen sich die \SuS mit der Definition einer Klasse in der Programmiersprache Python auseinandersetzen.
Per Analogieschluss ist die Klassendefinition einer einfachen Klasse (Mannschaft) aus einer vorgegebenen Klassendefinition einer weiteren einfachen Klasse (Sporthalle) zu erstellen, siehe Arbeitsblatt 5.



\section{Lehrsituation und didaktisch-methodische Begründungen}

\subsection{Lehrsituation}

Der Kurs der Jahrgangsstufe 11 ist sehr angenehm zu unterrichten.
Meiner subjektiven Theorie zufolge liegt dies daran, dass sich die \SuS nun als Oberstufenschüler begreifen.
Sie können zumeist auch in der 7. Stunde noch konzentriert arbeiten, auch Unterrichtsstörungen sind selten.

Im Vergleich zum Informatikraum 1 ist die Akustik wesentlich besser und die Ausstattung mit Informatiksystemen moderner. 
Letztere wurden bislang jedoch kaum eingesetzt -- eine Ausnahme bildete eine Webrecherche zur Definition des Informatikbegriffs.
Dies führte vereinzelt zu Unmutsäußerungen, da einige Schüler lieber am Rechner programmieren würden, wie dies im Parallelkurs der Fall ist.
Mit Verweis auf moderne fachdidaktische Konzepte und die gängige Modellierungspraxis in der Softwareentwicklung wurde diesen Schülerwünschen jedoch nicht nachgegeben.
Es wurde jedoch erneut darauf hingewiesen, dass die Reihenplanung den Beginn der Implementierungsphase nach dem baldigen Abschluss der Modellierung vorsieht (Transparenz der Planungprozesse).


\subsection{Inhaltliche Begründungen}

Die Relevanz der informatischen Modellierung für den Informatikunterricht ist unstrittig, zumal die Informatik von vielen Informatikern als \glqq Modellierungswissenschaft\grqq\ verstanden wird.
Dementsprechend hat der Inhalt \glqq Modellieren und Konstruieren\grqq\ auch einen großen Stellenwert in den Lehrplänen erhalten (vgl.~\cite[]{MSWWF1999}).

Die Fachwissenschaft hat mehrere Standards für Modellierungssprachen (zumeist in Diagrammform) hervorgebracht, um Probleme der realen Welt als informatische Modelle abbilden zu können.
Als bekannteste Sprache ist hier die UML (Unified Modelling Language, siehe \cite[]{Dumke2007} für eine kurze Einführung) zu nennen, welche allerdings so komplex ist, dass sie im allgemeinbildenen Informatikunterricht auf ihre wesentlichen Konzepte reduziert werden muss.

Dabei eröffnen sich einige didaktische Gestaltungmöglichkeiten, die, wie bereits in Abschnitt~\ref{zusammenhang} erwähnt, im Fachseminar diskutiert wurden.
Der verfolgte Ansatz geht vom Konkreten -- den Objekten -- aus und abstrahiert diese zu Kategorien von Objekten, den Klassen.

Die Klassen wiederum stellen das Bindeglied zu einer programmiersprachlichen Umsetzung dar, die demnächst durch den Kurs übernommen werden soll.
Weil alle Objekte, die eine Instanz derselben Klasse sind, über vergleichbare Eigenschaften und Funktionalitäten verfügen, ist es logisch und zweckmäßig, sie innerhalb einer Klasse zusammenzufassen.
Die einzelnen Objekte einer Klasse unterscheiden sich lediglich noch in den Ausprägungen ihrer Eigenschaften.


\subsection{Methodische Begründungen}

Bei der Konzeption der Stunde wurde auf einen ausgewogenen Anteil von Schüler- und Lehreraktivität und eine abwechslungsreiche und klare Phasierung des Unterrichts geachtet, was gerade in einer siebten Unterrichtsstunde kurz vor dem Wochenende ein wichtiger Aspekt ist.

In der Gruppenarbeitsphase haben die \SuS die Möglichkeit, untereinander über ihre Vorstellungen zur Umsetzung des Arbeitsauftrags zu diskutieren, sodass eine womöglich vorhandene Hemmschwelle bei der Anwendung des neuen Wissens niedriger anzusetzen ist als in einer Plenumsphase.

Eine programmiersprachliche Umsetzung der Klassen an den Informatiksystemen ist nicht vorgesehen, da die \SuS bisher fast nicht mit ihnen gearbeitet haben und eine Einführung in den Aufruf des Python-Interpreters und des zu verwendenden Editors sowohl zeitlich als auch konzeptionell nicht integrierbar ist.
Dementsprechend ist auch die vorbereitende Hausaufgabe \glqq theoretischer Natur\grqq.


\section{Geplantes Tafelbild}

Die Tafel (bzw. das \glqq Whiteboard\grqq) soll in dieser Stunde lediglich in der Festigungsphase zum Sammeln der Attribute und Methoden der einfachen Beispielklasse dienen, für welche direkt eine Klassenkarte erstellt werden soll.

Klassendiagramme als Ergebnisse der Gruppenarbeiten werden auf Folien erstellt, um per Overhead-Projektor präsentiert werden zu können.


\section{Übersicht der Anlagen}

\minisec{Bisher herausgegebene Info-/Arbeitsblätter zur objektorientierten Modellierung:}

\begin{itemize}
 \item  \glqq Das Verfahren nach Abbott; Objektkarten erstellen\grqq\ (Infoblatt 1)
 \item  \glqq Problembeschreibung: Basketballturnier\grqq\ (Arbeitsblatt 1)
 \item  \glqq Darstellung der Beziehungen zwischen Objekten in Objektdiagrammen\grqq\ (Arbeitsblatt 2)
 \item  \glqq Interaktion von Objekten: Sequenzdiagramme\grqq\ (Arbeitsblatt 3)
 \item  \glqq Beschreibung der Methoden eines Objekts\grqq\ (Infoblatt 2)
 \item  \glqq Spielplan des Basketballturniers\grqq\ (Ergänzung der Problembeschreibung, Infoblatt 3)
\end{itemize}

\minisec{Info-/Arbeitsblätter für diese Stunde:}

\begin{itemize}
 \item Darstellung des von den \SuS erstellten Objektdiagramms (Infoblatt 4)
 \item Informations- und Arbeitsblatt zur grafischen Darstellung von Klassen (Arbeitsblatt 4)
 \item Informations-/Arbeitsblatt zur Klassendefinition in Python (Arbeitsblatt 5)
\end{itemize}


\nocite{Rossum2006}

\bibliography{../../../zusatz/projekt}

\end{document}
