




















Besser lernen dank der zahlreichen Ressourcen auf Docsity
Heimse Punkte ein, indem du anderen Studierenden hilfst oder erwirb Punkte mit einem Premium-Abo
Prüfungen vorbereiten
Besser lernen dank der zahlreichen Ressourcen auf Docsity
Download-Punkte bekommen.
Heimse Punkte ein, indem du anderen Studierenden hilfst oder erwirb Punkte mit einem Premium-Abo
Community
Finde heraus, welche laut den Docsity-Nutzern die besten Unis deines Landes sind
Kostenlose Leitfäden
Lade unsere Leitfäden mit Lernmethoden, Hilfen zur Angstbewältigung und von Docsity-Tutoren erstellte Tipps zum Verfassen von Haus- und Abschlussarbeiten kostenlos herunter
Skripte der Ludwig-Maximilians-Universität München zur Einführung in die Programmierung: Was ist Informatik; Die Programmiersprache Java
Art: Skripte
1 / 28
Diese Seite wird in der Vorschau nicht angezeigt
Lass dir nichts Wichtiges entgehen!
Einführung
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
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
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!!!
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...
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.
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.
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.
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.
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
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
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