{"id":3011,"date":"2010-10-19T09:12:41","date_gmt":"2010-10-19T07:12:41","guid":{"rendered":"https:\/\/www.herr-rau.de\/wordpress\/?p=3011"},"modified":"2023-05-24T19:37:32","modified_gmt":"2023-05-24T17:37:32","slug":"programmierprojekt-in-der-q11","status":"publish","type":"post","link":"https:\/\/www.herr-rau.de\/wordpress\/2010\/10\/programmierprojekt-in-der-q11.htm","title":{"rendered":"Programmierprojekt in der Q11"},"content":{"rendered":"<div style='text-align:right;'><small>(<a href='https:\/\/www.herr-rau.de\/wordpress\/2010\/10\/programmierprojekt-in-der-q11.htm#comments'>29 Kommentare.<\/a>)<\/small> <\/div>\n<p>Zum Ende der 11. Jahrgangsstufe m\u00fcssen die Sch\u00fcler im Informatik-Kurs an einem Projekt arbeiten. Dabei sollen die im Laufe des Jahres gelernten Datenstrukturen (Listen, B\u00e4ume) ebenso verwendet werden wie eine SQL-Datenbank, ansonsten ist man thematisch frei. Vorgeschlagen sind Sachen wie Reiseauskunft oder Kontoverwaltung, meine Sch\u00fcler wollten etwas anderes machen.<\/p>\n\n\n\n<p>Ich hatte zwei Gruppen. Die erste entwickelte ihr <strong>Kriegergame<\/strong> weiter, entstanden aus einer einfachen \u00dcbung zur Vererbung am Schuljahresanfang. Als Spiel simpel: zwei Rollenspielfiguren r\u00fcsten sich aus und hauen dann mit verschiedenen Methoden abwechseln aufeinander ein, bis einer verloren hat. Der Gewinner kriegt Geld und Erfahrungspunkte und kann sich mehr Ausr\u00fcstung kaufen; jeder Benutzer kann mehrere Spielfiguren haben, deren aktueller Zustand (Geld, Ausr\u00fcstung) in einer Datenbank gespeichert wird.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Kriegergame:<br>20 Klassen, davon 5 Interfaces<br>172 KB<br>~6190 Programmzeilen (2262 + GUI 3928), einschlie\u00dflich javadoc und Leerzeilen<\/p>\n<\/blockquote>\n\n\n\n<p>Programmiert wurde in Java in der Entwicklungsumgebung Eclipse; hier die grafische Darstellung der Klassen aus BlueJ:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger0.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1100\" height=\"744\" src=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger0.jpg\" alt=\"\" class=\"wp-image-3012\" title=\"inf_krieger0\" srcset=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger0.jpg 1100w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger0-150x101.jpg 150w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger0-550x372.jpg 550w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger0-1024x692.jpg 1024w\" sizes=\"auto, (max-width: 1100px) 100vw, 1100px\" \/><\/a><\/figure>\n\n\n\n<p>Das Men\u00fc:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"371\" src=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger1.jpg\" alt=\"\" class=\"wp-image-3013\" title=\"inf_krieger1\" srcset=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger1.jpg 550w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger1-150x101.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/figure>\n\n\n\n<p>Der Kampf:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"346\" src=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger2.jpg\" alt=\"\" class=\"wp-image-3014\" title=\"inf_krieger2\" srcset=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger2.jpg 550w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger2-150x94.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/figure>\n\n\n\n<p>Der Shop:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"376\" src=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger3.jpg\" alt=\"\" class=\"wp-image-3015\" title=\"inf_krieger3\" srcset=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger3.jpg 550w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger3-150x102.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/figure>\n\n\n\n<p>Es gibt 5 verschiedene Charakterklassen (Hunter, Lich, Mage, Paladin, Tank), jeweils m\u00e4nnlich oder weiblich; Ausr\u00fcstungsgegenst\u00e4nde; zum Teil animierte Angriffe, alles liebevoll grafisch aufbereitet. \u00dcberhaupt hat es Sch\u00fclern die Grafik angetan, der gr\u00f6\u00dfte Teil der Programmierarbeit entfiel auf die aufwendige Benutzeroberfl\u00e4che. Mich selbst interessiert die am wenigsten, und fitzelig zu programmieren ist sie auch. Aber wenn&#8217;s Spa\u00df macht.<\/p>\n\n\n\n<p>Die andere Gruppe programmierte das Quiz <strong>&#8222;Wer wird Abiturient?&#8220;<\/strong>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Quiz:<br>13 Klassen, davon 5 Interfaces<br>101 KB<br>~2863 Programmzeilen (1283 + GUI 1580), einschlie\u00dflich javadoc und Leerzeilen<\/p>\n<\/blockquote>\n\n\n\n<p>Auch hier wurde mit Eclipse gearbeitet; ein \u00dcberblick \u00fcber die Klassen aus BlueJ:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_quiz0.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1038\" height=\"714\" src=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_quiz0.jpg\" alt=\"\" class=\"wp-image-3016\" title=\"inf_quiz0\" srcset=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_quiz0.jpg 1038w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_quiz0-150x103.jpg 150w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_quiz0-550x378.jpg 550w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_quiz0-1024x704.jpg 1024w\" sizes=\"auto, (max-width: 1038px) 100vw, 1038px\" \/><\/a><\/figure>\n\n\n\n<p>Das Men\u00fc:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"452\" src=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_quiz1.jpg\" alt=\"\" class=\"wp-image-3017\" title=\"inf_quiz1\" srcset=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_quiz1.jpg 550w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_quiz1-150x123.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/figure>\n\n\n\n<p>Eine erste Frage:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"452\" src=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_quiz2.jpg\" alt=\"\" class=\"wp-image-3018\" title=\"inf_quiz2\" srcset=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_quiz2.jpg 550w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_quiz2-150x123.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/figure>\n\n\n\n<p>Nach den ersten sehr einfachen Fragen verl\u00e4sst man die Grundschule und kann sich durch immer schwerere Fragen bis zum Abitur hocharbeiten. Die Fragen und Antworten und die Highscore-Liste sind jeweils in einer Datenbank gespeichert.<\/p>\n\n\n\n<p>Bei beiden Projekten wurde mit den Entwurfsmustern <em>Model-View-Controller<\/em> und <em>Beobachter<\/em> gearbeitet. Insgesamt hatten die Sch\u00fcler etwa neun Wochen Zeit, glaube ich.<\/p>\n\n\n\n<p><strong>Merken: <\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Je mehr Zeit man f\u00fcr das Projekt hat, desto besser. Wir h\u00e4tten alle noch lange daran herumarbeiten k\u00f6nnen und wollen, ein paar erkannte Fehler sind noch drin und unerkannte sowieso. Eigentlich ist so etwas nichts f\u00fcr die letzten Wochen im Schuljahr, das m\u00fcsste ein eigenes P-Seminar sein.<\/li>\n\n\n\n<li>Das Arbeiten mit Datenbanken ist l\u00e4stig. Zuerst hatte ich eine Datenbank im Web (wenn schon, denn schon), so dass die Sch\u00fcler auch zu Hause daran arbeiten konnten. Das w\u00e4re f\u00fcr die Spiele auch sch\u00f6n gewesen, da es dadurch eine zentrale Benutzerverwaltung und eine zentrale Highscore-Liste gegeben h\u00e4tte. Aber wenn man das Programm weitergibt, sind ja im Java-Quellcode die SQL-Zugangsdaten enthalten, und die will man nun mal nicht \u00f6ffentlich haben. (Aus dem Bytecode wieder lesbaren Quellcode zu generieren, ist <a href=\"http:\/\/de.wikipedia.org\/wiki\/Bytecode#R.C3.BCckgewinnung_von_Quelltext_aus_Kompilaten\">wohl recht leicht<\/a>, wenn man nicht zus\u00e4tzliche Verschl\u00fcsselungsschritte unternimmt.)<br>Also h\u00e4tte ein Java-Client auf den Server gemusst, der die Zugangsdaten verwaltet, nur dass bei mir kein Java l\u00e4uft. Also dann doch eine lokal gespeicherte Datenbank. Microsoft Access ging recht schnell auch wenn manche Java-Versionen den Treiber bereits mitbringen, andere nicht. Einen Treiber f\u00fcr Open Office Base zu finden, dauerte lange, gelang aber doch. Nur dass das Open-Office-Format ein Zip-Format ist, auf dem Java nicht unmittelbar arbeiten kann &#8211; also m\u00fcsste die .odb-Datei erst entpackt, dann bearbeitet, dann wieder gepackt werden, weil man nur im gepackten Zustand dann wieder mit Open-Office-Base darauf zugreifen kann.<\/li>\n\n\n\n<li>Ich muss mir noch viel \u00f6fter Entw\u00fcrfe zeigen lassen. Inzwischen ist StarUML auf unseren Rechnern installiert, damit geht das besser. Gefahr und Versuchung sind gro\u00df, dann doch einfach mal drauflos zu programmieren. Also: mehr Lenkung vor den Programmierphasen. Aber diese Sammelstunden kosten wieder Zeit.<\/li>\n\n\n\n<li>Spiele sind eine gute Idee. Da kommen grafische F\u00e4higkeiten zum Einsatz, und wer nicht gerne programmiert, kann Quizfragen heraussuchen und in die SQL-Datei eintippen. Irgendwas ist f\u00fcr jeden dabei.<\/li>\n\n\n\n<li>Es ist ein fruchtloses Unterfangen, Sch\u00fcler dazu bringen zu wollen, sich weniger auf die grafische Benutzeroberfl\u00e4che zu konzentrieren.<\/li>\n\n\n\n<li>Wichtig f\u00fcr die Arbeitsteilung: die Aufgaben m\u00fcssen irgendwo im Web liegen, und die Sch\u00fcler m\u00fcssen sie selbst verwalten. Projektplanungssoftware w\u00e4re sch\u00f6n, aber es geht auch mit einem gemeinsamen GoogleDocs-Dokument. (Sch\u00f6n, beim Mitlesen zwischendrin so Mitteilungen zu finden wie: <em>!!Wichtig: Die Itemnamen d\u00fcrfen maximal so lang sein wie &#8222;Sichel des Unterweltherschers&#8220;!!<\/em><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"164\" src=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger4.jpg\" alt=\"\" class=\"wp-image-3019\" title=\"inf_krieger4\" srcset=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger4.jpg 550w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger4-150x44.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Noten: Noten gab es keine darauf. Ich kann bei zwei derartig umfangreichen Projekten als nicht wirklich eingebundener Lehrer nicht mehr sinnvoll benoten. Eine Gesamtnote w\u00e4re m\u00f6glich, die sich die Sch\u00fcler dann untereinander aufteilen. Aber bei abiturrelevanten Noten w\u00e4re ich da sehr vorsichtig, am Ende f\u00fchrt das noch zu Streit. Aber es geht ja auch wunderbar ohne Noten.<\/li>\n<\/ul>\n\n\n\n<p><em>Nachtrag: Jetzt auch als Video.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Informatikprojekt Quiz\" width=\"500\" height=\"375\" src=\"https:\/\/www.youtube.com\/embed\/yQXICE_dOJQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Informatikprojekt Kriegergame Teil 1\" width=\"500\" height=\"375\" src=\"https:\/\/www.youtube.com\/embed\/CEXAOh1FQ7M?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>(Fortsetzung bei Youtube.)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>(29 Kommentare.) Zum Ende der 11. Jahrgangsstufe m\u00fcssen die Sch\u00fcler im Informatik-Kurs an einem Projekt arbeiten. Dabei sollen die im Laufe des Jahres gelernten Datenstrukturen (Listen, B\u00e4ume) ebenso verwendet werden wie eine SQL-Datenbank, ansonsten ist man thematisch frei. Vorgeschlagen sind Sachen wie Reiseauskunft oder Kontoverwaltung, meine Sch\u00fcler wollten etwas anderes machen. Ich hatte zwei Gruppen. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":3012,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[25,15],"tags":[227,233,85],"class_list":["post-3011","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-informatik","category-was-schueler-koennen","tag-informatik","tag-programmierprojekte","tag-vorzeigbares"],"jetpack_featured_media_url":"https:\/\/www.herr-rau.de\/wordpress\/archiv\/inf_krieger0.jpg","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts\/3011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/comments?post=3011"}],"version-history":[{"count":3,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts\/3011\/revisions"}],"predecessor-version":[{"id":58064,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts\/3011\/revisions\/58064"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/media\/3012"}],"wp:attachment":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/media?parent=3011"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/categories?post=3011"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/tags?post=3011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}