Ziel der der Executive Tech Academy ist es, Führungskräfte an einem Halbtag wichtiges technisches Grundwissen zu vermitteln, das Sie bei künftigen Entscheidungen in digitalen Initiativen unterstützt.
Digital Trends: Wunsch und Wirklichkeit im Zeitablauf
ETA Teil 2: Programmierung
1. Executive Tech Academy. Teil 2
Programmierung. Namics.
Lara Mogge
Jürg Stuker
Bern, 16. Oktober 2019
A Merkle Company
2. Namics. A Merkle Company
Was ist ein Programm?
2ETA - Programmierung
Eingabe(n) Ausgabe(n)
3. Namics. A Merkle Company
Von-Neumann-Architektur
3ETA - Programmierung
Ein-/Ausgabewerk
Speicherwerk
Bus-System
Rechenwerk
Steuerwerk
Quelle: John von Neumann. First Draft of a Report on the EDVAC. 1945.
4. Namics. A Merkle Company
ja
Konto
nachführen
Beispiel Flowchart (Programmablaufplan)
4ETA - Programmierung
Start
PIN
korrekt
genug
Geld
Karte
entfernt
Ausgabe
Quittung
Karte
einführen
PIN prüfen
PIN
eingeben
Ausgabe
Geld
Ausgabe
Karte
Betrag
eingeben
nein
nein
ja
Ende
ja
Karte
einziehen
Geld
einziehen
Geld
entfernt
ja
nein
nein
5. Namics. A Merkle Company
Beispiel Pseudocode
(Sequenzielle Suche)
Ich nehme das Buch in die Hand
Ich merke mir Eintragsnummer ist 1
Ich merke mir Suchwert ist Stuker, Jürg
Solange ich nicht am Ende angekommen bin, wiederhole ich
{
Wenn Buch[Eintragsnummer] gleich Suchwert
Melde als Ergebnis Buch[Eintragsnummer]
fertig
Sonst erhöhe Eintragsnummer um 1
}
Melde als Ergebnis “nicht gefunden”
5ETA - Programmierung
6. Namics. A Merkle Company
Basiselemente einer Programmiersprache?
6ETA - Programmierung
Syntax
(Form)
Semantik
(Bedeutung)
Variablen (Speicher)
Schleifen-Strukturen
Eingabe/Ausgabe
Entscheidungs-
Strukturen
Mathematik
7. Namics. A Merkle Company
Eingabe/Ausgabe
Entscheidungs-Struktur | Mathematik
Eingabe/Ausgabe
Entscheidungs-Struktur
Schleifen-Struktur
Variablen (Speicher)
Basiselemente in Pseudocode
(Sequenzielle Suche)
Ich nehme das Buch in die Hand
Ich merke mir Eintragsnummer ist 1
Ich merke mir Suchwert ist Stuker, Jürg
Solange ich nicht am Ende angekommen bin, wiederhole ich
{
Wenn Buch[Eintragsnummer] gleich Suchwert
Melde als Ergebnis Buch[Eintragsnummer]
fertig
Sonst erhöhe Eintragsnummer um 1
}
Melde als Ergebnis “nicht gefunden”
7ETA - Programmierung
8. Namics. A Merkle Company
Mathematik
Entscheidungs-Strukturen
Schleifen-Strukturen
Variablen (Speicher)
Basiselemente in einer visuelle Programmiersprache
(Scratch)
8ETA - Programmierung
Eingabe/Ausgabe
9. Namics. A Merkle Company
Binäre Suche
(Pseudocode)
Ich nehme das Buch in die Hand
Ich merke mir links ist 0
Ich merke mir rechts ist Anzahl Einträge im Buch
Ich merke mir Suchwert ist Stuker, Jürg
Solange links kleiner oder gleich rechts, wiederhole ich
{
mitte ist gleich die Hälfte des Buches in meiner Hand
Wenn Buch[mitte] gleich Suchwert
Melde als Ergebnis Buch[mitte]
fertig
Sonst, falls Buch[mitte] < Suchwert:
links = mitte +1
Sonst:
rechts = mitte -1
}
Melde als Ergebnis “nicht gefunden”
9ETA - Programmierung
10. Namics. A Merkle Company
Binäre Suche
(links Pseudocode, rechts Python)
Ich nehme das Buch in die Hand
Ich merke mir links ist 0
Ich merke mir rechts ist Anzahl Einträge im Buch
Ich merke mir Suchwert ist Stuker, Jürg
Solange links kleiner oder gleich rechts, wiederhole ich
{
mitte ist gleich die Hälfte des Buches in meiner Hand
Wenn Buch[mitte] gleich Suchwert
Melde als Ergebnis Buch[mitte]
fertig
Sonst, falls Buch[mitte] < Suchwert:
links = mitte +1
Sonst:
rechts = mitte -1
}
Melde als Ergebnis “nicht gefunden”
10ETA - Programmierung
links = 0
rechts = len(buch)-1
suchwert = 'Stuker, Jürg'
while links <= rechts:
mitte = links + (rechts - links)/2
if buch[mitte] == suchwert:
print (buch[mitte])
quit()
elif buch[mitte] < suchwert:
links = mitte + 1
else:
rechts = mitte - 1
print ('nicht gefunden')
11. Namics. A Merkle Company
Jetzt müsst ihr selbst
11ETA - Programmierung
12. Namics. A Merkle Company
Let’s go. 1.
Bewege Scratch 10 Schritte.
Lass’ Scratch nun
… unendlich laufen.
… am Rand umdrehen.
… beim Umdrehen das Geräusch
“boing” machen.
14ETA - Programmierung
13. Namics. A Merkle Company
Let’s go. 2.
Lass’ Scratch nur losgehen,
umdrehen inkl. “Boing” wenn
du mit der Maus über
Scratch hoverst.
15ETA - Programmierung
14. Namics. A Merkle Company
Let’s go. 3.
Wenn du auf Scratch hoverst, sollte
Scratch ein “miau” von sich geben.
… zusätzlich: wenn du nicht auf
Scratch hoverst, macht Scratch
“muh/moo”
17ETA - Programmierung
15. Namics. A Merkle Company
Let’s go. 4. Schafe zählen. wortwörtlich.
Lass einen Fuchs langsam
“Schafe zählen”, d.h. 0, 1, 2,
3,....
19ETA - Programmierung
16. Namics. A Merkle Company
Let’s go. 5. Knacknuss.
Lass den Fuchs “Hi” zu
Scratch sagen, aber nur,
wenn Scratch vorher bereits
“Hi” gesagt hat.
21ETA - Programmierung
17. Namics. A Merkle Company
Mehr Lernmaterial :)
Die Scratch Community ist riesig
https://scratch.mit.edu/
● und voller Ideen, inkl. Starter-Projekten, zu
finden z.B. hier https://scratch.mit.edu/ideas
● Intuitive Tutorials gibt es zudem hier:
https://scratch.mit.edu/projects/336359567/e
ditor
● Spass an Programmierung & Logik auch für
Kinder & Jugendliche (ab etwa 8 Jahren)
Hier die analoge Möglichkeit für die allerersten
Schritte (ab etwa 4 Jahren):
https://www.primotoys.com/
23ETA - Programmierung
18. Namics. A Merkle Company
Welche und wieviele?
24ETA - Programmierung
Quelle: https://stackify.com/popular-programming-languages-2018/ Quelle: http://www.99-bottles-of-beer.net/
19. Namics. A Merkle Company
“Hello, World”
(in Java)
25ETA - Programmierung
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello, World");
}
}
20. Namics. A Merkle Company
“Hello, World”
(in C)
26ETA - Programmierung
#include<stdio.h>
int main() {
printf("Hello, Worldn");
return 0;
}
21. Namics. A Merkle Company
“Hello, World”
(in Python)
27ETA - Programmierung
print("Hello, World")
22. Namics. A Merkle Company
“Hello, World”
(in Assembler, Intel 8086/8088)
28ETA - Programmierung
mov ax,cs
mov ds,ax
mov ah,9
mov dx, offset Hello
int 21h
xor ax,ax
int 21h
Hello:
db "Hello World!",13,10,"$"
23. Namics. A Merkle Company
Ausgabe
(-Daten)
Was ist mit Maschinellem Lernen?
29ETA - Programmierung
Computer
Eingabe (-Daten)
Programm
Programm /
Modell
Computer
Eingabe (-Daten)
Ausgabe (-Daten)
24. Namics. A Merkle Company
Abschluss Teil 2
Woraus besteht ein “information-processing agent”
(Computer, Ausführungsumgebung für Programme)
● Von-Neumann-Architektur
Darstellung von Programmen
● Flowchart und Pseudocode
Basislemente von Programmiersprachen
Die ersten zwei Programmiersprachen
● Scratch und Python
...und ein paar mehr ;)
30ETA - Programmierung
25. Namics. A Merkle Company
Epilog und Lizenz
Muss der Trainer seine Sportart selbst ausgeübt haben?
Ein technisches Grundverständnis hilft, um die
Herausforderungen der digitalen Transformation innerhalb des
eigenen Unternehmens besser zu erkennen und zu bewerten.
Ziel der der Executive Tech Academy von Namics ist es,
Führungskräfte an einem Halbtag wichtiges technisches
Grundwissen zu vermitteln, das Sie bei künftigen
Entscheidungen in digitalen Initiativen unterstützt.
Der Kurs ist inspiriert von Prof. David J. Malans Kurs
Computer Science for Business Professionals und untersteht
der Creative Commons BY-SA 4.0 Lizenz.
31ETA - Programmierung
Sie dürfen:
● Teilen — das Material in
jedwedem Format oder Medium
vervielfältigen und
weiterverbreiten
● Bearbeiten — das Material
remixen, verändern und darauf
aufbauen und zwar für beliebige
Zwecke, sogar kommerziell.
Unter folgenden Bedingungen:
● Namensnennung
● Weitergabe unter gleichen
Bedingungen
26. Executive Tech Academy. Teil 2.
Programmierung. Namics.
Lara Mogge
Jürg Stuker
Bern, 16. Oktober 2019
A Merkle Company
Hinweis der Redaktion
Aka jetzt dürfen wir selbst
Wifi
Browser
Rumlaufen bis jeder angemeldet ist
Auch zu erforschen in einem Kurs für Erwachsene und Kind (SG) https://www.smartfeld.ch/all-courses/individual/cubetto/