Programmieren und Problemlösen
|
|
- Fritz Schreiber
- vor 5 Jahren
- Abrufe
Transkript
1 Dennis Komm Programmieren und Problemlösen Einführung in die Vorlesung Frühling Februar 2019
2 Willkommen zur Vorlesung
3 Material Vorlesungswebseite Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 1 / 52
4 Das Team Dozent Dennis Komm Assistierende Moritz Hoffmann Jean Kaufmann Angela Rellstab Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 2 / 52
5 Programmieren und Problemlösen In diesem Kurs lernen Sie programmieren in Java Softwareentwicklung ist ein Handwerk So wie Erlernen eines Musikinstruments Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 3 / 52
6 Programmieren und Problemlösen In diesem Kurs lernen Sie programmieren in Java Softwareentwicklung ist ein Handwerk So wie Erlernen eines Musikinstruments Problem: Es ist noch keiner vom Zuhören Pianist geworden Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 3 / 52
7 Programmieren und Problemlösen In diesem Kurs lernen Sie programmieren in Java Softwareentwicklung ist ein Handwerk So wie Erlernen eines Musikinstruments Problem: Es ist noch keiner vom Zuhören Pianist geworden Deshalb bietet dieser Kurs Ihnen viele Möglichkeiten, zu üben Nutzen Sie sie! Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 3 / 52
8 Programmieren und Problemlösen In diesem Kurs lernen Sie Problemlösen mit geeigneten Algorithmen und Datenstrukturen Sprachübergreifendes Grundlagenwissen Analog zu Rhythmuslehre, Tonleitern und Notenlesen Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 4 / 52
9 Programmieren und Problemlösen In diesem Kurs lernen Sie Problemlösen mit geeigneten Algorithmen und Datenstrukturen Sprachübergreifendes Grundlagenwissen Analog zu Rhythmuslehre, Tonleitern und Notenlesen Problem: Ohne Musikinstrument macht dies nur bedingt Spass Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 4 / 52
10 Programmieren und Problemlösen In diesem Kurs lernen Sie Problemlösen mit geeigneten Algorithmen und Datenstrukturen Sprachübergreifendes Grundlagenwissen Analog zu Rhythmuslehre, Tonleitern und Notenlesen Problem: Ohne Musikinstrument macht dies nur bedingt Spass Deshalb kombinieren wir das Problemlösen mit dem Erlernen von Java Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 4 / 52
11 Ziel der heutigen Vorlesung Einführung / Wiederholung Computermodell und Algorithmen Allgemeine Informationen zur Vorlesung Das erste Java-Programm Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 5 / 52
12 Einführung in die Vorlesung Computermodell und Algorithmen
13 Computer Konzept Was müssen Computer können, um zu rechnen? Muss er z. B. die Multiplikation beherrschen? Reicht nicht die Addition? Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 6 / 52
14 Computer Konzept Was müssen Computer können, um zu rechnen? Muss er z. B. die Multiplikation beherrschen? Reicht nicht die Addition? Turingmaschine [Alan Turing, 1936] Endliche Anzahl von Zuständen Speicher, der aus beliebig vielen Zellen besteht Pointer auf aktuelle Zelle Pointer kann Inhalt der Zelle ändern und sich nach links oder rechts bewegen Alan Turing [Wikimedia] Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 6 / 52
15 Computer Umsetzung Analytical Engine Charles Babbage (1837) Z1 Konrad Zuse (1938) ENIAC John von Neumann (1945) Charles Babbage [Wikimedia] Konrad Zuse [Wikimedia] John von Neumann [Wikimedia] Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 7 / 52
16 Computer Umsetzung Komponenten der Von-Neumann-Architektur Hauptspeicher für Programme und Daten, Random Access Memory (RAM) Prozessor (CPU) zur Verarbeitung der Programme und Daten I/O-Komponenten zur Kommunikation mit der Aussenwelt Prozessor CPU Rechenwerk ALU Speicher BUS Steuerwerk Ein-/Ausgabe Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 8 / 52
17 Speicher für Programm und Daten Folge von Bits Programmzustand: Werte aller Bits Zusammenfassung von Bits zu Speicherzellen (8 Bits = 1 Byte) Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 9 / 52
18 Speicher für Programm und Daten Folge von Bits Programmzustand: Werte aller Bits Zusammenfassung von Bits zu Speicherzellen (8 Bits = 1 Byte) Jede Speicherzelle hat eine Adresse Random Access: Zugriffszeit auf Speicherzelle (nahezu) unabhängig von ihrer Adresse Adresse: 17 Adresse: 18 Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 9 / 52
19 Algorithmus: Kernbegriff der Informatik Algorithmus Handlungsanweisung zur schrittweisen Lösung eines Problems Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 10 / 52
20 Algorithmus: Kernbegriff der Informatik Algorithmus Handlungsanweisung zur schrittweisen Lösung eines Problems Ausführung erfordert keinen Intellekt, nur Genauigkeit Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 10 / 52
21 Algorithmus: Kernbegriff der Informatik Algorithmus Handlungsanweisung zur schrittweisen Lösung eines Problems Ausführung erfordert keinen Intellekt, nur Genauigkeit nach Muhammed al-chwarizmi; Autor eines persischen Mathematik-Lehrbuchs (um 825) Dixit algorizmi... (lateinische Übersetzung) [Wikimedia] Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 10 / 52
22 Der älteste (bekannte) nichttriviale Algorithmus Euklidischer Algorithmus aus Euklids Elementen, 300 v. Chr. Eingabe: ganze Zahlen a > 0, b > 0 Ausgabe: ggt von a und b Eingabe: a und b Solange b 0 Wenn a > b dann a = a b Sonst b = b a Ausgabe: a Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 11 / 52
23 Der älteste (bekannte) nichttriviale Algorithmus Euklidischer Algorithmus aus Euklids Elementen, 300 v. Chr. Eingabe: ganze Zahlen a > 0, b > 0 Ausgabe: ggt von a und b Eingabe: a und b Solange b 0 Wenn a > b dann a = a b Sonst b = b a Ausgabe: a a b Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 11 / 52
24 Der älteste (bekannte) nichttriviale Algorithmus Euklidischer Algorithmus aus Euklids Elementen, 300 v. Chr. Eingabe: ganze Zahlen a > 0, b > 0 Ausgabe: ggt von a und b Eingabe: a und b Solange b 0 Wenn a > b dann a = a b Sonst b = b a Ausgabe: a a b a b Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 11 / 52
25 Der älteste (bekannte) nichttriviale Algorithmus Euklidischer Algorithmus aus Euklids Elementen, 300 v. Chr. Eingabe: ganze Zahlen a > 0, b > 0 Ausgabe: ggt von a und b Eingabe: a und b Solange b 0 Wenn a > b dann a = a b Sonst b = b a Ausgabe: a a b a b a b Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 11 / 52
26 Der älteste (bekannte) nichttriviale Algorithmus Euklidischer Algorithmus aus Euklids Elementen, 300 v. Chr. Eingabe: ganze Zahlen a > 0, b > 0 Ausgabe: ggt von a und b Eingabe: a und b Solange b 0 Wenn a > b dann a = a b Sonst b = b a Ausgabe: a a b a b a b a b Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 11 / 52
27 Rechengeschwindigkeit In der mittleren Zeit, die der Schall von mir zu Ihnen unterwegs ist... Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 12 / 52
28 Rechengeschwindigkeit In der mittleren Zeit, die der Schall von mir zu Ihnen unterwegs ist m arbeitet ein heutiger Desktop-PC mehr als 100 Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 12 / 52
29 Rechengeschwindigkeit In der mittleren Zeit, die der Schall von mir zu Ihnen unterwegs ist m = mehr als Instruktionen arbeitet ein heutiger Desktop-PC mehr als 100 Millionen Instruktionen ab Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 12 / 52
30 Java Java basiert auf einer virtuellen Maschine (mit Von-Neumann-Architektur) Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 13 / 52
31 Java Java basiert auf einer virtuellen Maschine (mit Von-Neumann-Architektur) Programmcode wird in Zwischencode übersetzt Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 13 / 52
32 Java Java basiert auf einer virtuellen Maschine (mit Von-Neumann-Architektur) Programmcode wird in Zwischencode übersetzt Zwischencode läuft in einer simulierten Rechnerumgebung, Interpretation des Zwischencodes durch einen Interpreter Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 13 / 52
33 Java Java basiert auf einer virtuellen Maschine (mit Von-Neumann-Architektur) Programmcode wird in Zwischencode übersetzt Zwischencode läuft in einer simulierten Rechnerumgebung, Interpretation des Zwischencodes durch einen Interpreter Optimierung: Just-in-Time (JIT) Kompilation von häufig genutztem Code: virtuelle Maschine physikalische Maschine Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 13 / 52
34 Java Java basiert auf einer virtuellen Maschine (mit Von-Neumann-Architektur) Programmcode wird in Zwischencode übersetzt Zwischencode läuft in einer simulierten Rechnerumgebung, Interpretation des Zwischencodes durch einen Interpreter Optimierung: Just-in-Time (JIT) Kompilation von häufig genutztem Code: virtuelle Maschine physikalische Maschine Folgerung und erklärtes Ziel der Entwickler von Java: Portabilität write once run anywhere Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 13 / 52
35 Einführung in die Vorlesung Projekt
36 Achtung, fertig, los! Sie haben sieben Wochen Zeit, ein nicht-triviales Projekt fertigzustellen Ab den ersten paar Wochen haben Sie bereits die wichtigsten Konzepte gesehen, um das Projekt umzusetzen Lernkurve Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 14 / 52
37 Achtung, fertig, los! Sie haben sieben Wochen Zeit, ein nicht-triviales Projekt fertigzustellen Ab den ersten paar Wochen haben Sie bereits die wichtigsten Konzepte gesehen, um das Projekt umzusetzen Lernkurve Projekt Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 14 / 52
38 Java-Tutorial In der ersten Woche bearbeiten Sie selbstständig unser Java-Tutorial Einfacher Einstieg in Java, kein Vorwissen nötig Zeitbedarf: ca. zwei Stunden In der zweiten Woche gibt es ein Self-Assessment zum Tutorial Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 15 / 52
39 Java-Tutorial In der ersten Woche bearbeiten Sie selbstständig unser Java-Tutorial Einfacher Einstieg in Java, kein Vorwissen nötig Zeitbedarf: ca. zwei Stunden In der zweiten Woche gibt es ein Self-Assessment zum Tutorial Das ist gut investierte Zeit Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 15 / 52
40 Java-Tutorial In der ersten Woche bearbeiten Sie selbstständig unser Java-Tutorial Einfacher Einstieg in Java, kein Vorwissen nötig Zeitbedarf: ca. zwei Stunden In der zweiten Woche gibt es ein Self-Assessment zum Tutorial Das ist gut investierte Zeit Tutorialwebseite Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 15 / 52
41 Projekt Sie wählen ein Projekt aus einer Liste von vorgegebenen Aufgabenstellungen Das Projekt bearbeiten Sie im Wesentlichen selbstständig Muster: Daten Einlesen Verarbeiten Ausgeben Informationen werden laufend auf die Vorlesungswebseite gestellt Übung: Mittwoch, Uhr, HG G 26.5 (nach der Vorlesung) Betreuung durch Moritz Hoffmann, CAB F 69 (moritz.hoffmann@inf.ethz.ch), Sprechstunde: Montag, Uhr Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 16 / 52
42 Projekt Teamarbeit ist gefragt Sie arbeiten in Zweierteams Beide Projektpartner sind nachweislich gleichermassen beteiligt Die Benotung erfolgt pro Team Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 17 / 52
43 Projekt Teamarbeit ist gefragt Sie arbeiten in Zweierteams Beide Projektpartner sind nachweislich gleichermassen beteiligt Die Benotung erfolgt pro Team Kontaktieren Sie uns frühzeitig bei Problemen und Uneinigkeiten Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 17 / 52
44 Projekt Meilensteine Meilensteine müssen zeitlich eingehalten werden Die Einhaltung der Meilensteine fliesst in die Benotung ein Jeder Meilenstein entspricht einer Abgabe (Dokumente oder Code) Woche 2 Team aufgestellt Projekt ausgewählt Tools installiert Erster GIT-commit Woche 3 Projektplan abgegeben Lösungsdesign festgelegt Woche 6 Voller Funktionsumfang Testplan erstellt Woche 7 Abgabe aller Unterlagen Präsentation Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 18 / 52
45 Bewertete Semesterleistung Präsentation des Projekts am 3. und 10. April Dauer: etwa 10 Minuten, je nach Anzahl abgegebener Projekte Quelltext und sämtliche Unterlagen abgeben Einhaltung der Meilensteine Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 19 / 52
46 Diskussionsplattform Sie können sich auf unserem Slack-Forum anmelden Generelle Diskussionen zur Vorlesung Partnersuche für das Projekt... Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 20 / 52
47 Einführung in Java
48 Was braucht es zum Programmieren? Editor: Programm zum Ändern, Erfassen und Speichern vom Java-Programmtext Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 21 / 52
49 Was braucht es zum Programmieren? Editor: Programm zum Ändern, Erfassen und Speichern vom Java-Programmtext Compiler: Programm zum Übersetzen des Programmtexts in Maschinensprache (bzw. Zwischencode) Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 21 / 52
50 Was braucht es zum Programmieren? Editor: Programm zum Ändern, Erfassen und Speichern vom Java-Programmtext Compiler: Programm zum Übersetzen des Programmtexts in Maschinensprache (bzw. Zwischencode) Computer: Gerät zum Ausführen von Programmen in Maschinensprache Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 21 / 52
51 Was braucht es zum Programmieren? Editor: Programm zum Ändern, Erfassen und Speichern vom Java-Programmtext Compiler: Programm zum Übersetzen des Programmtexts in Maschinensprache (bzw. Zwischencode) Computer: Gerät zum Ausführen von Programmen in Maschinensprache Betriebssystem: Programm zur Organisation all dieser Abläufe (Dateiverwaltung, Editor-, Compiler- und Programmaufruf) Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 21 / 52
52 Deutsch vs. Programmiersprache Deutsch Es ist nicht genug zu wissen, man muss auch anwenden. JOHANN WOLFGANG VON GOETHE Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 22 / 52
53 Deutsch vs. Programmiersprache Deutsch Es ist nicht genug zu wissen, man muss auch anwenden. JOHANN WOLFGANG VON GOETHE Java / C / C++ // computation int b = a * a; b = b * b; // b = a^2 // b = a^4 Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 22 / 52
54 Syntax und Semantik Programme müssen, wie unsere Sprache, nach gewissen Regeln geformt werden Syntax: Zusammenfügungsregeln für elementare Zeichen (Buchstaben) Semantik: Interpretationsregeln für zusammengefügte Zeichen Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 23 / 52
55 Syntax und Semantik Programme müssen, wie unsere Sprache, nach gewissen Regeln geformt werden Syntax: Zusammenfügungsregeln für elementare Zeichen (Buchstaben) Semantik: Interpretationsregeln für zusammengefügte Zeichen Entsprechende Regeln für ein Computerprogramm sind einfacher, aber auch strenger, denn Computer sind vergleichsweise dumm Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 23 / 52
56 Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 24 / 52
57 Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. Syntaktisch und semantisch korrekt Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 24 / 52
58 Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. DasAuto fuh r zu sxhnell. Syntaktisch und semantisch korrekt Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 24 / 52
59 Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. DasAuto fuh r zu sxhnell. Syntaktisch und semantisch korrekt Syntaxfehler: Wortbildung Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 24 / 52
60 Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. DasAuto fuh r zu sxhnell. Rot das Auto ist. Syntaktisch und semantisch korrekt Syntaxfehler: Wortbildung Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 24 / 52
61 Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. DasAuto fuh r zu sxhnell. Rot das Auto ist. Syntaktisch und semantisch korrekt Syntaxfehler: Wortbildung Syntaxfehler: Satzstellung Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 24 / 52
62 Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. DasAuto fuh r zu sxhnell. Rot das Auto ist. Man empfiehlt dem Dozenten nicht zu widersprechen Syntaktisch und semantisch korrekt Syntaxfehler: Wortbildung Syntaxfehler: Satzstellung Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 24 / 52
63 Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. DasAuto fuh r zu sxhnell. Rot das Auto ist. Man empfiehlt dem Dozenten, nicht zu widersprechen. Syntaktisch und semantisch korrekt Syntaxfehler: Wortbildung Syntaxfehler: Satzstellung Syntaxfehler: Satzzeichen fehlen Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 24 / 52
64 Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. DasAuto fuh r zu sxhnell. Rot das Auto ist. Man empfiehlt dem Dozenten nicht zu widersprechen Sie ist nicht gross und rothaarig. Syntaktisch und semantisch korrekt Syntaxfehler: Wortbildung Syntaxfehler: Satzstellung Syntaxfehler: Satzzeichen fehlen Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 24 / 52
65 Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. DasAuto fuh r zu sxhnell. Rot das Auto ist. Man empfiehlt dem Dozenten nicht zu widersprechen Sie ist nicht gross und rothaarig. Syntaktisch und semantisch korrekt Syntaxfehler: Wortbildung Syntaxfehler: Satzstellung Syntaxfehler: Satzzeichen fehlen Syntaktisch korrekt aber mehrdeutig [kein Analogon] Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 24 / 52
66 Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. DasAuto fuh r zu sxhnell. Rot das Auto ist. Man empfiehlt dem Dozenten nicht zu widersprechen Sie ist nicht gross und rothaarig. Syntaktisch und semantisch korrekt Syntaxfehler: Wortbildung Syntaxfehler: Satzstellung Syntaxfehler: Satzzeichen fehlen Syntaktisch korrekt aber mehrdeutig [kein Analogon] Die Auto ist rot. Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 24 / 52
67 Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. DasAuto fuh r zu sxhnell. Rot das Auto ist. Man empfiehlt dem Dozenten nicht zu widersprechen Sie ist nicht gross und rothaarig. Die Auto ist rot. Syntaktisch und semantisch korrekt Syntaxfehler: Wortbildung Syntaxfehler: Satzstellung Syntaxfehler: Satzzeichen fehlen Syntaktisch korrekt aber mehrdeutig [kein Analogon] Syntaktisch korrekt, doch grammatikalisch und semantisch fehlerhaft: Falscher Artikel [Typfehler] Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 24 / 52
68 Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. DasAuto fuh r zu sxhnell. Rot das Auto ist. Man empfiehlt dem Dozenten nicht zu widersprechen Sie ist nicht gross und rothaarig. Die Auto ist rot. Syntaktisch und semantisch korrekt Syntaxfehler: Wortbildung Syntaxfehler: Satzstellung Syntaxfehler: Satzzeichen fehlen Syntaktisch korrekt aber mehrdeutig [kein Analogon] Syntaktisch korrekt, doch grammatikalisch und semantisch fehlerhaft: Falscher Artikel [Typfehler] Das Fahrrad galoppiert schnell. Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 24 / 52
69 Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. DasAuto fuh r zu sxhnell. Rot das Auto ist. Man empfiehlt dem Dozenten nicht zu widersprechen Sie ist nicht gross und rothaarig. Die Auto ist rot. Das Fahrrad galoppiert schnell. Syntaktisch und semantisch korrekt Syntaxfehler: Wortbildung Syntaxfehler: Satzstellung Syntaxfehler: Satzzeichen fehlen Syntaktisch korrekt aber mehrdeutig [kein Analogon] Syntaktisch korrekt, doch grammatikalisch und semantisch fehlerhaft: Falscher Artikel [Typfehler] Syntaktisch und grammatikalisch korrekt. Semantisch fehlerhaft [Laufzeitfehler] Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 24 / 52
70 Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. DasAuto fuh r zu sxhnell. Rot das Auto ist. Man empfiehlt dem Dozenten nicht zu widersprechen Sie ist nicht gross und rothaarig. Die Auto ist rot. Das Fahrrad galoppiert schnell. Syntaktisch und semantisch korrekt Syntaxfehler: Wortbildung Syntaxfehler: Satzstellung Syntaxfehler: Satzzeichen fehlen Syntaktisch korrekt aber mehrdeutig [kein Analogon] Syntaktisch korrekt, doch grammatikalisch und semantisch fehlerhaft: Falscher Artikel [Typfehler] Syntaktisch und grammatikalisch korrekt. Semantisch fehlerhaft [Laufzeitfehler] Manche Tiere riechen gut. Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 24 / 52
71 Fehlerarten illustriert an deutscher Sprache Das Auto fuhr zu schnell. DasAuto fuh r zu sxhnell. Rot das Auto ist. Man empfiehlt dem Dozenten nicht zu widersprechen Sie ist nicht gross und rothaarig. Die Auto ist rot. Das Fahrrad galoppiert schnell. Manche Tiere riechen gut. Syntaktisch und semantisch korrekt Syntaxfehler: Wortbildung Syntaxfehler: Satzstellung Syntaxfehler: Satzzeichen fehlen Syntaktisch korrekt aber mehrdeutig [kein Analogon] Syntaktisch korrekt, doch grammatikalisch und semantisch fehlerhaft: Falscher Artikel [Typfehler] Syntaktisch und grammatikalisch korrekt. Semantisch fehlerhaft [Laufzeitfehler] Syntaktisch und semantisch korrekt. Semantisch mehrdeutig [kein Analogon] Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 24 / 52
72 Einführung in Java Ein erstes Java-Programm
73 Ein erstes Java-Programm // input Out.print("Compute a^8 for a=?"); int a; a = In.readInt(); // computation int b = a * a; // b = a^2 b = b * b; // b = a^4 // output b*b, i.e., a^8 Out.println(a + "^8 = " + b * b); Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 25 / 52
74 Ein erstes Java-Programm public static void main(string[] args) { } // input Out.print("Compute a^8 for a=?"); int a; a = In.readInt(); // computation int b = a * a; // b = a^2 b = b * b; // b = a^4 // output b*b, i.e., a^8 Out.println(a + "^8 = " + b * b); Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 25 / 52
75 Ein erstes Java-Programm public class Main { } public static void main(string[] args) { } // input Out.print("Compute a^8 for a=?"); int a; a = In.readInt(); // computation int b = a * a; // b = a^2 b = b * b; // b = a^4 // output b*b, i.e., a^8 Out.println(a + "^8 = " + b * b); Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 25 / 52
76 Ein erstes Java-Programm public class Main { } public static void main(string[] args) { } Klasse: Ein Programm // input Out.print("Compute a^8 for a=?"); int a; a = In.readInt(); // computation int b = a * a; // b = a^2 b = b * b; // b = a^4 // output b*b, i.e., a^8 Out.println(a + "^8 = " + b * b); Methode: benannte Folge von Anweisungen Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 25 / 52
77 Verhalten eines Programms Zur Compilationszeit Vom Compiler akzeptiertes Programm (syntaktisch korrektes Java) Compiler-Fehler Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 27 / 52
78 Verhalten eines Programms Zur Compilationszeit Vom Compiler akzeptiertes Programm (syntaktisch korrektes Java) Compiler-Fehler Zur Laufzeit korrektes Resultat inkorrektes Resultat Programmabsturz Programm terminiert nicht (Endlosschleife) Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 27 / 52
79 Kommentare public class Main { public static void main(string[] args) { // input Out.print("Compute a^8 for a=?"); int a; a = In.readInt(); // computation int b = a * a; // b = a^2 b = b * b; // b = a^4 // output b * b, i.e., a^8 Out.println(a + "^8 = " + b * b); } } Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 28 / 52
80 Kommentare public class Main { public static void main(string[] args) { // input Out.print("Compute a^8 for a=?"); int a; a = In.readInt(); // computation int b = a * a; // b = a^2 b = b * b; // b = a^4 // output b * b, i.e., a^8 Out.println(a + "^8 = " + b * b); } } Kommentare Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 28 / 52
81 Kommentare und Layout Dem Compiler ist es egal... public class Main{public static void main(string[] args){out.print ("Compute a^8 for a=?");int a;a = In.readInt();int b = a*a;b = b * b;out.println(a + "^8 = " + b * b);}} Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 30 / 52
82 Kommentare und Layout Dem Compiler ist es egal... public class Main{public static void main(string[] args){out.print ("Compute a^8 for a=?");int a;a = In.readInt();int b = a*a;b = b * b;out.println(a + "^8 = " + b * b);}}... uns aber nicht Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 30 / 52
83 Einführung in Java Anweisungen
84 Anweisungen (Statements) public class Main { public static void main(string[] args) { // input Out.print("Compute a^8 for a=?"); int a; a = In.readInt(); // computation int b = a * a; // b = a^2 b = b * b; // b = a^4 // output b*b, i.e., a^8 Out.println(a + "^8 = " + b * b); } } Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 31 / 52
85 Anweisungen (Statements) public class Main { public static void main(string[] args) { // input Out.print("Compute a^8 for a=?"); int a; a = In.readInt(); // computation int b = a * a; // b = a^2 b = b * b; // b = a^4 // output b*b, i.e., a^8 Out.println(a + "^8 = " + b * b); } } Ausdrucksanweisungen Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 31 / 52
86 Anweisungen Werte und Effekte public class Main { public static void main(string[] args) { // input Effekt: Ausgabe des Strings Compute... Out.print("Compute a^8 for a=?"); int a; a = In.readInt(); Effekt: Eingabe einer Zahl und Speichern in a // computation Effekt: Speichern des berechneten Wertes von a*a in b int b = a * a; // b = a^2 b = b * b; // b = a^4 Effekt: Speichern des berechneten Wertes von b*b in b // output b*b, i.e., a^8 Out.println(a + "^8 = " + b * b); Effekt: Ausgabe des Wertes von a, des Strings ˆ8 = } und des berechneten Wertes von b*b } Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 35 / 52
87 Einführung in Java Deklaration
88 Anweisungen Variablendefinitionen public class Main { public static void main(string[] args) { // input Out.print("Compute a^8 for a=?"); int a; a = In.readInt(); // computation int b = a * a; // b = a^2 b = b * b; // b = a^4 // output b*b, i.e., a^8 Out.println(a + "^8 = " + b * b); } } Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 37 / 52
89 Anweisungen Variablendefinitionen public class Main { public static void main(string[] args) { // input Out.print("Compute a^8 for a=?"); int a; Deklarationsanweisungen a = In.readInt(); Typnamen // computation int b = a * a; // b = a^2 b = b * b; // b = a^4 // output b*b, i.e., a^8 Out.println(a + "^8 = " + b * b); } } Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 37 / 52
90 Einführung in Java Variablen und Objekte
91 Variablen Variablen repräsentieren (wechselnde) Werte haben Name Typ Wert Adresse sind im Programmtext sichtbar Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 42 / 52
92 Variablen Variablen repräsentieren (wechselnde) Werte haben Name Typ Wert Adresse sind im Programmtext sichtbar Beispiel int a; definiert Variable mit Name: a Typ: int Wert: (vorerst) undefiniert Adresse: durch Compiler bestimmt Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 42 / 52
93 Objekte Objekte repräsentieren Werte im Hauptspeicher haben Typ, Adresse und Wert (Speicherinhalt an der Adresse), können benannt werden aber auch anonym sein Anmerkung Ein Programm hat eine feste Anzahl von Variablen. Um eine variable Anzahl von Werten behandeln zu können, braucht es anonyme Adressen, die über temporäre Namen angesprochen werden können. Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 43 / 52
94 Einführung in Java Ausdrücke
95 Ausdrücke (Expressions) Ausdrücke repräsentieren Berechnungen Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 45 / 52
96 Ausdrücke (Expressions) Ausdrücke repräsentieren Berechnungen sind entweder primär (b) Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 45 / 52
97 Ausdrücke (Expressions) Ausdrücke repräsentieren Berechnungen sind entweder primär (b) oder zusammengesetzt (b * b)... Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 45 / 52
98 Ausdrücke (Expressions) Ausdrücke repräsentieren Berechnungen sind entweder primär (b) oder zusammengesetzt (b * b) aus anderen Ausdrücken, mit Hilfe von Operatoren Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 45 / 52
99 Ausdrücke (Expressions) // input Out.print("Compute a^8 for a=?"); int a; a = In.readInt(); // computation int b = a * a; // b = a^2 b = b * b; // b = a^4 // output b * b, i.e., a^8 Out.println(a + "^8 = " + b * b ); Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 46 / 52
100 Ausdrücke (Expressions) // input Out.print("Compute a^8 for a=?"); int a; a = In.readInt(); Variablenname, primärer Ausdruck // computation int b = a * a; // b = a^2 b = b * b; // b = a^4 Variablenname, primärer Ausdruck // output b * b, i.e., a^8 Out.println(a + "^8 = " + b * b ); Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 46 / 52
101 Ausdrücke (Expressions) // input Out.print("Compute a^8 for a=?"); int a; a = In.readInt(); // computation int b = a * a; // b = a^2 b = b * b; // b = a^4 Zusammengesetzer Ausdruck // output b * b, i.e., a^8 Out.println(a + "^8 = " + b * b ); Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 46 / 52
102 Einführung in Java Operatoren und Operanden
103 Operatoren und Operanden // input Out.print("Compute a^8 for a=?"); int a; a = In.readInt(); // computation int b = a * a; b = b * b; // b = a^2 // b = a^4 // output b*b, i.e., a^8 Out.println(a + "^8 = " + b * b ); Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 49 / 52
104 Operatoren und Operanden // input Out.print("Compute a^8 for a=?"); int a; a = In.readInt(); Linker Operand (Variable) // computation int b = a * a; b = b * b; Rechter Operand (Ausdruck) // b = a^2 // b = a^4 // output b*b, i.e., a^8 Out.println(a + "^8 = " + b * b ); Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 49 / 52
105 Operatoren und Operanden // input Out.print("Compute a^8 for a=?"); int a; a = In.readInt(); Linker Operand (Variable) // computation int b = a * a; Rechter Operand (Ausdruck) // b = a^2 b = b * b; // b = a^4 Zuweisungsoperator Multiplikationsoperator // output b*b, i.e., a^8 Out.println(a + "^8 = " + b * b ); Programmieren und Problemlösen Einführung in die Vorlesung Frühling 2019 Dennis Komm 49 / 52
106 Danke für die Aufmerksamkeit
Programmieren und Problemlösen
1 Programmieren und Problemlösen Hermann Lehner ETH Zürich FS 2018 2 Willkommen zur Vorlesung! 1. Einführung Material 3 Vorlesungshomepage: http://lec.inf.ethz.ch/ppl Das Team 4 Dozent Hermann Lehner Assistenten
MehrProgrammieren und Problemlösen
Programmieren und Problemlösen Hermann Lehner ETH Zürich Willkommen zur Vorlesung! 1. Einführung FS 2018 1 2 Material Das Team Vorlesungshomepage: http://lec.inf.ethz.ch/ppl Dozent Assistenten Hermann
Mehrsystematischen Verarbeitung von Informationen Was ist Informatik?
13 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine, Höhere Programmiersprachen, Werkzeuge der Programmierung, das erste C++ Programm und seine syntaktischen und semantischen
Mehrsystematischen Verarbeitung von Informationen Was ist Informatik?
14 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine, Höhere Programmiersprachen, Werkzeuge der Programmierung, das erste C++ Programm und seine syntaktischen und semantischen
Mehrsystematischen Verarbeitung von Informationen Was ist Informatik?
14 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine, Höhere Programmiersprachen, Werkzeuge der Programmierung, das erste C++ Programm und seine syntaktischen und semantischen
MehrInformatik. Vorlesung für Rechnergestützte Wissenschaften am D-MATH der ETH Zürich. Felix Friedrich, Malte Schwerhoff HS 2018
1 Informatik Vorlesung für Rechnergestützte Wissenschaften am D-MATH der ETH Zürich Felix Friedrich, Malte Schwerhoff HS 2018 21 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing
Mehrsystematischen Verarbeitung von Informationen Was ist Informatik?
23 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine, Höhere Programmiersprachen, Werkzeuge der Programmierung, das erste C++ Programm und seine syntaktischen und semantischen
MehrDie Wissenschaft der systematischen Verarbeitung von Informationen,... insbesondere der automatischen Verarbeitung mit Hilfe von Digitalrechnern.
14 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine, Höhere Programmiersprachen, Werkzeuge der Programmierung, das erste C++ Programm und seine syntaktischen und semantischen
MehrInformatik I. Vorlesung am D-BAUG der ETH Zürich. Hermann Lehner, Felix Friedrich ETH Zürich HS 2017
1 Informatik I Vorlesung am D-BAUG der ETH Zürich Hermann Lehner, Felix Friedrich ETH Zürich HS 2017 2 Willkommen zur Vorlesung! 1. Einführung Material 3 Vorlesungshomepage: http://lec.inf.ethz.ch/baug/informatik1
Mehr1. Einführung. Was ist Informatik? Informatik Computer Science. Computer Science Informatik
Was ist Informatik? 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine, Höhere Programmiersprachen, Werkzeuge der Programmierung, das erste C++ Programm und seine syntaktischen
MehrInformatik. 1. Einführung. Was ist Informatik? Informatik vs. Computer. Vorlesung für Rechnergestützte Wissenschaften am D-MATH der ETH Zürich
Informatik Vorlesung für Rechnergestützte Wissenschaften am D-MATH der ETH Zürich Felix Friedrich, Malte Schwerhoff HS 2018 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine,
Mehr1. Einf uhrung Material Das Team
Informatik I Vorlesung am D-BAUG der ETH Zürich Hermann Lehner, Felix Friedrich ETH Zürich Willkommen zur Vorlesung! 1. Einführung HS 2018 1 2 Material Das Team Vorlesungshomepage: http://lec.inf.ethz.ch/baug/informatik1
Mehr1. Einführung. Was ist Informatik? Informatik Computer Science. Computer Science Informatik
Was ist Informatik? 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine, Höhere Programmiersprachen, Werkzeuge der Programmierung, das erste C++ Programm und seine syntaktischen
MehrInformatik. 1. Einführung. Informatik vs. Computer. Was ist Informatik? Vorlesung am D-ITET/D-MAVT der ETH Zürich
Informatik Vorlesung am D-ITET/D-MAVT der ETH Zürich Hermann Lehner, Malte Schwerhoff FS 2019 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine, Höhere Programmiersprachen,
Mehr1. Einf uhrung Material Das Team
Informatik I Vorlesung am D-BAUG der ETH Zürich Hermann Lehner, Felix Friedrich ETH Zürich Willkommen zur Vorlesung! 1. Einführung HS 2017 1 2 Material Das Team Dozenten Hermann Lehner Felix Friedrich
MehrWas ist Informatik? (Wikipedia, nach dem Duden Informatik )
1 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine, Höhere Programmiersprachen, Werkzeuge der Programmierung, das erste C++ Programm und seine syntaktischen und semantischen
MehrIngenieur Tool I. 1. Einführung. Was ist Informatik? Informatik Computer Science. Vorlesung am D-MAVT der ETH Zürich
Ingenieur Tool I Vorlesung am D-MAVT der ETH Zürich Hermann Lehner SS 2018 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine, Höhere Programmiersprachen, Werkzeuge der Programmierung,
MehrIngenieur Tool I. 1. Einführung. Was ist Informatik? Informatik Computer Science. Vorlesung am D-MAVT der ETH Zürich
Ingenieur Tool I Vorlesung am D-MAVT der ETH Zürich Hermann Lehner SS 2018 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine, Höhere Programmiersprachen, Werkzeuge der Programmierung,
MehrWas ist Informatik? systematischen Verarbeitung von Informationen
1 1. Einführung Informatik: Definition und Geschichte, Algorithmen, Turing Maschine, Höhere Programmiersprachen, Werkzeuge der Programmierung, das erste C++ Programm und seine syntaktischen und semantischen
MehrDas erste C++ Programm
Das erste C++ Programm // Program: power8.c // Raise a number to the eighth power. #include int main() { // input std::cout > a; // computation int
MehrDie Mersenne sche Vermutung. Einführung. Der Vortrag von Cole. Die Mersenne sche Vermutung
Die Mersenne sche Vermutung Einführung Die Mersenne sche Vermutung, Editor, Compiler, Computer, Betriebssystem, Plattform, Das erste C++-Programm Mersenne (1644): Die Zahlen der Form 2 n -1 sind Primzahlen
MehrVorkurs Informatik (D-ITET)
3 Kontext dieser Vorlesung 4 Vorkurs Informatik (D-ITET) Malte Schwerhoff September 2018 http://lec.inf.ethz.ch/itet/informatik0/2018 Informatik 0 (Vorkurs): Erste Programmiererfahrungen sammeln Informatik
MehrEinführung. Programmieren, Die Mersenne sche Vermutung, Editor, Compiler, Computer, Betriebssystem, Plattform, Das erste C++ Programm
Einführung Programmieren, Die Mersenne sche Vermutung, Editor, Compiler, Computer, Betriebssystem, Plattform, Das erste C++ Programm 1 Programmieren heisst... n... dem Computer mit Hilfe einer Programmiersprache
MehrInhalt der Vorlesung. Systematisches Problemlösen mit dem Computer und der Programmiersprache C++. Also: nicht nur aber auch Programmierkurs.
1 1. Einführung Mersenne sche Vermutung, Höhere Programmiersprachen, Editor, Compiler, Computer, Betriebssystem, das erste C++ Programm und seine syntaktischen und semantischen Bestandteile Inhalt der
MehrInformatik II. Vorlesung am D-BAUG der ETH Zürich. Felix Friedrich FS 2017
1 Informatik II Vorlesung am D-BAUG der ETH Zürich Felix Friedrich FS 2017 Willkommen zur Vorlesung! 2 Vorlesungshomepage: http://lec.inf.ethz.ch/baug/informatik2/2017/ Das Team 3 Dozent Felix Friedrich
MehrEinführung. Die Mersenne sche Vermutung, Editor, Compiler, Computer, Betriebssystem, Plattform, Das erste C++-Programm
Einführung Die Mersenne sche Vermutung, Editor, Compiler, Computer, Betriebssystem, Plattform, Das erste C++-Programm Real Programmers vs. Quiche Eaters The Real Programmer ist intuitiver Programmierer
MehrInformatik. Vorlesung am D-MATH/D-PHYS der ETH Zürich. Malte Schwerhoff, Felix Friedrich HS 2018
1 Informatik Vorlesung am D-MATH/D-PHYS der ETH Zürich Malte Schwerhoff, Felix Friedrich HS 2018 Willkommen 2 zur Vorlesung Informatik am MATH/PHYS Department der ETH Zürich. Ort und Zeit: Tuesday 13:15-15:00,
MehrReal Programmers vs. Quiche Eaters
Einführung Real Programmers vs. Quiche Eaters ; Die Mersenne sche Vermutung, Editor, Compiler, Computer, Betriebssystem, Plattform, Das erste C++-Programm Real Programmers vs. Quiche Eaters The Real Programmer
MehrInformatik II. Felix Friedrich FS Vorlesung am D-BAUG der ETH Zürich
Informatik II Felix Friedrich Vorlesung am D-BAUG der ETH Zürich FS 2016 1 W i l l k o m m e n zur Vorlesung Informatik II! am D-BAUG der ETH Zürich. Ort und Zeit: Montag 12:45 14:30, HIL E3. Pause 13:30
MehrInformatik II. Felix Friedrich FS Vorlesung am D-BAUG der ETH Zürich
Informatik II Felix Friedrich Vorlesung am D-BAUG der ETH Zürich FS 2014 1 W i l l k o m m e n zur Vorlesung Informatik II! am D-BAUG der ETH Zürich. Ort und Zeit: Montag 12:45 14:30, HIL E3. Pause 13:30
MehrProgramme erstellen in Java
Programmieren mit Java Modul 0 Programme erstellen in Java Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Schreiben von Computerprogrammen 3 2.1 Computerprogramme bestehen aus Daten und Instruktionen.......
MehrInformatik II. 1. Einführung. Willkommen zur Vorlesung! Das Team. Vorlesung am D-BAUG der ETH Zürich
Willkommen zur Vorlesung! Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesungshomepage: http://lec.inf.ethz.ch/baug/informatik2/2017/ Felix Friedrich FS 2017 1 2 Das Team Dozent Felix Friedrich
Mehrn 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -
n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik n "Informatik" = Kunstwort aus Information
MehrII.1.1. Erste Schritte - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.
MehrII.1.1. Erste Schritte - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.
MehrInformatik. Willkommen. Team. Einschreibung in Übungsgruppen. Vorlesung am D-MATH/D-PHYS der ETH Zürich. zur Vorlesung Informatik.
3 Willkommen 4 Informatik zur Vorlesung Informatik am MATH/PHYS Department der ETH Zürich. Vorlesung am D-MATH/D-PHYS der ETH Zürich Malte Schwerhoff, Felix Friedrich Ort und Zeit: Tuesday 13:15-15:00,
Mehr2.2 Syntax, Semantik und Simulation
2.2 Syntax, Semantik und Simulation Ein Java Programm ist eine Folge von Buchstaben. Nicht jede Folge von Buchstaben ist ein korrektes Java Programm! Wie kann man alle korrekten Java Programme beschreiben?
MehrII.1.1. Erste Schritte - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.
MehrZuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte
Zuerst wird die Bedingung ausgewertet. Ist sie erfüllt, wird der Rumpf des while-statements ausgeführt. Nach Ausführung des Rumpfs wird das gesamte while-statement erneut ausgeführt. Ist die Bedingung
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Mehr2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen
Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen
MehrÜbungen zur Vorlesung Wissenschaftliches Rechnen I
Übungen zur Vorlesung Wissenschaftliches Rechnen I Nicolas Gauger, René Lamour, Hella Rabus Wintersemester 2007/2008 Programmierung - Einführung Programmierung - Einführung Berechnung einer Formel y =
MehrProgrammieren und Problemlösen
Dennis Komm Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 27. Februar 2019 Komplexität von Algorithmen Aufgabe Primzahltest Schreibe ein Programm, das eine ganze Zahl x als Eingabe
Mehr1 Programmiersprachen 1.1 1
1 Programmiersprachen 1.1 1 Meilensteine imperativer Programmiersprachen (teilweise objektorientiert) Fortran 1960 Cobol Algol 60 PL/I Algol W Simula 67 Algol 68 1970 Pascal C Smalltalk Modula 1980 Ada
MehrJava I Vorlesung Imperatives Programmieren
Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
MehrInformatik Algorithmen und Programme
Informatik Algorithmen und Programme Seite 1 Grundlagen der Programmierung: Spezifikation Phasen der Software-Entwicklung Spezifikation Problem und seine Lösung beschreiben vollständig detailliert unzweideutig
MehrEINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 15/16
EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 15/16 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de
MehrDie Klasse MiniJava ist in der Datei MiniJava.java definiert:
Die Klasse MiniJava ist in der Datei MiniJava.java definiert: import javax.swing.joptionpane; import javax.swing.jframe; public class MiniJava { public static int read () { JFrame f = new JFrame (); String
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrInhalt. Einführung in die Strukturierte Programmierung 15
Inhalt Einführung in die Strukturierte Programmierung 15 1.1 Was bedeutet Programmieren? 17 1.2 Was bedeutet Strukturierte Programmierung? 18 1.3 Was ist Pascal? 19 1.4 Was ist PS/k? 20 1.5 Warum wird
MehrEs gibt keinen Algorithmus zum Schreiben eines Programms bzw. Algorithmus.
1 Einführung Programmiersprachen: Ermöglichen formale Beschreibung von Problemlösungsverfahren, die auf einem Computer oder Computersystemen ausführbar sind. Bilden die Basis zur Entwicklung von Software
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrDefinitionen/Vorarbeit zum Thema Java
Definitionen/Vorarbeit zum Thema Java Programmiersprachen: System von Wörtern und Symbolen, die zur Formulierung von Programmen für die elektronische Datenverarbeitung verwendet werden. Arten: z.b. Javascript
MehrEinführung in Java. Ausgewählte Quellen zu Java
Einführung in Java Wesentliche Eigenschaften und Merkmale der Programmiersprache Java Prof. Dr. Stefan Böttcher Universität Paderborn im Rahmen der Vorlesung: Webbasierte Informationssysteme SS 2004 Einführung
MehrD-BAUG Informatik I. Exercise session: week 1 HS 2018
1 D-BAUG Informatik I Exercise session: week 1 HS 2018 Java Tutorials 2 Questions? expert.ethz.ch 3 Common questions and issues. expert.ethz.ch 4 Need help with expert? Mixed expressions Type Conversions
MehrEinführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax
Einführung in die Programmierung für NF Algorithmen, Datentypen und Syntax Ziele Begriffsbildungen: InformaCk, Algorithmus, Programm, Compiler und andere Einordnung von Java Ein einfaches Java- Programm
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrCS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Einfache Programme: Programm-Argument, Bedingte Anweisungen, Switch, Enum Boolesche Werte und Ausdrücke Seite 1 Beispiel: Umrechnen
MehrVon der Programmiersprache WHILE zum ersten Einstieg in Java
Von der Programmiersprache WHILE zum ersten Einstieg in Java Die Programmiersprache WHILE bildet den Kern jeder imperativen Programmiersprache. Man geht davon aus, dass die Ein- Ausgabe primitiv organisiert
MehrVorkurs Informatik WiSe 16/17
Java Einführung Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 04.10.2016 Technische Universität Braunschweig, IPS Überblick Organisatorisches Hello! 04.10.2016 Dr. Werner Struckmann / Stephan Mielke,
MehrVorkurs Informatik WiSe 17/18
Java Einführung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 04.10.2017 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello World 04.10.2017 Dr. Werner Struckmann
MehrVorkurs Informatik WiSe 17/18
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017
MehrInstitut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
Mehr3. Methodik der Programmerstellung
3. Methodik der Programmerstellung 3.1 Vorgehen 3.2 Programmerstellung 3.2.1 Konventionen 3.2.2 Schlüsselwörter und Bezeichner 3.2.3 Fehlertypen 3.2.4 Programmierstil 3.3 Formaler Aufbau eines Pascal-Programms
MehrGrunddatentypen, Ausdrücke und Variablen
Grunddatentypen, Ausdrücke und Variablen Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Vorlesung heute: Grunddatentypen Ausdrücke Variablen
MehrInstitut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme
Institut für Computational Science Prof. Dr. H. Hinterberger Praxismodul 1 Einführung in die Programmierung Erste Programme Einführung in die Programmierung 2 Institut für Computational Science, ETH Zürich,
MehrEinführung in die Programmierung 1
Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener
MehrVorkurs Informatik WiSe 16/17
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016
MehrIdeen und Konzepte der Informatik
Ideen und Konzepte der Informatik Programme und Algorithmen Antonios Antoniadis 23. Oktober 2017 Algorithmen und Programme Algorithmus Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert
MehrProgrammieren lernen mit Perl
Xpert.press Programmieren lernen mit Perl Bearbeitet von Joachim Ziegler 1. Auflage 2002. Buch. XIV, 400 S. Hardcover ISBN 978 3 540 42685 1 Format (B x L): 15,5 x 23,5 cm Gewicht: 783 g Weitere Fachgebiete
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen
MehrEinführung in die Programmierung I. 1.0 EBNF 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 1.0 EBNF 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Graphische Darstellung von EBNF Regeln Syntax Graph: graphische Darstellung
MehrGedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.
Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit
MehrInstitut für Programmierung und Reaktive Systeme. Java 1. Markus Reschke
Java 1 Markus Reschke 06.10.2014 Überblick Einführung in die Programmierung zur Vereinfachung des Einstiegs ins Studium Erstellung von ausführbaren Programmen für den Computer Denk- und Vorgehensweisen
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen
MehrÜbersetzen des Quelltexts in ausführbaren Maschinen-Code Translation of source code into executable machine code
Informatik II D-BAUG Self-Assessment, 2. März 2017 Lösung Name, Vorname:............................................................. Legi-Nummer:.............................................................
MehrVon Assembler zu Java
Von Assembler zu Java Prof. Dr.-Ing. Thomas Schwotzer 1 Einführung Die erste imperativen Programme wurden in den Urzeiten der IT tatsächlich direkt auf der Hardware der Maschinen geschrieben. Die verfügbaren
MehrAufbau und Funktionsweise eines Computers
Aufbau und Funktionsweise eines Computers Thomas Röfer Hardware und Software von Neumann Architektur Schichtenmodell der Software Zahlsysteme Repräsentation von Daten im Computer Praktische Informatik
Mehrhue12 January 24, 2017
hue12 January 24, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
MehrKontrollstrukturen: Wiederholungsanweisungen
Kontrollstrukturen: Wiederholungsanweisungen Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung https://www.sosy-lab.org/teaching/2017-ws-infoeinf/
MehrProgrammiersprachen und Übersetzer
Programmiersprachen und Übersetzer Sommersemester 2009 5. April 2009 Vorteile bei der Verwendung höherer Programmiersprachen Vorteile bei der Verwendung höherer Programmiersprachen 1. Einfache Notation
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 Matthias Wieczorek Computer-Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
MehrSchwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme
Schwerpunkte Vollständige und unvollständige Auswertung 8. Ausdrücke, Operatoren (einfache Typen) Teil 1 Seiteneffekte Overloading: Überladung von Operatoren Implizite und explizite (cast) Typumwandlung
MehrOrganisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download
Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches
Mehr7. Syntax: Grammatiken, EBNF
7. Syntax: Grammatiken, EBNF Teil 1 Sehr schönes Beispiel für Notwendigkeit der Theoretischen Informatik für Belange der Praktischen Informatik Vertiefung in: Einführung in die Theoretische Informatik
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
MehrVon der Aufgabe zum Code. Mario Bodemann
Von der Aufgabe zum Code Mario Bodemann 1 Agenda Wiederholung Aufgabenstellung Aufspalten der Aufgabe Vom Diagramm zum Code richtiges Programmieren Zusammenfassung 2 Agenda Wiederholung Aufgabenstellung
MehrEinführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java
Ludwig-Maximilians-Universität München München, 20.11.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt
MehrIdeen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn
Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn November 2016 Algorithmen und Programme Algorithmus = Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man
MehrGeoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)
Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA) Ihr Name: Matrikelnummer: Allgemeine Hinweise: Erlaubtes Hilfsmittel: Ein beidseitig handbeschriebenes Din-A4-Blatt Tragen Sie Ihren Namen und
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 1. Einführung und Grundbegriffe
1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik
Mehr