Abschnittsübersicht

    • Willkommen im Kursraum "Karel the Robot"


      Mit oder besser in der Lernumgebung zu arbeiten und seinen eigenen Code zu schreiben macht einfach Spaß. Egal ob du schon viel Erfahrung mit dem Schreiben eigener Programme hast oder komplett neu in der Welt der Programmierung bist, mit dem kleinen Roboter gibt es Kapital für Kapitel viele zu entdecken.


      Die Lernumgebung unterstützt dich bei der Erlernung der imperativen Programmierung.

      Die imperative Programmierung (vom Lateinischen: imperare = befehlen) führt eine klar strukturierte Handlungsabfolge aus. Es werden also mehrere Befehle nacheinander ausgeführt.


    • Wir treffen uns jede Woche zu einer Videokonferenz: jeden Mittwoch 16:30 - 17:30 (start der Videokonferenz ist der 12.10)

      Wir verwenden (zur Videokonferenz) das Programm alfaview. Ihr müsst euch das Programm einmal installieren (Schritt 1) und könnt anschließend (Schritt 2) den Konferenzraum betreten:
      Schritt 1: alfaview herunterladen und installieren: Download
      Schritt 2:   zum Konferenzraum


      In der Ideenschmiede findet ihr noch mehr zu Karel: zur Ideenschmiede
    • Die Idee zu dem Programm

      Da das Programm (die Lernumgebung) Karel deinen eigenen Code Zeile für Zeile umsetzt und du siehst, was passiert (weil sich Karel genauso bewegt, wie du es ihm durch deinen Code sagst), ist es der perfekte Einstieg in die (textuelle) Programmierung. Und das Denken sich auch viele Professoren ;) In dem Kurs arbeiten wir mit einer neueren Version des Programms. Die ursprünglich Idee zu Karel kam 1970 von der Stanford Universität.


      Bevor wir mit dem "neueren" Programm starten, mit dem wir uns bis zu den Sommerferien beschäftigen möchten, wollen wir uns einfach mal die Programmierumgebung von 1970 anschauen und den "alten" Karel kennenlernen.

      Karel 1970


      Hier sehen wir Karel von 1970


      Karel 2012


      Hier sehen wir Karel von 2012


      Im Prinzip funktionieren beide Programme (Lernumgebungen gleich.
           Auf "Goal" seht ihr, was passieren soll, in der "Welt (World)" seht ihr, was euer eigener Code macht 
           In beiden Programmen programmiert ihr Karel, der in jedem Kapitel unterschiedliche Aufgaben erfüllen soll
           In dem Programm von 1970 kann er sich nur nach links drehen, in dem von 2012 kann er sich nach links und nach rechts drehen.
                -> Frage: Wie schafft man es in dem Programm von 1970, dass sich Karel nach rechts dreht?

      Und so sieht die Lernumgebung (Website) von 1970 aus: zum Programm von 1970

      In der ersten Videokonferenz haben wir nur "Unit 1" und "Unit 2" gemacht.
       Wir haben uns also angeschaut, welche Elemente (Karel, Wall (Wand), Welt (World), Beeper) es gibt und  haben in Unit 2 (Abschnitt 2) Karel durch klicken auf die 4 Befehle bewegt

      Die Befehle (von 1970)

      move();

      Karel macht einen Schritt (in die Richtung, in die er schaut)

      turnLeft();

      Karel dreht sich (1x) nach links

      putBeeper();

      Karel legt einen Beeper ab
      In dem Programm von 1970 können mehrere Beeper übereinander gelegt werden, in dem Programm von 2012 kann immer nur ein Beeper auf einem Feld liegen

      pickBeeper();

      Karel sammelt einen Beeper ein
      Geht nur, wenn er auf einem Beeper steht

    • Bevor wir damit beginnen das Programm zu Installieren, wollen wir erst einmal verstehen, was genau wir hier eigentlich machen.


      Schritt 1: OpenJDK herunterladen und Installieren

      OpenJDK ist die sogenannte Laufzeitumgebung, in der das Programm (die Datei) Karel später ausgeführt wird.


      Was bedeutet das?

      Auf eurem PC habt ihr ein sogenanntes Betriebssystem (Windows, macOS oder Linux). Ein Betriebssystem ist allerdings sehr kompliziert aufgebaut und für jedes Betriebssystem müsste das Programm (die Lernumgebung) Karel angepasst werden. Laufzeitumgebungen helfen vielen Programmen (nicht nur Karel) dabei auf jedem Betriebssystem laufen zu können. Was genau das Bedeutet ist für uns jetzt aber gar nicht so wichtig, ihr müsst das Programm OpenJDK einfach nur kostenlos herunterladen und installieren. (erst fertig lesen, dann  Installieren)


      Schritt 2: Karel (Die Lernumgebung) herunterladen

      Das Programm Karel ist eine sogenannte ausführbare Datei, das heißt wir müssen sie nur herunterladen (und entpacken) und können sie einfach -ohne Installation- starten. Super, oder. Einer der Vorteile von Laufzeitumgebungen, die im Hintergrund laufen.


      Schritt 3: Lernumgebung starten und verwenden

      Jedes mal, wenn ihr die Lernumgebung öffnet, werdet ihr nach der Schriftgröße gefragt. Wählt einfach eine Schriftgröße aus und (z.B. 24px) und drückt aud "ok". Anschließend startet die Lernumgebung (Karel).

      Die Lernumgebung speichert auch alles, was ihr macht. Ihr könnt sie also einfach schließen. Sobald ihr sie später wieder öffnet, könnt ihr weiter an eurem Code arbeiten.


      Eine Installationsanleitung und alle Dateien/Programme zum Herunterladen findet ihr auf meiner Website (Dominiks Ideenschmiede)
      Zur Installationsanleitung auf (ideenschmiede-dominik.de/lernumgebung): Weiterleitung zur Ideenschmiede


      Schritt 4: Probleme

      Manchmal geht beim herunterladen der Lernumgebung etwas schief - dann denkt euer Computer er ist super schlau und macht ein Zip-Archiv aus der .jar-Datei Karel. Das merkt ihr schnell, wenn sich die Lernumgebung nicht öffnet (ihr also nicht nach der Schriftgröße gefragt werdet).

      Das ist aber gar kein Problem, ihr müsst einfach nur das Terminal öffnen und einen Code reinkopieren, der aus dem zip-Archif wieder die richtige Datei macht. Wie das geht seht ihr ebenfalls Schritt für Schritt auf meiner Website (ganz unten).


      Fragen

      Das ist wichtig: Fragt mich einfach (in der Videokonferenz oder auch jederzeit per Mail), wenn ihr Fragen habt oder nicht weiterkommt!
      Ihr erreicht mich jeder Zeit über info@ideenschmiede-dominik.de



    • Der Kurs zu dem kleinen blauen Roboter wird über mehrere Wochen/Monate hinweg laufen und (wie immer) mit Video-Konferenzen begleitet.

      In den Live-Kursen erkläre ich alles rund um die Programmierung, führe neue Themen ein, helfe euch bei eurem Code und ihr könnt Karel programmieren.

      Wichtig ist, dass ihr euch Zeit nehmt. In dem Kurs arbeitet jeder an dem Kapitel der Lernumgebung, an dem er aktuell am programmieren ist. Das heißt, schon nach der ersten Stunde seit ihr alle an unterschiedlichen Problemstellungen (Azfgaben/Kapiteln i der Lernumgebung)! 

      Ihr könnt natülich auch außerhalb der Kurszeiten an euren Programmen arbeiten/weiterarbeiten.


      Der Kusraufbau

      Im ersten Kursraum (Karel - Teil 1) gehr es um das grundliebende Programmverständniss:

      Wie sind Programme aufgebaut
      Wie funktionieren sie?
      Was ist die imperative Programmierung?
      Wie kann ich eigene Progamme schreiben?
      Wie lasse ich Karel (Kapitel für Kapitel) sei Ziel erfüllen?
      Was sind Kommentare, Befehle und Funktionen?

      Im zweiten Teil der Reihe (Karel - Teil 2) dreht sich alles um Kontrollstrukturen:
      Was sind Kontrollstrukturen?
      Wie kann sich Karel durch eine Welt bewegen, die ich bei jedem Laden verändert?
      Wie funktioniet die if/elde-Abfrage?
      Was sind while-Scleiden?
      Anweisungsblöcke?
      ...

      Danach hast du bereits viele Grundlagen der Programmierung kennengelernt und kannst dein Wissen i vielen unterschiedlichen Programmiersprachen testen und anwenden, denn fast in jeder Programmiersprache funktionieren diese Basics!
    • Schritt 1: Installiere das Programm (hast du bereits gemacht) lächelnd


      Schritt 2: Lerne das Programm kenen

      Wir programmieren karel in der Lernumgebung "Karel the Robot". Hier erfährst du, wie die Lernumgeung aussieht, was du wo/wie einstellen kannt und auf welche Knöpfe du drücken musst.


      Die Lernumgebung speichert deinen Code automatisch, du kannst das Programm also einfach schließen und wieder öffnen!





    • Aller Anfang ist schwer, besonders beim programmieren!

      Deshalb treffen wir uns jede Woche und gehen die einzelnen Kapitel gemeinsam durch. Hier könnt ihr in Ruhe an eurem Code arbeiten und mich jederzeit Fragen, mit mir Ideen austauschen und gemeinsam entdecken wir die Welt der Informatik lächelnd
    • Um Karel zu programmieren, kannst du 11 vorimplementierte Befehle nutzen.

      Am Anfang (bis zu Kapitel 1.3.2, Teil 2 der Kursreihe) brauchst du von diesen 11 Befehlen sogar nur 6!

      F1                 moveForward()                    
      Karel bewegt sich ein Feld vorwärts in die Richtung, in die er gerade schaut.
      Misslingt, wenn eine Wand den Weg versperrt

      F2turnLeft()
      Karel dreht sich um 90° nach links

      F3turnAround()
      Karel dreht sich um 180°

      F4turnRight()
      Karel dreht sich um 90° nach rechts

      F5pickBeeper()
      Karel nimmt den Beeper von dem Feld, auf dem er gerade steht auf.
      Misslingt, wenn es keinen Beeper (auf dem Feld) gibt

      F6dropBeeper()
      Karel wirft einen Beeper auf den Platz, auf dem er gerade steht
      Misslingt, wenn dort bereits ein Beeper liegt


      Du kannst auch die Tasten F1-F6 verwenden, dann musst du die Befehle nict alle eintippen lächelnd

    • Karels erstes Programm

      Im ersten Kapitel "karelsFirstProgram" kannst du die 6 Befehle gleich mal ausprobieren.


      WICHTIG: Dein Code kommt IMMER zwischen die geschweiften Klammern


      void karelsFirstProgram(){

      }



      void karelsFirstProgram(){

             moveForward();

      }



      void karelsFirstProgram(){

             moveForward();
             pickBeeper();

      }


      WICHTIG: Nach jedem Befehle kommt eine Klammer () und ein Strichpunkt ;


          

      Auf "goal" siehst du, was passieren soll
      Auf "start" siehst du, was dein Code macht

      -> Du hast das Kapitel geschafft, sobald dein Code das selbe acht, was auf/in goal passiert!


    • Wichtig: Jedes mal, wenn du mit einem neuen Kapitel beginnst, musst du ... schreiben


      void Kapitelname(){
      }


      Das Kapitel wählst du im Menü aus (hier siehst du auch den Namen)

      Das void ist der sogenannte DatenTyp (dazu erfährst du mehr in der Arduino-Kursreihe)

      Dein Code kommt IMMER zwischen die geschweiften Klammern (der sogenannte Anweisungsblock)



      Jetzt kannst du du mit den ersten Kapiteln (Bis Kapitel 1.3.2 der Lernumgebung beginnen)


    • Übersicht Programmieren mit Karel


    • Aufgabe: Ladet Kapitel 1.3.2 3-4 mal neu. Fällt euch etwas aus?
      Die Welt um Karel verändert sich stetig, um darauf zu reagieren, müssen wir etwas an unserem Code ändern!


      Kontrollstrukturen

      Mit Hilfe von Kontrollstrukturen kannst du angeben, in welcher Reigenfolge dein Code ausgeführt wird. Um nur einzelne Code-Teile auszuführen, brauchst du zusätzlich noch Kontrollanweisungen.


      Zunächst benutzen wir die sogenannte if-else-Abfrage:

      if "wenn"     -     Else "Sonst"


      if (Bedingung){

      }

      else (ohne Bedingung){

      }


      -> Auch hier wird wieder dein Code zwischen den geschweiften Klammern ausgeführt! Die Frage ist nur, ob der Code von dem "if-Teil" oder dem "else-Teil" ausgeführt wird, denn hier gilt: Entwerder oder!




      Um die if-elde-Abfrage zu verwenden, lernen wir 5 neue Befehle kennen:

      F7                 onBeeper()                           
      Karel prüft, ob auf dem Platz, auf dem er gerade steht, ein Beeper liegt

      F8beeperAhead()
      Karel prüft, ob sich ein Beeper auf dem Platz unmittelbar vor ihm befindet

      F9leftIsClear()
      Karel prüft, ob sich keine Mauer zwischen ihm und dem Platz links von ihm befindet

      F10frontIsClear()
      Karel prüft, ob sich keine Mauer zwischen ihm und dem Platz vor ihm befindet

      F11rightIsClear()
      Karel prüft, ob sich keine Mauer zwischen ihm und dem Platz rechts von ihm befindet





    • Die if-else-Abfrage entscheidet, welcher der Beiden Code-Teile ausgeführt wird.

      Mit der while-Schleife wird der Code zwischen den geschweiften Klammern { ... } so lange ausgeführt, bis die Bedingung nichtmehr erfüllt ist.


      while(Bedingung F7-F11){
      }