Arbeitsheft Informatik 7. Jahrgangsstufe

Transcrição

Arbeitsheft Informatik 7. Jahrgangsstufe
Arbeitsheft Informatik 7. Jahrgangsstufe
Vorbemerkung
Schwerpunktthema
IT-Sicherheit
Objektorientierte Programmierung
Netzwerk-Kommunikation
Inhalt
Hintergrundwissen
Nachdem in der 6. Jahrgangsstufe eher die Anwenderschulung - wie etwa zur
Textverarbeitung - im Vordergrund stand, treten nun mit den Themenbereichen der
Netzwerk-Kommunikation und der objektorientierten Programmierung auch
abstraktere und komplexere Inhalte auf.
Da am sprachlichen Gymnasium in den höheren Jahrgangsstufen kein weiterer Informatik-Unterricht
erfolgt, versucht dieser Lehrgang darüberhinaus, genügend Hintergrundwissen anzubahnen, um später
im Problemfall auch mal die graphische Benutzeroberfläche zu hinterfragen und evtl. auftretenden Fehlern
selbständig auf den Grund gehen zu können. Ein vierter Aspekt ist die Sicherheit, nicht nur im Hinblick auf
die aktuellen Gefahren des Jugendalters, sondern auch zur Wahrung des Grundrechts auf informationelle
Selbstbestimmung, welches aufgrund der zunehmenden Vernetzung und der immer lückenloser
werdenden Datenerfassung für die Zukunft zunehmend gefährdet erscheint.
Vom Schüler wird hier nicht erwartet, dass er jedes Teilgebiet vollständig erfasst, sondern vielmehr, dass er
immer wiederkehrende Zusammenhänge erkennen lernt, so dass er sich später im Selbststudium weiteres
Wissen aneignen kann.
Teil 1: Kommandozeile - Dateien und Verzeichnisse
Teil 2: Kommandozeile - Kommunikation
Teil 3: Kommandozeile - Systeminformationen
Teil 4: Kommandozeile - Textbearbeitung
Teil 5: Kommandozeile - Geheime Text-Botschaften in einer Bilddatei
Teil 6: Kommandozeile - Surfen im WWW
Teil 7: EMail
Teil 8: Gefahren durch verschiedene Internet-Dienste
Teil 9: Programmiersprachen
Teil 10: HTML-Grundlagen
Teil 11: Shell-Skript zur Erstellung einer HTML-Dokumenten-Vorlage
Teil 12: Rechnen und Schreiben mit Python
Teil 13: Zeichnen mit Python
Teil 14: Kontrollstrukturen mit RobotKarol
Teil 15: Verschlüsselung - Schema und Verständnisübung auf der Kommandozeile
Empfohlene kostenlose Programme für zu Hause:
Name
URL
Knoppix oder
Sidux
Ubuntu oder
Kubuntu
Wine
Cygwin
Rudix
w3m oder Lynx
(Mozilla-)Firefox
(Mozilla-)Thunderbird
Arachnophilia
Python, IDLE
RobotKarol
Einsatzzweck
Komplette Linux-Distributionen, die keine
Installation auf dem PC benötigen, sondern
von sogenannter "Live-CD" booten
http://www.ubuntu.com , http://www.kubuntu.org
Komplette Linux-Distributionen,
optimal zur Installation
http://www.winehq.org/site/download-deb
Windows-Emulator
(notwendig nur für Karol unter Linux)
http://www.cygwin.com/
UNIX-Kommandozeile (nur für Windows)
http://www.apple.com/downloads/macosx/unix_open_so zusätzliche Werkzeugsammlung für MAC
urce/rudix.html , http://rudix.org/Rudix.html
OS X User (nicht erforderlich aber hilfreich)
http://w3m.sourceforge.net/ , http://lynx.isc.org/
textbasierter Browser
http://www.mozilla-europe.org/de/products/
Browser
E-Mail-Client
http://www.arachnoid.com/arachnophilia/
Text-Editor
http://www.python.org/
Python-Interpreter
http://www.schule.bayern.de/karol/
Einfache Programmierumgebung
http://www.knopper.net/knoppix/ , http://sidux.com/
für die
Teile:
1-13
1-13
14
1-6
1-6
6
6, 10
7
10
12, 13
14
Teil 1: Kommandozeile - Dateien und Verzeichnisse
a) Linux (Unix) - Shell
Befehl
cd ..
cd [Zielverzeichnis]
cp -R [Quellverzeichnis] [Zielverzeichnis]
cp [Quelldatei] [Zielverzeichnis]
file [Datei]
find -name [Suchbegriff]
locate [Suchbegriff]
ls -l
mkdir [Verzeichnisname]
mv [Quelldatei] [Zieldatei]
mv [Quelldatei] [Zielverzeichnis]
pwd
rm -r [Verzeichnis]
rm [Datei]
touch [Dateiname]
1
2
3
4
5
6
Bedeutung
change directory (wechsle Verzeichnis), wechselt in das übergeordnete Verzeichnis
change directory (wechsle Verzeichnis), wechselt in das angegebene Zielverzeichnis
copy (kopiere), Recursiv (rekursiv), kopiert das Quellverzeichnis mit allen darin
enthaltenen Dateien und Unterverzeichnissen ins Zielverzeichnis
copy (kopiere), kopiert die Quelldatei ins Zielverzeichnis
file (Datei), gibt den Dateityp und weitere Dateiinformationen der Datei aus
find (finde), name (benenne), sucht im aktuellen Verzeichnis und in allen
Unterverzeichnissen nach Dateinamen, die den Suchbegriff enthalten
Der Suchbegriff <*.jpg> liefert z. B. alle Dateien mit der Dateiendung <.jpg>
Achtung: Groß- und Kleinschreibung beachten, so wird xyz.JPG nicht gefunden!
locate (lokalisiere), durchsucht schnell das ganze Dateisystem nach dem Suchbegriff
list (liste auf), long (ausführlich), listet die Dateien und Unterverzeichnisse im aktuellen
Verzeichnis auf
make directory (erstelle Verzeichnis), legt im aktuellen Verzeichnis ein Unterverzeichnis
mit dem Verzeichnisnamen an
move (verschiebe), benennt die Quelldatei in die Zieldatei um
move (verschiebe), verschiebt die Quelldatei ins Zielverzeichnis
print working directory (gib den Namen des Arbeitsverzeichnisses aus), gibt den Namen
des Verzeichnisses aus, in dem man sich aktuell befindet
remove (lösche), recursiv (rekursiv), lösche das Verzeichnis mit allen darin enthaltenen
Dateien und Unterverzeichnissen !!! Vorsicht - endgültig !!!
remove (lösche), lösche die Datei
touch (berühre), legt im aktuellen Verzeichnis eine Datei mit dem Dateinamen an
Schreibe ins Heft zeilenweise die Befehle, die für die folgenden Operationen nötig sind:
Lege im Verzeichnis Desktop ein Unterverzeichnis verz01 an, wechsle hinein, lasse das aktuelle Verzeichnis
anzeigen und erstelle eine leere Textdatei mit dem Namen dat01.txt
Lasse den Dateityp der Datei dat01.txt anzeigen und benenne sie um in dat02.txt, lege nun ein Unterverzeichnis
verz02 an und kopiere die Datei dat02.txt dort hinein
Lasse nun den Inhalt des Verzeichnisses verz02 auflisten und übertrage die Ausgabe ebenfalls in Heft
Wechsle zurück ins Verzeichnis Desktop und suche nach Dateien mit der Dateiendung .txt
Suche im ganzen Dateisystem nach einer Datei mit dem Namen mv
Lösche den gesamten Ordner verz01 mit Inhalt
b) Windows (DOS = Disk Operating System) - Kommandozeile
Befehl
ATTRIB
CD
COPY
DEL
DIR
EDIT
ERASE
MD oder MDIR
MOVE
REN oder RENAME
RMDIR
XCOPY
7
8
9
Bedeutung
Attribute (ordne zu), zeigt Dateieigenschaften an (vgl. file)
Zeigt den Namen des Verzeichnisses an, in dem man sich aktuell befindet
Copy (kopiere), kopiert Dateien
Delete, Löscht Dateien
Directory (Verzeichnis), listet im aktuellen Verzeichnis alle Dateien und
Unterverzeichnisse auf
Edit (bearbeite), öffnet einen Texteditor in welchem dann eine Textdatei abgespeichert
werden kann - dient also zum Anlegen einer neuen (Text-)Datei
Erase (lösche aus), löscht Dateien
Make Directory (erstelle Verzeichnis), erstellt im aktuellen Verzeichnis ein
Unterverzeichnis
Move (verschiebe), verschiebt Dateien
Rename (benenne um), benennt Dateien um
Remove Directory (lösche Verzeichnis), löscht Verzeichnisse
Extended copy (erweitertes Kopieren), kopiert auch Verzeichnisse, nicht nur Dateien
Schreibe ins Heft vollständige Antwortsätze zu den folgenden Fragen:
Welcher formale Unterschied besteht zwischen der Schreibweise von Linux- und DOS-Befehlen?
Welche GUI (Graphical User Interface) Programme nutzen diese Befehle besonders offensichtlich?
Welches besonders komplexe Programm stellt jeweils all diese (Befehls-)Werkzeuge bereit?
Zusatz für nur besonders schnelle Schüler:
10 Überlege Dir die entsprechenden DOS-Befehle, die für die oben angeführten Operationen von 1 bis 4 nötig sind!
11 MS-DOS kam erstmals um 1980 auf den Markt. Die Ursprünge von Unix liegen bereits in den 70er Jahren.
Wie lässt sich die Ähnlichkeit beider Befehlssätze erklären? (Zwei Gründe!)
12 Gib unter Linux man [Befehl] oder Befehl --help ein, unter DOS HELP `Befehl`, und vergleiche die Zahl der Optionen
Teil 2: Kommandozeile - Kommunikation
a) Grundlagen
Schema:
Der Client (das Clientprogramm auf dem Clientrechner) tauscht Daten mit dem Server (dem Serverprogramm auf dem
Serverrechner) aus. Der Client schickt eine Anfrage nach einem bestimmten Dienst (hier IRC) an den Server. Der
Server stellt diesen Dienst (IRC) bereit. Zur Verständigung benutzen beide auf der Anwendungsschicht ein bestimmtes
Protokoll (hier vereinfacht ebenfalls IRC). Für die PC-Sicherheit ist es günstig, die Portnummern der wichtigsten
Dienste zu kennen.
Übertrage die folgende Tabelle ins Heft und ergänze mit Hilfe der angegebenen Links:
Anwendungsbereich
Surfen, Datein im Internet austauschen
Dateien im Internet austauschen
E-Mail versenden
Dienst (typische Portnummer auf
Clientseite)
irc (194, 6697)
www (World Wide Web)
(80 oder 8080)
ftp (20+21)
smtp (25)
pop3 (110) oder
imap (143)
Protokoll
irc (Internet Relay Chat)
ftp (File Transfer Protocol)
smtp (Simple Mail Transfer Protocol)
pop3 (Post Office Protocoll 3) oder
imap (Internet Message Access Protocol)
http://de.wikipedia.org/wiki/Chat
http://de.wikipedia.org/wiki/Internet_Relay_Chat
http://de.wikipedia.org/wiki/IRC-Client
http://de.wikipedia.org/wiki/Client-Server-Prinzip
http://de.wikipedia.org/wiki/Netzwerkprotokoll
http://de.wikipedia.org/wiki/Port_(Protokoll)
b) Chatten mit IRSSI
Bevor Du mit dem Chatten beginnst, lies die folgenden Artikel genau durch!
Wer sich im Unterricht beim Chatten nicht an die allgemeinen Höflichkeitsregeln hält wird von der Teilnahme
ausgeschlossen und erhält Strafarbeiten!
http://de.wikipedia.org/wiki/Netiquette
http://de.wikipedia.org/wiki/Liste_der_Abkürzungen_(Netzjargon)
Beginne nun mit dem Chatten zu dem vorgegebenen Thema "Was mache ich daheim so am Computer" :
$ irssi
/connect irc.freenode.net
/nick user<PC-Nummer hinten am Monitor>
/join #kga7b
BlaBla...
Eingabe mit Returntaste bestätigen
//quit
Übertrage die folgende Tabelle ins Heft und ergänze mit Hilfe der angegebenen Links
Befehl
irssi
/connect servername
/nick neuernickname
/join #channel
Aufgabe
Alle dem IRC-Client bekannten IRC-Server auflisten
Nach Anmeldung auf einem Server alle vorhandenen Channels auflisten
http://wiki.ubuntuusers.de/IRC
http://wiki.ubuntuusers.de/Irssi
Natürlich können auch GUI-Programme sowie andere Protokolle zum Chatten genutzt werden:
http://de.wikipedia.org/wiki/Instant_Messaging
http://wiki.ubuntuusers.de/Instant_Messenger
http://de.wikipedia.org/wiki/Liste_von_Instant-Messaging-Protokollen
http://de.wikipedia.org/wiki/Multi-Protokoll-Client
http://de.wikipedia.org/wiki/ICQ
Teil 3: Kommandozeile - Systeminformationen
a) Leistung, Prozesse, Speicher und Hardware
Befehl
top -u [Benutzername] -n 1
Bedeutung
top (Spitze), user (Benutzer), number (Nummer, Anzahl), gibt in Form einer Tabelle die Prozessliste
geordnet nach höchster Speicherauslastung an. Hier nur für den Benutzer mit dem Benutzernamen
und nur einmal 1 aktualisiert, sonst alle 5 Sekunden, zu beenden mit der Taste [q]. Wichtigste Spalten
der Tabelle sind die PID (Process Identification Number), die dazugehörige CPU (Central Processor
Unit)-Auslastung in Prozent (%CPU) und der Prozessname (COMMAND)
df -h -t ext3
Disc free (Freier Festplattenspeicherplatz), human readable (vom Menschen lesbar), type (Typ), zeigt
den freien Speicherplatz an. Hier etwas gekürzt und besser lesbar geordnet sowie auf das
Dateisystem ext3 beschränkt. Windows benutzt meist die Dateisysteme ntfs und FAT32 (angezeigt
als vfat)
du -h [Verzeichnis]
Disc usage (Festplattenbenutzung), human readable (vom Menschen lesbar), zeigt für alle
enthaltenen Verzeichnisse den benötigten Speicherplatz an. Hier etwas gekürzt und besser lesbar
geordnet. Mit der Option -s kann der gesamte Speicherplatzbedarf des aktuellen Ordners ermittelt
werden, mit der Option -a all (Alle) dagegen auch der Speicherplatzbedarf der sich im Verzeichnis
befindenden Dateien.
ps -ef | grep [Programmname] processes (Prozesse), global regular expression print ("Druckausgabe von Suchmustern"), listet die
PID von Prozessen auf, die zu dem Programm mit dem gesuchten Programmnamen gehören
kill [PID]
kill (töte), beendet den Prozess mit der angegebenen PID
uname -a
gibt Informationen zum Betriebssystem aus
uptime
gibt die Laufzeit des Systems aus
lspci
gibt Hardware Informationen zu den PCI (Peripheral Component Interconnect)-Karten (z. B.
Grafikkarte) aus
lsusb
gibt Hardware Informationen zu den USB (Universal Serial Bus)-Geräten aus
who
gibt alle am System angemeldeten Benutzer aus
[Befehl] | wc -l
gibt die Zahl der Zeilen der Ausgabe des Befehls an. Gut zu kombinieren mit den ls-Befehlen
Finde die Lösung zu den folgenden Fragen heraus und protokolliere sie wie folgt ins Heft:
Wie lange läuft Dein PC bereits?
Laufzeit (in Stunden):
Wie viel Speicherplatz ist in der Partition /dev/hda1 noch frei? Speicherplatz (in GB):
Wie viel Platz benötigt der Ordner /etc insgesamt?
Speicherplatz (in MB):
Wie viel Platz benötigt der Ordner /usr insgesamt?
Speicherplatz (in MB):
Wie viele USB Schnittstellen hat Dein PC?
USB (Anzahl):
Starte das Programm OpenOfficeWriter (Textverarbeitung) und ermittle die Prozessor-Auslastung...
...direkt nach dem Start
Prozessor (in %):
...nach etwa zwei Minuten
Prozessor (in %):
7 Ermittle den Prozessnamen von OpenOffice
Prozessname:
8 Ermittle die PID des OpenOffice-Prozesses...
PID:
...und beende ihn mit dem Befehl kill
Beenden mit:
Befehl:
1
2
3
4
5
6
b) Netzwerkkonfiguration
Befehl
ifconfig
[Strg] + [C]
ping -c 6 www.heise.de
Bedeutung
Listet alle Netzwerkschnittstellen auf. Netzwerkkarten (Ethernet) als eth0, eth1, ... ,
die lokale interne Schnittstelle als Io.
Die im Netzwerk lokal festgelegte IP (Internet Protokoll)-Adresse besteht aus einer Zahl, die sich aus vier
durch Punkte getrennte Zahlen zusammensetzt: z. B. 172.16.3.30
Die zur Netzwerkkarte eindeutig gehörende MAC (Media Access Control)-Adresse setzt sich aus einer
zwölfstelligen Zahl zusammen, die aus sechs durch Doppelpunkte getrennten Zweiergruppen von Zahlen
und Buchstaben (Hexadezimalzahlen) besteht
beendet/unterbricht einen laufenden Kommandozeilenbefehl
testet die Erreichbarkeit von Rechnern in einem Netzwerk (meist im Internet), hier durch - sechsmaliges
count (zählen) - Senden einer Anfrage
Finde die Lösung folgender Fragen heraus und protokolliere sie wie folgt ins Heft:
9 Wie lautet die IP-Adresse Deines Rechners?
IP-Adresse:
10 Wie lautet die MAC-Adresse Deines Rechners?
MAC-Adresse:
Hinweis: Falls eine Internetseite nicht aufgerufen werden kann: (1) Andere Seiten, (2) die Verkabelung, dann die
Konfiguration (3) der Netzwerkschnittstelle, (4) der Desktopumgebung und erst dann (5) die des Browsers überprüfen.
Ergänzung unter Windows:
Befehl
ipconfig /all
Bedeutung
wie ifconfig
Teil 4: Kommandozeile - Textbearbeitung
1. Zunächst benötigen wir einen inhaltlich sinnlosen aber typischen Beispieltext.
- Öffne dazu im Firefox die Seite http://www.lipsum.com und generiere einen Zufallstext mit 5 Absätzen.
- Markiere den so hergestellten Text und kopiere ihn mit [Strg]+[C] in die Zwischenablage.
- Öffne den Texteditor (Gedit) und füge den Text mit [Strg]+[V] aus der Zischenablage ein.
- Speichere das Textdokument im Ordner Desktop unter dem Namen text01.txt
Firefox und Texteditor werden nun geschlossen, da sie nicht mehr benötigt werden
(Anmerkung: mit wget http://lipsum.com/feed/html
html2text html > text01.txt geht das natürlich auch auf der Kommandozeile ;-)
2. Nun stellen wir für die folgenden Schritte genügend Sicherungskopien unseres Ursprungstextes her:
touch text0{2,3}.txt
cat text01.txt > text02.txt
cat text01.txt > text03.txt
3. Kontrolle mit ls sollte liefern:
ls
text01.txt text02.txt text03.txt
4. Nun hängen wir mit cat concatenate (verketten) text01.txt an text02.txt an zur neuen Datei text11.txt:
cat text01.txt text02.txt > text11.txt
5. Nun vergleichen wir die Zeilenanzahl in der Datei text01.txt und der neuen Datei text11.txt:
cat text01.txt | wc -l
cat text11.txt | wc -l
6. Nun vergleichen wir die Ursprungsdatei text01.txt mit diff zeilenweise mit der neuen doppelt
so langen Datei text11.txt:
diff text01.txt text11.txt
7. In wie vielen Zeilen unterscheiden sich die beiden Dateien?
Hinweis: Die erste Zeile der Ausgabe von diff gibt die Zahl der angehängten (a für appended) Zeilen an
diff text01.txt text11.txt | wc -l
8. Nun suchen wir mit grep nach bestimmten Wörtern oder Wortbestandteilen und lassen uns direkt die Anzahl
anzeigen, teste dies für die Suchbegriffe con, um, us und is, sowie en und at:
cat text03.txt | grep [Suchbegriff] | wc -l
9. Nun sortieren wir die Zeilen der Datei text03.txt mit sort und vergleichen die entstehende Datei text04.txt
anschließend wieder mit diff mit der Ursprungsdatei text01.txt
sort text03.txt > text04.txt
diff text01.txt text04.txt | wc -l
10.Nun sortieren wir die Zeilen der Datei text03.txt mit sort -r reverse (absteigend) und vergleichen die entstehende
Datei text05.txt anschließend wieder mit diff mit der Ursprungsdatei text01.txt
sort -r text03.txt > text05.txt
diff text01.txt text05.txt | wc -l
Protokolliere ins Heft die Ergebnisse der Aufgaben:
5. Zeilenzahl text01.txt:
Zeilenzahl text11.txt:
7. Unterschiedliche Zeilen:
8. Anzahl "con"
Anzahl "um"
Anzahl "us"
Anzahl "is"
9. Unterschiedliche Zeilen:
10. Unterschiedliche Zeilen:
Finde nun mit den Befehlen which, whatis und apropos heraus, welchen absoluten Starterpfad (z. B. usr/bin/xyz)
die Programme bash, ls und firefox haben.
Übernehme die folgende Tabelle ins Heft und ergänze:
Programm
Bash (Shell)
Ls (List, Unix-Dateibearbeitungs-Werkzeug)
(Mozilla-)Firefox (Webbrowser)
Starterpfad
Teil 5: Kommandozeile - Geheime Text-Botschaften in einer Bilddatei
Der folgende Weg funktioniert auf jedem Unix/Linux-System. Die rechts angegebenen Kommentare (nach dem # Zeichen) dienen nur zur Erklärung
cd Desktop
# (1) wechsle in das Verzeichnis <Desktop>
pwd
# (2) zeige das aktuelle Arbeitsverzeichnis an
mkdir ordner
# (3) lege ein Verzeichnis mit dem Namen <ordner> an
cd ordner
# (4) wechsle in das neue Verzeichnis <ordner>
pwd
# (5) zeige das aktuelle Arbeitsverzeichnis an
touch geheime_botschaft.txt
# (6) legt eine leere Textdatei mit dem Namen <geheime_botschaft> an
echo "Diese Nachricht stammt von Vorname." > geheime_botschaft.txt
# (7) füge den zwischen den Anführungszeichen stehenden Text in
die Textdatei <geheime_botschaft.txt> ein
cat geheime_botschaft.txt
# (8) zeige den Inhalt der Textdatei <geheime_botschaft.txt> an
cd ..
# (9) wechsle ins übergeordnete Verzeichnis
pwd
# (10) zeige das aktuelle Arbeitsverzeichnis an
wget http://virtuelle-schule.net/net2/bcnt/alle/logo.gif
# (11) lade die Bilddatei <logo.gif> von der
angegebenen Internet-Adresse herunter
ls
# (12) Liste den Inhalt des aktuellen Verzeichnisses auf
zip -e ordner.zip ordner
# (13) Komprimiere das Verzeichnis <ordner> in das Passwort geschützte ZIP-Archiv <ordner.zip>
Enter password: 1234
# (14) Gib das Passwort ein (hier: 1234, wird nicht dargestellt!)
Verify password: 1234
# (15) Bestätige die Passworteingabe
ls
# (16) Liste den Inhalt des aktuellen Verzeichnisses auf
cat ordner.zip >> logo.gif
# (17) Hänge das ZIP-Archiv <ordner.zip> an die Bilddatei <logo.gif> an
rm -r ordner
# (18) lösche das Verzeichnis <ordner> mit allen darin befindlichen Dateien
rm ordner.zip
# (19) lösche das ZIP-Archiv <ordner.zip>
ls
# (20) Liste den Inhalt des aktuellen Verzeichnisses auf
Aufgabe 1: Vollziehe alle Schritte von (1) bis (19) im Terminal (unter Anwendungen-Zubehör) nach. Schreibe ins Schulheft die Ausgaben der Befehle (2), (5), (12),
(16) und (20)
Aufgabe 2: Öffne anschließend die veränderte Datei logo.gif mit einem Bildbetrachtungsprogramm und einem Bildbearbeitungsprogramm (z. B. GIMP)
Aufgabe 3: Öffne anschließend die veränderte Datei logo.gif mit einem Archiv/Entpackerprogramm, gib das Passwort ein und entpacke Deine geheime Botschaft.
Aufgabe 4: Öffne die Datei logo.gif mit einem sogenannten "Hexeditor" und finde heraus in welchem Bereich sich die Bildinformation (GIF) befindet und in welchem
Bereich das verschlüsselte ZIP-Archiv. Welcher wird von welchem Programm zur Erkennung genutzt? Schlage dazu die Begriffe "Header" und "Footer" nach.
Aufgabe 5: Schreibe ins Schulheft die ausführlichen englischen Bezeichnungen für die Befehle cd, pwd, cat, rm und ls
Aufgabe 6: Wie könnten in mp3-Dateien digitale Wasserzeichen eingefügt werden?
Hinweis: Der zentrale Schritt (17) funktioniert auch unter Windows mit:
copy /B logo.gif+ordner.zip logo.gif
# (Extraktion nur mit WinRAR)
Teil 6: Kommandozeile - Surfen im WWW (World-Wide-Web)
a) Grundlagen
Schema:
Der Client schickt eine Anfrage nach einem bestimmten Dienst (hier WWW) an den Server. Dieser stellt dann diesen
Dienst (WWW) bereit. Damit sich beide überhaupt finden, muss die Anfrage über einen Router ("Vermittlungsrechner")
laufen, der dafür die IP Adresse des Servers benötigt. Die IP Adresse wird aus dem Servernamen (s.u. URL) aufgelöst.
Zur Verständigung benutzen Client und Server auf der Anwendungsschicht ein bestimmtes Protokoll (http).
Das Internet besteht also aus miteinander vernetzten Rechnern, das WWW dagegen ist nur einer von mehreren
Diensten, die im Internet angeboten werden (vgl. mit Teil 2: Kommunikation).
Eine "Internetadresse", besser URL (Uniform Resource Location) hat eine festgelegte Form:
http://
www.virtuelle-schule.net/
net2/bcnt/
index.html
Protokoll
Servername
Dienst.Beschreibung.Endung/
=> wichtige Endungen:
.de
Deutschland
.com
USA (Kommerziell)
.org
USA (gemeinnützig)
.net
USA (Netzbetreiber)
Ordner auf dem Server
Dokument auf dem Server
Dateiname.Endung
=> wichtige Endungen:
.html (Hypertext Markup
Language)
.php
(Hypertext
Preprocessor)
Übernehme den Inhalt des Kastens ins Heft und ergänze darunter entsprechend für das folgende Beispiel
der URL eines FTP-Dienstes:
ftp:// ftp.ncbi.nih.gov/
Nur für Fortgeschrittene: Gib die folgende Adresse in einen FTP-Client ein und melde Dich mit dem
Benutzernamen: anonymous und dem Kennwort: [email protected] an
ftp://[email protected]/
Vorschau: Welcher andere Internet Dienst benutzt ähnliche Anmeldeverfahren?
b) Übungen
1. Gib den folgenden Befehl ein und surfe innerhalb der angegebenen Seite.
w3m www.virtuelle-schule.net/net2/bcnt/index.html
[←] [↑] [↓] [→] [TAB] Navigation auf einer Seite, [RETURN] Eingabe bestätigen, [Alt]+[↓] Seite zurück,
[v] Quelltext ansehen, [q] beenden [y] beenden bestätigen
2. Überprüfe mit dem Befehl whatis, um was für einen Programmtyp es sich bei w3m handelt:
whatis w3m
3. Vergleiche mit der Ausgabe beider Überprüfung von firefox:
whatis firefox
4. Internet-Browser können ein Datenschutz-Risiko darstellen, weil sie für unsere Bequemlichkeit z.B. die von uns
besuchten Webseiten mitprotokollieren. Diese Liste lassen wir uns nun anzeigen und löschen sie anschließend:
cat .w3m/history
rm .w3m/history
Auch der Firefox-Browser hat einen solchen versteckten Ordner mit vielen Informationen (.mozilla), hier sollte man
die Einstellungen jedoch unter Bearbeiten-Einstellungen-Datenschutz vornehmen.
Gib nun den folgenden Befehl auf der Kommandozeile ein:
firefox http://www.firefox-browser.de/wiki/Einstellungen#Datenschutz
Warum kann bereits das Anzeigen von Bildern ein Sicherheitsrisiko darstellen (vgl. Teil 5)?
5. Für zu Hause (oder für schnelle Schüler): http://www.bsi-fuer-buerger.de/browser/index.htm unbedingt Folgeseiten lesen!
6. Tipp für Fortgeschrittene: Durch Angabe des (Schein-)Protokolls file:/ (als URL) können Internetbrowser meist wie
"normale" lokale Dateibrowser arbeiten:
firefox file:/
Teil 7: E-Mail
a) Grundlagen
Schema:
- einfacher Fall: Beide sind beim gleichen Provider*
POP3
SMTP
z. B.
mail.gmx.net
pop.gmx.net
Sender
[email protected]
Empfänger
[email protected]
Der Sender-Client schickt eine Anfrage nach einem bestimmten Dienst (hier SMTP) an den Mail-Server.
Der Mail-Server stellt diesen Dienst (SMTP) bereit, die Nachricht wird vom Sender auf den Mail-Server übertragen.
Der Empfänger-Client schickt eine Anfrage nach einem bestimmten Dienst (hier POP3) an den Mail-Server.
Der Mail-Server stellt diesen Dienst (POP3) bereit, die Nachricht wird vom Mail-Server auf den Empfänger übertragen.
- komplizierter Fall: Beide sind bei verschiedenen Providern*
SMTP
SMTP
POP3
Sender
[email protected]
Empfänger
z. B.
smtp.yahoo.de
pop.mail.yahoo.de
z. B.
smtp.web.de
pop3.web.de
[email protected]
Der Sender-Client schickt per SMTP eine Nachricht zunächst an den eigenen Mail-Server, welcher sie an dann
ebenfalls per SMTP an den fremden Mail-Server des späteren Empfängers weiterleitet.
Der Empfänger-Client schickt eine Anfrage an seinen eigenen Mail-Server.
Die Nachricht wird per POP3 vom Mail-Server auf den Empfänger übertragen.
*Provider = Anbieter, zu empfehlen sind hier eher kostenlose (werbefinanzierte) Freemailer, ein Vergleich findet sich
unter: http://www.pcwelt.de/know-how/online/40649/index.html oder http://de.wikipedia.org/wiki/Freemail
b) Einrichtung eines E-Mail-Programms (= E-Mail-Client)
Für diese Übung benötigst Du bereits eine eigene E-Mail-Adresse und musst die folgenden
Daten im Unterricht dabei haben, welche Du von Deinem Anbieter erhalten hast:
1. E-Mail-Adresse, 2. Passwort und 3. Kundennummer
Empfehlung: Auf dem heimischen Rechner o.k., da komfortabel, aber nicht auf fremden PCs wegen Datenschutz!
Übersicht unter:
http://de.wikipedia.org/wiki/E-Mail-Programm
Im Detail müssen folgende Einstellungen eingerichtet werden:
- POP3-Serveradresse:
findet man z. B. auf http://www.philipphauer.de/tut/pop-smtp-server/
- SMTP-Serveradresse:
findet man z. B. auf http://www.netzwerktotal.de/netzwerkfaq/faq74.htm
- SMTP erfordert Authentifizierung: ja
- POP3-Login/Konto:
Deine Kundennummer (vom Anbieter, unbedingt geheimhalten!)
- POP3-Passwort:
Dein Passwort (vom Anbieter, unbedingt geheimhalten!)
- Absenderadresse:
Deine E-Mail-Adresse (vom Anbieter, unbedingt geheimhalten!)
1. Folge nun den einzelnen Schritten des folgenden Tutorials (= Lehrgang):
http://www.philipphauer.de/tut/thunderbird-konto-einrichten/
b) Mailen mit einem Internet-Browser (Webmail*)
Für diese Übung benötigst Du:
1. E-Mail-Adresse, 2. Passwort
Empfehlung: Auf fremden PCs besser wegen Datenschutz, wenn kein Passwort gespeichert wurde!
*Webmail-Informationen unter:
http://de.wikipedia.org/wiki/Webmail
Start-URL z. B.:
http://www.gmx.net/de, https://www1.produkte.web.de/freemail/, ...
2. Sende einem Mitschüler eine freundliche E-Mail und erhalte eine Antwort!
Teil 8: Gefahren durch verschiedene Internet-Dienste
a) Kleines Schädlings-ABC
Bot
Kleines Schadprogramm, das nach unbemerkter Aktivierung fremde Befehle ausführt, meist um den
Rechner fernzusteuern, etwa für Denial of Service Angriffe
Phishing
Versucht den Anwender zur Preisgabe von Passwörtern (z.B. für online-Banking) zu bewegen, meist
durch gefälschte E-Mails, Webseiten oder Webseitenumleitungen
Spam
Unerwünschte Werbemails oder Kettenbriefe, beide mit Kostenfallen
Spyware
Spioniert den PC aus, gefährlich sind v.a. Keylogger, welche die Tastatureingaben auslesen
Trojaner
Scheinbar nützliche Programme, die aber heimlich persönliche Daten versenden
Viren
Befallen den PC meist nach dem Öffnen oder dem Ausführen einer infizierten Datei. Sie verursachen
Funktionsstörungen und pflanzen sich durch Veränderung bestimmter Dateitypen fort.
Würmer
Verbreiten sich selbständig, meist keine direkte lokale Schadwirkung
=> Gefährlich sind v.a. sich dauernd verändernde, neuartige Kombinationen verschiedener Schädlingstypen!
b) Sicherungsstrategien
1. Regelmäßig Aktualisierungen des Betriebssystems und des Browsers vornehmen, um neu bekannt gewordene
Lücken schnell zu schließen!
2. Zumindest unter Windows unbedingt ein Antivirenprogramm (z.B. http://www.free-av.de/) und evtl. eine Firewall
(http://www.pctools.com/de/firewall/) und evtl. auch ein Antispywareprogramm (z.B. http://www.safernetworking.org/de/download/index.html oder http://www.pctools.com/spyware-doctor/) installieren. Diese ebenfalls
ständig aktualisieren!
3. Immer als Benutzer mit möglichst wenigen Rechten, also nicht als "Administrator" arbeiten. Den Ansatz, auch
Programme nur mit eingeschränkten Rechten laufen zu lassen kann man unter Linux z.B. mit AppAmor noch
verstärken, auch in Windows Vista wird er jetzt vermehrt angestrebt.
4. Im Browser Aktive Inhalte (JavaScript, Java-Applets, ActiveX-Controls) und Cookies deaktivieren, nachteilig ist
dann der eingeschränkte Funktionsumfang. Möglicher Kompromiss evtl. mit Firefox-Erweiterungen wie NoScript,
CookieSafe oder AdblockPlus! Die Liste der besuchten Webseiten sowie Formulareinträge beim Beenden des
Browsers automatisch löschen lassen!
5. E-Mails nur als reinen Text anzeigen lassen. E-Mail-Anhänge bei unbekanntem Absender niemals öffnen, bei
bekanntem Absender und unerwarteter Mail besser vorher nachfragen! Bei präparierten Dateien (vgl. Teil 5) kann
der PC sonst infiziert werden. Hintergrund: auch die Desktopumgebung benutzt MIME-Typen
(http://de.selfhtml.org/diverses/mimetypen.htm) zur Programmzuordnung. Unter Windows grundsätzlich die vollständige
Dateiendung anzeigen lassen (sonst wird z.B. datei.pdf statt datei.pdf.exe angezeigt)!
6. Nur für Experten: Überflüssige (Netzwerk-)Dienste deaktivieren, zur Kontrolle Ports scannen mit netstat oder
nmap.
7. Ergänzung für's Handy: Unterwegs die Bluetooth-Schnittstelle ausschalten!
=> 100%ige Sicherheit ist nicht erreichbar. Wenn der Administrator die Punkte 1., 2. und 3. beachtet und der Nutzer
die Punkte 4. und 5., kann man sich aber bei richtigem Verhalten (vgl. c)) zumindest relativ sicher fühlen.
c) Verhalten im Netz
Ob beim Chatten, beim Mailen oder bei der Registierung auf einer Webseite, nie kann man sich der wahren Identität
und der eigentlichen Absichten seines Gegenübers völlig sicher sein.
1. Problem: Datenschutz (z.B. Identitätsklau bei EBay, Einbruch nach Bekanntgabe einer Reise im Chat)
Gerade scheinbar unverfängliche Daten wie der vollständige Name, das Geburtsdatum und der Wohnort dürfen
niemals unbedacht preisgegeben werden. Sensible Daten wie Bankdaten und Passwörter auf gar keinen Fall! Auch
das verschlüsselte Protokoll https alleine ist kein absolut zuverlässiger Garant für die Echtheit einer Seite. Das
angegebene Alter von Chat-Partnern stimmt häufig nicht mit dem realen Alter überein!
2. Problem: Betrug und Kostenfallen (z.B. "Gratis"-Angebote)
Viele Seiten werben mit scheinbar kostenlosen Angeboten, während sich in den winzig klein gedruckten AGBs
(Allgemeinen Geschäftsbedingungen) dann doch versteckte Kosten verbergen. Die AGBs sollten also stets
genauestens gelesen werden! Zur rechtlichen Problematik (http://www.lehrer-online.de/dyn/603316.htm) solcher Verträge
bieten die Verbraucherzentralen Unterstützung an.
3. Problem: Persönlichkeitsrechte (z.B. öffentliche Beleidigung)
Vermeide unbedingt beleidigende Äußerungen, Du würdest doch auch keinen beleidigenden "normalen" Brief schicken
(http://www.lehrer-online.de/dyn/621578.htm)?
4. Problem: Jugendschutz (z.B. rechtsextreme, pornographische oder Gewalt verherrlichende Darstellungen)
Egal ob beim Chat oder bei Computerspielen - achte immer darauf, ob das Angebot für Jugendliche überhaupt
geeignet ist und traue Dich auch höflich aber bestimmt "NEIN" oder "STOP" zu sagen, wenn Dir das Verhalten anderer
nicht gefällt. Hier wäre dann falsch verstandene Höflichkeit fehl am Platz! Achte auch darauf, mit dem Urheberrecht
nicht in Konflikt zu geraten, etwa beim (häufig illegalen) Download von Filmen, Computerspielen oder Musikstücken!
=> Allgemein gilt: Sei höflich, bleibe kritisch und bilde Dir eine eigene Meinung!
Teil 9: Programmiersprachen
Übersichtsschema
kompilierte Programmiersprachen
Quelltext
höhere
objektorientiert
Kompiler
maschinennahe
prozedural
Binäres Programm
deklarativ
Maschinensprache
Interpreter,
z.B. Shell
Quelltext
Skriptsprachen
bestimmtes
Programm,
z.B. Browser
Quelltext
Auszeichnungssprachen
Bildschirmausgabe
Aufgaben: 1.
2.
Druckausgabe
Ordne mit Hilfe der entsprechenden Wikipedia-Artikel die folgenden zwölf Programmier- bzw. Auszeichnungssprachen den jeweiligen Kästchen zu:
C, C++, C#, Fortran, HTML, Java, JavaScript, LATEX, Pascal, PDF, PHP, Python
Ergänze die folgenden Sätze und übernehme sie ins Heft:
Ein in einer ... ... geschriebener ... wird vom ... in ein ... übersetzt, das in ... vorliegt und vom Prozessor ausgeführt werden kann. Ein Beispiel ist Java.
Ein in einer ... geschriebener ... wird von einem ... in ... umgesetzt, die vom Prozessor ausgeführt wird. Ein Beispiel ist Python.
Ein in einer ... geschriebener ... wird von einem ... in ... umgesetzt, die vom Prozessor ausgeführt wird. Ein Beispiel ist HTML.
Teil 10: HTML-Grundlagen
a) Aufbau
HTML ist eine Auszeichnungssprache, die von Browsern "verstanden" wird. Sie wird daher v.a. im WWW benutzt, um
Inhalte (Text, Bilder, Multimediainhalte) mit besonderen Eigenschaften darzustellen. Vorsicht: Verwechsle sie nicht mit
dem im WWW benutzten Protokoll http.
HTML setzt sich zusammen aus bestimmten Tags (= Auszeichnungselementen), die zur Kennzeichnung bestimmter
Objekte als <tag> geschrieben werden. Jedes geöffnete Tag muss auch wieder mit einem </ tag> geschlossen werden
falls sich etwas dazwischen befindet, oder aber direkt beim Anfangstag als <tag /> falls es leer ist.
Jedes Tag hat bestimme Attribute (= Eigenschaften), denen bestimmte Werte zugeordnet werden können nach dem
Schema: <tag attribut="wert">
Die Objekte eines HTML-Dokuments sind hierarchisch gegliedert, d.h. geschachtelte Tags müssen in umgekehrter
Reihenfolge wieder geschlossen werden, so ist z.B. <b><i>Text</b></i> falsch, während es richtig heißen müsste:
<b><i>Text</i></b>. Die Einrückung im Quelltext dient der Veranschaulichung der "enthält"-Beziehungen:
Quelltext
Baumstruktur
<html>
HTML-Dokument
<head>
Kopfteil
<title>Titel</title>
</head>
Titel (wird nicht angezeigt)
<body>
Textkörper
<h1>Gro&szlig;e &Uuml;berschrift</h1>
Überschrift
<p>Absatz mit Text</p>
Textabsatz
<img src="bild01.jpg" />
Bild
<br />
Zeilenumbruch
<a href="http://de.selfhtml.org/html/">Link zur Hilfeseite</a>
Link
<body>
</html>
Tag (Art des Objekts)
h1
(head = Überschrift,
größte da 1, nächstkleinere mit 2 usw.)
p
(paragraph = Absatz)
img
(image = Bild)
br
(break = Zeilenumbruch)
a
(anchor = Anker)
Attribute
(Bedeutung)
align
(align = ausrichten)
Werte
(Bedeutung)
center
(zentriert)
bgcolor
(background color = Hintergrundfarbe)
src
(source = Quelle)
width, height
(Breite, Höhe)
-
#e6e6e6
(helles graublau)
bild01.jpg
(relativer Pfad zur Bilddatei)
200px
(Zahl der Pixel)
-
href
(hypertext reference = Verweis ein Ziel)
type
(type = MIME-Typ)
http://de.selfhtml.org/html/
(URL)
application/pdf
(ruft einen PDF-Betrachter auf)
video/mpeg
(ruft ein Videoplayer-Plugin oder
einen externen Video-Player auf)
b) Aufgaben
1.
2.
2.
3.
4.
Gib den oben angegebenen Quelltext in einem Texteditor ein und speichere als test.html
Hole Dir aus dem Internet eine (jugendfreie) Abbildung und speichere sie als bild01.jpg neben die Datei test.html
Öffne nun die Datei test.html mit einem Browser und betrachte sie.
Gib die Zahl der verschiedenen Tags im Quelltext an:
Ändere in der Datei test.html im Objekt Textkörper (also im Tag <body>) die Hintergrundfarbe zu einem hellen
Graublau und lege die Bildgröße auf 200x200 Pixel fest! Betrachte anschließend wieder das Dokument im Browser.
5. Finde die Bedeutung der seltsamen Zeichenfolgen &szlig; und &Uuml; heraus.
6. Wie werden Anführungszeichen ", das Und-Zeichen &, sowie die Zeichen kleiner als < und größer als > dargestellt?
":
&:
<:
>:
(Tipp: benutze den Link http://de.selfhtml.org/html/referenz/zeichen.htm)
7. Begründe, warum das Anklicken eines Links evtl. ein Sicherheitsrisiko darstellen kann!
Hinweis: Beachte die beiden angegebenen Attribute, vergleiche mit dem Risiko, das vom Öffnen eines E-MailAnhangs ausgeht.
Teil 11: Shell-Skript zur Erstellung einer HTML-Dokumenten-Vorlage
a) Notwendige Befehle
Die graue Hervorhebung dient zur Verdeutlichung der Verschachtelung von Skript-Anweisungen und eingebettetem
HTML-Text
echo 'Beispieltext'
[Befehlsausgabe] > [Dateiname]
[Befehlsausgabe] >> [Dateiname]
#![Pfad zum Interpreter]
Gibt den Beispieltext aus
Erstellt eine Datei mit dem Dateinamen und lenkt den Text der Befehlausgabe
in diese Datei um
Hängt den Text der Befehlsausgabe hinten an den Text in der schon
bestehenden Datei mit dem Dateinamen an
Gibt die im Skript vorliegende Programmiersprache oder den Pfad zum
Interpreter an (hier die Bash /bin/bash, daher die Bezeichung Shell-Skript")
b) Umsetzung und Aufgaben
1. Gib den folgenden Text in eine Datei ein und speichere sie unter dem Namen html_generator.sh
#!bin/bash
echo '<html>' > vorlage.html
echo '<head><title>erstellt mit HTML-Generator</title></head>' >> vorlage.html
echo '<body>' >> vorlage.html
echo '<h1> Generierte &Uuml;berschrift</h1>' >> vorlage.html
echo '<p>Generierter Text</p>' >> vorlage.html
echo '<a href="http://">generierter Link, noch ohne Zieladresse</a>' >> vorlage.html
echo '<body>' >> vorlage.html
echo '</html>' >> vorlage.html
2. Starte auf der Kommandozeile dieses neu geschriebene Programm html_generator.sh mit dem Befehl:
bash html_generator.sh
3. Lasse Dir auf der Kommandozeile den Quelltext der neu erstellen Datei vorlage.html anzeigen mit dem Befehl:
cat vorlage.html
und überprüfe durch Vergleich mit folgendem Ergebnis:
<html>
<head><title>erstellt mit HTML-Generator</title></head>
<body>
<h1> Generierte &Uuml;berschrift</h1>
<p>Generierter Text</p>
<a href="http://">generierter Link, noch ohne Zieladresse</a>
<body>
</html>
4. Öffne nun von der Kommandozeile aus die vom Programm neu erstelle Datei vorlage.html mit dem Befehl:
firefox vorlage.html
5. Welches Problem tritt auf, wenn Du die Datei vorlage.html bearbeitest hast und sie wieder am gleichen Ort und mit
dem gleichen Dateinamen abspeicherst und anschließend das Programm html_generator.sh nochmal aufrufst?
c) Anwendung
Viele Webseiten bestehen nicht aus statischen HTML-Dateien, die einfach nur vom Browser geöffnet werden, sondern
sie werden nach folgendem Schema erst auf Anfrage dynamisch erzeugt:
Der Browser fragt als Client beim (Web-)Server nach einer bestimmten Webseite an, dieser greift dann auf einen PHPInterpreter zurück, der aus einem - in der besonderen Skriptsprache PHP vorliegenden - Dokument dann das
passende HTML-Dokument herstellt, das dann vom (Web-)Server an den Browser übergeben und vom Browser
normal dargestellt wird. Natürlich werden in PHP die Befehle nicht einfach wie in einer Kette aneinandergereiht wie in
unserem einfachen Beispiel.
Teil 12: Rechnen und Schreiben mit Python
a) Grundlagen
Wir benötigen einen Python-Interpeter (vgl. Teil 9). Diesen können wir auf zwei Wegen von der Kommandozeile aus
starten:
Variante 1: idle
Variante 2:
python
>>> (statt $ als Eingabeaufforderung)
>>>
Wir benutzen immer Variante 1, da uns dann mit der integrierten Programmierumgebung IDLE mehr Möglichkeiten zur
Verfügung stehen! Alle der folgenden Eingaben erfolgen also nach dem >>> Zeichen im Fenster der "Python-Shell"
Bevor wir mit Python rechnen können, müssen wir den Teil (das Modul) für diese Funktionen laden mit dem Befehl:
>>> from math import *
1. Gib nun die folgenden Befehle ein und ergänze rechts das jeweilige Ergebnis:
>>>13+4*3
>>>(13+4)*3
>>>(3-5)*(13+4)
>>>3.125*0.8
(Achtung: Das Komma wird hier
als Punkt geschrieben!
>>>3/4.0
>>>1/3.0
>>>print 3*12
>>>print "3*12"
>>>print "3*12=", 3*12
2. Schreibe die zwei Anweisung auf, welche die folgenden zwei Zeilen ausgeben:
>>>
Wie viel ist eins und eins?
>>>
1+1=2
3. Öffne nun mit der Tastenkombination [Strg]+[N] (für New Window) neben dem Fenster der Python-Shell ein EditorFenster und gib den folgenden Text ein. Du kannst ihn mit [Strg]+[S] (für Save) unter dem Namen rechnen.py
speichern. Zeilen, die mit einem # beginnen werden nicht ausgewertet, sie dienen als Kommentar.
# Autor: Dein Vorname
# Programmname: rechnen.py
from math import *
print "Wie viel ist die Wurzel aus 4?"
print "Dazu brauchen wir die neue Funktion sqrt,"
print "das stammt von dem englischen Wort"
print "Squareroot, was Quadratwurzel bedeutet."
print "Wurzel aus 4 ist", sqrt(4)
4. Führe nun das Programm rechnen.py in der Python-Shell aus, indem Du im Editor-Fenster auf Run-Run-Module
klickst oder [F5] eingibst. Die Ausgabe in der Python-Shell sollte dann so aussehen wie die folgenden Zeilen:
Wie viel ist die Wurzel aus 4?
Dazu brauchen wir die neue Funktion sqrt,
das stammt von dem englischen Wort
Squareroot, was Quadratwurzel bedeutet.
Wurzel aus 4 ist 2.0
5. Welche Bedeutung hat hier die graue Hervorhebung? Fällt Dir eine Gemeinsamkeit zwischen dem Python-Befehl
print und dem Shell-Skript-Befehl echo auf? Beide geben sogenannte
aus.
6. Die Funktion sqrt() erfordert die Eingabe eines Wertes nach der Schreibweise: Funktion(Wert)
Welcher Wert wurde dafür oben im Programm rechnen.py eingegeben?
(Eingabe-)Wert:
7. Probiere nun zum Verlassen der Python-Shell den Befehl exit aus.
Wie müsste er also richtig eingegeben werden?
>>>
8. Finde durch Eingabe der folgenden Befehle heraus, welche zwei grundsätzlichen Typen von Werten es gibt:
>>>type("Hallo")
Ausgabe:
>>>type(17)
Ausgabe:
Der Begriff Integer bedeutet
, der Begriff String bedeutet
.
Teil 13: Zeichnen mit Python
a) Grundlagen
Wir starten wieder den Python-Interpeter (vgl. Teil 12). von der Kommandozeile aus:
idle
>>>
Bevor wir mit Python zeichnen können, müssen wir den Teil (das Modul) für diese Funktionen laden mit dem Befehl:
>>> from turtle import *
Dieses Modul stellt die folgenden einfachen Zeichenfunktionen anhand der Bewegung einer Turtle (= Schildkröte), der
man Anweisungen erteilt:
Funktion
Bedeutung
forward(distanz)
Turtle geht um distanz Einheiten vorwärts.
backward(distanz)
Turtle geht um distanz Einheiten rückwärts.
left(winkel)
Turtle dreht sich um winkel Grad nach links.
right(winkel)
Turtle dreht sich um winkel Grad nach rechts.
up()
Turtle wird angehoben und hinterlässt keine Spur mehr.
down()
Turtle wird wieder abgesenkt und hinterlässt wieder eine Spur.
width(dicke)
Stellt die Strichdicke für den Zeichenstift auf dicke Pixel ein.
color(farbe)
Stellt die Farbe für den Zeichenstift der Turtle ein. farbe ist ein String wie "red", "blue" oder
"green"
reset()
Löscht alle Zeichnungen im Grafik-Fenster und setzt alles auf den Ausgangswert zurück
1. Gib nun die folgenden Befehle ein und skizziere rechts das Ergebnis:
>>>foward(100)
>>>left(90)
>>>foward(100)
>>>left(90)
>>>foward(100)
>>>left(90)
>>>foward(100)
>>>left(90)
2. Speichere nun diese Befehle - mit zwei Kopfzeilen wie in Aufgabe 3. - in ein Programm quadrat.py (vgl. Teil 12)
3. Ändere nun das Programm so, dass es das rechts gezeigt Dreieck zeichnet und speichere es unter dreieck.py
Für Fortgeschrittene:
# Autor: Dein Vorname
# Programmname: dreieck.py
100
100
# Programmname: dreieck_for.py
from turtle import *
for i in range(3):
forward (100)
left(120)
100
4. Schreibe nun ein ein Turtle-Programm haus.py, welches das rechts abgebildete Haus zeichnet:
# Programmname: haus_for.py
from turtle import *
right(90)
forward(80)
for i in range(2):
left (90)
forward(80)
# Autor: Dein Vorname
# Programmname: haus.py
80
80
80
80
80
left(30)
forward(80)
for i in range(2):
left(120)
forward(80)
Beachte: Je nach Startrichtung kann gibt es hier zwei verschiedene Möglichkeiten!
5. Welche drei Befehle sind nacheinander notwendig, um zwei nicht miteinander verbundene Objekte zu zeichnen?
>>>
>>>
>>>
Teil 14: Kontrollstrukturen mit RobotKarol
a) Grundbegriffe und Schreibweisen
Algorithmen sind Folgen von eindeutigen Anweisungen.
Mehrere Anweisungen linear hintereinander ergeben eine Sequenz. Programmiersprachen bieten aber auch drei
sogenannte Kontrollstrukturen, mit denen sich auch andere Abläufe beschreiben lassen:
Wiederholung
bedingte Wiederholung
bedingte Anweisung
mit fester Anzahl
Flussdiagramm
Se quenz
Se quenz
wie de rhole n m al
Struktogramm
wie de rhole n m al
Seque nz
Bedingung
Bedingung
trifft z u
Se quenz A
wiederhole 4 mal
Hinlegen()
Schritt()
*wiederhole
typischer
for Anzahl
QuelltextSequenz
Ausschnitt in
vielen
Programiersprac
hen, daher auch
bezeichnet als...
..."For-Schleife"
Seque nz B
trifft nicht z u
solange Be dingung
Seque nz
Bedingung
trifft
n ich t z u
trifft z u
Seque nz A
Quelltext in
"Karol"
trifft nicht z u
trifft z u
Seque nz B
wiederhole solange NichtIstWand
Hinlegen()
Schritt()
*wiederhole
wenn IstWand dann
RechtsDrehen()
sonst
Hinlegen()
Schritt()
*wenn
while Bedingung
Sequenz
if Bedingung
then
Sequenz A
else
Sequenz B
endif
..."While-Schleife"
..."Verzweigung"
b) Programmfenster-Übersicht
Editor:
Gib hier den
Anweisungstext
ein!
Ansicht:
Das ist die Welt
des Roboters Karol,
hier kannst Du Dein
Programm während
der Ausführung
mit verfolgen.
Übersicht:
Hier findest Du
Anweisungen und
Kontrollstrukturen
als „Spickzettel“
c) Aufgaben
Buch
ab Seite
Ikarus Natur und Technik, Schwerpunkt Informatik 6/7 (Oldenburg)
111
Netzwerk Informatik 6/7 (Schroedel)
62
Informatik 1 Objekte, Strukturen, Algorithmen (Klett)
78
Im Internet gibt's das Programm und weitere Beispiele unter: http://www.schule.bayern.de/karol/
Weitere Programmierumgebungen sind hier aufgelistet:
http://www.schule.de/bics/inf2/didaktik/minilanguages/auflistung.html
Informationsfläche:
Hier erscheinen
z.B. hilfreiche
Fehlermeldungen.
Teil 15: Verschlüsselung - Schema
Bei der asymmetrischen Verschlüsselung kann eine
Nachricht nur mit dem privaten Schlüssel entschlüsselt werden.
Ein „Daten-“Dieb/Spion kann also damit nichts anfangen.
Eine unverschlüsselte E-Mail entspricht eher
einer Postkarte als einem Brief, jeder kann
sie mitlesen!
3 ...erstellt eine Nachricht
5 ...versendet die
verschlüsselte Nachricht
Hinweis: Um (A) die Echtheit des Schlüssels, (B) den
tatsächlichen Absender und (C) eine eventuelle
Veränderung der verschlüsselten Nachricht zu sichern,
gibt es die Möglichkeit einer digitalen Unterschrift (Signatur).
1 ...erstellt ein Schlüsselpaar und
2 ...versendet den
öffentlichen Schlüssel
Absender...
4 ...verschlüsselt die Nachricht mit
dem öffentlichen Schlüssel und
Empfänger...
???
7 ...liest die Nachricht
6 ...entschlüsselt die Nachricht
mit dem privaten Schlüssel
und dem Passwort
Hinweis: Viele E-Mail-Clients bieten komfortable
Erweiterungen zur Verschlüsselung an. Linux-Distributionen
enthalten bereits alle notwendigen Programme, für Windows
gibt’s die z.B. unter http://www.gpg4win.de , für MAC unter
http://macgpg.source forge .ne t
Teil 15: Verschlüsselung - Verständnis-Übung auf der Kommandozeile
1 Als Empfänger! musst Du zunächst ein Schlüsselpaar erstellen. Dein öffentlicher Schlüssel wird vom späteren Absender dann zum Verschlüsseln benötigt.
Erstellt ein Schlüsselpaar
gpg --gen-key
hier wird ein Verschlüsselungsverfahren ausgewählt
Schlüsseltyp:
1
je länger desto sicherer aber auch desto mehr Rechenaufwand
Schlüssellänge:
2048
unbegrenzte Gültigkeitsdauer ist komfortabel aber auch riskanter
Gültigkeitsdauer:
0
Bestätigen:
Vorname Nachname:
EMail Adresse:
Kommentar:
Fertig?
Passwort:
j
Vorname Nachname
empfangername@servername
Ja
hier mal ausnahmsweise wirklich unbedingt den echten Namen angeben
hier unbedingt die echte EMail-Adresse angeben
nicht nötig
nicht auf b für Beenden gehen, da sonst die Erstellung abgebrochen wird
f
unbedingt merken, wird zur Entschlüsselung benötigt, auf Groß- und Kleinschreibung achten,
beliebiger kurzer Merksatz ohne Umlaute
keine Umlaute verwenden!
wechselt
ins versteckte Verzeichnis des Programms Gnupg
cd .gnupg
Listet alle privaten Schlüssel auf:
gpg --list-secret-keys
privat
BitlängeVerschlüsselungstyp/achtstellige Schlüsselkennung
sec
1024D/702781E9 Datum
Schlüsselersteller
Vorname Name <EMail Adresse>
uid
Vorname Name <empfaengername@servername>
öffentlich
BitlängeVerschlüsselungstyp/achtstellige Schlüsselkennung
ssb
2048g/D49D73EC Datum
gpg --armor --export -o empfaengername.pubkey.gpg
Erstellt eine Textdatei mit dem Namen empfaengername.pubkey.pgp, welche den den öffentlichen Schlüssel
enthält, der dann weitergegeben werden kann.
zeigt den Öffentlichen Schlüssel an
cat empfaengername.pubkey.gpg
2 Du musst also als späterer Empfänger nun den öffentlichen Schlüssel dem ausgewählten Absender übermitteln
Sende nun mit einem EMail-Client (z.B. Thunderbird) dem Mitschüler (dessen PC-Nummer um eins höher liegt als Deine) Deinen öffentlichen Schlüssel empfaengername.pubkey.gpg als
EMail-Anhang.
3 Achtung: Ab hier arbeitest Du in der Rolle als Absender! Du schreibst eine Nachricht und verschlüsselst sie anschließend mit dem öffentlichen Schlüssel, den Du vom späteren
Empfänger erhalten hast.
Erstelle nun mit einem Programm irgendeine (nicht zu große) Datei, z.B. mit einem Texteditor und speichere sie als absendername.nachricht.txt
Empfange nun mit einem EMail-Client (z.B.) Thunderbird vom Mitschüler dessen im Anhang enthaltenen öffentlichen Schlüssel empfaengername.pubkey.gpg und speichere ihn in das
versteckte Verzeichnis .gnupg
4 Verschlüsselung mit dem öffentlichen Schlüssel des Empfängers
Füge nun den öffentlichen Schlüssel des späteren Empfängers zu Deinem (öffentlichen) Schlüsselbund hinzu
gpg --import emfaengername.pubkey.gpg
Verschlüsselt mit dem öffentlichen Schlüssel des späteren Empfängers die Nachricht und speichert die
gpg --encrypt -a --recipient empfaengername@servername
verschlüsselte Nachricht als absendername.nachricht.txt.asc
absendername.nachricht.txt
5 Sende die verschlüsselte Nachricht an den Empfänger
Sende nun mit einem EMail-Client (z.B. Thunderbird) dem Mitschüler (dessen PC-Nummer um eins niedriger liegt als Deine) Deine verschlüsselte Nachricht absendername.nachricht.txt.asc
als EMail-Anhang.
6 Achtung: Ab hier arbeitest Du in der Rolle als Empfänger! Du bekommst eine verschlüsselte Nachricht und entschlüsselst sie mit Deinem öffentlichen und mit Deinem privaten
Schlüssel
Entschlüsselt durch Benutzung des privaten Schlüssels und nur bei Eingabe des Passwort-Merksatzes die
gpg --decrypt -o entschluesselt.txt absendername.nachricht.txt.asc
verschlüsselte Nachricht absendername.nachricht.txt.asc und speichert sie als lesbare Datei entschluesselt.txt
Passwort:
der Merksatz aus Schritt 1
7 Jetzt lässt Du Dir den Inhalt der entschlüsselten Nachricht entschluesselt.txt anzeigen
Zeigt den vom Absender ursprünglich eingegebenen Original-Text an.
cat entschluesselt.txt
3 Ab hier geht's dann wieder weiter mit Schritt 3 - falls man mehreren Empfängern schreiben will, muss man für jeden den jeweiligen Schlüssel importieren.
Listet alle öffentlichen Schlüssel auf, nützlich, um den Überblick zu behalten
gpg --list-keys

Documentos relacionados