GdI 2015 Inhalte
Grobübersicht über die Themen der Vorlesung Stand Sept 2015
JB wird in der kombinierten Vorlesung + Übung in eigenen Worten in das Thema einführen, den Kern anhand von Slides und über Presenter erklären; Zielgruppe: Einsteiger in die Informatik ohen Vorkenntnisse.
Bitte als Vorbereitung zur Vorlesung mindestens die angegebenen-Videos gucken, ggf. auch in die angegebenen Seiten bei GummSommer 'reinlesen - sonst bringt die Vorlesung wenig!
Semesterübersicht WS 2015
Termine:
- 2015-10-20: Arbeitsfähig werden
- 2015-10-27: Zahlencodierung, insbes. Stellenwertsystem, Zweierkomplement
- 2015-11-03: Bool'sche Logik
- 2015-11-10: Zeichencodierung
- 2015-11-17: Diagramme
- 2015-11-24: Automaten (1): theoretische Grundlagen
- 2015-12-01: Automaten (2), Praxis: reguläre Ausdrücke
- 2015-12-08: Sprachen und Automaten (3): NFA -> DFA
- 2015-12-15: Nachklapp: Komplexität; Huffman-Codierung
- 2015-12-22: XML & co.
Noch offen:
- Programmier-Paradigmen
Arbeitsfähig werden
Themen
- Grundlagen selbstgesteuertes Lernens (SGL)
- XUbuntu auf der VirtualBox
-
Rechnerarchitektur zum anfassen: Wir demontieren einen (kaputten) PC. - Aufbau von peer2peer-Hilfe: Wer kann etwas erklären, wer braucht Hilfe?
XUbuntu auf der VirtualBox zum laufen bringen: siehe GdI 2015 XUbuntu
XUbuntu ganz grob kennen lernen:
- passwd
- sudo
Hausaufgabe, im Selbststudium: Rechnerhardware
- Wir bauen einen (alten) Rechner auseinander und benennen die Teile
- Einführung: Loviscach > 01.01 Was ist ein Computer? 7:05
- Lektüre: Gumm/Sommer, Kap 1.5.2-1.5.6, 1.5.9.-1.5.15, 1.6 (z.K.: So sieht ein moderner Rechner aus: Mainboard MacBok Air Da sieht man nichts mehr!)
- Hausaufgabe: alle Begriffe nachschauen
Das Betriebssystem Ubuntu
Ansage meiner email 5.10.2015:
- "springen Sie ins kalte Wasser ;-) und lesen Sie sich etwas in Gumm/Sommer Kapitel 6.4 "Unix" ein. Damit werden wir beginnen!"
Motivation, wo es (auch) hingeht:
-
Herausforderung: Verzeichnis-Listing mit semi-strukturierten Werten per Kommando in eine CSV-Datei überführen;; ls >ls-Horn.txt
-
24_Horn_Trios,_Op.82_(Reicha,_Anton) Horn_Concerto_in_E-flat_major,_K.417_(Mozart,_Wolfgang_Amadeus)
-
-
Mittel der Wahl: reguläre Ausdrücke mit sed;
Horn2cvs.sed :
-
s/\(.*\)_(\(.*\))/\1 ;\2/g
-
-
wir basteln ein Kommando:
Horn2cvs.sh:
-
#!/bin/bash ls $1 > ls.txt sed -f Horn2cvs.sed ls.txt >$1/ls.cvs
-
außerden ggf. zeigen:
- Verzeichis-Baum (home, tmp, bin ...), symlinks
- Dateinamen: besser nur ascii (öäü sind böse), aber eigentlich ist utf-8 ok
- cd, ls, rm, chmod 755, s-bit, kill -9, su, sodo, du, df, mount, umount, vi, jedit, emacs
-
bash-startskripte
- z.B. für alle Lieblingsanwendungen
- Umgebung erstellen, pfade finden, z.B. $PATH
- Prozesse starten, beobachten (auslastung, top...)
- sudo
Zahlencodierung
Stellenwertsystem, insbes. Binärsystem ÜBUNG JB
-
Loviscach >
- 04.07 Stellenwertsysteme, Binärsystem
-
Gumm/Sommer:
- 1.2.2 Bitfolgen
- 1.2.3 Hexziffern
- 1.4 Zahlendarstellungen
-
Nazareth/Scholz
- 57-65
Loviscach | Gumm & Sommer | Nazareth & Scholz |
---|
Addition in verschiednene Stellenwertsystemen SELBSTSTUDIUM
-
Loviscach >
- 05C.4 Beispielrechnungen mit Zweierkomplement 13:30
-
Gumm/Sommer:
- 1.4.5 Arithmetische Operationen
-
Nazareth/Scholz
- 66-69
Umwandlung Dezimal-Binär ÜBUNG JB
- Gumm/Sommer: 1.4.4 Umwandlung in das Binär-, Oktal- oder Hexadezimalsystem ÜBUNG JB
-
Nazareth/Scholz
- 65
2er Komplement ÜBUNG JB
-
"Bilde das bitweise Komplement und addiere 1"
- z.B. 12 = 0000 1100, Invertieren: 1111 0011, addiere 1: 1111 0100 = -12
- z.B. -12 = 1111 0100, invertieren: 0000 1011, addiere 1: 0000 1100 = 12
-
Loviscach >
- 01.02 Binärsystem, Bit 5:17
- 05.01.1 Ganzzahlige Typen, Zweierkomplement 14:11
- 05.01.2 weiter Zweierkomplement 6:11
- 05C.1 Zweierkomplement und Überlauf 25:32
-
Gumm/Sommer:
- 1.4.7 Die Zweierkomplementdarstellung
-
Nazareth/Scholz
- 71-81
auswendig, "sehen":
- hex-Zahlen zwischen 10 und 15
- 1111 1111, FF, 0F,
SELBSTSTUDIUM: einige primitive Datentypen in C
-
Loviscach >
- 05.01.1 Ganzzahlige Typen, Zweierkomplement 14:11
- 05.01.2 weiter Zweierkomplement 6:11
- 05.02 signed und unsigned char, short, int, long, long long 13:39
-
Gumm/Sommer:
- 1.4.8 Standardformate ganzer Zahlen
-
Nazareth/Scholz
- 82
Boolsche Logik
Vl 2015-11-03
Organisation
- Die SKB sucht Helfer: http://www.haw-landshut.de/skb
2.11.2015 (=gestern): 200 Jahre Geburtstag von George Boole [ˌdʒɔːdʒ ˈbuːl] in Lincoln, England. ( http://www.spiegel.de/wissenschaft/mensch/200-geburtstag-von-george-boole-der-mann-der-uns-die-online-suche-ermoeglichte-a-1060614.html )
Einführung JB: Strukturalistische Theoriekonzeption nach W. Stegmüller einfach erklärt:
- Vom Logos über die naive Mengenlehre zur formalen Logik.
- Quintessenz: Formale Logik ist ein Glasperlenspiel, das mit Logik oder Denken wenig zu tun hat - um so mehr lieben wir es als Gamer!
- Und so funktioniert formale Logik.
Algebraische Vereinfachung aussagenlogischer Ausdrücke (insbes. de Morgan)
-
Loviscach >
- 03.05.2 Rechenregeln, Wahrheitstabelle 5:19
- 03.05.1 Rechenregeln für Mengen und Logik, De-Morgan-Gesetze 10:53
- 03.06.1 Mengenbildung durch Auswahl; Kreisscheibe 10:29
-
Einführung in die Mengenlehre zum Selbststudium:
-
(
Slides JB
)
- Cramer & Neslehova: Vorkurs Mathematik, Springer 2015
- http://bibaccess.fh-landshut.de:2052/book/10.1007%2F978-3-662-46400-7
-
Nazareth/Scholz
- 168-171
KV-Diagramme
- Erklärung in der Vl
- zum Nachhören / vertiefen:
Ausblick First Order Logic: Exists, Forall
Übung 2015-11-10
- Was heißt "vereinfachen" in der Logik? DNF vs. KNF (HINWEIS: Auch wenn Sie wissen müssen, was eine KNF ist: In der Klausur kommt nur die DNF 'dran.)
- Logik-Auswerter: http://logik.phl.univie.ac.at/~chris/gateway/formular-zentral.html
Zeichencodierung
Einführung JB in ascii, iso-8859-1, unicode, utf-16, utf-8
-
Nazareth/Scholz
- 83-91
- Hinweis: Folie 88 ist fehlerhaft;
-
unicode vs. utf-8:
- unicode: digitaler Code für (derzeit ca. 120.000) Schriftzeichen ( https://de.wikipedia.org/wiki/Unicode )
-
utf-8:
"eine Methode, Unicode-Zeichen auf Folgen von Bytes abzubilden":
- https://de.wikipedia.org/wiki/Unicode_Transformation_Format
- https://de.wikipedia.org/wiki/UTF-8
- Verwendung: Internet-Protokolle, insbes. Websites
- utf-16: ähnlich utf-8, aber 16 Bit; Verwendung intern z.B. in Java
Zum Nachlesen:
- https://wiki.selfhtml.org/wiki/Zeichenkodierung
- http://www.w3.org/International/questions/qa-what-is-encoding
- Zeichtabellen: http://www.w3schools.com/charsets/ref_html_utf8.asp
- Unicode in html5: http://www.utf8-zeichentabelle.de/unicode-utf8-table.pl?number=1024&htmlent=1
Praxis: Zeichencodierung in Websites, CSV-Dateien u.V.m.
Praxis: Dateiformate
- "einfache" Formate txt | csv | html + embedded css <p style="color:#336699"> ... </p> | xml
- Archiv-Formate zip, tar, tgz
Nachklapp 2015-12-15: Huffman-Codierung
Exkurs:Wie viele Bytes haben 16 Gigabyte RAM / hat ein USB-Stick mit 16 GB?
-
Loviscach >
- 01D.1 Bit, Byte, Kilobyte, Beispielrechnungen 3:12
- Gumm/Sommer: 1.2.6 Datei- und Speichergrößen
Diagramme
Vorbereitung
- Zum ausführlichen Einlesen und Nachlesen:
- Empfehlung Graphen-Editor:
- Bitte ausgedruckt mitbringen an der Vl 2015-11-17: https://moodle.haw-landshut.de/mod/resource/view.php?id=14716
Übersicht über UML anhand des OOSE-Plakats http://www.oose.de/downloads/uml-2-Notationsuebersicht-oose.de.pdf :
-
Fluss-Diagramm:
- https://de.wikipedia.org/wiki/Programmablaufplan
- Loviscach > 02.06_7 Flussdiagramm, Struktogramm 9:57
-
UML-Diagrammtypen; für uns interessant:
- Strukturdiagramme, z.B. Klassendiagramm
-
Verhaltensdiagramme, z.B.
- Zustandsdiagramm
- Aktivitätsdiagramm (Basis: Petrinetze)
- Sequenzdiagramm
- Idee der Metamodellierung: https://de.wikipedia.org/wiki/Unified_Modeling_Language#Metamodellierung
JB: Einzelne UML-Elemente vergleichen mit jbusse.de > traktate > Meta-Ontologie für die Begriffsbildung
Anwendung:
Üben zuhause: Übungs-Test Diagramme: UML, ER
ggf. Ausblick: Datenmodelle
Das Daten-(Meta-)Modell Frames
- Klassen und Instanzen
- SUBCLASS vs. PART
- Vererbung
- Klassen-Diagramme
Das Daten-(Meta-)Modell RDF
- Resourcen, Werte, data properties, data, object properties, objects
- ER-Diagramme
Sprachen und Automaten (2), Praxis: reguläre Ausdrücke
2015-11-24
Ansagen
- Mini-Tutorium für Klausurnachholer und Zuspätkommer: Tutorium Fr 2015-11-27, 9-11 Uhr, ZH 003
- Für die kommende Woche VirtualBox und die XUbuntu-Maschine ans Laufen bekommen! VirtualBox braucht ggf. einen Update auf 4.2.34?
Online:
- Hinweis:: Wir verwenden extended Regex, nicht die (veralteten) basicg regex.
- Turorials gibt es viele online, auch von Usern für User, z.B.
- kompakte Übersicht:
- https://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck#Regul.C3.A4re_Ausdr.C3.BCcke_in_der_Praxis
- regex testen: https://regex101.com/
2015-12-01
Nachreferieren:
- Epsilon-Übergang im NDA
- regex: Anker, insbes. "$", "^", "\b"
- Moore- Automat und Mealy-Automat
Üben in der Vl
- Mini-Graphen, zu übersetzen in regex: fa_2015-12-01.pdf
-
regex, zu übesetzen in Graphen:
- a*b a+b ab* ab+ ab? a?b
- a(b|c)*b ...
-
Suchen und Ersetzen mit dem Unix Stream Editor SED
- https://www.tty1.net/sed-tutorium/sed-tutorium.html siehe dort auch > Tabelle 2.1. Erweiterte Reguläre Ausdrücke (Extended Regular Expressions) Regulärer Ausdruck
Übern zuhause: Übungstest Regex und Automaten
Idee Klausur: regex und Automaten: Aufgabentypen, feinschrittig differenziert
- idealerweise: Erklärung der regex-Operatoren mit Graphen?
-
regex in sed-Notierung (extended RE, nicht basic RE)) + String zeigen
- erkannte Substrings markieren lassen: gut machbar z.B. mit einem Text, der TelNr, Kto-Nr, ISBN enthält
- Ausgabe hinschreiben lassen? SCHWER KORRIGIERBAR
- MC: welche Strings werden erkannt / markiert?
-
regex hinschreiben
- Syntaxfehler korrigieren lassen
- Semantik verbessern lassen? SCHWER KORRIGIERBAR
Sprachen und Automaten (1): theoretische Grundlagen
Theorie: Was können Automaten? Viel. Aber sie können nicht z.B. das Klammerproblem lösen. Deshalb gibt es mächtigere Formalismen, nämlich insbes. Gumm/ Sommer Kap 9.3.1: Kontextfreie Grammatiken
- JB zeigen, erklären; Slides: https://moodle.haw-landshut.de/mod/resource/view.php?id=15665
Sprachen und Automaten (3): NFA -> DFA
im Detail an einem Beispiel gezeigt: ein Verfahren, um einen NFA in einen DFA umzuwandeln:
- https://de.wikipedia.org/wiki/Potenzmengenkonstruktion
- http://web.cecs.pdx.edu/~harry/compilers/slides/LexicalPart3.pdf
- Begriffe: Adjazenzmatrix | transitive Hülle | Epsilon-Übergang
Wie sieht die Klausur aus? Ungefähr so: GdI_Beispiel-Klausur_2015-12-08.pdf
Nachklapp: Komplexität; Huffman-Codierung
Komplexität:
- Slides: https://moodle.haw-landshut.de/mod/resource/view.php?id=16768
- Visualisierungen Sortieralgorithmen
Nachklapp 2015-12-15: Huffman-Codierung
XML & co.
Vorlesung in der Weihnachtswoche: Für Interessierte, nur mit sehr wenigen Punkten klausurrelevant
Thema: Grundideen von XML, XPATH, XSLT
Vortragsgrundlage: Tutorials von http://zvon.org/:
- XML: http://zvon.org/xxl/XMLTutorial/General_ger/book.html ("retro", aber nach wie vor eine hervorragende Einführung, in deutsch)
-
XPATH Einführung:
- https://de.wikipedia.org/wiki/XPath
- Visualisierung der *Achsen*: Google nach "xpath axis"; finde z.B. die Abb. plus Erklärung auf http://www.iro.umontreal.ca/~lapalme/ForestInsteadOfTheTrees/HTML/ch04s01.html
- XPATH ausprobieren: nebeneinanderlegen von
-
XSLT
- Warum XSLT: http://www.yegor256.com/2014/06/25/xml-and-xslt-in-browser.html
- XSLT 1 Tutorial: http://zvon.org/xxl/XSLTutorial/Output_ger/index.html
Internet
ISO/OSI Modell
Protokolle
- http, https, ssh, telnet, ftp, mailto
firefox
- Privacy
- Cookies
- ghostery etc.
client-server
- imap, pop3, smtp mit thunderbird
- einen webserver mit Daten befüllen
Programmier-Paradigmen
Typen von Programmiersprachen
- prozedural Basic, C
- prozedural objektorientiert Java, C++
-
Loviscach >
- 02.04.1 Zoo der Programmiersprachen 8:42
- 02.04.4 Pseudocode 1:49
- 02.05 imperative Programmiersprachen, Skriptsprachen, dynamische Typisierung 9:26
-
Nazareth/Scholz
- 145-163