Docsity
Docsity

Prüfungen vorbereiten
Prüfungen vorbereiten

Besser lernen dank der zahlreichen Ressourcen auf Docsity


Download-Punkte bekommen.
Download-Punkte bekommen.

Heimse Punkte ein, indem du anderen Studierenden hilfst oder erwirb Punkte mit einem Premium-Abo


Leitfäden und Tipps
Leitfäden und Tipps

Einführung in die Programmierung | LMU, Skripte von Programmieren in Java

Skripte der Ludwig-Maximilians-Universität München zur Einführung in die Programmierung: Was ist Informatik; Die Programmiersprache Java

Art: Skripte

2019/2020

Hochgeladen am 09.04.2020

Sophia_Sükan
Sophia_Sükan 🇩🇪

4.2

(24)

1 / 28

Toggle sidebar

Diese Seite wird in der Vorschau nicht angezeigt

Lass dir nichts Wichtiges entgehen!

bg1
Einführung
Abschnitt 2: Einführung
2. Einführung
2.1 Was ist Informatik?
2.2 Die Programmiersprache Java
Peer Kröger (LMU München) Einführung in die Programmierung WS 16/17 18 / 707
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Unvollständige Textvorschau

Nur auf Docsity: Lade Einführung in die Programmierung | LMU und mehr Skripte als PDF für Programmieren in Java herunter!

Einführung

Abschnitt 2: Einführung

  1. Einführung 2.1 Was ist Informatik? 2.2 Die Programmiersprache Java

Überblick

  1. Einführung 2.1 Was ist Informatik? 2.2 Die Programmiersprache Java

Informatik an der Universität

Informatik an einer Universität ist ein wissenschaftliches Studium.

Was bedeutet dies? I (^) Neue Denkweisen I (^) Grundlagenorientiert I (^) Theorie vor Praxis I (^) Steilerer Anstieg, höheres Niveau I (^) Angebote statt Zwang und Anwesenheitspflicht

Zusätzlich: Wesentliches Lernziel an einer Universität für jedes Studienfach

Eigenverantwortung

Informatik an der Universität

I (^) Was bedeutet Eigenverantwortung? I (^) Teilweise ist der Stoff sehr schwierig und eher theoretisch abstrakt als praktisch konkret (noch mehr in den Mathematik-Vorlesungen) Wenn Sie der Meinung sind, schon ganz gut programmieren zu können, haben Sie daher nicht notwendigerweise einen Vorteil, denn es geht nicht darum, wer „der beste Java-Programmierer“ ist. I (^) Im Gegensatz zur Schule ist jetzt aber nicht mehr der Lehrer für Ihren Lernerfolg verantwortlich. (ach nein? wer denn dann????) I (^) Das Erarbeiten des Stoffes ist Ihre eigene Verantwortung. (ach so) I (^) Zusätzlich zum Besuch von Vorlesungen und Übungen erforderlich: I (^) Recherche von Literatur zum Verstehen des Stoffes I (^) Selbständiges Lösen der Aufgaben I (^) Vor Besuch der Vorlesung: Sichtung des Materials

Einführung in die Informatik

I (^) In dieser Vorlesung lernen wir u.a.: I (^) Einführung in die Programmierung I (^) Anhand der Programmiersprache Java^2 I (^) Entwerfen von einfachen (hauptsächlich imperativen, teilweise funktionalen) Algorithmen I (^) Einfache Datenstrukturen (Darstellungsmöglichkeiten für Daten) I (^) Grundlagen der objektorientierten Programmierung I (^) In späteren Vorlesungen werden wir beispielsweise lernen I (^) Andere Paradigmen, z.B. das funktionale oder das logische Programmieren I (^) Software-Engineering, also Software-Entwicklung in Teams I (^) Hardware-Grundlagen der Informatik I (^) Analysemethoden für Probleme, Algorithmen, Programme I (^) uvm.

(^2) ABER: dies ist kein Java-Programmierkurs!!!

Der Algorithmus-Begriff

Begriff: Algorithmus I (^) Zentraler Begriff der Informatik I (^) Grundlage jeglicher maschineller Informationsverarbeitung I (^) Systematische, „schematisch“ („automatisch“, „mechanisch“) ausführbare Verarbeitungsvorschrift Wichtige Inhalte des Informatikstudiums: I (^) Entwicklung von Algorithmen I (^) Analyse von Algorithmen (Korrektheit, Laufzeit, Eigenschaften) I (^) Oft weniger wichtig: Umsetzung in Programmiersprachen Unser Alltag ist von Algorithmen geprägt...

Algorithmus-Beispiele aus dem Alltag

Kochrezept für einen Afrikanischen Hühnertopf (von www.chefkoch.de) I (^) Zutaten: 1 Huhn (küchenfertige Poularde), 125 ml Hühnerbrühe, 8 Tomaten, 150 g Erdnussbutter, 2 Zucchini, Salz und Pfeffer, Rosmarin. I (^) Zubereitung: I (^) Von der Poularde die Haut abziehen, Huhn zerteilen, Hühnerteile abspülen und in einen breiten Topf legen. I (^) Die Brühe angießen und langsam zum Kochen bringen. I (^) Die Tomaten mit kochendem Wasser übergießen, enthäuten und unzerteilt zum Fleisch geben. I (^) Zugedeckt bei geringer Hitze ca. 40 Minuten köcheln. I (^) Nach 30 Minuten Garzeit die Erdnussbutter (Erdnüsse) einrühren, mit Salz, Pfeffer und Rosmarin abschmecken; die Zucchini putzen und in kleine Würfel schneiden, Blüten und Stengelansatz entfernen; alles in den Topf geben.

Algorithmus-Beispiel aus der Mathematik

Berechnung des größten gemeinsamen Teilers (GGT) von zwei natürlichen Zahlen a und b (Beschrieben von Euklid von Alexandria (300 v.Chr.) im Werk Die Elemente)

Algorithmus 1 (GGT) Eingabe : a, b ∈ N 1 solange b 6 = 0 tue das folgende: 2 wenn a > b dann verändere den Wert von a zu a − b (d.h. a = b − a) 3 sonst verändere den Wert von b zu b − a (d.h. b = b − a) Ausgabe : a

Z.B. ist der GGT von 12 und 44 die Zahl 4.

Eigenschaften von Algorithmen

Es ergeben sich folgende interessante Fragen: I (^) Ist der Algorithmus korrekt? I (^) Also: berechnet er wirklich den GGT aus (a, b)? I (^) Wieso funktioniert dieser Algorithmus überhaupt? I (^) Ist der Algorithmus vollständig? I (^) Kann ich wirklich jedes Paar (a, b) eingeben? I (^) Ist der Algorithmus terminierend? I (^) Hört die Berechnung für jedes Paar (a, b) immer auf? I (^) Ist der Algorithmus effizient? I (^) Wie viel Speicher benötigt er? I (^) Wie viel Zeit (d.h. Verarbeitungsschritte) benötigt er? I (^) Wie hängt das von der Eingabe (a, b) ab? Um wirklich sicher zu sein, müssen solche Aussagen mathematisch bewiesen werden.

Definition: Algorithmus

Ein Algorithmus ist ein Verfahren zur Verarbeitung von Daten mit einer präzisen, endlichen Beschreibung unter Verwendung effektiver, elementarer Verarbeitungsschritte I (^) Daten : Die Repräsentation und der Wertebereich von Eingabe und Ergebnissen müssen eindeutig definiert sein. I (^) Präzise, endliche Beschreibung : Die Abfolge von Schritten muss in einem endlichen Text in einer eindeutigen Sprache genau festgelegt sein. I (^) Effektiver Verarbeitungsschritt : Jeder einzelne Schritt ist tatsächlich (durch die verarbeitende Einheit) ausführbar. I (^) Elementarer Verarbeitungsschritt : Jeder Schritt ist entweder eine Basisoperation (der verarbeitenden Einheit) oder ist selbst durch einen Algorithmus spezifiziert.

Typische Elemente in Algorithmen

I (^) Abstraktion von konkreten Eingabewerten: I (^) Statt konkrete Werte werden Eingabeparameter (Parameter der Problemstellung) verwendet I (^) z.B. die beiden Zahlen a und b deren GGT gesucht ist, anstelle nur den Algorithmus für die Berechnung des GGT von zwei konkreten Zahlen (z.B. 12 und 21) anzugeben I (^) Dadurch wird eine Klasse von Problemen statt einem ganz speziellen Problem gelöst I (^) z.B. einen Algorithmus zur Suche eines Wortes in Webseiten abstrahiert vom konkret gesuchten Wort; dadurch kann man den Algorithmus für beliebige Wörter benutzen I (^) Ausgabe: Lösung des Problems z.B. der GGT

Zentrale Aufgabe des Informatikers

I (^) Entwicklung von Algorithmen (und oft auch deren Realisierung auf dem Rechner als Programm) I (^) Programm: Formale Darstellung eines Algorithmus (oder mehrerer) in einer Programmiersprache I (^) Programmiersprache: Formale (eindeutige) Sprache, die insbesondere elementare Verarbeitungsschritte und eindeutig definierte Datentypen für die Ein-/Ausgabe zur Verfügung stellt

Teilgebiete der Informatik

I (^) Theoretische Informatik: Theoretische Durchdringung und Grundlegung von Fragen und Konzepten der Informatik (z.B. “Berechenbarkeit” von Aufgabenstellungen, “Komplexität” von Aufgabenstellungen und Lösungen). I (^) Technische Informatik: Beschäftigung mit der Hardware (z.B. maschinengerechte Darstellung von Daten und Algorithmen). I (^) Praktische Informatik: Konstruktion, Darstellung und Ausführung von Algorithmen (Software).

Einführung Die Programmiersprache Java

Überblick

  1. Einführung 2.1 Was ist Informatik? 2.2 Die Programmiersprache Java