Dez 232018
 

Seit mehreren Wochen bin ich dabei, testweise mit Arduinos in Klasse 8 im Wahlpflichtfach Informatik zu arbeiten. Bisher hatten wir die LEGO-Mindstorms verwendet und uns in den Parallelkursen abgewechselt. Weitere Inhalte in Klassen 8 sind Programmierung mit Scratch und Grundlagen der Informatik (da der Informatik-Unterricht in Klasse 8 startet).

Die Kompetenzen zu dem bisherigen Block (ca. 8 Wochen dreistündig) sind Folgende:

  • die Roboter-Sensoren nennen und deren Aufgaben beschreiben.
  • in der Programmiersprache NXC das Ansteuern der Sensoren implementieren.
  • Kontrollstrukturen implementieren und so auf Signale der Sensoren reagieren.
  • Variablen anhand von gegebenen Aufgaben implementieren.

Diese sollen entsprechend vergleichbar mit dem Arduino statt dem LEGO Mindstorms abgedeckt werden.

das von uns verwendete Set von Funduino
Continue reading »
Mrz 202015
 

Vor einigen Wochen konnte ich endlich die Gelegenheit der Projekttage nutzen, um ein Informatikprojekt hier an der deutschen Schule in Ecuador durchzuführen und es war ein voller Erfolg. Meine Schülerinnen und Schüler, die das Projekt „programación de graficoes en 3D“ gewählt hatten, waren alle aus der 10.Klasse und arbeiteten freiwillig über das Maß hinaus interessiert an ihren kleinen Projekten.

foto proyectos

Ergebnis eines Schülers am ersten Tag

Continue reading »

Apr 272012
 

Heute haben wir uns im Informatik-Fachseminar mit dem Thema Kryptologie in der Sek1 (9. oder 10.Klasse) und einer Umsetzung mit der Programmiersprache Python beschäftigt.

Ziel war heute, ein Programm zur Verschlüsselung von Zeichenketten zu erstellen, das problemorientiert und nicht künstlich nur zum Üben geeignet ist. Als Ansatz nahmen wir eine einfache Verschlüsselung an, die einzelne Zeichen vertauscht, z.B. das erste gegen das dritte, das zweite stehenlässt, das vierte gegen das sechste tauscht usw.
Hierzu gab es einen Vorschlag, der folgendermaßen aussieht:

def drilling(eingabe):
    zaehler = 0
    laenge = len(eingabe)
    ausgabe = ""
    while zaehler < laenge:
        if zaehler % 3 == 0:
            if zaehler+2 < laenge:
                ausgabe = ausgabe + eingabe[zaehler+2]
            else:
                ausgabe = ausgabe + eingabe[zaehler]
        if zaehler % 3 == 1:
            ausgabe = ausgabe + eingabe[zaehler]
        if zaehler % 3 == 2:
            ausgabe = ausgabe + eingabe[zaehler-2]
        zaehler += 1
    print ausgabe     

eingabe = raw_input("Bitte ein Wort eingeben:")
drilling(eingabe)

Wir diskutierten kleinschrittigeres Vorgehen, erst nur ein Tripel vertauschen, um nicht gleich Schleifen und Fallunterscheidungen als Konzepte mit einbeziehen zu müssen. Beispielsweise könnte erst nur der Vertauschvorgang auf Papier modelliert werden, also erst nur Zeichenketten der Länge 3, dann im zweiten Schritt dieses auf Zeichenketten der Länge eines Vielfachen von 3 erweitern und dann auf beliebige Zeichenketten.
Der erste Schritt wäre dann:

# Eine ganz einfache Variante der Drillingsverschluesselung
def drilling(eingabe):
    ausgabe = eingabe[2] + eingabe[1] + eingabe[0]
    print "Das Wort lautet " + eingabe 
    print "Der verschluesselte Text lautet " + ausgabe     

eingabe = raw_input("Bitte ein Wort der Laenge 3 eingeben:")
drilling(eingabe)

Den zweiten Schritt habe ich noch nicht so richtig durchdacht, wünschenswert wäre ein Programm, das weniger Konzepte enthält, aber mehr kann als das erste Programm, also z.B. alle durch 3 teilbaren Zeichenketten-Längen aber weniger Fallunterscheidungen und keine Modulo-Rechnung enthält.

Als weiteren Ansatz diskutierten wir, erst ein anspruchsvolles Programm zu einem Problem vorzulegen und dies analysieren lassen, um dann eine Modifikation oder Variante implementieren zu lassen. Dies könnte allerdings auch abschreckend wirken und zur Entwicklung eines Vokabulars erscheint ein systematischer Ausbau von Konzepten günstiger.

Ich habe noch nicht so viele Erfahrungen mit Python, daher habe ich mich erst einmal auch mit einfachen Aufgaben beschäftigt, z.B. wie eine Liste erstellt wird und was man damit alles machen kann. Dabei habe ich mich an einem Skript von Bernd Grave orientiert: www.uni-math.gwdg.de/bgr/unterricht/informatik/EinfPython.pdf Problemorientiert sind diese Aufgaben allerdings nicht, da es völlig unsinnig erscheint, eine Einkaufsliste mit einem solchen Aufwand zu verwalten. Zum Konzepte von Python kennenlernen ist es allerdings recht schön.

Mein erstes Experiment mit Ausgaben und Fallunterscheidungen (Ich nutze Ubuntu, da ist Python bereits vorinstalliert und als Editor einfach gedit und rufe die Programme dann über die Konsole auf):

Hier meine Listen-Experimente:

# Programm "Listen", angelehnt an Bernd Grave, 
# "Programmieren mit Python - erste Schritte"

# Erzeuge eine Liste und gebe ein Listenelement aus

planeten = ['Sonne','Mond','Sterne']

nummern = range(10)
print 'Listenelemente ausgeben'
print planeten [1]
print nummern [3]

# S.11 "Benutzung von Listen"

einkaufsliste = ['Aepfel','Mangos','Karotten','Bananen']

# Laenge einer Liste ausgeben
print '\n Ich habe', len(einkaufsliste), 'Dinge einzukaufen.'

# Elemente einer Liste ausgeben (interessant ist hier, dass eine 
# Variable "ding" für die Listenelemente erst in der for-Schleife 
# erzeugt wird, ohne näher deklariert zu werden)
print 'Diese Dinge sind:',
for ding in einkaufsliste:
print ding,

# Ein Elemente der Liste hinzufuegen
print '\n ich muss auch Reis einkaufen'
einkaufsliste.append('Reis')
print 'Meine Einkaufsliste ist jetzt', str(einkaufsliste)

# Eine Liste sortieren
print 'Jetzt werde ich meine Einkaufsliste sortieren.'
einkaufsliste.sort()
print 'Die sortierte Einkaufsliste ist', einkaufsliste

Die Ausgabe dieses kleinen Programms auf der Konsole sieht dann folgendermaßen aus:
 

Jan 122012
 

Am Donnerstag, den 15.12. habe ich unsere Unterrichtsplanung für die 9.Klasse im Themenbereich Robotik umgesetzt und wurde von meiner Fachseminarleitung und den Mitgliedern meiner Kleingruppe im Fachseminar Informatik hospitiert.
Ich habe die ersten drei Stunden unterrichtet, nachdem ich die Woche zuvor bereits 5 Stunden am Donnerstag im Kurs unterrichtet hatte. In den ersten beiden Stunden ging es um die Leitfrage „Wie orientiert sich eine Roboter?“, im zweiten Teil in der dritten und vierten Stunde um das Problem „Orientierung eines Roboters im Labyrinth„. Continue reading »

Nov 072011
 

Diesmal schon mit Funktion, die ich allerdings in der Form erstmal aus einem Skript übertragen habe.

Wie nun die Auswertung von Funktionen im Terminal aussehen soll, hab ich noch nicht ganz verstanden, also wenn ich direkt Python starte und das Programm Python-Test übergebe, dann kann ich die Funktion nicht direkt im Terminal aufrufen. Ich arbeite nicht so viel mit dem Terminal, vielleicht lese ich dazu nochmal mehr. Das ist die Fehlermeldung:

python python-test testeZahl(0)
bash: Syntaxfehler beim unerwarteten Wort `(‚

Nov 072011
 

Nachdem wir im Fachseminar letzte Woche über Python gesprochen haben und ich noch keine Erfahrung mit der Sprache machen konnte, habe ich gerade einige sehr simple Schritte in meinem Terminal kennengelernt, nachdem ich ein kleines Youtube-Tutorial angeschaut habe. Zum Referendariat allgemein habe ich einen Artikel in Arbeit, der ist gerade aber noch nicht fertig und kommt später 🙂

Hier meine ersten kleinen Schritte mit Python: