![[Formales]]
![[python_101_schedule__603997838.png]]
> [!multi-column]
>
>> [!BLANK|no-margin pw2]
>> # Ziel
>> Sie lernen mit Hilfe von spannenden Projekten und aktueller IT-Didaktik zentrale Konzepte der Sprache Python kennen. Als thematischen Rahmen nutzen wir *Creative Thinking & Fashion*
>
>> [!multi-column|pw6]
>>
>>> [!TLDR] Zielgruppe
>>> Einsteiger:innen ohne Erfahrung im programmieren mit Python.
>>
>>> [!INFO] Setting
>>> Der erste Tag findet hybrid statt.
>>> Die Tage 2-5 finden online statt.
>>
>>> [!ABSTRACT] Python 101
>>> ### Tag 1
>>> - Was ist Python?
>>> - Variablen, Listen, Loops
>>> - Arithmetik mit Python
>>> ### Tag 2
>>> - Strings und Zahlen
>>> - Loops und Conditions
>>> - Datenstrukturen
>>> ### Tag 3
>>> - Funktionen
>>> - Variablen & Module
>>> - Fehlerbehandlung
>>> ### Tag 4
>>> - Klassen und Instanzen
>>> - Methoden in Klassen
>>> - Constructors
>>> ### Tag 5
>>> - os, datetime
>>> - math, random
>>> - Operative Tools
> [!TLDR] Worum geht es?
> Python ist eine Programmiersprache mit einem knappen und gut verständlichen Programmierstil. Python ist u.a. sehr gut für die [[01 Python Analytics| Auswertung von Daten]] geeignet.
> Unser Kurs hilft Ihnen dabei, erste Problemlösungskompetenzen mit Hilfe von Python zu erwerben. Sie können nach dem Kurs im Rahmen kleinerer Projekte
> 1. Einfache Berichte automatisiert erstellen und dabei Daten aus unterschiedlichen Quellen (z.B. CSV-Dateien) zusammenführen und aufbereitet speichern.
> 2. Eine überblicksartige Finanzplanung erstellen und mit Hilfe von Einnahmen, Ausgaben und Budgets finanzielle Kennzahlen wie Liquidität oder Rentabilität berechnen.
> 3. Dokumente verwalten und systematisch organisieren, kategorisieren und mit Schlagworten versehen
> 4. Ein kleines Veranstaltungsmanagement-Tool entwickeln
Beachten Sie bitte, das [[Learning Programming | Programmieren lernen]] einem Spracherwerb ähnlich ist. Umfangreichere Programmier-Projekte erfordern jahrelange Erfahrung im Programmieren. Die obigen Beispiele sollen Ihnen eine Vorstellung davon geben, welche geschäftlichen oder wissenschaftlichen Herausforderungen Sie mit Hilfe von Python nach dem Kurs angehen könnten.
# Kursthema: Creativ Thinking & Fashion
![[rahmenthema_creative_thinking__135276940.png]]
> [!multi-column]
>
>> [!INFO] *Creative Thinking & Fashion*
>> Wir werden Python im Kontext der Modebranche erkunden.
>
>> [!NOTE] 1 Ideenfindung und Planung
>> Entwickeln von kreativen Ideen für Modeprojekte und Planen der Umsetzungen.
> [!multi-column]
>
>> [!NOTE] 2 Datenorganisation und Verwaltung
>> Erstellen und Verwalten von Listen und Dictionaries zur Organisation von Modeprojekten und Materiallisten.
>
>> [!NOTE] 3 Entscheidungs-<br>prozesse
>> Implementierung von Bedingungsstrukturen, um Entscheidungsprozesse bei der Designauswahl zu unterstützen.
> [!multi-column]
>
>> [!NOTE] 4 Automatisierung wiederkehrender Aufgaben
>> Nutzung von Schleifen zur Automatisierung von Aufgaben wie dem Erstellen von Materiallisten und Produktionsplänen.
>
>> [!NOTE] 5 Wiederverwendbare Design-Funktionen
>> Erstellen von Funktionen und Modulen, um häufig verwendete Designprozesse und Berechnungen zu kapseln und wiederzuverwenden.
Sie werden während des gesamten Kurses immer wieder Gelegenheit bekommen, eigenen Themen zu bearbeiten. Die gewonnenen Erkenntnisse können Sie dabei an Ihre Interessen anpassen.
# Ihre Vorbereitung
![[ihre_vorbereitung__751628425.png]]
![[Kursvorbereitungen#^pythonkurse-immer-installieren]]
![[Kursvorbereitungen#^alle-kurse-programme-selbst-installieren]]
![[Kursvorbereitungen#^alle-kurse-faq-technisch-organisatorischer-rahmen]]
# FAQ
![[faq__746588201.png]]
![[Kursvorbereitungen#^alle-kurse-faq-webex]]
![[Kursvorbereitungen#^alle-kurse-bildschirm-groesse]]
![[Kursvorbereitungen#^pythonkurse-faq-vsc]]
# Kursablauf
![[kursablauf__658303025.png]]
> [!TLDR]
> - Die Inhalte im Kurs sind agil und problemlösungsorientiert aufgebaut.
> - Das Kursdesign basiert auf der [[01 Python 101 2023#Lernzieltaxonomie des Kurses| Lernzieltaxonomie des Kurses]].
> - In vielen kleinen Prozessen folgen Sie zunehmend intensiv der [[01 Python 101 2023#Inhalte, sachlogisch gegliedert| sachlogischen Kursgliederung]].
> - Zu Kursbeginn werden wir mit *viel Mut zur Lücke* programmieren. Am Anfang geht es primär um ein konzeptuelles Verständnis der Programmiersprache Python (Orientierungsphase).
> - Wir werden im weiteren Kursverlauf zunehmend differenzierter arbeiten.
> - Zum Kursabschluss programmieren Sie mit Hilfe zeitgenössischer moderner Programmierparadigmen.
> - Als kursbegleitenden Rahmen nutzen wir das Thema [[02 Fashion Design Keywords| Fashion & Design.]]
## Tag 1: Einführung in Python und erste Programmierschritte
### Vormittag
> [!INFO] Überblick über Python
> 1. Was ist Python und warum wird es verwendet?
> 2. Anwendung von Python in verschiedenen Branchen.
### Nachmittag
> [!INFO] Erste Schritte mit Python
> 1. VS Code und seine Funktionen
> 2. Variablen und Datentypen
> 3. Arithmetischen Operationen
## Tag 2: Grundlagen der prozeduralen Programmierung
### Vormittag
> [!INFO] Datentypen und Operatoren
> 1. Strings und Zahlen
> 2. Operatoren und Ausdrücke
### Nachmittag
> [!multi-column]
>
>> [!INFO] Schleifen
>> for, while
>
>> [!INFO] Bedingungsstrukturen
>> if, elif, else
> [!multi-column]
>
>> [!INFO] Datenstrukturen
>> Listen, Dictionaries, Tuples, Sets
>
>> [!INFO] Indexing
>> Notation, Slicing
## Tag 3: Weiterführende Themen der prozeduralen Programmierung
### Vormittag: Funktionen und Module
> [!multi-column]
>
>> [!INFO] Funktionen
>> 1. Erstellen und Aufrufen
>> 2. Parameter und Rückgabewerte
>
>> [!INFO] Variablen
>> Scope und Lebensdauer
> [!multi-column]
>
>> [!INFO] Module
>> 1. Importieren und Verwenden
>> 2. Module selbst erstellen
>
>> [!BLANK]
>>
### Nachmittag: Error Handling und Debugging
> [!multi-column]
>
>> [!INFO] Check and Balances
>> 1. Error Handling
>> 2. Exception Handling
>
>> [!INFO] Debugging
>> 1. Strategien und Praktiken
>> 2. Unittest
> [!multi-column]
>
>> [!INFO] True, False
>> 1. Wahrheitstabellen
>> 2. Boolesche Logik
>
>> [!BLANK]
>>
## Tag 4: Objektorientierte Programmierung (OOP)
### Vormittag
> [!multi-column]
>
>> [!INFO] Klassen
>> 1. Erstellen von Klassen
>> 2. Nutzung von Instanzen
>> 3. Klassenvariablen
>> 4. Instanzvariablen
>
>> [!BLANK]
>>
### Nachmittag
> [!multi-column]
>
>> [!INFO] Methoden in Klassen
>> 1. Reguläre Methoden
>> 2. Klassenmethoden
>> 3. Statischen Methoden
>> 4. Alternative Constructors
>
>> [!BLANK]
>>
## Tag 5: Anwendung externer Module und fortgeschrittene Programmierkonzepte
### Vormittag
> [!multi-column]
>
>> [!INFO] Externe Module
>> 1. `math`
>> 2. `datetime`
>> 3. `random`
>> 4. `os`
>
>> [!BLANK]
>>
### Nachmittag: Fortgeschrittene Programmierkonzepte und operative Tools
> [!multi-column]
>
>> [!INFO] Versionierung
>> Git und GitHub
>
>> [!INFO] Virtuelle Räume
>> 1. VENV
>> 2. Docker-Container
>> 3. Virtual Machine
> [!multi-column]
>
>> [!INFO] Objektorientierte Konzepte
>> 1. Vererbung
>> 2. Polymorphie
>
>> [!INFO] Prozedurale Konzepte
>> 1. Objekt-Referenz vs. Objekt-Kopie,
>> 2. Lambda-Funktionen
>> 3. Comprehensions
# Lernzieltaxonomie des Kurses
![[Lernziel Taxonomien#^lernziel-taxonomie]]
![[lernzieltaxonomie_des_kurses__656243780.png]]
## Erinnern, kennen
> [!multi-column]
>
>> [!NOTE] Terminologien der Programmierung
>> Die Teilnehmenden (TN) können die grundlegenden Konzepte und Terminologien der prozeduralen und objektorientierten Programmierung in Python nennen.
>
>> [!NOTE] Math, Datetime, Random, OS
>> Die TN können die Namen und Hauptfunktionen der Python-Module `math`, `datetime`, `random`, und `os` aufzählen.
## Verstehen
> [!multi-column]
>
>> [!NOTE] Vorteil VENV
>> Die TN können den Zweck und die Bedeutung der Verwendung eines VENV in Python-Projekten erklären.
>
>> [!NOTE] Objektorientierte Konzepte
>> Die TN können die Unterschiede zwischen Klassenvariablen und Instanzvariablen sowie zwischen regulären, Klassen- und statischen Methoden beschreiben.
## Anwenden
> [!multi-column]
>
>> [!NOTE] VENV erstellen
>> Die TN können ein VENV erstellen und aktivieren, um ein isoliertes Python-Projekt zu entwickeln.
>
>> [!NOTE] Datenstrukturen
>> Die TN können die vier grundlegenden Python-Datenstrukturen (Listen, Dictionaries, Tuples, Sets) in praktischen Anwendungen nutzen.
> [!NOTE] Fehlersuche
> Die TN können einfache Debugging-Techniken in Visual Studio Code anwenden, um Fehler in ihrem Code zu identifizieren und zu beheben.
## Analysieren
> [!multi-column]
>
>> [!NOTE] Code Analyse
>> Die TN können Code-Segmente analysieren und bestimmen, ob sie prozedurale oder objektorientierte Programmierungsmuster verwenden.
>
>> [!NOTE] Python Modul Struktur
>> Die TN können die Struktur eines Python-Moduls analysieren und bestimmen, welche Funktionen, Klassen oder Methoden für ein gegebenes Problem relevant sind.
## Bewerten, evaluieren
> [!multi-column]
>
>> [!NOTE] Error-Handling
>> Die TN können verschiedene Fehler- und Ausnahmebehandlungstechniken bewerten und die am besten geeignete für eine gegebene Situation auswählen.
>
>> [!NOTE] Problemlösungskompetenz
>> Die TN können die Effizienz und Effektivität unterschiedlicher Ansätze zur Problemlösung in Python bewerten, insbesondere im Hinblick auf Datenverarbeitung und -manipulation.
## Erschaffen, kreieren
> [!multi-column]
>
>> [!NOTE] Programme schreiben
>> Die TN können eigenständig Python-Programme entwickeln, die fortgeschrittene Funktionen und Module nutzen, um reale Probleme zu lösen, z.B. ein Datenanalyse-Tool, das `math` und `datetime` verwendet.
>
>> [!NOTE] Klassen und Instanzen nutzen
>> Die TN können eine eigene Klasse definieren und Instanzen erstellen, um komplexe Datenstrukturen für spezifische Anwendungsfälle, wie z.B. ein Inventarmanagement-System, zu modellieren.
## Zusätzliche Domänen
> [!multi-column]
>
>> [!NOTE] Operative Tools
>> Die TN können GitHub zur Versionskontrolle und zur Kollaboration in Projekten verwenden. Sie können auch ChatGPT und Obsidian als Unterstützungswerkzeuge im Programmier- und Lernprozess effektiv einsetzen.
>
>> [!NOTE] Support-Techniken
>> Die TN können Unit Tests schreiben, um die Zuverlässigkeit und Korrektheit ihres Codes systematisch zu überprüfen.
# Python Zertifikat von Microsoft
![[python_zertifikat__677848647.png]]
Sie haben Interesse an einem Information Technology Specialist (ITS) OD 303 Python-Zertifikat und möchten sich auf den Test vorbereiten? Buchen Sie unser eintägiges [Bootcamp Python Basics](https://veranstaltung.weiterbildung.fu-berlin.de/24-H.FID09a). Die Teilnahme am Bootcamp berechtigt Sie zur Prüfung, die wir Ihnen in Kooperation mit der Ausbildungsverbund Fachinformatik Berlin als anerkanntes Testzentrum für Microsoft-Zertifikate anbieten.
Der Ausbildungsverbund Fachinformatik Berlin ist eine Initiative der Charité, der Freien Universität Berlin, des Max-Planck-Instituts für Bildungsforschung sowie dem Zuse-Institut. Weitere Informationen zur Microsoft-Prüfung finden Sie unter [Bootcamp Python Basics](https://veranstaltung.weiterbildung.fu-berlin.de/24-H.FID09a).
# Python 101 Cheat Sheet
[![[cheat_sheet__649330423.png]]](03%20Python%20101%20Cheat%20Sheet.md)
Die wichtigsten Kurskonzepte auf einen Blick.
# Abkürzungsverzeichnis
![[abkuerzungsverzeichnis__650746017.png]]
|Abkürzung|Bedeutung|
|--:|:--|
|Container|Docker Container|
|IDE|Integrated Development Environment|
|OOP|Objektorientierte Programmierung|
|TLDR|`To long: Did not read`. Ist eine Zusammenfassung|
|TN|Teilnehmende(n)|
|VENV|Virtual Environment|
|VM|Virtual Machine|
|VSC|Visual Studio Code|