Empfohlen

Über die Prog-AG

Gegründet von Herrn Reinfeld und nun betreut von Herrn Peters ist die Prog-AG eine auf Programmierung und Informatik ausgerichtete Arbeitsgemeinschaft der Cäcilienschule Oldenburg.

Aktuelle Projekte beinhalten die Teilnahme an Informatikwettbewerben, die Veranstaltung eines eigenen Scratch- und Robocode-Wettbewerbes sowie einen eigenen Minecraft-Server (mit iServ-Login zu erreichen unter minecraft.prog-ag.de – mehr Infos siehe hier).

Gewinner des Robocode-Wettbewerbs

Der Gewinner Tom L. (Programmierer der MegaUltraMeisterProfiMaschine)

Pure Pwnage

Der Robocode-Wettbewerb hat einen Gewinner: Tom L. mit seinem Robocode-Programm, der „MegaUltraMeisterProfiMaschine“. Diese gewann souverän gegen ein Feld weiterer Robocode-Bots und sicherte dadurch den Hauptgewinn: Eine Playstation Classic nebst USB-Stick. Herzlichen Glückwunsch von der Prog-AG und ein „Try harder next time“ an alle weiteren Teilnehmer des Wettbewerbs! (PS, 28.9.2019)

Minecraft-Wettbewerb

ABGELAUFEN: 24.4.2019 bis zum 30.5.2019

Anmeldung hier:

Hier kannst konntest du dich zum Minecraft-Wettbewerb anmelden:
https://forms.gle/Tc9gmGeywec99BDc7

Darum geht ging es:

Welche Klasse kann das beste / die besten Ding(e) in Minecraft bauen? Seid ihr gute „Builder“ und mehrere KlassenkameradInnen auch? Dann meldet euch für den Wettbewerb an. Wichtig: damit ihr freigeschaltet werden könnt, müssen sich vorher alle Teilnehmer schon selbst auf dem Minecraft-Server registriert haben. Wer keine Ahnung hat, wie das geht, findet hier alle wichtigen Infos zur Anmeldung auf dem Server.

Eure / Deine Gruppe erhält ein 2×2 Plots großes Grundstück auf dem CityBuild-Server der Prog-AG. Auf diesem Grundstück sollt ihr das beeindruckendste und kreativste Gebäude / was-auch-immer errichten, das euch einfällt. Dafür habt ihr bis zum Ende des Wettbewerbs (30.4.2019 – 23:59h) Zeit. Macht was draus! Bewertet wird nachher euer Build von allen anderen stimmberechtigten Minecraft-Buildern auf dem Server. Für die eigene Klasse / Gruppe stimmen ist dabei (wer hätte es gedacht!) nicht erlaubt.

So geht es los: Meldet euch mit eurem Minecraft-Account und eurer iServ-E-Mail-Adresse auf dem Minecraft-Server an. Erst wenn das alle aus eurem Team getan haben, schickt ihr die Gruppenanmeldung ab. Danach wird euch (spätestens am nächsten Tag) ein 2×2 Grundstück für euer Team zugewiesen.

Wartezeit zu lang? Besorge dir schon einmal ein eigenes Grundstück mit „/p auto“ und gehe danach mit „/warp farmwelt“ in eine Farmwelt, in der du dir Materialien beschaffen kannst. Diese kannst du danach auch für eure Gruppe (oder natürlich für deine eigenen Bauwerke) verwenden. Mehr Infos zu Befehlen findest du auf der Webseite über den Minecraft-Server!

Preise

Jeder aktive Teilnehmer des Gewinnerteams erhält ein cooles technisches Gadget. Abgesehen von Ruhm und Ehre bekommen natürlich die drei besten Teams Urkunden – und sind „Minecraft-Meister 2019“ der Schule! Episch. Tatsächlich aber: ihr könnt zeigen, ob „fähig genug seid“ (Skill habt).

Noch einige Infos …

  • eine Gruppe besteht aus mindestens 3 Teilnehmern (Gruppenleiter + 2 weitere Spieler)
  • maximal 8 Teilnehmer pro Gruppe (das Grundstück ist begrenzt!)
  • pro Klasse können auch mehrere Gruppen antreten
  • alle Teilnehmer dürfen nur in jeweils einer Gruppe sein
  • am Ende gewinnt die Klasse, deren Gruppe gewinnt
  • die Reihenfolge der Teilnehmer innerhalb dieser Liste ist egal – nur der Gruppenleiter ist eine Ausnahme: er kann Spieler aus der Gruppe werfen
  • PROBLEME DIE INNERHALB DER GRUPPE ENTSTEHEN (GRIEFEN, STREIT USW.) MÜSSEN INNERHALB DER GRUPPE GEKLÄRT WERDEN! WENN DIE GRUPPE AM ENDE KEINE ABGABE HAT, IST ES ÄRGERLICH, ABER DER WETTBEWERB LÄUFT WEITER.

Wie immer gilt beim Spielen: Spielt verantwortungsbewusst – also nicht das „wahre Leben“ für Minecraft vernachlässigen!

Viel Erfolg wünschen Herr Peters und Bruna15!

Das Poster zum Wettbewerb

IMHO: Bundeswettbewerk KI „bw-ki.de“

photo credit: San Diego Shooter

Am 28.2.2019 startete der neue Bundeswettbewerb KI („Künstliche Intelligenz“), der für SuS (Schülerinnen und Schüler) zwischen 14 und 19 Jahren ausgelegt ist.

In einer ersten Runde können Teilnehmer oder Teams bis zu drei Personen teilnehmen und müssen jeweils drei „Leistungen“ einreichen:

Aufgabe 1: Fragen zum Thema KI
Aufgabe 2: Programmieraufgaben
Aufgabe 3: Entwicklung einer eigenen Idee (ohne konkrete Umsetzung)

Momentan ist „die KI“ in aller Munde und nicht von einem Hype zu sprechen wäre fehlerhaft. Da aber hoffentlich jeder, der sich etwas mit der Materie auseinandersetzt ahnt, dass es sich hierbei nicht um den Inhalt eines neuen Terminator-Films (Weltherrschaft, Maschinen mit eigenem Bewusstsein, …) handelt, stellt sich die Frage: wie wird das Thema aufbereitet?

Tatsächlich wird in diesem Wettbewerb ein zuerst sehr wissenschaftlicher Ansatz vermittelt (Aufgaben 1 und 2), wobei bei Aufgabe 3 ein wenig kreativer Freiraum gelassen wird. So weit – so gut.

Leider gibt es seitens des Wettbewerbs und der damit verbundenen Webseite (www.bw-ki.de) an dieser Stelle einen „Strömungsabriss“ und es fehlt weiterer Inhalt. So ist es – auch wenn auf der Webseite behauptet wird, kein Vorwissen vorauszusetzen – nur mit Hilfe relativ sinn- und kontextfreier Google-Recherche möglich, die Fragen von Teil 1 zu beantworten. Tipp dazu von einem Informatikkollegen: zuerst Aufgabe 2 bearbeiten, da sich dort die Inhalte von Aufgabe 1 erschließen lassen.

Unabhängig davon: Wünschenswert wäre es, den Wettbewerb mit etwas passend selektiertem (oder sogar didaktisiert aufbereitetem) Inhalt zu unterfüttern, um den Wettbewerb auch für Anfänger erschließbar zu machen.

Aber: Es ist der erste Durchlauf – vielleicht ändert sich da ja noch etwas. Prinzipiell ist jede Form von Innovation in Richtung Informatik wünschenswert und potentiell zukünftig hilfreich.

Hier nun einige Links, die wenigstens lesenswert oder sogar hilfreich sein könnten:

Abschließend bleibt es zu hoffen, dass sich dieser (und vielleicht weitere Wettbewerbe) etablieren, um den Horizont sowohl der SuS als auch der LehrerInnen zu erweitern. Falls dies so ist: Es ist ein SchülerInnen-Wettbewerb – deshalb bitte auch an Lehrmaterialien denken!

Pong in Python mit PyGame

Dieser Beitrag erklärt Schritt für Schritt die Vorangehensweise um ein Pong Spiel mit Python zu entwickeln.

Benötigt wird die Bibliothek pygame, welche mit pip installiert werden kann.

Als erstes muss das entsprechende Modul importiert werden. Zusätzlich wird math zur Berechnung und random benötigt

Nun wird pygame initialisiert und eine clock erstellt, welches die Bildwiederholfrequenz des Spiels steuert und die Bewegung des Puks.

Als nächstes ist es Zeit ein Spielfenster zu erstellen. Alternativ kann der Titel des Fensters definiert werden. In diesem Falle hat das Fenster eine Größe von 1280×720 und den Titel PyPong 2.0

Eine GameLoop ist essentiell. Sie kann folgendermaßen erstellt werden.

In der GameLoop werden nun die FPS definiert und alle Objekte im Spiel aktualisiert. Dies sollte dazu führen, dass das Fenster nicht unmittelbar nach dem Starten des Programms abbricht und das man Objekte visuell darstellen kann.

WHITE stellt in diesem Falle die Farbe Weiß da. Folgende Farben werden im Laufe noch benötigt (RGB Format)

Nun müssen nach und nach relevante Events initialisiert werden. Zum Beispiel, ob der Benutzer das Spiel beenden möchte

Weitere Events werden noch folgen.

Es ist Zeit, die Paddles zu erstellen. Jedes Paddle besitzt eine X und Y Position, wobei die X Position optional durch eine allgemeine Konstante ersetzt werden kann, da diese absolut ist und nicht vom Benutzer verändert werden kann. height kann ebenfalls durch eine Konstante ersetzt werden. Zudem besitzt jedes Paddle für X und Y eine Variable, welche definiert, ob sich das Paddle bewegen kann (Ansonsten könne das Paddle aus dem Fenster raus bewegt werden) Der MovementFactor legt fest, wie schnell sich das Paddle bewegt.

Um das Paddle steuern zu können, wird eine InputMap benötigt. Diese speichert die momentan gedrückten Tasten. (W, S, UP, DOWN)

Mit Events werden die entsprechenden Inputs des Benutzers erfasst und in der InputMap gespeichert

Nun müssen die Paddles nur noch basierend auf den UserInput bewegt werden. Es muss zusätzlich noch überprüft werden, dass die Paddles sich nicht außerhalb des Spielfelds bewegen werden können

Nun ist es Zeit den Puck zu erstellen. Der Puck besitzt eine X und Y Position und einen MovementFactor

Um den Puck zum bewegen zu bringen, muss eine Richtung bestimmt werden und die X, sowohl als auch die Y-Position durch eine lineare Funktion aktualisiert werden.

Jetzt muss noch die Kollision des Pucks berechnet werden

Damit wäre das Pong Spiel fast fertig. Es muss nur noch überprüft werden, ob ein Spieler einen Punkt erziehlt hat

Der Score wird zuguterletzt noch auf dem Display angezeigt

Source code: https://github.com/IntenceYT/PyPong/

Minecraft in der Schule

Da es sich bei Minecraft „nur um ein Spiel“ handelt, ist der Einsatz eines Spiels in der Schule durchaus umstritten. Allerdings lässt sich selbst durch die härtesten Kritiker nicht bestreiten, dass bei Minecraft hauptsächlich kreativ und nicht destruktiv gespielt wird.

Deshalb stehen dem Einsatz von Minecraft als Physik oder Informatik-Sandbox-Spiel nur die Üblichen Probleme des Medieneinsatzes im Wege.
Konkret sollte der Einsatz von Minecraft nicht als Selbstzweck, sondern zur Vermittlung anderer Inhalte dienen:

Im Fall der Prog-AG sind dies direkt mehrere Inhalte:
– Aufbau von Serverstrukturen, Linux-Grundlagen
– Programmierung von Plugins in Java
– Koordination im Team – d.h. Abstimmung bei Bauprojekten
– Schaffen und Verwenden von Teamwerkzeugen

Das „Abdriften“ in ein rein kreatives Schaffen bzw. Spielen von Minecraft ist zwar nicht ausschließlich kritisch zu sehen, sollte aber trotzdem zielgebunden eingesetzt werden.

Hürden hierbei stellen jedoch die notwendige Serverstruktur und die notwendigen Lizenzen von Minecraft dar.

In der Prog-AG wird aktiv an einem Minecraft-Server gearbeitet, welcher (nach Fertigstellung) sowohl eine Bauwelt für interessierte SchülerInnen als auch einen kompletten Nachbau der Cäcilienschule beinhalten soll.

Das Cäci-C in Minecraft

Schon einmal etwas von Minecraft-Commandblöcken gehört?
Dabei handelt es sich um Programmierung „in einer Box“ – konkret in einem einzelnen Minecraft-Block.

Programmiert von Jan S.

Ausflug zur Gamescom 2016

Der Ausflug zur Gamescom war ein voller Erfolg!
Durch tatkräftige Unterstützung aller Beteiligten gab es (bis auf einen Zugausfall auf den letzten Metern) keine Komplikationen und den ungetrübten „Gamescom-Eindruck“.

Die Cantina-Band der Gamescom 2016
Die Cantina-Band der Gamescom 2016

Java-Tutorial

Guten Tag und willkommen beim interaktiven Java-Tutorial!

Hier lernen sie alles über die Programmiersprache Java und es kommt immer neuer Inhalt hinzu!

Java ist eine sogenannte OOP (Objekt-Orientierte-Programmiersprache). Mit Java haben sie die Möglichkeit Anwendungen oder gar Webseiten zu programmieren. Ich möchte ihnen in diesem Blog zeigen, wie das geht. Fangen wir an mit dem, was man zum programmieren braucht. Zum einen sollte man logisch denken können. Das kann man sich wie bei Mathe oder Chemie, Physik vorstellen. Zum einen muss man die Formeln auswendig lernen und zum anderen, muss man sie logisch verwenden können. Die nächste Sache, die sie brauchen, ist das sogenannte JDK (Java-Development-Kit). Einen Link zur Webseite finden sie hier. Dann benötigen sie noch eine Entwicklungsumgebung. Diese soll ihnen helfen, schneller Fehler im Code zu finden und sie bietet zahlreiche andere Features. Man könnte auch theoretisch betrachtet auf jedem x-beliebigen Text-Editor programmieren, sie werden aber schnell merken, warum man dies nicht tut. Einer der besten Entwicklungsumgebungen ist Eclipse. Sie können Eclipse bequem hier herunterladen. Das installieren beider Anwendungen, sollte keine Probleme aufweisen. Im nächsten Teil, werden wir damit mit dem programmieren anfangen!