• Keine Ergebnisse gefunden

252-0027 Einführung in die Programmierung

N/A
N/A
Protected

Academic year: 2022

Aktie "252-0027 Einführung in die Programmierung"

Copied!
57
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

252-0027

Einführung in die Programmierung

Thomas R. Gross

Department Informatik

(2)

Der Plan für heute

§ Vorlesung – Links, Durchführung, Raum, usw

§ Inhalt

§ Bezug zum Informatikstudium an der ETH

§ Praktische Aspekte

§ Uebungen

§ Computer(räume)

(3)

Diese Veranstaltung

§ Vorlesungen

§ Dienstag 10 - 12

§ Freitag 8 - 10

§ Uebungen

§ Dienstag 13-15 oder Mittwoch 8-10 oder Mittwoch 15-17

§ Nicht diese Woche (mehr dazu später)

(4)

Diese Veranstaltung

§ Bringen Sie Stift und Papier mit

§ Wir werden versuchen in der Vorlesung Aufgaben zu lösen

§ Sie sollten sich Notizen machen (dazu später mehr)

§ Sie können einen Computer/Tablet/Smartphone mitbringen

§ … und für die Vorlesung verwenden

§ Im D 28/E 12 keine Gespräche!

(5)

Diese Veranstaltung

§ Fragen (an den Dozenten) sind immer erlaubt und erwünscht

§ Fragen Sie nicht die Nachbarin/den Nachbar

§ Wie kann ich wissen was Ihnen Schwierigkeiten macht (oder was Sie nicht lesen können)??

§ Auch off-line sind Fragen möglich

§ Assistierende

§ Forum

§ eMail -- aber mit Ihrer student.ethz.ch Adresse!

(6)

Informationen

§ Web Seiten der Gruppe (Laboratory for Software Technology) www.lst.inf.ethz.ch

§ Im ETH Corporate Design – nicht immer sofort online

§ Manchmal auch garnicht erreichbar

(7)

Informationen

§ Auf unserer Web Seite finden Sie

§ Folien (wenn möglich vor der Vorlesung aber keine Garantie)

§ Achtung: 1 Seite/Slide

§ Drucken Sie 2, 4, 6 Seiten pro Blatt A4 Papier

§ Besser: drucken Sie nicht …

§ In der Vorlesung geschriebene Folien

§ Vielleicht 24h-48h nach der Vorlesung

§ Auf dem Videoportal der ETH finden Sie (demnächst)

§ Aufzeichnung des übertragenen Videos

§ Nur Hauptprojektor

(8)

Informationen

§ Wir benutzen verschiedene Systeme, Ihnen Informationen (insbesondere Programmfragmente o. ä.) zukommen zu

lassen.

§ Daher müssen wir wissen wer Sie sind ….

(9)

Wichtig:

Bitte registrieren Sie sich in myStudies. Sonst können Sie keiner Uebungsgruppe zugeteilt

werden, haben nicht Zugang zu Aufgaben, usw.

(10)

Wichtig:

Bitte registrieren Sie sich in myStudies. Sonst können Sie keiner Uebungsgruppe zugeteilt werden, haben nicht

Zugang zu Aufgaben, usw.

(11)

Warum Programmieren lernen?

(12)

Warum Programmieren lernen?

§ Was ist überhaupt “Programmieren”

§ Programmieren – Programm

§ Programm: griechisch prógramma = schriftliche Bekanntmachung, Aufruf; Tagesordnung [Duden]

§ Programmieren: Erstellen eines Programms

(13)

Programmierung

“Programming as universal activity” by Vinton Cerf, CACM March 2016, vol 59(3) p 7

§ analyzing problems

§ breaking them down into manageable parts

§ finding solutions

§ integrating the results

(14)

Programmierung

“Programming as universal activity” by Vinton Cerf, CACM March 2016, vol 59(3) p 7

§ Probleme analysieren

§ Probleme in (beherrschbare) Teilprobleme zerlegen

§ Lösungen finden

§ Ergebnisse zusammenfügen/kombinieren

(15)

Programmierung

§ Lösungen finden: für andere Menschen

§ Beschreiben wie eine Lösung aussehen soll

§ Lösungen finden: für eine Maschine

§ Anweisungen für eine Maschine/Computer

(16)

Programmierung

§ Lösungen finden: für andere Menschen

§ Beschreiben wie eine Lösung aussehen soll

§ Lösungen finden: für eine Maschine

§ Anweisungen für eine Maschine/Computer

§ Beschreibung, Anweisung: in einer “Sprache”

(17)

Sprache – Aufgabe 1

§ Bilden Sie (mit Ihrem Nachbarn/Ihrer Nachbarin) ein 2-Team.

§ Auch 3-Team möglich

§ Nehmen Sie ein Blatt Papier (jeder)

§ Im Team gibt es 2 Rollen

§ Lotse: bestimmt Kurs (1)

§ Pilot: folgt Kurs (beliebig viele)

(18)

§ Die Lotsin wird einen Kurs zeichnen und diesen der Pilotin beschreiben.

§ Mündlich!

§ Die Pilotin darf nicht das Blatt mit dem Kurs sehen

§ Die Pilotin darf keine (Rück)Fragen stellen.

§ Nur die Lotsin darf etwas sagen.

§ Sie muss den Kurs so gut wie möglich beschreiben.

(19)

Lotsenaufgabe

§ Zeichnen Sie ein einfaches 2-dimensionales Koordinatensystem mit Ursprung O

§ Piloten machen das bitte auch.

§ Zeichnen Sie einen Kurs von O nach P und der aus 2 Geraden besteht

§ Beide Geraden müssen auf dem Blatt vollständig dargestellt werden und verbunden sein

§ Beschreiben Sie den Kurs von O nach P ihrem Piloten.

§ Vergleichen Sie die Position von P (Pilot) mit P (Lotse)

(20)

O

P

(21)

Lotsenaufgabe

§ Zeichnen Sie ein einfaches 2-dimensionales Koordinatensystem mit Ursprung O

§ Piloten machen das bitte auch.

§ Zeichnen Sie einen Kurs von O nach P und der aus 2 Geraden besteht

§ Beide Geraden müssen auf dem Blatt vollständig dargestellt werden und verbunden sein

§ Beschreiben Sie den Kurs von O nach P ihrem Piloten.

§ Vergleichen Sie die Position von P (Pilot) mit P (Lotse)

(22)

§ Es ist (fast) unmöglich, als Lotse genug Informationen an den Piloten zu übermitteln

§ Insbesondere da wir keine Rückfragen zugelassen haben

(23)

Sprache(n)

§ Eine zweite Uebung. Nehmen Sie ein Blatt Papier (Rückseite ok) und einen Stift.

§ Behalten Sie die Teams und Rollen bei.

(24)

Lotsenaufgabe 2

§ Zeichnen Sie ein einfaches 2-dimensionales

Koordinatensystem mit Ursprung O mit einem Gitter (1 cm)

§ Piloten machen das bitte auch.

§ Zeichnen Sie einen Kurs von O nach P und der aus 2 Geraden besteht

§ Nur Gitterpunkte sind als Endpunkte der Gerade zulässig

§ Beschreiben Sie den Kurs von O nach P ihrem Piloten

§ Vergleichen Sie die Position von P (Pilot) mit P (Lotse)

(25)

O

A B C D

-A -B -C

1 -1

-2 -3

-4 -5

-6 2 3 4 5

(26)

Diskussion

§ 2. Aufgabe viel einfacher

§ Kleine Einschränkung der Kurse (müssen auf einem Gitterpunkt enden)

§ Genau(ere) Beschreibung möglich

(27)

Programmierung

§ Aehnliche Situation wenn wir ein Programm schreiben das ein anderer liest (und verstehen soll)

§ Mehr Einschränkungen (in der Sprache) machen die Kommunikation leichter

§ …. und erfordern mehr Aufwand bei der Entwicklung

§ Eine Programmiersprache gibt uns vor, wie wir Lösung(en) eines Problems beschreiben können.

(28)

Programmiersprachen

Diskutieren Sie mit ihrem Nachbarn/ihrer Nachbarin

1. Eine Programmiersprache sollte es möglichst einfach machen ein Programm zu schreiben

2. Eine Programmiersprache sollte es möglichst einfach machen, ein Programm zu lesen

Was ist Ihre Meinung?

(29)

Einführung in die Programmierung

§ Müssen eine Programmiersprache verwenden

(30)

Einführung in die Programmierung

§ Müssen eine Programmiersprache verwenden

§ Wir verwenden Java™

§ “Industrial strength” Sprache

§ Viele Konzepte

§ Nicht alle werden in ”Einf. in die Programmierung”

vorgestellt/verwendet

§ … diese werden auch nicht für die Prüfung erwartet

§ Mehr Themen/Konzepte in weiteren Vorlesungen

(31)
(32)

Einstieg ins Programmieren

§ Werden die erste Woche damit zubringen, die Umgebung für das Programmieren einzurichten

§ Wiederverwendung für Ihr ganzes Studium

§ .. und darüber hinaus

§ Machen Sie dies damit Sie mitmachen können.

§ Wir benutzen Eclipse (später dazu mehr)

(33)

Umgebungen

§ Windows

§ Linux

§ Mac OS X

(34)

Brauchen Sie einen Computer ?

§ Im Prinzip nein (Sie können die Systeme im CAB H56/57 benutzen)

§ Irgendwann vielleicht schon …

§ Das Projekt Neptun bietet diverse Notebooks / Laptops zu günstigen Konditionen

http://www.projektneptun.ch

§ Fenster bis 2. Oktober

(35)

Weitere Informationen

§ Viele Informationen auf dem Web

§ Bücher werden im Lauf des Semesters vorgestellt

(36)

Programmieren

§ Kann man Programmieren lernen?

§ Oder gibt es Naturtalente (und der Rest kann zuschauen)?

(37)

Jede(r) kann programmieren lernen

§ Ziel der Vorlesung: Kompetenz

§ Programmieren ist zentrales Thema der Informatik

§ Aber nicht das einzige!

§ Wichtig sind:

§ Aufmerksamkeit

§ Imagination, Phantasie

§ Uebung

(38)

Uebungen

§ Aufgabenblätter

§ Selber lösen!

(39)

Zusammenhang Uebungen – Prüfungserfolg

an R Meier & M Faesfürdie aphik. (Session Herbst16/17)

(40)

Uebungen

§ Aufgabenblätter

§ Selber lösen!

§ Besprechung in Gruppen

§ Teilnahme nicht verbindlich aber sehr empfohlen

§ Es gibt selten nur eine Lösung

(41)

Uebungen

§ Sie können (ab 3. oder 4. Aufgabenblatt) “Bonuspunkte” für die Basisprüfung sammeln

§ Bonuspunkte helfen die Note anzuheben

§ Maximalnote auch ohne Bonus erreichbar

§ Programmieren ist Teil der Basisprüfung

§ Details später.

(42)

Uebungsgruppen

§ Wir müssen wissen wer in der Vorlesung mitmacht und wie wir am besten helfen können

§ Fragebogen für alle, die sich in mystudies registrieren.

(43)

Fragebogen

(44)

Fragebogen

(45)

Fragebogen

§ Wird heute aufgeschaltet

§ Sehen Sie sich die Web Seite zur Vorlesung an.

(46)

Wenn Sie noch nie mit Computern arbeiteten

§ … und keinen eigenen haben: Der Computerraum CAB H56 ist für diese Veranstaltung reserviert

§ Mittwoch (20.9.) 8:30 – 10:00

§ Dienstag (26.9.) 13:00 – 15:00

(47)

Wie kann man eine (Programmier)sprache beschreiben?

§ Notation EBNF E – Extended

B – Backus

N – Naur oder Normal F – Form

§ Beschreibt die Syntax einer Sprache

§ Food for thought: Welche Sprachen kann man damit beschreiben?

(48)

Uebersicht

§ Sie lernen die vier elementaren Ausdrucksmöglichkeiten in EBNF kennen

§ Sie lernen EBNF Beschreibungen zu lesen und verstehen

§ Sie lernen zu entscheiden ob ein Symbol legal ist (für eine EBNF Beschreibung)

§ ….

(49)

EBNF

§ Programmierung im ganz Kleinen

§ Vier Elemente (“control forms”) die Sie in Java wiederfinden werden

(50)

EBNF

§ Programmierung im ganz Kleinen

§ Vier Elemente (“control forms”) die Sie in Java wiederfinden werden

§ Aufreihung (“sequence”)

§ Entscheidung oder Auswahl (“decision”)

§ Wiederholung (“repetition”)

§ Rekursion (“recursion”)

(51)

EBNF

§ Beschreibungen haben einen Namen und diese Namen können wieder verwendet werden

§ Um kompliziertere Beschreibungen zu erstellen

§ Erstellen einer EBNF Beschreibung ßà Programmieren in Java

§ Aehnliche Schritte

§ EBNF eine formale Beschreibung

§ Präzise und verständlich

(52)
(53)

EBNF Regeln und Beschreibungen

§ EBNF Beschreibung: eine Menge EBNF Regeln

§ Menge: Reihenfolge unwichtig

§ EBNF Regel

§ Hat 3 Bestandteile

§ Linke-Seite (Left-Hand Side, LHS), Rechte-Seite (Right-Hand Side, RHS),

§ trennt LHS von RHS, ausgesprochen “ist definiert als”

§ LHS RHS

§ LHS

§ Ein Wort (kursiv, kleingeschrieben) – der Name der EBNF Regel

(54)

§ RHS

§ Die Beschreibung für den Namen (d.h., der LHS)

§ Kann enthalten

§ Namen

§ Buchstaben ( stellen den Buchstaben da, d.h. wir erwarten diesen Buchstaben und keinen anderen)

§ Kombinationen der vier Kontrolelemente (“control forms”) (auf den nächsten Seiten mehr)

(55)
(56)
(57)

Control forms (zum Kombinieren)

§ Auswahl

§ Eine Menge von Alternativen

§ Reihenfolge unwichtig

§ Durch | (gesprochen senkrechter Strich) (“stroke”) getrennt

§ Alternativen folgen den EBNF Regeln

§ Auswahl Beispiel ta_initial ta1 | ta2 ta1 Michael Faes ta2 Remi Meier

Referenzen

ÄHNLICHE DOKUMENTE

Um Eclipse einfacher zu starten, können Sie eine Verknüpfung erstellen.. Gehen Sie mit Ihrem Datei-Explorer in den Ordner, wo Sie Eclipse

§ Programm: Folge von Anweisungen, die von einem Computer ausgeführt werden (können).. § Programm realisiert

ArrayList § Java stellt die Klasse ArrayList für solche Listenobjekte zur Verfügung § "Array" erinnert daran, dass die Elemente über einen Index erreicht werden können § Die Anzahl

§ Schiedsrichter entscheidet ob das Symbol legal ist oder nicht (für diese EBNF Beschreibung)2. § Symbol legal gemäss einer Regel: alle Buchstaben des Symbols stimmen mit den

set( index , value ) replaces value at given index with given value size() returns the number of elements in list.. toString() returns a string representation of the list such as

§ Wenn eine Methode einen Parameter erwartet dann muss dieser auch übergeben werden. printPunkte(); // ERROR: parameter value

containsAll( coll ) returns true if this set contains every element from given set equals( set ) returns true if given other set contains the same elements iterator() returns

§ Eine Aussage gilt für den Zustand eines Programms wenn die Auswertung der Aussage mit dem Zustand das Ergebnis true ergibt. § Die Auswertung jedes Variable ergibt den Wert