Die Übung findet Fr 9:00h - 9:45h in 48-379 statt. Die Klausur findet am 8.2.2013 um 10:00h in Raum 48-379 statt.
fdi-Links
Blatt 13
- Spielen Sie zunächst mit zwei Python-Shells auf einem Rechner die
Kommunikation mit Sockets durch.
Machen Sie sich mit den Einzelheiten vertraut. Testen Sie die Kommunikation zwischen verschiedenen Rechnern.
- Arbeiten den Katalog möglicher Klausurfragen durch und notieren Sie eventuelle Fragen.
Blatt 12
- Informieren Sie sich über Unterrichtsprinzipien und geben Sie die für Sie wichtigsten an.
- Lesen Sie die Beschreibung des MiniRS232-Protokolls durch
(Aufgaben brauchen nicht gemacht werden) und interpretieren Sie folgendes
Oszillogramm.
- Beim Empfang nach dem MiniRS232-Protokoll könnte man mit folgendem 'Python-Codeschnipsel' auf eine ansteigende
Flanke beim CTS-Signal warten:
alt = s.getCTS()
neu = s.getCTS()
while alt or not neu:
time.sleep(0.005)
alt = neu
neu = s.getCTS()
Skizzieren Sie eine unterrichtliche Erarbeitung. Gehen Sie dabei insbesondere auf die Bedingung 'alt or not neu' ein.
- Lösen Sie die beiden Aufgaben auf der Seite
Fehlererkennung. Dokumentieren Sie die Lösungen auf Ihrem Portfolio.
Blatt 11
- Lesen Sie die Vorgaben zu Rechnernetzen im rheinland-pfälzischen Lehrplan.
- Installieren Sie den USB2SERIAL-Adapter in Ihrem Betriebssystem.
Installieren Sie das serial-Modul
in Ihrem Python. Testen Sie mit der LED.
Sie sollten die LED von der Python-Shell aus ein- und ausschalten können. Nicht vergessen am Ende die Schnittstelle schließen.
- Machen Sie sich mit dem Programm
'pegeltransceiver1.py' vertraut. Bereiten Sie eine Pegelfolge vor, die so weit
wie möglich das Senden von 'ALOHA' bzw. 'SERVUS' nach Ihrem 'Protokoll' aus der Übertragungsübung automatisiert. Passen Sie
auch die Pegelzeit an. Das Eingabefeld kann auch Strings, die länger sind als das Feld, aufnehmen. Beschreiben Sie Ihr Protokoll
auf dem Portfolio.
Blatt 10
- Arbeiten Sie den Abschnitt über
Mikroprogrammierung nach und bearbeiten Sie die angegebenen
Aufgaben. Dokumentieren Sie Ihr Mikroprogramm und Ihre Maschinenprogramme auf Ihrem Portfolio.
- Der komplette 'Workflow' MiniPython *.py --> Bonsai-Assembler *.bon --> Bonsai-Maschinensprache *.rom --> Hades-Simlation
soll praktisch erfahren und erprobt werden. Benutzen Sie den
Compiler um ein in MiniPython geschriebenes Programm,
das in Python getestet wurde, nach Bonsai-Assembler zu übersetzen. Das Assembler-Programm kann mit dem Interpreter
bi.py getestet werden. Anschließend wird das Assemblerprogramm mit
bon2bma.py
in ein Hades-gerechtes Maschinenprogramm *.rom übersetzt. Dieses Programm kann nun
von der Hades-Simulation des Bonsai-Computers ausgeführt werden.
Ideen für kleine Projekte gibt es z.B. auf dieser
Seite.
Dokumentieren Sie Ihr Vorgehen auf Ihrem Portfolio.
Blatt 9
- Arbeiten Sie den Abschnitt über
Maschinensprache nach und führen Sie die angegebene Aufgabe
für das Programm 'mult0.bon' durch. Machen Sie nach erfolgreichem Lauf des Maschinenprogramms eine Hardcopy wie auf der Seite
und fügen Sie diese Hardcopy auf Ihrem Portfolio ein.
- Arbeiten Sie den Abschnitt über die
Architektur durch. Das Arbeitsblatt mit seinen Lösungen
können Sie sich ansehen. Die Aufgaben 1-.4. unten auf der Seite brauchen Sie nicht zu machen. Sie sollten aber in der Übung die
weiter oben durchgeführten Aufgaben vorführen können.
- Arbeiten Sie den Abschnitt über die
binäre Codierung durch.
Erzeugen Sie mit dem Skript bon2bma.py
zu dem Programm
mult0.bon
die drei möglichen Ausgaben. Dokumentieren Sie diese Ausgaben auf Ihrem Portfolio.
Blatt 8
- Machen Sie sich mit dem
'Bonsai-Assembler' vertraut. Installieren Sie
insbesondere DosBox und bonmini. Schreiben Sie ein Additionsprogramm. Das Multiplikationsprogramm ist nicht
so einfach ohne Anleitung zu schreiben. Schreiben Sie es nur, wenn Sie es 'juckt'.
- Das alte Bonsai-Programm mag ja einen gewissen 'Retro-Charme' haben, für größere Projekte ist es zu langsam.
Machen Sie sich mit dem Interpreter bi.py für Register-Maschinen-Assembler auf der
Interpreter-Seite vertraut.
Wenn die Anleitung falsch oder schlecht zu verstehen ist, so schreiben Sie mir eine Mail.
Testen Sie das angegebene kleine Additionsprogramm.
- Lesen Sie auf inf-schule.de die Kapitel zum
Murmelrechner
aufmerksam durch.
- Das 'Universelles Steuerprogramm' fällt etwas vom Himmel. Machen Sie auf Ihrem Portfolio Vorschläge,
wie man es im Unterricht erarbeiten könnte.
Blatt 7
- Lesen Sie den wikipedia-Artikel zum
Stationenlernen. Notieren Sie sich einige persönliche Stichworte dazu
in Ihrem Portfolio.
- Informieren Sie sich über den Aufbau eines
Tristate-Inverters. Funktioniert der
Webstart bei Ihnen? Das Zusatzmaterial können Sie überlesen.
- Arbeiten Sie mit den Materialien zum 1-Bit-Bus und zum
3-Bit-Bus. Sind die Materialien verständlich? Was kann man besser machen?
- Lesen Sie den Lehrprobenentwurf
zur Einführung des Flipflops aufmerksam durch. Notieren Sie sich Ihre Eindrücke in Stichworten auf Ihrem Portfolio.
- Bauen Sie mit Hades einen 3-Bit-Vorwärtszähler. Vielleicht wollen Sie Ihr Vorgehen als
Screencast dokumentieren?
Blatt 6
- Lesen Sie gründlich den Artikel
'Zur Methodik im Informatikunterricht'
von Kerstin Strecker. Fassen Sie das für Sie Wesentliche stichwortartig zusammen.
- Laden Sie die
Referenzkarte zu Hades herunter. Lesen Sie sie durch. Sie wissen dann, was
prinzipiell geht und wo Sie es nachlesen können. Lesen Sie
Logic values and glow-mode colors in Hades.
- Erstellen Sie in Hades eine 'Batterie' als
Subdesign. Verwenden Sie die Batterie in einer einfachen Schaltung, z.B.
die Spule eine Relais kann eingeschaltet werden.
- Fragen Sie in Ihrem Verwandten- und Bekanntenkreis, was das Gegenteil der Aussage "Es regnet und die Straße ist nass." ist.
- Beweisen Sie ab + ac = a(b + c) und a + bc = (a+b)(a+c) durch Aufbau und Vergleich der Terme
in Hades (Hinweis).
Blatt 5
- Vollziehen Sie unsere Experimente mit Relais anhand der
Webseite nach. Wie könnte man die Seite
verbessern?
- Wir haben Relais als Schalter kennengelernt, die elektromagnetisch betätigt werden können. In heutigen Prozessoren sind
sehr viele Feldeffekttransistoren enthalten. Sie sollen sich die grundlegende Funktion im
Experiment erarbeiten. Beachten Sie, dass
eine Eins in den Schaltbildern einer Verbindung zum Plus-Pol, eine Null einer Verbindung zum Minus-Pol entspricht. In manchen Schaltbildern
ist ein Pfeil nach unten der Minus-Pol und eine Art 'T' der Plus-Pol. Im Hades-Simulations-Programm werden logische Einsen rot,
logische Nullen grau dargestellt. Sie legen Nullen und Einsen an Eingängen durch Verbindungen mit den entsprechenden
Potentialen an. Zustände an Ausgängen machen Sie durch eine LED-Widerstand-Kombination sichtbar. Bauen Sie das NAND
(Hilfe) und das NOR auf.
Dokumentieren Sie Ihr Vorgehen möglichst mit Photos.
- Lesen Sie die ersten drei Abschnitte der Seite über
Schalter.
- Testen Sie das IC 74S00 auf dem Steckboard. Achten Sie auf die Spannungsversorgung des ICs, sie darf nicht verpolt werden!
Das IC hat links eine Markierung/Kerbe.
Dort beginnt die Zählung der Kontakte. Kontakt 7 rechts unten muss mit dem Minuspol, Kontakt 14 links oben mit dem Pluspol
verbunden werden.
(Hilfe)
Blatt 3/4
- Informieren Sie sich über die Huffman-Codierung z.B. anhand der
Seite von
www.ziegenbalg.ph-karlsruhe.de. Sie sollten von Hand zu einem vorgegebenen String, etwa 'ABRAKADABRA', die Codierungstabelle
und die Codierung aufstellen können. Auch Decodieren sollte von Hand gelingen.
Als freiwillige Zusatzaufgabe können Sie Teile
oder auch den ganzen Algorithmus in der Programmiersprache Ihrer Wahl realisieren.
- Informieren Sie sich, was 'flipped classroom' bedeutet.
- Lesen Sie den Artikel analog-digital auf www.jenswelt.de.
- Schauen Sie sich den
Film
über den Antikythera-Mechanismus an. Der
wikipedia-Artikel oder der
Arte-Film
geben weitere (freiwillige) Informationen.
- Auf den Seiten www.didaktik.mathematik.uni-wuerzburg.de findet man eine
interaktive Sprossenradmaschine. Machen Sie sich z.B. anhand dieser
Anleitung
zu einer ähnlichen Maschine mit den Grundrechenarten vertraut. Ich besitze eine solche Maschine,
wir werden damit rechnen. Auf youtube findet man einen ganz witzigen
Film zu einer Sprossenradmaschine.
Blatt 2
- HTML-Grundlagen finden z.B. auf dieser
Seite von inf-schule. Als freier Editor eignet sich
Bluefish.
- Installieren Sie eine einfache Menüstruktur z.B. wie auf dieser
Seite angegeben. Passen Sie die Struktur Ihren Bedürfnissen an.
- Schreiben und testen Sie mit Python Funktionen float2bin und bin2float.
(Testwerte: float2bin(6.1,10) = '110.0001100110',
bin2float('110.0001100110011001100110011001100110011001100110011') = 6.1), vielleicht nützlich:
import math
def trunc(x):
return math.trunc(x)
def frac(x):
return x - trunc(x)
def frac2bin(x,n = 10):
s = ''
for i in range(n):
if x*2 >= 1:
s = s + '1'
x = x*2 - 1
else:
s = s + '0'
x = x*2
return s
Blatt 1
- Installieren Sie Python auf Ihrem Laptop.
Testen Sie auf der Shell
>>> a = [1,2,3]
>>> b = a
>>> b[2] = 7
>>> b[1] = 'otto'
>>> a
[1, 'otto', 7]
>>> a = [1,2,3]
>>> c = a[:] # Python Slices
>>> c[1] = 'xx'
>>> a
[1, 2, 3]
>>> c
[1, 'xx', 3]
>>>
- Geben Sie die Lehrplananforderungen zur binären Darstellung von Daten in den gymnasialen Lehrplänen zum
Grundfach und zum
Wahlfach wieder
(ev. einfach den passenden Abschnitt kopieren oder ausdrucken). Warum enthält der Leistungskursplan keinen entsprechenden Abschnitt?
- Informieren Sie sich über
Unicode und
utf8.
- Machen Sie auf der Python-Shell Experimente zu utf8, z.B.
>>> chr(8707) # wie kommt man auf die Unicode-Nummer des Existenzquantors?
'∃'
>>> bytes(chr(8707)) # versuchte Umwandlung in eine Folge von Bytes
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
bytes(chr(8707))
TypeError: string argument without an encoding
>>> bytes(chr(8707),'utf8') # Umwandlung nur sinnvoll mit Encoding
b'\xe2\x88\x83'
>>> bf = bytes(chr(8707),'utf8')
>>> bf
b'\xe2\x88\x83' # spezielle Darstellung eine Bytestrings
>>> bin(bf[0]) # Umwandlung in Binärstring
'0b11100010'
>>> b1 = bin(bf[0])[2:] # Slice ab Zeichen 2
>>> b1
'11100010'
>>> b2 = bin(bf[1])[2:]
>>> b3 = bin(bf[2])[2:]
>>> b = [b1,b2,b3]
>>> b
['11100010', '10001000', '10000011']
>>> s = '0010'+'001000'+'000011' # warum gerade diese Bits auswählen?
>>> s
'0010001000000011'
>>> n = int(s,2)
>>> n
8707
>>>
>>> bytes('böse','utf8')
b'b\xc3\xb6se' # wie gibt Python Bytefolgen aus?
>>> bytes('böse','iso8859-1')
b'b\xf6se' # welche Unicodenummer hat das ö? utf8-Darstellung des ö?
Haben Sie weitere Ideen, Fragen, ...?