60
Christopher Oezbek, [email protected] 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin, Institut für Informatik http:// www.inf.fu-berlin.de / inst / ag-se /

Christopher Oezbek, [email protected] 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Embed Size (px)

Citation preview

Page 1: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 1

Kleine Einführungin die Programmierung

(mit Eclipse und Haskell)Christopher Oezbek

Freie Universität Berlin, Institut für Informatikhttp://www.inf.fu-berlin.de/inst/ag-se/

Page 2: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 2

Kurz zu mir…

•2000-2003 Uni Karlsruhe

•2003-2004 Georgia Institute of Technology=> Master of Computer Science

•Jetzt: Promotion im Bereich Software Engineering

•Wir werden uns ab dem 4ten Semester wieder sehen => Anwendungssysteme, Studienarbeiten

•Ihr könnt mich gerne ansprechen zu: Auslandsaufenthalten Wettbewerben (z.B. ACM Programming Contest)

Page 3: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 3

Diese Folien gibt es im Netz

•www.inf.fu-berlin.de/~oezbek/-> Brückenkurs (unter Talks)

•Dort findet Ihr auch Links zu Tutorials zu Haskell und den Softwarepaketen.

•Viele Aspekte der Installation werden jetzt zu schnell gehen und sind auch nur dafür gedacht, dass ihr sie nachschauen könnt.

Page 4: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 4

Feedback erwünscht

•Wenn ihr irgendwas anzumerken habt, positiv oder negativ, dann schreibt es während der Vorlesung auf und schickt es mir:

[email protected]

•Natürlich könnt ihr auch einfach in Raum 009/008 vorbeikommen.

•Oder ihr meldet euch einfach und fragt. Es ist immer ein gutes Zeichen dafür, dass andere es nicht verstehen, wenn man es selbst nicht versteht. Mit Schüchternheit kommt man nicht weit.

Page 5: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 5

Kurze Umfrage…

•Wer hat schon Erfahrung im Programmieren?

•=> Ihr müsst eigentlich gar nicht hier sein. Ich empfehle eure Zeit besser zu investieren und Eclipse auf eigene Faust zu erkunden.

•Wer noch keine?

Page 6: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 6

Was ist Programmieren?

•„Den Wecker auf 8:30 stellen.“

•„Die Wiederholung der Simpsons um 3 Uhr nachts automatisch aufnehmen.“

•„Ein Rezept für einen Koch schreiben.“

• In der Informatik:„Einer Maschine sagen, was sie selbstständig tun

soll.“

Page 7: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 7

Wo ist das Problem?

•Die Sprachen der Maschinen sind sehr eingeschränkt (manche Maschinensprachen bestehen aus weniger als 20 Befehlen).

•Ändert sich der Prozessor, dann ändert sich auch die Maschinensprache. PCs haben z.B. eine andere Maschinensprache als Macs und ein neuer Pentium 4 hat einen anderen Befehlssatz als ein alter 286.

•=> Maschinen sind ziemlich dumm und man muss wirklich alles explizit sagen.

Page 8: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 8

Beispiel

•Schreibe ein Programm zum Braten eines Spiegeleis!

•„Ein Ei in einer Pfanne kurz mit etwas Fett braten.“

• Jeder menschliche Koch hat damit kein Problem.

•Nicht so der Computer…

Page 9: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 9

So schlau sind Computer nicht…

•Öffne Schrank

•Nimm Pfanne

•Stelle Pfanne auf Herd

•Schalte Herd auf Stufe 3 ein

•Öffne Kühlschrank

•Nimm Eierschachtel

•Öffne Eierschachtel

•Nimm Ei

•Zerbreche Ei (ob das wohl gut geht…)

•…

Page 10: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 10

Und es kommt noch schlimmer

•Was soll der Koch tun, wenn keine Pfanne oder keine Eier da sind? Muss man auch sagen:

„Wenn keine Pfanne da, dann Abbruch.“ Das kann ganz schön viel Arbeit machen, immer

aufzupassen, dass Robustheit und Verlässlichkeit gewährleistet sind.

•Und wenn wir es vergessen zu sagen, dann steht der Kühlschrank immer noch offen…

Page 11: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 11

Also kleine Zusammenfassung

•Der Computer macht ohne Murren alles, was ihr ihm sagt…

•…und kein bisschen mehr.

•Sollte also euer Programm nicht laufen, ist es wahrscheinlich eure Schuld.

•Man muss sich teilweise eine ganz neue Art des Denkens angewöhnen.

Page 12: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 12

Ein weiteres Beispiel

•Wie viele Leerzeichen sind im folgenden Satz? „Wie viele Leerzeichen sind in diesem Satz?“

• Ja, 6.

•Aber woher wissen wir das?

•Schauen?

•Aber wie?

Page 13: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 13

Jetzt so wie der Computer denkt

• Zähler = 0

• Nimm jedes Zeichen des Satzes und mache:

Falls das Zeichen gleich dem Leerzeichen ist, dann erhöhe Zähler um eins.

Page 14: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 14

Zwei Begriffe

•Was wir gerade gemacht haben, ist einen Algorithmus entwerfen.

•Und dann haben wir diesen in Pseudo-Code aufgeschrieben.

•Ein Algorithmus ist eine Idee, wie ein bestimmtes Problem gelöst werden kann (z.B. Leerzeichen zählen). Beispiele wären: Daten sortieren, Routen planen, Schach spielen…

•Pseudo-Code ist das umgangssprachliche Ausdrücken eines Algorithmus. Die Sprache sollte hierbei schon sehr an dem Denken der Computer angelehnt sein, muss aber nicht alle Feinheiten enthalten.

Page 15: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 15

Von Maschinen- zu Programmiersprache

• Maschinensprache besteht im Prinzip nur aus einer ganzen Menge Zahlen (Nullen und Einsen).

• Dies ist für uns Menschen unverständlich und enthält viele Details, die uns nicht interessieren.

• Deshalb gibt es Programmiersprachen, welche näher an unserem Denken liegen, aber vom Computer selbst in Maschinensprache umgewandelt werden können.

• Im Gegensatz zu Maschinen-Code, welcher in Maschinensprache geschrieben wurde, bezeichnet man Anweisungen an den Computer in einer Programmiersprache als Quell-Code (engl. Source) oder Programm-Code.

Page 16: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 16

Beispiel "Hello World" in C

•Quell-Code:

•Es wird einfach "Hello World" ausgegeben und dann das Programm beendet.

Page 17: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 17

Das gleiche in Assembler-Code

•Diesen Quellcode hat der Compiler jetzt in Assembler-Code umgewandelt.

•Assembler-Code ist sehr nahe an der Maschinen-sprache, aber (für Eingeweihte) noch lesbar.

Page 18: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 18

Maschinensprache…

•Es geht noch 4 Bildschirmseiten so weiter.

•Nicht unbedingt, wie man sich Programmieren vorstellt.

Page 19: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 19

Programmiersprachen

•Nachdem wir uns einen Algorithmus überlegt haben, müssen wir eine Programmiersprache wählen.

•Hiervon gibt es ziemlich viele (= Hunderte).

•Einige Beispiele (in alphabetischer Reihenfolge): Ada, C, C#, C++, Cobol, Fortran, Eiffel, Erlang, Haskell, Java, Lisp, Malbolge, ML, Ocaml, Pascal, Perl, PHP, Pike, Prolog, Python, Ruby, Sather, Scheme, Shell, Smalltalk, Tcl, (Visual) Basic…

Page 20: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 20

Wieso so viele?

• Jede Programmiersprache hat Stärken und Schwächen und wurde für bestimmte Zwecke entworfen.

• "Manche Sprachen haben 20 Worte für Schnee, andere sind Bürokratendeutsch…"

•Es gilt, eine passende Wahl zu treffen, je nachdem was man tun will. („Keine gute Idee, mit der Kettensäge den Rasen zu mähen.“)

•Eine Art Programmiersprachen zu kategorisieren sind Paradigmen.

Page 21: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 21

Imperativ vs. Funktional

• Imperative Programmiersprachen verwenden Listen von Befehlen, die der Computer Stück für Stück abarbeiten soll. „Tue dies, dann tu das, jetzt jenes.“ Beispiele: C/C++, Java, Pascal, Python, Perl,

Ruby…

•Funktionale Sprachen sind enger an die Mathematik angelehnt und drücken alles durch Funktionen und deren Ergebnisse aus. „Das Ergebnis ist f(g(x)).“ Beispiele: Haskell, Lambda-Kalkül, Ocaml,

Scheme…

Page 22: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 22

Prozedural vs. Objekt-Orientiert

•Prozedurale Sprachen gruppieren Programmfunktionalität mittels von Prozeduren. „Mittels dieser Prozedur wird ein Käsekuchen gebacken.“ Beispiele: C, Pascal

•Objekt-Orientierte Sprachen gruppieren mittels eines Objektes (Daten+Prozedur). „Im Mittelpunkt unserer Betrachtung steht der Käsekuchen“ Beispiele: C++, Java, Smalltalk

Page 23: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 23

Kompiliert vs. Interpretiert

•Bei Compiler-Sprachen wird der Quell-Code einmalig in Maschinensprache übersetzt. Der Computer kann sie dann direkt ausführen. Beispiele: C/C++, Pascal/Delphi

• Interpretierte Sprachen werden während des Programmablaufs von einem Interpreter ausgewertet. Hierdurch sind sie meist langsamer, aber das Kompilieren fällt komplett weg und man ist nicht durch die Maschinesprache in den Fähigkeiten beschränkt. Beispiele: Java, Basic, Python, Ruby

Page 24: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 24

Zusammenfassung Paradigmen

•Paradigmen sind Eigenschaften-Klassen von Programmiersprachen.

•Sie helfen dabei, die richtige Programmiersprache für eine bestimmte Aufgabe zu finden.

•Die wichtigste Klasse für Anwendungsentwickler heutzutage: Objekt-Orientiertes Programmieren (OOP) mit den wichtigsten Vertretern C++ und Java.

Page 25: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 25

Was werdet ihr lernen?

•Zuerst Haskell (funktional) => gut, um die Programmierer-Denke zu lernen

•Dann Java (OOP) => man kann alles damit machen und muss sich um viele Dinge nicht mehr kümmern (Kühlschrank zumachen)

•Die Sprachen der Fachgebiete: Hardware oder Systeme => C/C++ Künstliche Intelligenz => Lisp, Prolog, Scheme Computergrafik => C/C++ Software Engineering => Java, C++, Python Simulation und Hochleistungsrechnen => Fortran Netzwerke und Administration => Shell, Perl

Page 26: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 26

Kurze Verschnaufpause

•Wer ist noch mit den Gedanken dabei?

•Wen habe ich abgehängt?

•Wer ist gelangweilt?

•Habt ihr noch Fragen?

Page 27: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 27

Fehler

•Fehler sind bei der Erstellung von Programmen unvermeidlich.

•Auch ihr werdet viele Fehler machen.

•Wenn man nicht den richtigen Ansatz wählt, kann man mehr Zeit bei der Fehlersuche verbringen als beim Programmieren selbst.

•Es gibt viele Arten von Fehlern.

Page 28: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 28

Syntax-Fehler

•Syntax-Fehler sind alle Fehler, bei welchen der Computer euch bereits im Quellcode sagen kann, dass ihr die Schreibweise falsch gemacht habt.

•Beispiel: „Öffne die kühlschranktür Nimm Eier.“ Kühlschranktür ist klein geschrieben Punkt fehlt vor „Nimm“. Achtung: Der Computer wird euch wahrscheinlich

eher sagen: „Kenne kühlschranktür nicht“ und „Zwei Verben im Satz ohne ‚und‘ gefunden.“

Page 29: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 29

Logische Fehler

•Diese werden dem Computer nicht auffallen. Denn er weiß ja nicht, was ihr vorhabt.

•Beispiel: „Falls Eierschachtel nicht leer, dann Abbruch.“ Die Syntax stimmt. Aber eigentlich wollten wir nicht abbrechen

Page 30: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 30

Was kann man gegen Fehler tun?

•Die besten Werkzeuge, welche die Softwaretechnik bisher gefunden hat, sind: Durchsichten: Jemand anderes als der Autor geht

den Quell-Code nach bestimmten Kriterien durch. Tests: Es wird immer wieder automatisch

überprüft, ob der Code das macht, was er soll. „Ist ein Spiegelei dabei rausgekommen?“

Der Computer kümmert sich um die Syntaxfehler.

Page 31: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 31

Zurück zu den Leerzeichen…

•Wir verwenden hierzu die Entwicklungsumgebung Eclipse.

•Sie ist eigentlich die wichtigste Entwicklungsumgebung für Java, aber es gibt Plugins, um sie auf andere Sprachen umzuschalten.

•Sie ist frei verfügbar (Open Source) und wurde unter Mitwirkung von IBM entwickelt.

•Eclipse ist ziemlich mächtig und kann euch bei vielen Sachen helfen.

• (Plugin = Ein kleines Programm, welches zusätzliche Funktionen in einem großen Programm zur Verfügung stellt)

Page 32: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 32

Java-Installation

• Allerdings braucht ihr noch zuerst Java (mindestens in Version 1.4.1).

• Empfehlung: Java5SE bzw. Java 1.5

• http://java.sun.com/j2se/1.5.0/download.jsp

• Ihr solltet runterladen: J2SE 5.0 JRE J2SE 5.0 Documentation (falls Ihr mal Java

programmieren wollt)• Dokumentation einfach entpacken und JRE installieren.

Page 33: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 33

Eclipse-Installation

•Aktuelle Version 3.0.1

•www.eclipse.org

•Von dort zu Download und einen deutschen Spiegelserver auswählen.

•80 MB

•Wer kein schnelles Internet zu Hause hat muss wohl auf Brenner/USB-Stick ausweichen.

•Helft euch gegenseitig!

Page 34: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 34

Eclipse entpacken

• Winzip / WinRAR erledigen das.

• Eclipse muss nicht installiert werden.

• Verschiebt den Ordner einfach dorthin, wo ihr euren Entwicklungskram haben wollt.

Page 35: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 35

Jetzt noch Haskell

•Erst einmal den Haskell-Interpreter GHC (The Glorious Glasgow Haskell Compilation System)

• http://www.haskell.org/ghc/download_ghc_621.html

•Version auswählen (6.2.1) und dann installieren.

•PATH muss nicht unbedingt gesetzt werden.

•Anschließend Haskell-Eclipse-Plugin Version 0.40 runterladen.

• http://sourceforge.net/projects/eclipsefp/

•Entpacken nicht nötig.

Page 36: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 36

Eclipse starten

• Eclipse.exe ausführen (am besten einen Shortcut machen).

• Arbeitsverzeichnis auswählen (dort werden eure Programme und Quell-Codes gespeichert).

Page 37: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 37

Zum "Workspace" wechseln

Page 38: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 38

So sollte es aussehen…

Page 39: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 39

Haskell-Plugin installieren

Page 40: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 40

Haskell-Plugin installieren (II)

Page 41: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 41

Eclipse für GHC einrichten

Page 42: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 42

Installation geschafft!

•Alle mitgekommen?

•Kriegt ihr das auf euren Rechnern zu Hause hin?

•Bevor wir Leerzeichen in Haskell zählen: Erstmal fünf Minuten Pause! Alle, die nach draußen müssen, sind aber bitte

bereits in 3 Minuten wieder da.

Page 43: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 43

Neues Haskell-Projekt erstellen

Page 44: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 44

Perspective?

• Perspektiven sind in Eclipse vordefinierte Anordnungen der Fenster (Views), welche für bestimmte Aufgabenbereiche besonders geeignet sind.

Page 45: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 45

So sollte es aussehen

Page 46: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 46

Views (Ansichten)

•Jedes der Teilfenster wird View genannt.

•Die wichtigsten drei: Datei-Navigator

Text-Editor

Ausgabe-Fenster

Page 47: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 47

Views konfigurieren

•Die wichtigsten Views einer Perspektive sind direkt sichtbar im Menü "Show View".

•Duzende weitere gibtes unter "Others"…

•Wichtig für Haskell: Console – Hier könnt ihr Haskell-Code direkt eingeben

oder euch die Programmausgabe ansehen. Problems – Fehler, die aufgetreten sind beim

Überprüfen eures Codes, werden hier angezeigt.

Page 48: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 48

Eine neue Quellcode-Datei

Achtung: Modulnamen müssen in Haskell groß geschrieben werden!

Page 49: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 49

Ausführen

Page 50: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 50

Wenn es nicht funktioniert…

Dieser Fehler bedeutet, dass ihr Eclipse nicht gesagt habt, wo der Haskell-Interpreter zu finden ist.

Page 51: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 51

Leerzeichen zählen in Haskell

• Module dienen der Organisation.

• "" ist eine leere Zeichenkette.

• (x : xs) zerlegt eineListe in erstes Element und Restliste.

• == ist der Vergleichsoperator.

• Der Interpreter geht von oben nach unten die Bedingungen durch, bis er eine passende findet.

• Achtung: Einrücken nur mit Tabs (links von Q)

Page 52: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 52

Wie geht's weiter

• Nach dem Eingeben speichert ihr mit STRG+S. Dies bewirkt, dass euer Code geprüft wird.

• In dem Beispiel habe ich Leerzeichen anstatt Tabs in der ersten Zeile verwendet.

• Die Fehlermeldungen sind also nicht immer hilfreich…

Page 53: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 53

Ausführen (Interaktiv = GHCi)

Page 54: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 54

Was bedeutet Interaktiv?

•Beim Interaktiven Ausführen wird das Programm nicht direkt gestartet, sondern nur geladen.

• Ihr könnt dann einzelne Funktionen und Variablen direkt auf der Console abfragen.

•Wenn ihr Haskell-Anwendungen schreiben wollt, braucht ihr ein Modul mit Namen Main und eine Variable mit Namen main.

•Ein Beispiel für eine "Hello World"-Anwendung findet ihr in der Dokumentation zum Haskell-Plugin (Help -> Help Contents -> Functional Programming -> Haskell -> Getting started).

Page 55: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 55

Was die Console noch kann

• Man kann auch direkt in ihr Programmieren.

• Definitionen brauchen allerdings ein let.

• Man kann sowohl Variablen als auch Funktionen definieren.

• Bei den vielen x'en seht ihr schon, dass es da wohl spezielle Regeln gibt, welchen Wert x wo hat.

Page 56: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 56

Typischer Fehler…

•Variablen und Funktionen müssen mit einem kleinen Buchstaben anfangen.

Page 57: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 57

Nach all den Folien…

… jetzt mal live, falls ihr wollt.

Page 58: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 58

Wie geht's weiter? (1)

•Für alle die unter euch, die noch nie programmiert haben, oder sich nicht ganz so sicher fühlen: Schnappt euch Tutorials aus dem Netz bzw. von

der Brückenkursseite. Investiert Zeit! Programmieren ist eine Fähigkeit,

die man als Informatiker haben muss. (Lasst euch nicht von den Mathematikern irritieren.)

Lernt zusammen (erspart Frust und Wissen verteilt sich schneller).

Glaubt nicht, dass es reicht, ALP zu hören, um Programmieren zu lernen.

Page 59: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 59

Wie geht's weiter (2)

•Für alle die unter euch, für die das alles kalter Kaffee war: Helft anderen. Seid nicht überheblich mit euren Fähigkeiten. Ihr

musstet es auch mal lernen. Wenn der andere nicht versteht, dann ist es

wahrscheinlich euer Problem und nicht deren. Zeigt was ihr könnt und macht bei

Programmierwettbewerben mit.

Page 60: Christopher Oezbek, oezbek@inf.fu-berlin.de 1 Kleine Einführung in die Programmierung (mit Eclipse und Haskell) Christopher Oezbek Freie Universität Berlin,

Christopher Oezbek, [email protected] 60

Viel Spaß beim Informatik-Studium!

Danke!