lehrkraefte:ks:informatik-glf4-22-4msi

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:ks:informatik-glf4-22-4msi [2022/04/28 13:39]
Simon Knaus
lehrkraefte:ks:informatik-glf4-22-4msi [2023/03/24 09:00]
Simon Knaus
Line 1: Line 1:
-==== KW 15 ====+==== KW 19 / 20 ==== 
 +=== 2. Note: Bewertete Analyse: Abgabe 20. Mai 2022 um 17:00 auf Teams === 
 + 
 +Dokumentation der eigenen Analyse in einem PDF-Dokument, welches  
 +  - Eine Einleitung enthält, welche 
 +    * Beschreibt (Screenshot; Shortcut: ''PrtScr'' oder ''Alt+PrtScr'') woher die Daten kommen und wie diese aussehen. 
 +    * Beschreibt, welche Daten erhoben werden. 
 +  - Eine Frage formuliert, welche auf Grund von Excel-Analysen (mindestens eine Pivot-Tabelle) der eigenen Daten beantwortet kann. 
 +  - Mindestens eine Analyse der eigenen Daten welche die Frage aus dem vorigen Punkt beantwortet. Z.B. Wann mache ich xxx am häufigsten? 
 +  - Einen Abschnitt, welcher Zusammenfasst, was du in diesem Teil der Informatik gelernt hast, bzgl. 
 +    * Excel 
 +    * Python 
 +    * BigData und sozialen Netzen im Allgemeinen. 
 + 
 +Bewertungskriterien: 
 +   * Nachvollziehbarkeit der Ausführungen und Analysen 
 +   * Dokumentation der Analysen (Erklärungen, Screenshots, etc.) 
 +   * Ausführlichkeit der Analysen 
 +   * Darstellung des Berichts 
 + 
 +=== Tipps Word === 
 +  * ''PrtScr'' erstellt ein Bildschirmfoto  des ganzen Bildschirms in der Zwischenbalge (''CTRL''+''V'' zum Einfügen) 
 +  * ''Alt''+''PrtScrn'' erstellt ein Bildschirmfoto  des aktiven Fensters in der Zwischenbalge (''CTRL''+''V'' zum Einfügen) 
 +  * ''Win''+''PrtScrn'' erstellt ein Bildschirmfoto und speichert es im Bilder-Ordner von Windows 
 +  * ''Win''+''Shift''+''S'' öffnet einen Dialog um ein Bildschirmfoto aufzunehmen und einen Bereich auszuwählen und speichert es dann in der Zwischenbalge (''CTRL''+''V'' zum Einfügen) 
 +==== KW 18 ==== 
 +=== Ziele === 
 +Erste Analysen mit Pivot-Tabellen in Excel deiner Daten von Youtube oder Instagram aus der letzten Lektion. 
 + 
 +=== Auftrag === 
 +  - CSV in Excel öffnen  
 +    - [[https://web.microsoftstream.com/video/114ca60b-fa45-4b99-bb9e-a62b032fd5c6|Einführungsvideo Excel]] schauen 
 +    - Folgende Excel-Funktionen nachlesen resp. ausprobieren: 
 +      - [[https://support.microsoft.com/de-de/office/wochentag-funktion-60e44483-2ed1-439f-8bd0-e404c190949a|Wochentag]] 
 +      - [[https://support.microsoft.com/de-de/office/stunde-funktion-a3afa879-86cb-4339-b1b5-2dd2d7310ac7|Stunde]] 
 +      - [[https://support.microsoft.com/de-de/office/mittelwert-funktion-047bac88-d466-426c-a32b-8f33eb960cf6|Mittelwert]] 
 +    - Spalten erstellen mit den den notwendigen Informationen, z.B. Stunde am Tag, Wochentag, etc. (siehe oben) und diese dann als Excel-Datei speichern. 
 +  - Folgende Fragen mit Filter oder Pivot beantworten: 
 +    * Zu welcher Tageszeit schaue ich am meisten Videos? 
 +    * An welchem Wochentag schaue ich am meisten Videos? 
 +    * Wie viele Videos schaue ich durchschnittlich pro Tag? 
 +    * ... 
 + 
 + 
 +==== KW 17 ====
 === Ziele ===  === Ziele === 
  
Line 5: Line 49:
  
 === Auftrag === === Auftrag ===
-Navigiere zur heruntergeladenen ZIP-Datei, das heisst, geh mit dem Windows-Explorer (Win+E) zu diesem Ornder. Mit einem Rechtsklick kannst du die Datei entpacken.+  * Schau dir das [[https://web.microsoftstream.com/video/4507c9a3-4afe-44c1-acd4-a96cd91c6fb8|Einführungsvideo]] an. 
 +  * Navigiere zur heruntergeladenen ZIP-Datei, das heisst, geh mit dem Windows-Explorer (Win+E) zu diesem Ordner. Mit einem Rechtsklick kannst du die Datei entpacken. 
 +  * Untersuche die heruntergeladene Datei (das heisst, entpacke sie und öffne die enthaltenen Dateien und Ordner) 
 +  * Wähle unten deinen Code für Instagram (deutsch oder englisch) resp Youtube (deutsch oder englisch). Passe den Dateipfad im Code an und führe den Code aus. 
 +  * Überprüfe die erhaltene CSV-Datei in Excel
  
-Wähle unten deinen Code für Instagram (deutsch oder englischresp Youtube (deutsch oder englisch). Passe den Dateipfad im Code an und führe den Code aus.+Hast du keine eigenen Daten kannst du {{lehrkraefte:ks:informatik-glf4-22:jan14-history.html|diese Datei verwenden}} (Rechtsklick -> herunterladen). Für Interessiere: Der Code zur Aufbereitung der Youtube-Daten (Instagram ist analogist in diesem [[https://web.microsoftstream.com/video/4c478e5b-609d-4429-bc20-78b9f8abab93|Video]] erklärt
  
 +**Achtung: ** Entweder ins Homeverzeichnis kopieren (da habt nur ihr Leserechte) oder //unbedingt// nachher wieder permanent löschen (''Shift+Del'').
 === Code === === Code ===
 === Instagram Deutsch === === Instagram Deutsch ===
- 
 <code python insta_detusch.py> <code python insta_detusch.py>
 import re        # Regular Expressions import re        # Regular Expressions
Line 78: Line 126:
         f.write(csv)         f.write(csv)
         f.close()         f.close()
- 
- 
 </code> </code>
 === Instagram Englisch === === Instagram Englisch ===
Line 153: Line 199:
         f.write(csv)         f.write(csv)
         f.close()         f.close()
 +</code>
 +
 +=== Youtube Englisch ===
 +<code python youtube_englisch.py>
 +import re        # Regular Expressions
 +import datetime  # Datum/Zeit 
 +
 +# Erklärungen zu diesem Code gibt es auch als Video hier:
 +# https://web.microsoftstream.com/video/4c478e5b-609d-4429-bc20-78b9f8abab93
 +# und für Datensparsame und solche ohne BLDSG-Account auch hier:
 +# https://fginfo.ksbg.ch/~ivo/videos/informatik/vierte-klasse/daten-extraktion-youtube-watchtime-extraktion.mp4
 +
 +# Daten einlesen
 +# Entweder vollständiger Pfad zur Datei oder (wie z.B. C:\Users\Hansli\Desktop\watch-history.html) oder
 +# nur Dateiname, wenn die Datei im gleichen Verzeichnis wie das Pythonprogramm liegt.
 +f = open("jan14-history.html", "r")
 +html = f.read()  # Alles einlesen
 +f.close()        # Datei schliessen
 +
 +
 +# Datum der Form Jan 6, 2021, 9:23:12 PM CET
 +# Alle nötigen Angaben werden in Klammern "ge-captured"
 +daten = re.findall(r"([A-Z][a-z][a-z]) (\d{1,2}), (\d{4}), (\d{1,2}):(\d{1,2}):(\d{1,2}) ([AP]M) CET", html)
 +
 +#Erste 3 Einträge zur Kontrolle ausgeben
 +print(daten[0:3])
 +
 +# Zuordnung der Monatsnamen zu Monatsnummern, z.B. ist mnum["Jul"] gleich 7
 +mnum = {"Jan":1, "Feb":2, "Mar":3, "Apr":4, "May":5, "Jun":6, "Jul":7, "Aug":8, "Sep":9, "Oct":10,"Nov":11, "Dec":12}; 
 +
 +# Resultat, das am Schluss geschrieben werden soll
 +csv = ""   # Comma separated values
 +
 +# Wie viele Kontrollausgaben?
 +debug = 10
 +
 +# Alle Einträge durchgehen, d enthält jeweils den nächsten Eintrag
 +for d in daten:
 +    # Einträge in Zahlen umwandeln
 +    # Monat plus die anderen Einträge (ohne AM/PM) in Zahlen umgewandelt 
 +    #   Die Zeichenkette "42" ist nicht das gleiche wie die Zahl 42.
 +    e = [mnum[d[0]]] + [int(x) for x in d[1:-1]]
 +    if d[6]=="PM":  # Nachmittag? Plus 12 Stunden (Ausser Mitternacht = 0)
 +        e[3]=(e[3]+12) % 24
 +    
 +    if debug>0:
 +        # Ausgabe zur Kontrolle, sollte folgendes Format Produzieren
 +        print(e) # [1, 6, 2021, 21, 23, 12]
 +        debug -= 1  # Um 1 vermindern
 +
 +    # Datum daraus generieren (macht die Datumsmanipulation einfacher).
 +    # Jahr, Monat, Tag, Stunde, Minute, Sekunde
 +    datum = datetime.datetime(e[2], e[0], e[1], e[3], e[4], e[5])
 +
 +    if debug>0:
 +        # Ausgabe zur Kontrolle, produziert folgendes Format
 +        print(datum)   # 2021-01-06 21:23:12
 +        debug -= 1  # Um 1 vermindern
 +
 +    # Wochentag (Mo=0, Di=1, ..., So=6)
 +    # Sämtliche Methoden für datetime-Objekte sind hier beschrieben: https://docs.python.org/3/library/datetime.html#datetime-objects
 +    wday = datum.weekday()
 +
 +    # Formatierte Ausgabe des Datums, siehe https://www.w3schools.com/python/python_datetime.asp
 +    # \n heisst neue Zeile.
 +    csv += datum.strftime("%Y-%m-%d %H:%M:%S\n" #Das Format soll so angepasst werden, damit die Tabellenkalkulation dann damit umgehen kann.
 +
 +# Ausgabe in Datei schreiben
 +f = open("resultat.csv", "w")
 +f.write(csv)
 +f.close()
 +</code>
 +
 +=== Youtube Deutsch ===
 +<code python youtube_deutsch.py>
 +import re        # Regular Expressions
 +import datetime  # Datum/Zeit 
 +
 +# VERSION FUER DEUTSCHE EXPORTE, Datumsangabe in der Form 09.02.2012, 14:15:59 MEZ
 +
 +# Erklärungen zu diesem Code gibt es auch als Video hier:
 +# https://web.microsoftstream.com/video/4c478e5b-609d-4429-bc20-78b9f8abab93
 +# und für Datensparsame und solche ohne BLDSG-Account auch hier:
 +# https://fginfo.ksbg.ch/~ivo/videos/informatik/vierte-klasse/daten-extraktion-youtube-watchtime-extraktion.mp4
 +
 +# Daten einlesen
 +# Entweder vollständiger Pfad zur Datei oder (wie z.B. C:\Users\Hansli\Desktop\watch-history.html) oder
 +# nur Dateiname, wenn die Datei im gleichen Verzeichnis wie das Pythonprogramm liegt.
 +f = open("Wiedergabeverlauf", "r")
 +html = f.read()  # Alles einlesen
 +f.close()        # Datei schliessen
 +
 +
 +# Datum der Form Jan 6, 2021, 9:23:12 PM CET
 +# Alle nötigen Angaben werden in Klammern "ge-captured"
 +
 +# Datum der Form 09.02.2012, 14:15:59 MESZ
 +daten = re.findall(r"(\d{2})\.(\d{2})\.(\d{4}), (\d{2}):(\d{2}):(\d{2}) ME([S]{0,1})Z", html)
 +
 +
 +#Erste 3 Einträge zur Kontrolle ausgeben
 +print(daten[0:3])
 +
 +# Zuordnung der Monatsnamen zu Monatsnummern, z.B. ist mnum["Jul"] gleich 7
 +mnum = {"Jan":1, "Feb":2, "Mar":3, "Apr":4, "May":5, "Jun":6, "Jul":7, "Aug":8, "Sep":9, "Oct":10,"Nov":11, "Dec":12}; 
 +
 +# Resultat, das am Schluss geschrieben werden soll
 +csv = ""   # Comma separated values
 +
 +# Wie viele Kontrollausgaben?
 +debug = 10
 +
 +# Alle Einträge durchgehen, d enthält jeweils den nächsten Eintrag
 +for d in daten:
 +    # Einträge in Zahlen umwandeln
 +    # Monat plus die anderen Einträge (ohne AM/PM) in Zahlen umgewandelt 
 +    #   Die Zeichenkette "42" ist nicht das gleiche wie die Zahl 42.
 +    e = [int(x) for x in d]
 +
 +    if debug>0:
 +        # Ausgabe zur Kontrolle, sollte folgendes Format Produzieren
 +        print(e) # [1, 6, 2021, 21, 23, 12]
 +        debug -= 1  # Um 1 vermindern
 +
 +    # Datum daraus generieren (macht die Datumsmanipulation einfacher).
 +    # Jahr, Monat, Tag, Stunde, Minute, Sekunde
 +    datum = datetime.datetime(e[2], e[1], e[0], e[3], e[4], e[5])
 +
 +    if debug>0:
 +        # Ausgabe zur Kontrolle, produziert folgendes Format
 +        print(datum)   # 2021-01-06 21:23:12
 +        debug -= 1  # Um 1 vermindern
 +
 +    # Wochentag (Mo=0, Di=1, ..., So=6)
 +    # Sämtliche Methoden für datetime-Objekte sind hier beschrieben: https://docs.python.org/3/library/datetime.html#datetime-objects
 +    wday = datum.weekday()
 +
 +    # Formatierte Ausgabe des Datums, siehe https://www.w3schools.com/python/python_datetime.asp
 +    # \n heisst neue Zeile.
 +    csv += datum.strftime("%Y-%m-%d %H:%M:%S\n" #Das Format soll so angepasst werden, damit die Tabellenkalkulation dann damit umgehen kann.
 +
 +# Ausgabe in Datei schreiben
 +f = open("resultat.csv", "w")
 +f.write(csv)
 +f.close()
 +
 </code> </code>
  
Line 160: Line 352:
  
 === Wege zu Daten === === Wege zu Daten ===
-  * **Instagram**: <<Kopf>> -> Profil -> Privatsphäre und Sicherheit. Format sollte HTML gewählt werden.((JSON wäre praktischer, ist aber <<mühsamer>> um direkt anzuschauen))+  * **Instagram**: Webseite: Mehr -> Deine Aktivität -> Deine Informationen herunterladenAls Format sollte mindestens HTML gewählt werden.((JSON wäre praktischer, ist aber <<mühsamer>> um direkt anzuschauen))
   * **Youtube**: <<Kopf>> -> Meine Daten auf Youtube   * **Youtube**: <<Kopf>> -> Meine Daten auf Youtube
   * Irgendeine andere Platform   * Irgendeine andere Platform
Line 189: Line 381:
     - Wenn-dann-Codes     - Wenn-dann-Codes
   - Vor- und Nachteile Python versus Excel.   - Vor- und Nachteile Python versus Excel.
-==== Beispiel Code ====+=== Beispiel Code ===
 <code python bsp.py> <code python bsp.py>
 from random import randint #nur randint von random importieren from random import randint #nur randint von random importieren
Line 486: Line 678:
 Damit ist die Wahrscheinlichkeit, dass es $k$ Personen gibt, welche ihren Flug antreten  Damit ist die Wahrscheinlichkeit, dass es $k$ Personen gibt, welche ihren Flug antreten 
  
-$$ \mathrm{P}(X=k)=\begin{pmatrix}n\\k\end{pmatrix}\cdot p^k\cdot (1-p)^{n-k}$$+$$ \mathrm{P}(X=k)=\begin{pmatrix}n \\ k\end{pmatrix}\cdot p^k\cdot (1-p)^{n-k}$$
 ==== KW 6 ==== ==== KW 6 ====
 === Ziele === === Ziele ===
  • lehrkraefte/ks/informatik-glf4-22-4msi.txt
  • Last modified: 2023/03/24 09:00
  • by Simon Knaus