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ße Ü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 ß und Ü 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 Ü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 Ü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