lehrkraefte:ks:informatik-glf4-23-4fnp

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-23-4fnp [2023/02/10 08:21]
Simon Knaus
lehrkraefte:ks:informatik-glf4-23-4fnp [2023/05/15 15:37] (current)
Simon Knaus
Line 1: Line 1:
 ===== Progamm ===== ===== Progamm =====
-<!-- +==== KW 17 ==== 
-==== KW 7 ====+ 
 +=== Ziele ===  
 +  * Vorträge sind vorbereitet 
 + 
 +=== Aufträge === 
 +  * Bildet Gruppen von **maximal 3** Personen und wählt euch ein Thema und notiert dies an der Wandtafel. 
 +  * Bearbeitet das Thema und bereitet eine kurze Präsentation (s.u.) für nächstes Mal vor. 
 + 
 + 
 +=== Bewertungskriterien und Rahmenbedingungen Voträge === 
 +== Form == 
 +Wir haben 8 Voträge für 90 Minuten: Maximale Dauer eines Votrags 10 Minuten. 
 +Präsentationstechnik und -medium sind frei wählbar. 
 + 
 +== Bewertungskriterien == 
 +  * Kurzweiligkeit des Vortrages (50%) 
 +  * Klarheit des Votrages (25%) 
 +  * Vollständigkeit der Beantwortung der Leitfragen (siehe [[lehrkraefte:ks:informatik-glf4-23-4iw#kw_17|letztes Mal]]) (25%) 
 + 
 +== Vortragsinhalte == 
 +  - [[https://chat.openai.com/|ChatGPT]] 
 +  - [[https://www.midjourney.com/|Midjourney]] (braucht Discord-Account) 
 +  - [[https://labs.openai.com/|DALL-E 2]] 
 +  - [[https://www.bing.com/new|BingChat]]  
 +  - [[https://www.perplexity.ai/|Perplexity AI]] 
 +  - [[https://beta.elevenlabs.io/|Eleven Labs]] 
 +  - [[https://www.d-id.com/|D-ID]] 
 +  - [[https://www.nytimes.com/2023/04/19/arts/music/ai-drake-the-weeknd-fake.html|Fake Drake]] (Kein Tool, aber eine Reihe von Tools; Artikel ggf. bei [[https://bldsg-my.sharepoint.com/:b:/r/personal/simon_knaus_ksbg_ch/Documents/streammovies/literature/An%20AI%20Hit%20of%20Fake%20%E2%80%98Drake%E2%80%99%20and%20%E2%80%98The%20Weeknd%E2%80%99%20Rattles%20the%20Music%20World%20-%20The%20New%20York%20Times.pdf?csf=1&web=1&e=jV4ppB|PDF]]) 
 + 
 +== Leitfragen == 
 +Für jedes Thema sollen die folgenden vier Fragen beantwortet werden: 
 +  * Was ist der Zweck des KI-Tools und wie funktioniert es? 
 +  * Was sind die mögliche Vor- und Nachteile der Verwendung des KI-Tools? 
 +  * Wie genau und zuverlässig ist das KI-Tool, und welche Faktoren beeinflussen die Resultate? 
 +  * Welche Auswirkungen (Geschäftsmodelle, Ethik, Politik, etc.) könnte der Einsatz des KI-Tools haben? 
 + 
 + 
 + 
 + 
 +==== KW 16 ==== 
 +=== Ziele === 
 +Bericht ist beendet. 
 +=== Eckpunkte Bericht === 
 +<WRAP alert center  round 70%> 
 +**Abgabe Bericht: ** Bis 8.5.2023 um 20:00 auf SharePoint abgeben.  
 +</WRAP> 
 + 
 +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. 
 +  - Bonus: Einen Abschnitt (mindestens 1000 Zeichen inkl. Lehrschläge) zur Frage <<Wie stehen Social Media, Demokratie und Gesundheit zueinander>>. Falls dir die Thematik neu ist, lies dir die nachfolgenden Artikel durch. Ihr könnt auch einen Text zu viert abgeben. Damit kann jede:r eine Quelle lesen und ihr könnt einen Abschnitt (zu 1000 Zeichen) abgeben.  
 +    - https://www.nzz.ch/feuilleton/juergen-habermas-warnt-soziale-netzwerke-gefaehrden-die-demokratie-ld.1702434 oder als [[https://bldsg-my.sharepoint.com/:b:/r/personal/simon_knaus_ksbg_ch/Documents/streammovies/literature/nzz_habermas.pdf?csf=1&web=1&e=yrbdRN|PDF]] 
 +    - https://www.mdr.de/wissen/medien-und-demokratie-100.html 
 +    - https://www.tagesanzeiger.ch/eine-demokratie-destabilisieren-team-jorge-machts-ab-6-millionen-396187159107 oder als [[https://bldsg-my.sharepoint.com/:b:/r/personal/simon_knaus_ksbg_ch/Documents/streammovies/literature/ta_jorge.pdf?csf=1&web=1&e=aIdRl0|PDF]] 
 +    - https://www.ft.com/content/0e2f6f8e-bb03-4fa7-8864-f48f576167d2 oder als [[https://bldsg-my.sharepoint.com/:b:/r/personal/simon_knaus_ksbg_ch/Documents/streammovies/literature/ft_twenge.pdf?csf=1&web=1&e=4DYsik|PDF]] 
 + 
 +Bewertungskriterien: 
 +   * Nachvollziehbarkeit der Ausführungen und Analysen 
 +   * Dokumentation der Analysen (Erklärungen, Screenshots, etc.) 
 +   * Ausführlichkeit der Analysen 
 +   * Darstellung des Berichts 
 +   * Stringenz der Argumentation 
 + 
 +=== 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) 
 +=== Abgabe Format === 
 +Bitte Bericht im **PDF**-Format auf dem Sharepoint-Abgabe-Ordner abgeben. Dateiname ''vorname_nachname_bericht_bigdata.pdf''. Der Dateiname muss **genau** so gewählt werden. 
 + 
 + 
 + 
 +==== KW 13 ==== 
 +=== Ziele === 
 +Erste Analysen mit Pivot-Tabellen in Excel deiner Daten von Youtube oder Instagram aus der letzten Lektion. 
 + 
 +=== Auftrag === 
 +  - [[lehrkraefte:ks:informatik-glf4-23-4iw#knaus_best-of-_excel-_shortcuts|Shortcuts]] nochmals durchlesen und **verwenden**. 
 +  - CSV von letzter Woche 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? 
 +    * Gibt es Unterschieden zwischen Ferien- und Schulzeit? 
 +    * Eigene Fragen geben mehr Punkte. 
 + 
 +==== KW 12 ==== 
 +=== Ziele ===  
 + 
 +Du kennst deine Daten aus Instagram oder Youtube und hast sie in strukturierter Form in Excel vorliegen. 
 + 
 +=== Auftrag === 
 +  * 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 
 + 
 +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 analog) ist in diesem [[https://web.microsoftstream.com/video/4c478e5b-609d-4429-bc20-78b9f8abab93|Video]] erklärt 
 + 
 +<WRAP alert center  round 70%> 
 +**Achtung: ** Entweder ins Homeverzeichnis kopieren (da habt nur ihr Leserechte) oder //unbedingt// nachher wieder permanent löschen (''Shift+Del''). 
 +</WRAP> 
 +=== Code === 
 +=== Spotify === 
 +<code python spotify.py> 
 +import re        # Regular Expressions 
 +import datetime  # Datum/Zeit  
 +import os        # Files suchen 
 +import json 
 +# Erklärungen zu diesem Code sind Analog dem Youtube-Extraktor. 
 + 
 +rootdir = "C:/Users/Simon.Knaus/OneDrive - Kt. SG BLD/ksbg/Informatik/bigdata/spotify_data" 
 + 
 +# Resultat, das am Schluss geschrieben werden soll 
 +csv = ""   # Comma separated values 
 +# Wie viele Kontrollausgaben? 
 +debug = 100 
 + 
 +# Alle HTML-Dateien im Verzeicznis anzeigen             
 +for root, dirs, files in os.walk(rootdir): 
 +    for file in files: 
 +        if file.endswith(".json"): 
 +            filepath = os.path.join(root, file)  
 +            # Datei oeffnen 
 +             
 +            f = open(filepath, "r"
 +            #html = f.read()  # Alles einlesen 
 +            data=json.load(f) 
 +            print(data) 
 +            f.close()        # Datei schliessen 
 + 
 +            for d in (data): 
 +                # 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. 
 +             
 + 
 +                # Datum daraus generieren (macht die Datumsmanipulation einfacher). 
 +                # Jahr, Monat, Tag, Stunde, Minute, Sekunde 
 +     
 + 
 +                if debug>0: 
 +                    # Ausgabe zur Kontrolle, produziert folgendes Format 
 +                    print(d["endTime"])   # 2021-01-06 21:23:12 
 +                    debug -= 1  # Um 1 vermindern 
 + 
 + 
 +                # Formatierte Ausgabe des Datums, siehe https://www.w3schools.com/python/python_datetime.asp 
 +                # \n heisst neue Zeile. 
 +                csv += str(d["endTime"])+";"+str(d["msPlayed"])+"\n" 
 + 
 +            # Ausgabe in Datei schreiben 
 +        f = open("resultat_spotify.csv", "w"
 +        f.write(csv) 
 +        f.close() </code> 
 +== Twitter == 
 + 
 +<code python twitter.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:/Users/Simon.Knaus/OneDrive - Kt. SG BLD/ksbg/Informatik/bigdata/twitter/data" 
 + 
 +# Resultat, das am Schluss geschrieben werden soll 
 +csv = ""   # Comma separated values 
 +# Wie viele Kontrollausgaben? 
 +debug = 100 
 + 
 +# Alle HTML-Dateien im Verzeicznis anzeigen             
 +for root, dirs, files in os.walk(rootdir): 
 +    for file in files: 
 +        if file.endswith(".js"): 
 +            filepath = os.path.join(root, file)  
 +            # Datei oeffnen 
 +            f = open(filepath, "r"
 +            html = f.read()  # Alles einlesen 
 +            f.close()        # Datei schliessen 
 + 
 + 
 +            # Datum der aus zwei verschiedenen Formaten einlesen 
 +            # Alle nötigen Angaben werden in Klammern "ge-captured" 
 +            daten = re.findall("(\d{1,4})-(\d{1,2})-(\d{1,2})T(\d{1,2}):(\d{1,2}):(\d{1,2}).000Z", html) 
 +            daten2 = re.findall("(\d{1,4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})", html) 
 +            #print(daten2) 
 +            #print(daten2) 
 +             
 +            if(debug>0): 
 +                print(file,": ",len((daten+daten2))) 
 +                debug-=1 
 + 
 + 
 +            # Alle Einträge durchgehen, d enthält jeweils den nächsten Eintrag 
 +            for d in (daten2+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[0], e[1], e[2], 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 
 + 
 + 
 +                # 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_twitter.csv", "w"
 +        f.write(csv) 
 +        f.close() 
 +</code> 
 +== Snapchat == 
 +<code python snapchat.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:/Users/Simon.Knaus/OneDrive - Kt. SG BLD/ksbg/Informatik/bigdata/mydata_1678177023208/html" 
 + 
 +# Resultat, das am Schluss geschrieben werden soll 
 +csv = ""   # Comma separated values 
 +# Wie viele Kontrollausgaben? 
 +debug = 30 
 + 
 +# 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,4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2}) UTC", 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[0], e[1], e[2], 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 
 + 
 + 
 +                # 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_snapchat.csv", "w"
 +        f.write(csv) 
 +        f.close() 
 +</code> 
 +== Instagram Deutsch == 
 +<code python insta_deutsch.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 
 +             
 +                 
 +                # 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> 
 +== Instagram Englisch == 
 +<code python 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> 
 + 
 +== 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("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" 
 + 
 +# 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}) MESZ", 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> 
 +==== KW 11 ==== 
 + 
 +Lade deine Daten bei Youtube, Instagram, o.ä. herunter resp. beantrage das Herunterladen. Trage dann [[https://forms.office.com/r/UGDmxD7XzG|hier]]  ein, wo du die Daten <<bestellt>> hast. 
 + 
 +Üblicherweise kannst du deine Daten in HTML und JSON herunterladen. HTML (i.e., Webseiten-Format) kann direkt angeschaut werden JSON ist einfacher weiterzuverarbeiten. 
 + 
 +Achtung: Die Daten können sehr gross sein, dass sie unter Umständen kein Platz in deinem Home-Verzeichnis haben. 
 +Dazu entweder 
 +  * Home-Verzeichnis löschen 
 +  * Oder, auf dem Laufwerk C ein Ordner (z.B. ''temp'') oder auf einen Memorystick erstellen und dann den Ziel-Speicherordner des Downloads (s.u.) anpassen. 
 + 
 +<hidden Download-Location anpassen> 
 +{{ :lehrkraefte:ks:informatik-glf4-23:download_change.png?400 |}} 
 +</hidden> 
 + 
 +Wenn du die Daten nicht <<findest>>, schau dir die Tipps unten an. 
 +<hidden Tipps> 
 +  * **Instagram**: Webseite: Mehr -> Deine Aktivität -> [[https://www.instagram.com/download/request|Deine Informationen herunterladen]]. Als Format sollte mindestens HTML gewählt werden.((JSON wäre praktischer, ist aber <<mühsamer>> um direkt anzuschauen)) 
 +  
 +  *  **YouTube**: Ist Teil von Googles Data-Takeout Portal: [[https://takeout.google.com/|Takeout Portal]]. Bei YouTube (unten) Verlauf wählen und wiederum mindestens HTML herunterladen.((JSON wäre praktischer, ist aber <<mühsamer>> um direkt anzuschauen)) 
 +  * **SnapChat**: Bei Snapchat ider Download bei der Privatsphäre untergebracht, schliesslich bei [[https://accounts.snapchat.com/accounts/downloadmydata?lang=de-DE]] 
 +  * Irgendeine andere Platform 
 +</hidden> 
 + 
 +<WRAP alert center  round 70%> 
 +**Achtung**: Die Daten sind für alle einsehbar, wenn sie nicht im persönlichen Home-Verzeichnis sind! Ggf. nachher wieder löschen. 
 +</WRAP> 
 +Fordere die Daten an und trage im [[https://forms.office.com/r/UGDmxD7XzG|Formular]] ein, welche Daten du angefordert hast. Hast du mehrere Daten angefordert, kannst du diese mehrfach eintragen. 
 + 
 +== Ressourcen == 
 +  * Weniger reisserische Kurz-Dokumentation von ARD zu [[https://www.ardmediathek.de/video/planet-wissen/der-fall-cambridge-analytica/wdr/Y3JpZDovL3dkci5kZS9CZWl0cmFnLTY5N2RmYTYwLTA1ZTktNGY0Ni1hZTg1LWQyYmY0Njk1YTNmNw|Cambridge Analytica]] 
 +  * Forschung zu neurologischen Effekten von Likes in einer [[https://www.cdmc.ucla.edu/wp-content/uploads/sites/170/2019/12/The-Power-of-the-Like-in-Adolescence-Effects-of-Peer-I....pdf|wissenschaftlichen Publikation]]. 
 +  * [[https://www.theguardian.com/global/2021/aug/22/how-digital-media-turned-us-all-into-dopamine-addicts-and-what-we-can-do-to-break-the-cycle|Artikel des Guardians]] zum Thema Abhängigkeit und Social Media. 
 +==== KW 10 ==== 
 +=== Ziele === 
 +  * Jede:r hat die wichtigsten Konzepte und Funktionen (siehe Aufträge letzte Woche) festgehalten 
 +  * Jede:r kann Vor- und Nachteile einer Simulation in Excel benennen. 
 +  * Jede:r kennt die wichtigsten Shortcuts in Excel. 
 + 
 +=== Aufträge === 
 +  * Aufträge von letzter Woche abschliessen. 
 +  * Klassendiskussion anfangs L2 [[https://padlet.com/simon_knaus1/mru1qk8851ll3l5j|Padlet]]  
 +  * Shortcuts: 
 +    * Excel: Erstelle eine Excel-Datei mit Inhalten in den Zellen ''D3'' bis ''F11''. Platziere nachher den Cursor in eine der Zellen und versuche die Shortcuts unten durch. 
 +    * Windows resp. Word: Navigiere zu [[https://www.un.org/en/about-us/universal-declaration-of-human-rights|Menschenrechten]] und schreibe Artikel 5 und Artikel 17 ab in Winword ab. Nutze dabei Shortcuts und/oder Bildschirmaufteilung. 
 +    * Stelle deinem/deiner Nachbar:in einen Challenge. 
 +    * Notiert gemeinsam einen Challenge für die Klasse auf [[https://padlet.com/simon_knaus1/shortcut-padlet-zuwq7861ykbg4tok|diesem Padlet]]. Die Lösungen (Shortcut-Abfolge) können die anderen Gruppen als Kommentare verfassen. 
 +  * Welche SocialMedia-Plattformen nutzt du? Bitte [[https://forms.office.com/Pages/ResponsePage.aspx?id=vUGvXYwzEUOxsOEpmInDS12XSwf-80xHjgGMQjpEmz9UNEo1WU5DNTdPNDdNQkhVRVQyMURRV0JOOCQlQCNjPTEu|hier]] beantworten. 
 + 
 + 
 +=== Knaus' Best-of-Shortcuts === 
 +Generelles: 
 +  * **Shift** ändert die Richtung oder markiert. Im Browser mit mehreren Tabs z.B. Ctrl+Tab und Ctrl+Shift+Tab ausprobieren. 
 +  * **Ctrl** fügt hinzu oder springt Wortweise. Im Text z.B. mit Ctrl+Pfeilen ausprobieren und Ctrl+Shift+Pfeilen. 
 +  * **Alt** zeigt bei Office-Applikationen verfügbare Shortcuts an. Zusammen mit den Pfeiltasten kann man im Browser und Dateimanager vor- und zurücknavigieren. 
 + 
 + 
 +|^ Shortcut |      ^ Beschreibung  |   
 +|Win+D | Desktop anzeigen| 
 +|Alt+Tab | Zwischen Applikationen wechseln| 
 +|Win+Tab | Zwischen Applikationen wechseln mit Desktop Übersicht| 
 +|Win+Crtl Links / Rechts | Zwischen virtuellen Desktops wechseln| 
 +|Win+Pfeiltasten | Minimieren / Maximieren Split Links/Rechts| 
 +|Win+Q | Startmenü mit Suchfeld aufrufen| 
 +|Win+R | Eingabeprompt, z.B. wenn Name der Applikation bekannt, diesen eingeben, e.g., ''winword''.| 
 +|Win+E | Explorer Anzeigen| 
 +|Esc | Aktuelle Eingabe verlassen o.ä., z.B. in Excel von den Menüs zur Tabelle wechseln.| 
 +|Alt+F4 | Applikation schliessen | 
 +|Ctrl+W | Dokument/Fenster schliessen| 
 +==== KW 9 ====
 === Ziele === === Ziele ===
 +  * Jede:r kennt die wichtigsten (Excel-)Shortcuts.
   * Jede:r kann mit Excel Zufallszahlen simulieren und visuell darstellen, wie die untersuchte Grösse sich mit zunehmender Anzahl Versuche stabilisiert.   * Jede:r kann mit Excel Zufallszahlen simulieren und visuell darstellen, wie die untersuchte Grösse sich mit zunehmender Anzahl Versuche stabilisiert.
   * Jede:r kann eine Aussage darüber treffen, wann sich die Simulation einer Zufallsgrösse stabilisiert.   * Jede:r kann eine Aussage darüber treffen, wann sich die Simulation einer Zufallsgrösse stabilisiert.
Line 8: Line 667:
  
 === Aufträge === === Aufträge ===
 +  * Shortcuts in Excel: Erstelle eine Excel-Datei mit irgendwelchen Inhalten in den Zellen ''D3'' bis ''F11''. Platziere nachher den Cursor in eine der Zellen und versuche die Shortcuts unten durch.
   * Warm-up resp. Intermezzo   * Warm-up resp. Intermezzo
     * Betrachte das [[https://bldsg-my.sharepoint.com/:v:/r/personal/simon_knaus_ksbg_ch/Documents/streammovies/glfinfo4/Zellbez%C3%BCge%20in%20Excel_%20Fixieren%20und%20Benennen.mp4?csf=1&web=1&e=n5nZyr|Video zu Referenzieren in Excel]]: Wie kann über Blätter hinweg referenziert werden und wie Zellen fixiert werden.     * Betrachte das [[https://bldsg-my.sharepoint.com/:v:/r/personal/simon_knaus_ksbg_ch/Documents/streammovies/glfinfo4/Zellbez%C3%BCge%20in%20Excel_%20Fixieren%20und%20Benennen.mp4?csf=1&web=1&e=n5nZyr|Video zu Referenzieren in Excel]]: Wie kann über Blätter hinweg referenziert werden und wie Zellen fixiert werden.
Line 43: Line 703:
 $$ \mathrm{P}(X=k)=C(n,k) \cdot p^k\cdot (1-p)^{n-k}$$ $$ \mathrm{P}(X=k)=C(n,k) \cdot p^k\cdot (1-p)^{n-k}$$
 wobei $C(n,k)=\frac{n!}{k!\cdot (n-k)!}$ ist. wobei $C(n,k)=\frac{n!}{k!\cdot (n-k)!}$ ist.
--->+ 
 +=== Knaus' Best-of-(Excel-)Shortcuts === 
 +Alle Excel-Shortcuts finden sich in dieser [[https://support.microsoft.com/de-de/office/tastenkombinationen-in-excel-1798d9d5-842a-42b8-9c99-9b7213f0040f|Liste]]. Die Shortcuts bis und mit F1 funktionieren bei den meisten gängingen (Office) Applikationen. 
 + 
 +| ^ Shortcut    |   ^ Beschreibung 
 + 
 +| Ctrl+Pfeil    | Bewegt den Cursor ans Ende des Blocks der aktiven Zelle in Richtung des Pfeils|  
 +| Shift+Pfeil | Markiert die Zellen in Richtung des Pfeils | 
 +| Shift+Ctrl+Pfeil| Markiert die Zellen in Richtungs des Pfeils bis Ende des Blocks| 
 +|Ctrl+Z| Letzter Schritt rückgängig machen| 
 +|Ctrl+Y| Letzer Schritt wiederholen (z.B. Formatierung)| 
 +|F1 | Hilfe 
 +|F2 | Zeigt die Abhängikeiten einer Formel in der aktiven Zelle graphisch an| 
 +|F4 | Fixiert Zeile und Spalte, Zeile und Spalte bei erneutem Drücken | 
 +|F9 | Berechnet ein Arbeitsblatt neu (inkl. neuer Zufallszahl) | 
 +|Ctrl+PgDn/PgUp | Wechselt nach rechts/links durch die Arbeitsblätter | 
 +|Ctrl+-| Markierte Zeile/Spalte löschen| 
 +|Ctrl++| Zeile/Spalte einfügen| 
 ==== KW 6 ==== ==== KW 6 ====
 === Ziele === === Ziele ===
  • lehrkraefte/ks/informatik-glf4-23-4fnp.1676013670.txt.gz
  • Last modified: 2023/02/10 08:21
  • by Simon Knaus