Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
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?

371 Aufrufe

Veröffentlicht am

Tipps für Programmieranfänger

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

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

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)

×