Wie fange ich mit dem Programmieren an?
Jugend hackt, 9.7.2015
Hubert Hesse (@hubx)
Vom Problem zum Programm
● Eingabe/Ausgabe (Spezifikation)
● Vereinfachen
○ “Ich will ein Antivirus implementieren”
■ Date...
● Ziel: Quelltext schreiben und ausführen können
● Editor: z.B: Sublime (http://www.sublimetext.com/)
● Compiler (Quelltex...
Variablen
>>> (1 + 4) * 2
10
>>> x = 1
>>> x
1
>>> x = x + 4
>>> x *= 2
>>> x
10
a = int(input(“Seitenlänge?”))
A = a * a
...
Funktionen (parameter)
def bereche_flaeche(a)
return a * a
def berechne_umfang(a)
return 4 * a
a = int(input(“Seitenlänge?...
Funktionen II
def bereche_flaeche(a)
return a * a
def berechne_umfang(a)
return 4 * a
a = int(input(“Seitenlänge?”))
print...
Eingebaute Funktionen
mein_string = “ ICH bIn Groß ”
print(mein_string.strip().lower())
# ”ich bin groß” <- Kommentar
● Vo...
Schleifen
Wiederholen von Anweisungen
namen = “Alex,Trevor,Alice”.split(“,”)
for name in namen:
print(“Willkommen “ + name...
Verzweigungen if-Ausdrücke
def rechner(a, b, op):
if op == "+":
return a + b
elif op == "-":
return a - b
else:
return a
t...
Listen
def quadriere(liste):
b = []
for a in liste:
b.append(a*a)
return b
quadriere([1, 2, 3, 4, 5])
liste = [0,1,2,3,4,5...
Lerntipps
● Selber tippen trainiert Muskelgedächtnis
● Mit Freunden programmieren
● Hilfe suchen (online/offline)
● Spaß
O...
CodeCombat
Mulltiplayer Programmierspiel (http://codecombat.com/)
“Die Programmierstunde”
https://code.org/learnhttp://lightbot.com/
Let’s Code - Programmiervideos
Java für Einsteiger - https://open.hpi.de/courses/javaeinstieg2015
Python - https://open.hp...
Projektideen
● Text: Wörter zählen, Palindrom-Check, Cäsar-
Chiffre/Enigma
● Datei/Netzwerk: Verzeichnis auflisten, Datei
...
Programmieren lernen - Communities
OpenTechSchool:
http://learn.opentechschool.org/ (D/Eng...)
Coder Dojos:
https://zen.co...
Pause
Zwischenfragen?
Versionierung
● Das Backup der Programmierenden
● “Wie war nochmal der Stand den ich gestern
hatte?”
● Automatisches Zusam...
Dictionaries Zuordnung speichern
fak = {0:1, 1:1, 2:2, 3:6, 4:24, 5:120}
def fakultaet(n):
if n == 0:
return 1
if n in fak...
Algorithmen & Datenstrukturen
● Deutsche Sprache> 5 Mio
Wörter
● Immer die Wörterliste
durchlaufen zu dauert lange!…
vorsi...
Algorithmen & Datenstrukturen
● Trie (Prefixbaum) speichern
Wörterbücher effizienter
● Schneller durchsuchbar
● Braucht we...
Algorithmen & Datenstrukturen
Übungen:
Bundeswettbewerb Informatik (alte Aufgaben) https:
//www.bwinf.de/
USA Computing Ol...
Frameworks
● Rails maßgeschneidert für den Anwendungsfall
dynamischer Webseitenbau
● Code in vorgefertigtes Schema (Modell...
Nächste SlideShare
Wird geladen in …5
×

Wie fange ich programmieren an?

317 Aufrufe

Veröffentlicht am

Tipps für Programmieranfänger

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
317
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
3
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Wie fange ich programmieren an?

  1. 1. Wie fange ich mit dem Programmieren an? Jugend hackt, 9.7.2015 Hubert Hesse (@hubx)
  2. 2. Vom Problem zum Programm ● Eingabe/Ausgabe (Spezifikation) ● Vereinfachen ○ “Ich will ein Antivirus implementieren” ■ Dateien erkennen die “AAAA” enthalten ■ Was passiert wenn AAAA verschleiert ist ● Unterprobleme/”Teile-Und-Herrsche” ○ Computer fernsteuern ■ Bildschirm aufnehmen, alle 5s, versenden ■ Verbindung aufbauen ■ Tastenanschläge weiterleiten
  3. 3. ● Ziel: Quelltext schreiben und ausführen können ● Editor: z.B: Sublime (http://www.sublimetext.com/) ● Compiler (Quelltext -> Ausführbaren Datei) ● Interpreter (Anweisungen beim Programmstart übersetzen) ● Wie kann ich das Programm starten? Hello World Installiere Voraussetzungen< >>> print("Hello world") Hello World! public class HelloWorld { public static void main (String[] args) { System.out.println("Hello World!"); } } C++/Java: Keine gute EinstiegssprachePython
  4. 4. Variablen >>> (1 + 4) * 2 10 >>> x = 1 >>> x 1 >>> x = x + 4 >>> x *= 2 >>> x 10 a = int(input(“Seitenlänge?”)) A = a * a u = 4 * a print (“Fläche:”, A) print (“Umfang:”, u) ● Veränderbarer Platzhalter für Werte ● Adresse im Speicher Typen (10 == “10”)?
  5. 5. Funktionen (parameter) def bereche_flaeche(a) return a * a def berechne_umfang(a) return 4 * a a = int(input(“Seitenlänge?”)) print (“Fläche:”, berechne_flaeche(a)) print (“Umfang:”, bereche_umfang(a)) ● In Teilprobleme zerlegen, auf eine Sache konzentrieren ● Quelltextabschnitte benennen, wiederverwenden int bereche_flaeche(int a) { return a*a } C++/Java: Klammern statt Einrückung
  6. 6. Funktionen II def bereche_flaeche(a) return a * a def berechne_umfang(a) return 4 * a a = int(input(“Seitenlänge?”)) print (“Fläche:”, berechne_flaeche(a)) print (“Umfang:”, bereche_umfang(a)) print (“Doppelte Seitenfläche => Fläche:”, berechne_flaeche(2 * a)) print (“Doppelte Seitenfläche => Umfang:”, bereche_umfang(2 * a)) ● Wiederverwendung von Code mit Funktionen möglich
  7. 7. Eingebaute Funktionen mein_string = “ ICH bIn Groß ” print(mein_string.strip().lower()) # ”ich bin groß” <- Kommentar ● Vorher schauen ob Funktion schon mit der Standardbibliothek mitkommen
  8. 8. Schleifen Wiederholen von Anweisungen namen = “Alex,Trevor,Alice”.split(“,”) for name in namen: print(“Willkommen “ + name) total = 0 for i in 1, 1, 2, 3, 5, 7, 11, 13: print(i) total += i print(total) #43
  9. 9. Verzweigungen if-Ausdrücke def rechner(a, b, op): if op == "+": return a + b elif op == "-": return a - b else: return a total = 0 while True: op = input("+/-?") i = int(input("i?")) total = rechner(total, i, op) print (total) ● Testen von Variablen auf Inhalte ○ <,>, ==, (i % 2 == 0) ○ str.endswith(),str.islower() ● Wahrheitswert (Boolean) ○ True, False
  10. 10. Listen def quadriere(liste): b = [] for a in liste: b.append(a*a) return b quadriere([1, 2, 3, 4, 5]) liste = [0,1,2,3,4,5] b = [a*a for a in liste] # Kürzere Schreibweise: List comprehension b[5] # Direkter Zugriff auf das 6. Element = 25 (Zwischen-)ergebnisse aufsammeln
  11. 11. Lerntipps ● Selber tippen trainiert Muskelgedächtnis ● Mit Freunden programmieren ● Hilfe suchen (online/offline) ● Spaß OpenTechSchool Konzepte ausführlicher https: //opentechschool.github.io/python-beginners/de/index.html
  12. 12. CodeCombat Mulltiplayer Programmierspiel (http://codecombat.com/)
  13. 13. “Die Programmierstunde” https://code.org/learnhttp://lightbot.com/
  14. 14. Let’s Code - Programmiervideos Java für Einsteiger - https://open.hpi.de/courses/javaeinstieg2015 Python - https://open.hpi.de/courses/pythonjunior2014 khanacademy.org: Zeichnen mit JavaScript https://de.khanacademy.org/video?lang=de&format=lite&v=h25CyONlPdM Youtube: Android Apps programmieren (JaDaHB1) https://www.youtube.com/playlist?list=PL13I0cBsOJUc0OTlv09DG7_m2T0Si0Wbx
  15. 15. Projektideen ● Text: Wörter zählen, Palindrom-Check, Cäsar- Chiffre/Enigma ● Datei/Netzwerk: Verzeichnis auflisten, Datei erkennen/ablehnen, Passwort-Check, Webserver der immer die gleiche Webseite ausliefert ● Spiele: Hangman, Pong
  16. 16. Programmieren lernen - Communities OpenTechSchool: http://learn.opentechschool.org/ (D/Eng...) Coder Dojos: https://zen.coderdojo.com/ Internet: https://www.reddit.com/r/learnprogramming/wiki/faq (Eng)
  17. 17. Pause Zwischenfragen?
  18. 18. Versionierung ● Das Backup der Programmierenden ● “Wie war nochmal der Stand den ich gestern hatte?” ● Automatisches Zusammenführen von Änderungen Versionskontrolle mit Git https://try.github.io/
  19. 19. Dictionaries Zuordnung speichern fak = {0:1, 1:1, 2:2, 3:6, 4:24, 5:120} def fakultaet(n): if n == 0: return 1 if n in fak: return fak[n] fak[n] = fakultaet(n-1) * n return fak[n] Zuordnung Index -> Wert Gebe alle Fakultäten bis 1000 aus Wikipedia [De]: Fakultät (Mathematik) 5! = 4! * 5
  20. 20. Algorithmen & Datenstrukturen ● Deutsche Sprache> 5 Mio Wörter ● Immer die Wörterliste durchlaufen zu dauert lange!… vorsichtigem vorsichtiger vorsichtigere vorsichtigerem vorsichtigerer vorsichtigeres vorsichtiges vorsichtigstem vorsichtigsten vorsichtigster vorsichtshalber vorsieht vorsingen ...
  21. 21. Algorithmen & Datenstrukturen ● Trie (Prefixbaum) speichern Wörterbücher effizienter ● Schneller durchsuchbar ● Braucht weniger Speicher https://de.wikipedia.org/wiki/Trie#/media/File:Trie.svg
  22. 22. Algorithmen & Datenstrukturen Übungen: Bundeswettbewerb Informatik (alte Aufgaben) https: //www.bwinf.de/ USA Computing Olympiad (Automatisierte Bewertung) http://usaco.org/
  23. 23. Frameworks ● Rails maßgeschneidert für den Anwendungsfall dynamischer Webseitenbau ● Code in vorgefertigtes Schema (Modell, View, Controller) ● “Wissen wo was hinkommt” ● Rails for Zombies (http://railsforzombies.org)

×