Skip to content

Commit 1bec65f

Browse files
committed
add OER document state
1 parent 7473a0b commit 1bec65f

6 files changed

+293
-0
lines changed

JH_OER_Python_for_Beginners.docx

89.1 KB
Binary file not shown.
63.3 KB
Binary file not shown.

Python_fuer_Anfaengerinnen.pptx

6.99 MB
Binary file not shown.

private_pad.md

+212
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,212 @@
1+
2+
3+
# Ablauf
4+
5+
6+
Ablauf Python Workshop:
7+
8+
* Abschnitt 1: Willkommen(30 min)
9+
* Teilnehmende ankommen lassen und ggf. Eltern verabschieden
10+
* Teilnehmenden Covid Tests anbieten
11+
* Namensschilder verteilen
12+
* Laptops verteilen
13+
* Willkommen
14+
* Kurzes willkommensspiel (Massive Multiplayer Schnick Schnack Schnuck)
15+
* Vorstellen
16+
* Habt ihr schonmal programmiert?
17+
* Was wollt ihr heute lernen wie ist euer Wissensstand?
18+
* Was interessiert euch am meisten?
19+
* Was ist programmieren eigentlich?
20+
* Abschnitt 2: Präsentation (15 min)
21+
* Ablauf vorstellen
22+
* Pad zeigen (https://pad.alpaka.space/[meinlabname])
23+
* Pause (15 min)
24+
* Abschnitt 3: Code Along (75 min)
25+
* Into Python
26+
* Praxisphase
27+
* Passwörter verteilen
28+
* Jupyter Notebook aufmachen, einloggen
29+
* Code Along
30+
* Pause (15 min)
31+
* Abschnitt 4: Projekte (150 min)
32+
* Projekt aussuchen
33+
* Projekt bearbeiten
34+
* Projekte vorstellen (Stand, was muss noch gemacht werden)
35+
* Wo finde ich Hilfe wenn ich Fragen habe beantworten?
36+
* Wie gehts euch / Mood Alpakas klicken https://mood.alpaka.space/berlinlab-feb23
37+
* Abschied
38+
39+
40+
41+
42+
# Code-along content
43+
44+
1. **Hallo Welt!**
45+
```python
46+
print('Hallo Welt!')
47+
print('Hallo Welt')
48+
print() #Leerzeile
49+
print('Mein Name ist NAME')
50+
```
51+
52+
2. **Variablen**
53+
```python
54+
mein_name = "$NAME"
55+
mein_alter = 18
56+
mein_pi = 3.14
57+
```
58+
Kombiniert:
59+
```python
60+
print("Hallo, ich heiße ", mein_name)
61+
print(mein_alter)
62+
print(2 * mein_alter)
63+
```
64+
65+
3. **Kommentare**
66+
```python
67+
# Ich bin ein Kommentar
68+
# Was im Kommentar steht wird nicht ausgeführt:
69+
# meinName = "Angela Merkel"
70+
71+
print(mein_name) # Ich bin ein inline Kommentar
72+
```
73+
74+
4. **Datentypen**
75+
```python
76+
print(type(mein_name))
77+
print(type(mein_alter))
78+
print(type(mein_pi))
79+
80+
mein_bool = 1 > 2
81+
print(type(mein_bool))
82+
```
83+
Mischen von Datentypen:
84+
```python
85+
ergebnis0 = mein_alter + mein_alter
86+
print(ergebnis0)
87+
```
88+
89+
```python
90+
# fails with unsupported operand type(s) for +: 'int' and 'str'
91+
ergebnis1 = mein_alter + mein_name
92+
```
93+
94+
```python
95+
ergebnis2 = mein_alter + mein_pi
96+
print(ergebnis2)
97+
print(type(ergebnis2))
98+
```
99+
100+
101+
102+
5. **Operatoren**
103+
104+
```python
105+
print( 5 + 999 )
106+
print( 100 - 50 )
107+
print( 1 - 5 )
108+
print( 2 * 3 - 4 )
109+
```
110+
111+
6. **Listen**
112+
113+
```python
114+
eine_liste = [1,2,3,4]
115+
print(eine_liste)
116+
117+
noch_eine_liste = ["Hallo", "Test", "String"]
118+
print(noch_eine_liste)
119+
120+
gemischte_datentypen = ["Hallo", 1, mein_pi, True]
121+
print(gemischte_datentypen)
122+
123+
print(len(gemischte_datentypen))
124+
125+
print(type(gemischte_datentypen))
126+
127+
print(gemischte_datentypen[0])
128+
print(gemischte_datentypen[3])
129+
```
130+
131+
7. **Boolean operators**
132+
```python
133+
alter_nachbar = 18
134+
print(mein_alter > alter_nachbar)
135+
print(mein_alter < alter_nachbar)
136+
print(mein_alter == alter_nachbar)
137+
```
138+
139+
```python
140+
# fails with: > not supported between instances of 'str' and 'int'
141+
print(mein_alter > mein_name)
142+
```
143+
144+
145+
146+
8. **If / else**
147+
148+
```python
149+
if mein_alter < alter_nachbar:
150+
print("Anna ist älter als ich")
151+
else:
152+
print("Ich bin älter als Anna")
153+
154+
155+
156+
wochentag = "Samstag"
157+
158+
if wochentag == "Freitag":
159+
print("Juhu, endlich Freitag :)")
160+
else:
161+
print("Leider kein Freitag")
162+
```
163+
164+
9. **For-Schleife**
165+
```python
166+
früchte = ["Apfel", "Kirsche", "Birne", "Apfel", "Pfirsich", "Kiwi"]
167+
168+
for frucht in früchte:
169+
print(frucht)
170+
171+
# mit range():
172+
for i in range(0,6):
173+
print(i , früchte[i])
174+
175+
# Mit if-verknüpft:
176+
for frucht in früchte:
177+
if frucht == "Pfirsich":
178+
print("Der Pfirsich wurde gefunden")
179+
print(frucht)
180+
```
181+
182+
10. **While-Schleife**
183+
```python
184+
i = 1
185+
while i < 6:
186+
print(i)
187+
i += 1
188+
```
189+
Frage an die Teilnehmis: wie sieht die For-schleife mit äquivalentem Output aus?
190+
```python
191+
for i in range(1,6):
192+
print(i)
193+
```
194+
195+
11. **(optional) String operatoren**
196+
197+
```python
198+
meinString = "Hallo, mein Name ist Johan"
199+
print(len(meinString))
200+
print(meinString.upper())
201+
print(meinString.lower())
202+
```
203+
204+
12. **Funktionen**
205+
```python
206+
def myFunc(var1, var2):
207+
result = var1 + var2
208+
return result
209+
210+
print(myFunc(1,2))
211+
```
212+

public_pad.md

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Python für Anfänger:innen
2+
3+
[Datum]
4+
5+
## Ablauf
6+
7+
8+
Ablauf Python Workshop:
9+
10+
* Abschnitt 1 (30min)
11+
* Willkommen
12+
* Abschnitt 2 (15 min)
13+
* Into Python
14+
* Pause (15 min)
15+
* Abschnitt 3 (75 min)
16+
* Code-Along
17+
* Pause (15 min)
18+
19+
* Abschnitt 4 (150 min)
20+
* Projektarbeit
21+
22+
23+
## Code-Along
24+
25+
[hier nach Workshop Code Along aus Public Pad ergänzen]
26+
27+
28+
29+
## Notebooks
30+
31+
```
32+
[hier links zu Jupyter Notebooks ergänzen]
33+
```
34+
35+
## Projekte
36+
37+
38+
39+
#### Projekt 1: Tannenbaum
40+
41+
Schreibe ein Programm, das das folgende Muster ausgibt:
42+
43+
```
44+
*
45+
***
46+
*****
47+
*******
48+
*********
49+
***
50+
```
51+
52+
53+
54+
#### Projekt 2: Summe berechnen
55+
56+
Schreibe ein Programm dass zwei Integer mit `+` verrechnen kann.
57+
58+
59+
60+
#### Projekt 3: Morsecode
61+
62+
Schreibe ein Programm, dass Text in Morsecode übersetzt.
63+
64+
65+
66+
## Install Python Locally
67+
68+
MacOS, Windows, Linux: https://realpython.com/installing-python/
69+
Install VSCode: https://code.visualstudio.com/download
70+
71+
## Help
72+
73+
✨ stackoverflow.com
74+
✨ realpython.com/
75+
✨ w3schools.com/python/
76+
✨ docs.python.org
77+
78+
## Links
79+
80+
Mood Alpakas https://mood.alpaka.space/

python_fuer_anfaengerinnen.ipynb

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"cells":[{"cell_type":"code","execution_count":8,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["Hallo Welt!\n","Hallo Welt\n","\n","Mein Name ist NAME\n"]}],"source":["print('Hallo Welt!')\n","print('Hallo Welt')\n","print() #Leerzeile\n","print('Mein Name ist NAME')"]},{"cell_type":"code","execution_count":9,"metadata":{},"outputs":[],"source":["mein_name = \"$NAME\"\n","mein_alter = 18\n","mein_pi = 3.14"]},{"cell_type":"code","execution_count":10,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["Hallo, ich heiße $NAME\n","18\n","36\n"]}],"source":["print(\"Hallo, ich heiße \", mein_name)\n","print(mein_alter)\n","print(2 * mein_alter)"]},{"cell_type":"code","execution_count":11,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["$NAME\n"]}],"source":["# Ich bin ein Kommentar\n","# Was im Kommentar steht wird nicht ausgeführt:\n","# meinName = \"Angela Merkel\"\n","\n","print(mein_name) # Ich bin ein inline Kommentar"]},{"cell_type":"code","execution_count":12,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["<class 'str'>\n","<class 'int'>\n","<class 'float'>\n","<class 'bool'>\n"]}],"source":["print(type(mein_name))\n","print(type(mein_alter))\n","print(type(mein_pi))\n","\n","mein_bool = 1 > 2\n","print(type(mein_bool))"]},{"cell_type":"code","execution_count":13,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["36\n"]}],"source":["ergebnis0 = mein_alter + mein_alter\n","print(ergebnis0)"]},{"cell_type":"code","execution_count":14,"metadata":{},"outputs":[{"ename":"TypeError","evalue":"unsupported operand type(s) for +: 'int' and 'str'","output_type":"error","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)","\u001b[1;32m/Users/Tobias/Desktop/python_fuer_anfaengerinnen.ipynb Cell 7\u001b[0m line \u001b[0;36m2\n\u001b[1;32m <a href='vscode-notebook-cell:/Users/Tobias/Desktop/python_fuer_anfaengerinnen.ipynb#W5sZmlsZQ%3D%3D?line=0'>1</a>\u001b[0m \u001b[39m# fails with unsupported operand type(s) for +: 'int' and 'str'\u001b[39;00m\n\u001b[0;32m----> <a href='vscode-notebook-cell:/Users/Tobias/Desktop/python_fuer_anfaengerinnen.ipynb#W5sZmlsZQ%3D%3D?line=1'>2</a>\u001b[0m ergebnis1 \u001b[39m=\u001b[39m mein_alter \u001b[39m+\u001b[39;49m mein_name\n","\u001b[0;31mTypeError\u001b[0m: unsupported operand type(s) for +: 'int' and 'str'"]}],"source":["# fails with unsupported operand type(s) for +: 'int' and 'str'\n","ergebnis1 = mein_alter + mein_name"]},{"cell_type":"code","execution_count":15,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["21.14\n","<class 'float'>\n"]}],"source":["ergebnis2 = mein_alter + mein_pi\n","print(ergebnis2)\n","print(type(ergebnis2))"]},{"cell_type":"code","execution_count":16,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["1004\n","50\n","-4\n","2\n"]}],"source":["print( 5 + 999 )\n","print( 100 - 50 )\n","print( 1 - 5 )\n","print( 2 * 3 - 4 )"]},{"cell_type":"code","execution_count":17,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["[1, 2, 3, 4]\n","['Hallo', 'Test', 'String']\n","['Hallo', 1, 3.14, True]\n","4\n","<class 'list'>\n","Hallo\n","True\n"]}],"source":["eine_liste = [1,2,3,4]\n","print(eine_liste)\n","\n","noch_eine_liste = [\"Hallo\", \"Test\", \"String\"]\n","print(noch_eine_liste)\n","\n","gemischte_datentypen = [\"Hallo\", 1, mein_pi, True]\n","print(gemischte_datentypen)\n","\n","print(len(gemischte_datentypen))\n","\n","print(type(gemischte_datentypen))\n","\n","print(gemischte_datentypen[0])\n","print(gemischte_datentypen[3])"]},{"cell_type":"code","execution_count":18,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["False\n","False\n","True\n"]}],"source":["alter_nachbar = 18\n","print(mein_alter > alter_nachbar)\n","print(mein_alter < alter_nachbar)\n","print(mein_alter == alter_nachbar)"]},{"cell_type":"code","execution_count":19,"metadata":{},"outputs":[{"ename":"TypeError","evalue":"'>' not supported between instances of 'int' and 'str'","output_type":"error","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)","\u001b[1;32m/Users/Tobias/Desktop/python_fuer_anfaengerinnen.ipynb Cell 12\u001b[0m line \u001b[0;36m2\n\u001b[1;32m <a href='vscode-notebook-cell:/Users/Tobias/Desktop/python_fuer_anfaengerinnen.ipynb#X21sZmlsZQ%3D%3D?line=0'>1</a>\u001b[0m \u001b[39m# fails with: > not supported between instances of 'str' and 'int'\u001b[39;00m\n\u001b[0;32m----> <a href='vscode-notebook-cell:/Users/Tobias/Desktop/python_fuer_anfaengerinnen.ipynb#X21sZmlsZQ%3D%3D?line=1'>2</a>\u001b[0m \u001b[39mprint\u001b[39m(mein_alter \u001b[39m>\u001b[39;49m mein_name)\n","\u001b[0;31mTypeError\u001b[0m: '>' not supported between instances of 'int' and 'str'"]}],"source":["# fails with: > not supported between instances of 'str' and 'int'\n","print(mein_alter > mein_name)"]},{"cell_type":"code","execution_count":20,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["Ich bin älter als Anna\n","Leider kein Freitag\n"]}],"source":["if mein_alter < alter_nachbar:\n"," print(\"Anna ist älter als ich\")\n","else:\n"," print(\"Ich bin älter als Anna\")\n","\n","\n","\n","wochentag = \"Samstag\"\n","\n","if wochentag == \"Freitag\":\n"," print(\"Juhu, endlich Freitag :)\")\n","else:\n"," print(\"Leider kein Freitag\")"]},{"cell_type":"code","execution_count":21,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["Apfel\n","Kirsche\n","Birne\n","Apfel\n","Pfirsich\n","Kiwi\n","0 Apfel\n","1 Kirsche\n","2 Birne\n","3 Apfel\n","4 Pfirsich\n","5 Kiwi\n","Apfel\n","Kirsche\n","Birne\n","Apfel\n","Der Pfirsich wurde gefunden\n","Pfirsich\n","Kiwi\n"]}],"source":["früchte = [\"Apfel\", \"Kirsche\", \"Birne\", \"Apfel\", \"Pfirsich\", \"Kiwi\"]\n","\n","for frucht in früchte:\n"," print(frucht)\n","\n","# mit range():\n","for i in range(0,6):\n"," print(i , früchte[i])\n","\n","# Mit if-verknüpft:\n","for frucht in früchte:\n"," if frucht == \"Pfirsich\":\n"," print(\"Der Pfirsich wurde gefunden\")\n"," print(frucht)"]},{"cell_type":"code","execution_count":22,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["1\n","2\n","3\n","4\n","5\n"]}],"source":["i = 1\n","while i < 6:\n"," print(i)\n"," i += 1"]},{"cell_type":"code","execution_count":23,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["1\n","2\n","3\n","4\n","5\n"]}],"source":["for i in range(1,6):\n"," print(i)"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["26\n","HALLO, MEIN NAME IST JOHAN\n","hallo, mein name ist johan\n"]}],"source":["mein_string = \"Hallo, mein Name ist Johan\"\n","print(len(mein_string))\n","print(mein_string.upper())\n","print(mein_string.lower())"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["3\n"]}],"source":["def myFunc(var1, var2):\n"," result = var1 + var2\n"," return result\n","\n","print(myFunc(1,2))"]},{"cell_type":"code","execution_count":2,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["8\n"]}],"source":["def addiere_zwei_zahlen(zahl1, zahl2):\n"," return zahl1 + zahl2\n","\n","# Beispiel für die Verwendung der Funktion\n","ergebnis = addiere_zwei_zahlen(5, 3)\n","print(ergebnis)\n"]},{"cell_type":"code","execution_count":1,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":[" *\n"," ***\n"," *****\n"," *******\n","*********\n"," ***\n","\n"]}],"source":["def generate_christmas_tree(levels):\n"," max_width = max(levels)\n"," tree = \"\"\n"," for level in levels:\n"," stars = '*' * level\n"," padding = (max_width - level) // 2\n"," tree += ' ' * padding + stars + '\\n'\n","\n"," return tree\n","\n","levels = [1, 3, 5, 7, 9, 3]\n","christmas_tree = generate_christmas_tree(levels)\n","print(christmas_tree)"]},{"cell_type":"code","execution_count":7,"metadata":{},"outputs":[{"name":"stdout","output_type":"stream","text":["HELLO WORLD\n"]}],"source":["def morse_to_text(morse_code):\n"," morse_dict = {\n"," '.-': 'A', '-...': 'B', '-.-.': 'C', '-..': 'D', '.': 'E',\n"," '..-.': 'F', '--.': 'G', '....': 'H', '..': 'I', '.---': 'J',\n"," '-.-': 'K', '.-..': 'L', '--': 'M', '-.': 'N', '---': 'O',\n"," '.--.': 'P', '--.-': 'Q', '.-.': 'R', '...': 'S', '-': 'T',\n"," '..-': 'U', '...-': 'V', '.--': 'W', '-..-': 'X', '-.--': 'Y',\n"," '--..': 'Z', '-----': '0', '.----': '1', '..---': '2', '...--': '3',\n"," '....-': '4', '.....': '5', '-....': '6', '--...': '7', '---..': '8',\n"," '----.': '9'\n"," }\n","\n"," # Aufteilung des Morse-Codes in Wörter und Zeichen\n"," words = morse_code.split(' ') # Drei Leerzeichen trennen Wörter\n"," decoded_text = []\n","\n"," for word in words:\n"," characters = word.split(' ') # Ein Leerzeichen trennt Buchstaben\n"," decoded_word = ''.join(morse_dict[char] for char in characters if char in morse_dict)\n"," decoded_text.append(decoded_word)\n","\n"," return ' '.join(decoded_text)\n","\n","# Beispiel für die Verwendung der Funktion\n","morse_code = '.... . .-.. .-.. --- .-- --- .-. .-.. -..'\n","text = morse_to_text(morse_code)\n","print(text)"]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":[]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.11.6"}},"nbformat":4,"nbformat_minor":2}

0 commit comments

Comments
 (0)