Initial commit

This commit is contained in:
Dirk Zechnall 2025-01-04 20:59:32 +01:00
commit 4304068dde
61 changed files with 975 additions and 0 deletions

8
.gitignore vendored Normal file
View file

@ -0,0 +1,8 @@
*.class
*.ctxt
*.sh
repo.adoc
*.~lock
/alt
Gemfile
Gemfile.lock

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View file

@ -0,0 +1,110 @@
<html>
<head>
<title>Materialliste</title>
<meta name="author" content="Thomas Schaller">
<link rel="stylesheet" href="styles.css" type="text/css">
</head>
<body>
<center>
<table border=0 cellpadding=0 width=900>
<tr>
<td align=center colspan=2>
<img src="titelleiste.png" alt="">
</td>
</tr>
<tr>
<td width=890 class="hauptfenster">
<div style="margin:10px;">
<h1>Objektorientierte Modellierung und Programmierung
</h1>
<p>
Die meisten aktuellen Programmiersprachen unterst&uuml;tzen das Programmierparadigma der objektorientierten Programmierung. In Java kommt man an der OOP gar nicht mehr vorbei. Insbesondere gr&ouml;&szlig;ere Softwareprojekte sind ohne OOM kaum mehr vorstellbar. Daher schreiben die Bildungsstandards die objektorientierte Programmierung f&uuml;r die Kursstufe in 2 und 4-st&uuml;ndigen Kursen vor.
</p><p>
Trotzdem ist es schwierig, dieses Thema in der Schule geeignet umzusetzen. Neben den &uuml;blichen Problemen beim Programmieren tritt hier zus&auml;tzlich noch die Schwierigkeit auf, eine geeignete Modellierung zu entwerfen. Vieles erscheint auf den ersten Blick sehr umst&auml;ndlich. Die Vorteile der OOP treten oft erst bei gr&ouml;&szlig;eren Programmierprojekten zu Tage, die in der Schule aber kaum eine Rolle spielen.
</p><p>
Diese Fortbildungsmaterialien bieten einen geeigneten Unterrichtsgang, der dieses komplexe Thema auf einem f&uuml;r unsere Sch&uuml;ler angemessenen Niveau umsetzt. Durch geeignete Werkzeuge (vor allem dem JavaEditor von G. R&ouml;hner) k&ouml;nnen die Sch&uuml;ler einen spielerischen Zugang zu Klassen und Objekten finden, bevor sie daran gehen, selbst Klassen zu programmieren. Schrittweise werden die Konzepte der OOP wie Vererbung und Polymorphie anhand eines gr&ouml;&szlig;eren Programmierprojekts aufgebaut. Dabei werden die algorithmischen Probleme bewusst einfach gehalten, damit die Arbeit mit den Konzepten der OOP im Vordergrund steht.
Anschlie&szlig;end lernen die Sch&uuml;ler eine Weg kennen, der von der Anforderungsbeschreibung an eine Software zu einem tragf&auml;higen Klassenkonzept f&uuml;hrt. Hierbei steht die objektorientierte Modellierung im Vordergrund.
</p><p>
Der Unterrichtsgang ist also in zwei Stufen gegliedert. In der ersten Stufe arbeiten die Sch&uuml;ler mit Hilfe eines ausf&uuml;hrlichen Leitprogramms weitgehend selbstst&auml;ndig. Sie programmieren dabei das Projekt „dynamische Geometriesoftware“ (in Anlehnung an das Mathematikprogramm Euklid).
An konzeptionell sehr schwierigen Stellen wird das Leitprogramm durch weitere Pr&auml;sentationen oder &Uuml;bungen erg&auml;nzt.
Daran anschlie&szlig;end wird anhand von W&uuml;rfel- bzw. Kartenspielen gezeigt, wie man nach der Identifizierung der Gesch&auml;ftsprozesse einen ersten Klassenentwurf erstellt, diesen mit ein "Objektspiel" &uuml;berpr&uuml;fung und somit zu einem
tragf&auml;gigen Klassendiagramm kommt. Aufgrund der Vielzahl &auml;hnlicher W&uuml;rfel- und Kartenspiele k&ouml;nnen die Sch&uuml;ler das Gelernte leicht auf andere &auml;hnlich strukturierte Probleme &uuml;bertragen. Alternativ kann auch das
erste Projekt (dynamische Geometriesoftware) vertieft werden und ein 3D-Darstellungsprogramm f&uuml;r Drahtmodelle (bis hin zu einer echten 3D-Darstelung durch Rot-Cyan-Anaglyphenbilder) umgesetzt werden.
</p><p>
Der Zeitaufwand f&uuml;r die vollst&auml;ndige Umsetzung des Unterrichtsgangs ist recht hoch. Es ist daher je nach zur Verf&uuml;gung stehender Zeit und Niveau des Kurses durchaus denkbar, nur die 1. Stufe im Unterricht umzusetzen.
</p>
<h1>Materialverzeichnis</h1>
<p>Der <b>Ordner Hintergrund</b> enth&auml;lt Informationsmaterialien f&uuml;r Sie als Lehrer. Diese umfassen sowohl die nortwendigen fachlichen Informationen, als auch ein Vorschlag
f&uuml;r den Unterrichtsverlauf.<br>
<ul>
<li><a href='../1_hintergrund'>unterrichtsgang.odt</a> - Erl&auml;uterungen zum Unterrichtsgang (incl. Verlaufs&uuml;bersicht)</li>
<li><a href='../1_hintergrund'>einfuehrung_objektorientierung.odt</a> - Grundlegende Ideen und Begriffe der Objektorientierung</li>
<li><a href='../1_hintergrund'>lebenszyklus_objekte.odt</a> - Umgang von Java mit Objekten / Referenzvariablen, Visualisierung von Objekten</li>
<li><a href='../1_hintergrund'>klassenentwurf.odt</a> - Objektorientierte Modellierung: Wie findet man einen guten Klassenentwurf?</li>
<li><a href='../1_hintergrund'>tipps_zum_javaeditor.odt</a> - Hinweise und Tricks zur Installation und Umgang mit dem JavaEditor (Download: <a href='http://www.javaeditor.org'>http://www.javaeditor.org</a>)</li> <br>
</ul>
</p>
<p>
Die Arbeitsmaterialien selbst befinden sich im <b>Ordnern Vorlagen_Tauschordner</b>, wenn daran gedacht
ist, diese Materialien den Sch&uuml;lern digital im Klassentauschordner zur Verf&uuml;gung zu stellen, und im <b>Ordner
Vorlagen_Kopieren</b>, wenn die Arbeitsbl&auml;tter kopiert werden sollen. Dem Lehrer stehen die L&ouml;sungen im <b>Ordner Loesungen</b> zur Verf&uuml;gung. F&uuml;r den Unterricht stehen Pr&auml;sentationen im <b>Ordner Praesentationen</b> bereit.</p>
<h2>Einf&uuml;hrung</h2>
<ul>
<li><a href='../5_praesentationen'>01_1_klassendiagramm.odp</a> - Die Informatik aus der Sicht von Objekten und Klassen, Klassendiagramm anhand des Fernseher-Beispiels</li>
<li><a href='../3_vorlagen_kopieren'>01_2_arbeitsauftrag_6erwuerfeln.odt</a> - Arbeitsblatt zum Umgang mit Klassen und Objekten im JavaEditor anhand des Spiels 6er-W&uuml;rfeln</li>
<li><a href='../2_vorlagen_tauschordner'>01_2_6er-wuerfeln.zip</a> - Java-Programm 6er-W&uuml;rfeln</li>
<li><a href='../3_vorlagen_kopieren'>01_4_merkblatt_referenzvariablenverstehen.odt</a> - &Uuml;bersicht &uuml;ber die Visualisierung von Objekten und Referenzvariablen</li>
<li><a href='../3_vorlagen_kopieren'>01_4_uebung_referenzvariablenverstehen.odt</a> - &Uuml;bungsblatt zur Visualisierung von Objekten und Referenzvariablen</li>
<li><a href='../4_loesungen'>01_4_loesung_referenzvariablenverstehen.odt</a> - L&ouml;sungsblatt dazu</li>
</ul>
<h2>Objektorientierte Programmierung: Projekt dynamische Geometriesoftware</h2>
<ul>
<li><a href='../3_vorlagen_kopieren'>02_1_projekt_geoobjects.odt</a> - Leitprogramm zur Erstellen der dynamischen Geometriesoftware</li>
<li><a href='../5_praesentationen'>02_2_klasse_gpoint.odp</a> - Pr&auml;sentation: Entwurf einer Klasse f&uuml;r geometrische Punkte</li>
<li><a href='../5_praesentationen'>02_3_vererbung.odp</a> - Pr&auml;sentation: Vererbung, Abstrakte Klassen und Methoden</li>
<li><a href='../5_praesentationen'>02_4_ueberblickklassen.odp</a> - Pr&auml;sentation: Folien mit allen Klassen der Geometrieprojektes</li>
<li><a href='../2_vorlagen_tauschordner'>02_3_testklasse_gpoint.zip</a> - Testklasse, um die Funktion von GPoint zu &uuml;berpr&uuml;fen.</li>
<li><a href='../2_vorlagen_tauschordner'>02_1_geomobj_vx.zip</a> - Vorlagen (V0 und V1) f&uuml;r die GUI des Geometrieprogramms (wird f&uuml;r Stufe 4 im Skript ben&ouml;tigt)</li>
<li><a href='../3_vorlagen_kopieren'>01_4_uebung_referenzvariablenverstehen.odt</a> - &Uuml;bungsblatt zur Polymorphie</li>
<li><a href='../4_loesungen'>01_4_loesung_referenzvariablenverstehen.odt</a> - L&ouml;sungsblatt dazu</li>
<li><a href='../4_loesungen/02_geoobjects'>geomobj_x</a> - Implementation der Musterl&ouml;sung der Geometriesoftware f&uuml;r alle Stufen (A-K)</li>
</ul>
<h2>Objektorientierte Modellierung: Entwurf eines guten Klassendiagramms</h2>
<ul>
<li><a href='../5_praesentationen'>03_1_entwurf_von_klassen.odp</a> - Pr&auml;sentation: Entwurf von Klassen (Gesch&auml;ftsprozesse, Objektspiel / CRC-Karten, Sequenzdiagramme) anhand von Craps</li>
<li><a href='../3_vorlagen_kopieren'>03_2_craps.odt</a> - Arbeitsanleitung f&uuml;r den Klassenentwurf von Craps (W&uuml;rfelspiel) mit Teill&ouml;sungen f&uuml;r jeden Arbeitsschritt</li>
<li><a href='../2_vorlagen_tauschordner'>03_2_craps</a> - Implementation des W&uuml;rfelspiels Craps in Java</li>
<li><a href='../3_vorlagen_kopieren'>03_3_barbudi.odt</a> - Arbeitsanleitung f&uuml;r den Klassenentwurf von Barbudi (W&uuml;rfelspiel) mit Teill&ouml;sungen f&uuml;r den Modellentwurf</li>
<li><a href='../3_vorlagen_kopieren'>03_3_barbudi_kleinschrittig.odt</a> - gleiche Arbeitsanleitung, aber kleinschrittige Anleitung f&uuml;r die Implementierung => f&uuml;r schw&auml;chere Sch&uuml;ler)</li>
<li><a href='../4_loesungen'>03_3_barbudi.zip</a> - Implementation des W&uuml;rfelspiels Barbudi in Java</li>
<li><a href='../4_loesungen'>03_3_barbudi_kleinschrittig.zip</a> - L&ouml;sung zur kleinschrittigen Implementationsanleitung des W&uuml;rfelspiels Barbudi in Java</li>
<li><a href='../3_vorlagen_kopieren'>03_4_blackjack.odt</a> - Arbeitsanleitung f&uuml;r den Klassenentwurf von BlackJack (Kartenspiel) mit Teill&ouml;sungen f&uuml;r jeden Arbeitsschritt</li>
<li><a href='../4_loesungen'>03_4_blackjack.zip</a> - Implementation des Kartenspiels BlackJack in Java</li>
<li><a href='../3_vorlagen_kopieren'>03_5_3dgrafik.odt</a> - Arbeitsanleitung f&uuml;r den Klassenentwurf eines Darstellungsprogramms f&uuml;r 3D-Grafik mit Teill&ouml;sungen</li>
<li><a href='../4_loesungen'>03_5_3dgrafik.zip</a> - Implementation des Darstellungsprogramm f&uuml;r 3D-Grafik in Java</li>
<li><a href='../4_loesungen'>03_5_3dgrafik_profiversion.zip</a> - Implementation der Profiversion des Darstellungsprogramms (Rot-Cyan-Darstellung, Laden von Wavefront-Dateien, Drehung der Szene mit der Maus)</li>
</ul>
<table class="designtable" cellpadding = 3 width=95%>
<tr><td><img src="cc-lizenz2.png" alt="" border="0" width="100">
<img src="cc-lizenz.png" alt="" border="0" width="100"></td>
<td>Alle Materialien stehen unter einer CC-Lizenz (<a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC BY-NC-SA 3.0</a>), d.h. die Materialien d&uuml;rfen f&uuml;r nicht-kommerzielle Zweck
kopiert, bearbeitet und unter gleichen Bedingungen weitergegeben werden. Wir w&auml;ren froh, von Verbesserungen, Neuerungen oder Erweiterungsvorschl&auml;gen
zu erfahren (schaller@mlg-bad.de).<br>
Januar 2013: R. Mechling, T. Ningelgen, T. Schaller </td></tr>
</table>
<p></p>
</div>
</td></tr>
</table>
</center>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

View file

@ -0,0 +1,747 @@
/*------------------------------------------ allgemeine Eigenschaften -------------------------------------*/
body
{
color:#000000;
font-size: 12px;
font-style: normal;
font-weight: normal;
text-align: justify;
list-style-position: inside;
list-style-type: disc;
font-family:Arial,Geneva,Helvetica,sans-serif;
margin-top: 18px;
margin-left: 8px;
margin-right: 5px;
margin-bottom: 5px;
scrollbar-face-color:#d7e8ff;
scrollbar-highlight-color:#013B8C;
scrollbar-shadow-color:#013B8C;
scrollbar-arrow-color:#013B8C;
scrollbar-track-color:#ffffff;
scrollbar-darkshadow-color:#ffffff;
scrollbar-base-color:#ffffff;
}
body.Menu
{
color:#000000;
margin:0px;
bgcolor:#ffffff;
}
body.Termin
{
background:#8BADDE;
color:#000000;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:normal;
margin-top: 5px;
margin-left: 15px;
margin-right: 15px;
margin-bottom: 5px;
}
/* Standard */
.DesignTable table {
border-width: 0px;
border-spacing: 0px;
padding: 0px;
}
p, li, .DesignTable td {
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size: 12px;
font-style: normal;
font-weight: normal;
color: #000000;
text-align: justify;
list-style-position: inside;
list-style-type: disc;
}
td.hauptfenster {
vertical-align:top;
border: solid 1px black;
}
hr
{
color:#3e70b6;
size: 1;
noshade;
}
hr.hr
{
color:#19037a;
width:100%;
height:1px;
}
/* Ueberschriften */
h1.style1 {
font-family:VAGRounded BT;
font-size: 25px;
color=#990000;
font-weight: bold;
}
h1.style1 i {
font-family:Mistral;
font-style:normal;
}
h1 {
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size: 17px;
font-weight: bold;
font-variant: small-caps;
text-transform: uppercase;
color: #990000;
}
h1 i {
color: #000099;
}
h2 {
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: bold;
text-transform: none;
color: #990000;
}
h2 i {
color: #000099;
}
h3 {
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
text-transform: none;
color: #000000;
}
/* fett */
b {
color: #990000;
font-weight: bold;
}
img.image {
border-top-style: solid;
border-top-color: #000000;
border-left-style: solid;
border-left-color: #000000;
border-right-style: groove;
border-right-color: #AA2020;
border-bottom-style: groove;
border-bottom-color: #AA2020;
border-top-width: 1px;
border-left-width: 1px;
border-right-width: 3px;
border-bottom-width: 3px;
}
/* Links */
a
{
color:#013b8c;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
}
a:hover
{
color:#b01b1b;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:underline;
}
/*-----------------------------------Tabelle mit 2 Ebenen (Unterkunftstabelle) ----------------------------*/
/* Kopf */
.tabstyle1top
{
background-color:#013B8C;
color:#ffffff;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:15px;
font-weight:bold;
text-decoration:none;
text-transform:uppercase;
}
a.tabstyle1top
{
color:#ffffff;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:15px;
font-weight:bold;
text-decoration:none;
}
a.tabstyle1top:hover
{
color:#8BADDE;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:15px;
font-weight:bold;
text-decoration:none;
}
/* Zeile */
.tabstyle1line
{
background-color:#8BADDE;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
color:#000000;
font-weight:normal;
text-decoration:none;
}
a.tabstyle1line
{
color:#013B8C;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
}
a.tabstyle1line:hover
{
color:#b01b1b;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
}
/*------------------ Tabelle mit 3 Ebenen (Gruppenunterkuenfte/Reisekategorien) ---------------------------*/
/* Kopf 1 */
.tabstyle2top
{
background-color:#013B8C;
color:#ffffff;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:14px;
font-weight:bold;
text-transform:uppercase;
}
a.tabstyle2top
{
color:#FFFFFF;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:14px;
font-weight:bold;
text-decoration:none;
}
a.tabstyle2top:hover
{
color:#BDD3F3;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:14px;
font-weight:bold;
text-decoration:none;
}
/* Kopf 2 */
.tabstyle2top2, .ScrollTable th
{
background-color:#8BADDE;
color:#013B8C;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
}
/* Zeile */
.tabstyle2line, .ScrollTable td
{
background-color:#BDD3F3;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
color:#000000;
font-weight:normal;
text-decoration:none;
}
a.tabstyle2line
{
color:#013b8c;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
}
a.tabstyle2line:hover
{
color:#b01b1b;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
}
/* -------------------------------------------- Terminkalender ------------------------------*/
.tabstyleferien
{
background-color:#DEA0A0;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
color:#000000;
font-weight:normal;
text-decoration:none;
}
div.termin1
{ color:#880000;
font-weight:normal; }
div.termin2
{ color:#005000;
font-weight:normal; }
div.termin3
{ color:#505000;
font-weight:normal; }
div.termin4
{ color:#000000;
font-weight:bold; }
div.termin5
{ color:#000050;
font-weight:normal; }
div.termin6
{ color:#005050;
font-weight:normal; }
/*--------------------------------------------------- Hierarchie ------------------------------------------*/
div.hierarchie
{
color:#013b8c;
font-size:10px;
font-weight:normal;
text-decoration:none;
text-transform:lowercase;
position:absolute;
top:1px;
left:1px;
width:300px;
z-index:0;
}
div.autor
{
color:#013b8c;
font-size:10px;
font-weight:normal;
text-decoration:none;
text-transform:lowercase;
position:absolute;
top:1px;
right:20px;
z-index:1;
}
div.hierarchie a
{
color:#013b8c;
font-size:10px;
}
div.hierarchie a:hover
{
color:#B01B1B;
font-size:10px;
}
/*------------------------------------------- Reiter-Eigenschaften ----------------------------------------*/
/* Hintergrundfarbe */
.bgreiter
{
background-color:#d7e8ff;
}
/* Schrift */
.reiter
{
}
/* Ueberschriften */
.headerreiter
{
color:#b01b1b;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
}
/* Links */
a.reiter
{
color:#013b8c;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
}
a.reiter:hover
{
color:#b01b1b;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:underline;
}
/*-------------------------------------------------- Navigation oben --------------------------------------*/
.navtop
{
background-color:#B01B1B;
color:#ffffff;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:14px;
font-weight:bold;
}
.tabborder
{
border-right-style: solid;
border-right-color: #FFFFFF;
border-width : 2px;
text-align: center;
padding-left:10px;
padding-right:10px;
}
.tabborderactiv
{
background-color:#ffb045;
color:#ffffff;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:14px;
font-weight:bold;
border-right-style: solid;
border-right-color: #FFFFFF;
border-width : 2px;
text-align: center;
padding-left:10px;
padding-right:10px;
}
a.anavtopa
{
color:#013b8c;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
}
a.anavtopa:hover
{
color:#013b8c;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
}
a.anavtop
{
color:#ffffff;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
}
a.anavtop:hover
{
color:#d7e8ff;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
}
/*------------------------------------------------- Navigation links --------------------------------------*/
.bgnavleft, .bgelpix
{
background-color:#FFFFFF;
border: solid 1px black;
cellpadding=0;
/* background-color:#013B8C; */
}
/* EBENE 1*/
td.navleft1
{
background-color:#FFFFFF;
border-bottom:1px solid gray;
color: #ec4d15;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
padding-left:5px;
}
a.navleft1
{
color: #ec4d15;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
}
a.navleft1:hover
{
color: #ffb635;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
}
/* Ebene 2 */
td.navleft2
{
/* background-color:#d7e8ff; */
background-color:#FFFFFF;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
padding-left:5px;
}
a.navleft2
{
color:#013b8c;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
}
a.navleft2:hover
{
color:#b4b4f3;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
}
/* EBENE 2 aufgeklappt */
td.navleft2aktiv
{
background-color:#7F9ECB;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
padding-left:5px;
}
a.navleft2aktiv
{
color:#ffffff;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
}
a.navleft2aktiv:hover
{
color:#ffffff;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
}
/* EBENE 3*/
td.navleft3
{
background-color:#ffffff;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
padding-left:5px;
}
a.navleft3
{
color:#013b8c;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:normal;
text-decoration:none;
}
a.navleft3:hover
{
color:#b01b1b;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:normal;
text-decoration:none;
}
/* --------- Formulare ----------------------------------------------------*/
td.orange
{
background-color:#FFFFFF;
color: #000000;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
}
input.login
{
border-style:solid;
border-width:1px;
border-color:#3e70b6;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:normal;
text-decoration:none;
background-color:#ffffff;
}
input.text
{
border-style:none;
border-width:0px;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
background-color:#BDD3F3;
color:#013b8c;
}
select.blue
{
border-style:none;
border-width:0px;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
text-decoration:none;
background-color:#BDD3F3;
color:#013b8c;
}
input.blue, textarea.blue
{
color:#013b8c;
border-style:solid;
border-width:2px;
border-color:#3e70b6;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:13px;
font-weight:bold;
text-decoration:none;
background-color:#d7e8ff;
}
input.textbox
{
width:128px;
}
/* scrollbare Tabellen */
.ScrollTable tr
{
height:22px;
color:#000000;
}
/* Reiter-Lasche */
.reiterwindow
{
color:#000000;
background-color:#BDD3F3;
text-decoration:none;
font-weight:normal;
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size: 12px;
font-style: normal;
text-align: justify;
border-color:#013b8c;
border-width:1;
border-left-style:solid;
border-right-style:solid;
border-bottom-style:solid;
padding:4px;
}
.reiterlasche
{
color:#013b8c;
background-color:#8BADDE;
text-decoration:none;
font-weight:normal;
border-color:#013b8c;
border-width:1;
border-top-style:solid;
border-bottom-style:solid;
}
.aktreiterlasche
{
color:#013b8c;
background-color:#BDD3F3;
text-decoration:none;
text-align: center;
font-weight:normal;
font-family:Arial,Geneva,Helvetica,sans-serif;
font-size:12px;
font-weight:normal;
border-color:#013b8c;
border-width:1;
border-top-style:solid;
}
.reiterspace
{
background-color:#FFFFFF;
border-color:#013b8c;
border-width:1;
border-bottom-style:solid;
}
.aktreiterspace
{
background-color:#FFFFFF;
border-color:#BDD3F3;
border-width:1;
border-bottom-style:solid;
}
a.reiterlink
{
background-color:#8BADDE;
color:#013b8c;
text-decoration:none;
font-weight:normal;
}
a.reiterlink:hover
{
color:#880000;
text-decoration:none;
font-weight:normal;
}
/* Sonstiges*/

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
4_loesungen/03_2_craps.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,23 @@
Link
http://sdedit.sourceforge.net/copyright/index.html (22.06.2019)
Author
Markus Strauch <markus-strauch {AT} arcor {DOT} de>
Copyright
Copyright (c) 2006 - 2008, Markus Strauch. All rights reserved.
License
This program is released under the BSD license:
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The icons for decorating this program's buttons are taken from Crystal SVG - see http://www.everaldo.com They are released under the LPGL license - see http://www.fsf.org/licensing/licenses/lgpl.html
The icon identifying the program's window is taken from ArgoUML, copyright by Tigris - see http://argouml.tigris.org - and released under the BSD license (see above).

Binary file not shown.

Binary file not shown.

64
README.adoc Normal file
View file

@ -0,0 +1,64 @@
= Objektorientierte Modellierung und Programmierung
|===
|Zuordnung| Algorithmen
|Klassenstufe| Kursstufe BF und LF
|Bildungsplanbezug | BF, LF
|Werkzeug| Java-Editor, Greenfoot
|Autoren| T. Schaller, U.Lautebach
|===
== Inhalt
Schülerinnen und Schüler lernen anhand eines Softwareprojekts zur Erstellung einer Geometrie-Software die Grundlagen der objektorientierten Programmierung und Modellierung kennen. Anschließend modellieren sie ein einfaches Spiel.
## Themen
- Klassen und Objekte
- Attribute und Methoden
- primitive Variaben, Referenzvariablen
- Deklaration einer Klasse
- Lebenszyklus von Objekten / Garbage Collector
- abstrakte Klassen
- TypCasts
- Polymorphie
- Klassenbeziehungen (Vererbung, Aggregation bzw. Komposition, Assoziation)
- von UML zum Quelltext
- Graphical User Interface (GUI)
- Modellierung von Klassen
- Software-Projekte
- Sequenzdiagramme
- UML-Klassendiagramme
- for-each-Schleifen
== Bildungsplan-Bezüge
=== 3.1.3 Algorithmen - Strukturierte und objektorientierte Programmierung - Basisfach und Leistungsfach
Variablen und Datentypen
- (3) implizite und explizite Typumwandlungen (type casts) zur Konvertierung von Werten
unterschiedlicher Datentypen ineinander verwenden und dabei auftretende Probleme beschreiben
Objektorientierung
- (5) eigene Klassendefinitionen mit Attributen und Methoden implementieren
- (6) Referenzvariablen/Referenztypen mit primitiven Variablen / primitiven Datentypen vergleichen
- (7) mögliche Ursachen und Auswirkungen von Nullpointerfehlern erläutern [nur LF]
- (9) die Funktion von Zugriffsmodifikatoren (public, private, protected) erläutern und diese verwenden
- (12) den Lebenszyklus von Objekten (unter anderem Instanziierung, Verwendung, Zerstörung)
beschreiben [nur LF]
- (13) die Rolle von Konstruktoren beim Erzeugen von Instanzen einer Klasse (Objekten) erläutern und
diese implementieren
- (14) generische Datentypen bei der Instanziierung vorgegebener Klassen verwenden [nur LF]
- (15) sprachliche Mittel zur Sammlung gleichartiger Objekte (Collection) und zum Durchlaufen aller
Elemente der Sammlung (zum Beispiel Iteration, foreach, Lambdaausdrücke etc.) nutzen [nur LF]
- (16) das Konzept der Vererbung erläutern und in Modellierungen und Implementierungen anwenden
- (17) das Prinzip der Polymorphie erläutern und anwenden und dabei auch sichere class casts [nur LF]
verwenden
- (18) abstrakte Klassen und abstrakte Methoden nutzen [nur LF]
Modellierung und Dokumentation
- (20) UML-Klassendiagramme mit Vererbung und Assoziation (auch rekursiv) entwerfen und zur
Modellierung nutzen

12
index.html Normal file
View file

@ -0,0 +1,12 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Materialien</title>
<meta name="author" content="Administrator">
<meta name="editor" content="html-editor phase 5">
<meta http-equiv="refresh" content='0; URL="0_Inhaltsverzeichnis/inhaltsverzeichnis.html"'>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<p>Wenn Sie nicht automatisch weitergeleitet werden, klicken Sie <a href="0_Inhaltsverzeichnis/inhaltsverzeichnis.html">hier</a>.</p>
</body>
</html>

11
readme.adoc Normal file
View file

@ -0,0 +1,11 @@
= Material :
|===
|Zuordnung|
|Klassenstufe|
|Bildungsplanbezug |
|Werkzeug|
|Autoren|
|===
== Inhalt

BIN
urheberrecht.pdf Normal file

Binary file not shown.