lehrkraefte:ks:informatik-glf4-20

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
Last revision Both sides next revision
lehrkraefte:ks:informatik-glf4-20 [2021/05/03 09:25]
Simon Knaus
lehrkraefte:ks:informatik-glf4-20 [2021/05/17 10:47]
Simon Knaus
Line 272: Line 272:
 </hidden> </hidden>
 ===== Datenanalyse und Datenschutz ===== ===== Datenanalyse und Datenschutz =====
-==== L9-L10: Datenanalyse ====+====L7-L8: Meine Daten ==== 
 +Wähle eine App / Firma / Tool deiner Wahl. Versuche herauszufinden, wie du deine Daten herunterladen kannst. Häufig sind Stichworte wie "data request" bei Google hilfreich. 
 +  - Wähle deine App und finde einen Weg, deine Daten herunterzuladen ("data request" als Stichwort bei der Suche ist hilfreich) 
 +  - Wenn du die Daten erhalten hast: Wie sehen diese aus? In welchem Format kommen die Daten daher? Kannst du sie lesen?  
 +  - Welche Fragen könntest du mit diesen Daten bzgl. deines Nutzungsverhalten beantworten? 
 + 
 +==== L9-L12: Datenanalyse ====
 === Ziel === === Ziel ===
 Am Beispiel von Youtube-Daten (Watch-History) können die eigenen Verhaltensmuster mit Excel analysiert werden. Am Beispiel von Youtube-Daten (Watch-History) können die eigenen Verhaltensmuster mit Excel analysiert werden.
 === Aufträge === === Aufträge ===
   - [[https://web.microsoftstream.com/video/ba753801-9ab8-41e4-9c9e-d14fe3ddf4db|Einführungsvideo]] schauen   - [[https://web.microsoftstream.com/video/ba753801-9ab8-41e4-9c9e-d14fe3ddf4db|Einführungsvideo]] schauen
-  - Daten bei Youtube [[https://takeout.google.com/|herunterladen]] und mit diesem Programm [[lehrkraefte:ks:informatik-glf4-20_4blw:extractor|Python-Programm]] ({{lehrkraefte:ks:informatik-glf4-20:youtube-date-extractor.py|deutsche}}/ {{lehrkraefte:ks:informatik-glf4-20:youtube-date-extractor-europe.py|europäische}}) Formatierung in ein CSV konvertieren. Falls keine eigene Daten heruntergeladen werden können, bitte diese {{lehrkraefte:ks:informatik-glf4-20:jan14-history.html|Datei}} verwenden.+  - Daten bei Youtube [[https://takeout.google.com/|herunterladen]] und mit diesem Programm [[lehrkraefte:ks:informatik-glf4-20_4blw:extractor|Python-Programm]] ({{lehrkraefte:ks:informatik-glf4-20:youtube-date-extractor.py|englisches Datumsformat}}/ {{lehrkraefte:ks:informatik-glf4-20:youtube-date-extractor-europe_sommer.py|deutsches Datumsformat}}) Formatierung in ein CSV konvertieren. Falls keine eigene Daten heruntergeladen werden können, bitte diese {{lehrkraefte:ks:informatik-glf4-20:jan14-history.html|Datei}} verwenden.
   - CSV in Excel öffnen    - CSV in Excel öffnen 
     - [[https://web.microsoftstream.com/video/114ca60b-fa45-4b99-bb9e-a62b032fd5c6|Einführungsvideo Excel]] schauen     - [[https://web.microsoftstream.com/video/114ca60b-fa45-4b99-bb9e-a62b032fd5c6|Einführungsvideo Excel]] schauen
Line 291: Line 297:
     * ...     * ...
  
-==== L11-L12: Datenanalyse Instagram ====+====  Datenanalyse Instagram ====
 Analog zur Analyse von Youtube-Daten können auch Instagram-Daten analysiert werden. Zu diesem Zweck müssen die Daten bei Instagram heruntergeladen werden: [[https://www.instagram.com/download/request/|Download-Tool]] (HTML wählen). Analog zur Analyse von Youtube-Daten können auch Instagram-Daten analysiert werden. Zu diesem Zweck müssen die Daten bei Instagram heruntergeladen werden: [[https://www.instagram.com/download/request/|Download-Tool]] (HTML wählen).
   - Lädt diese Daten herunter, entpackt sie und untersucht die heruntergeladenen Daten. Die HTML-Dateien sind miteinander verlinkt und können so navigiert werden.   - Lädt diese Daten herunter, entpackt sie und untersucht die heruntergeladenen Daten. Die HTML-Dateien sind miteinander verlinkt und können so navigiert werden.
   - Kopiert den Code unten in TigerJython und passt den Pfad zum entpackten Ordner oben an. Das Programm funktioniert ähnlich wie die Analyse der Youtube-Watchlist. Es untersucht alle Dateien, und speichert die Zeit wie auch die Art der Handlung auf Instagram. Die Datei ``resultat.csv`` kann dann gleich analysiert werden wie die Youtube-Watchlist.    - Kopiert den Code unten in TigerJython und passt den Pfad zum entpackten Ordner oben an. Das Programm funktioniert ähnlich wie die Analyse der Youtube-Watchlist. Es untersucht alle Dateien, und speichert die Zeit wie auch die Art der Handlung auf Instagram. Die Datei ``resultat.csv`` kann dann gleich analysiert werden wie die Youtube-Watchlist. 
 +
 +<code python insta.py>
 +import re        # Regular Expressions
 +import datetime  # Datum/Zeit 
 +import os        # Files suchen
 +
 +# Erklärungen zu diesem Code sind Analog dem Youtube-Extraktor.
 +
 +rootdir = "C:/pfad/zum/entpackten/instagram/ordner/"
 +
 +# Resultat, das am Schluss geschrieben werden soll
 +csv = ""   # Comma separated values
 +# Wie viele Kontrollausgaben?
 +debug = 10
 +
 +# Alle HTML-Dateien im Verzeicznis anzeigen            
 +for root, dirs, files in os.walk(rootdir):
 +    for file in files:
 +        if file.endswith(".html"):
 +            filepath = os.path.join(root, file) 
 +            # Datei oeffnen
 +            f = open(filepath, "r")
 +            html = f.read()  # Alles einlesen
 +            f.close()        # Datei schliessen
 +            
 +            
 +            # Datum der Form 30.12.2021, 22:13 einlesen
 +            # Alle nötigen Angaben werden in Klammern "ge-captured"
 +            daten = re.findall("(\d{1,2}).(\d{1,2}).(\d{1,4}), (\d{1,2}):(\d{1,2})", html)
 +            if(debug>0):
 +                print(file,": ",len(daten))
 +                debug-=1
 +                   
 +         
 +            # 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],0)
 +
 +                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;"+os.path.splitext(file)[0]+"\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 insta_englisch.py>
 +import re        # Regular Expressions
 +import datetime  # Datum/Zeit 
 +import os        # Files suchen
 +
 +# Erklärungen zu diesem Code sind Analog dem Youtube-Extraktor.
 +
 +rootdir = "C:/pfad/zum/entpackten/instagram/ordner/"
 +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 HTML-Dateien im Verzeicznis anzeigen            
 +for root, dirs, files in os.walk(rootdir):
 +    for file in files:
 +        if file.endswith(".html"):
 +            filepath = os.path.join(root, file) 
 +            # Datei oeffnen
 +            f = open(filepath, "r")
 +            html = f.read()  # Alles einlesen
 +            f.close()        # Datei schliessen
 +            
 +            
 +            # Datum der Form 30.12.2021, 22:13 einlesen
 +            # Alle nötigen Angaben werden in Klammern "ge-captured"
 +            daten = re.findall("([A-Z][a-z][a-z]) (\d{1,2}), (\d{4}), (\d{1,2}):(\d{1,2}) ([AP]M)", html)
 +
 +            
 +            if(debug>0):
 +                print(file,": ",len(daten))
 +                debug-=1
 +                   
 +         
 +            # 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[5]=="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[1], e[0], e[3], e[4],0)
 +
 +                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;"+os.path.splitext(file)[0]+"\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>
 +==== 2. Note: Bewertete Analyse: Abgabe 24. Mai 20121 ====
 +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 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)
 ===== Generelles Python ===== ===== Generelles Python =====
 === Module ==== === Module ====
  • lehrkraefte/ks/informatik-glf4-20.txt
  • Last modified: 2021/05/17 10:48
  • by Simon Knaus