Java, Java, Java R. Morelli

Slides:



Advertisements
Ähnliche Präsentationen
Ziele von EINI I + II Einführen in „Informatik“
Advertisements

Konzepte des Anfangsunterrichts Informatik in der 11.1
Prüfungspläne Bachelor-Thesis
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Modellbasierte Software-Entwicklung eingebetteter Systeme
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Grundlagen der Informatik
Einführung in Berechenbarkeit und Formale Sprachen
Management großer Softwareprojekte - Auswertung der Fragebögen - Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin, Institut für Informatik Fraunhofer.
Der Studiengang „Angewandte Informatik“ (BAIN)
Der Einstieg in das Programmieren
RICHTIG STUDIEREN VON ANFANG AN
Java: Objektorientierte Programmierung
Entwicklung der Programmiersprachen
Forschungsstatistik II Prof. Dr. G. Meinhardt SS 2005 Fachbereich Sozialwissenschaften, Psychologisches Institut Johannes Gutenberg Universität Mainz KLW-17.
AP 04/03 Komponentenprogrammierung und Middleware Vorlesung + Projekt 4 SWS mit Praktikum (6 benotete Leistungspunkte) –Studentische Vorträge in der 2-ten.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Datenbanksystementwicklung – Praktikum & Vorlesung – WS 2004/2005
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
Was ich gern lese Lesetagebuch von
Lineare Algebra für Physiker Prof. Dr. Martin Schottenloher
Sommersemester 2004 Jan Drewnak Sitzung 1 Praktikum Entwicklung und Einsatz von Geosoftware I Sitzung 1: Einführung und Organisation.
Ich will in eine Tutorengruppe: Name: ____________________________ Matr-Nr.: __________________________ Semester: _________________________ ____________________________.
Studiengang Geoinformatik
CPLD/FPGA-Programmierung mit E-blocks. Wozu die CPLD/FPGA-Programmierung untersuchen? Zusammenhang zur modernen Digitalen Elektronik Verschwinden der.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Copyright 2004 Bernd Brügge Einführung in die Informatik II TUM Sommersemester Prof. Bernd Brügge, Ph.D Institut für Informatik Technische Universität.
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
? Was ist Informatik? Was ist Informatik? Alexander Lange
Einführung in die Informatik II Überblick
Einfache Automaten mit Lego Mindstorms praktisch umsetzen
Kollektionen in Java Aufzählungstypen, Generische Typen
Probe Programmieren LeapMotion-Projekt
Warum brauche ich ein CMS – Content Management System?
Grundlagen der Programmierung
Gestaltung von Folien mit Powerpoint
RICHTIG STUDIEREN VON ANFANG AN
Copyright 2011 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2011/12 Kapitel 11, Folie 1 2 Dr. Christian Herzog Technische.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Allgemeines zu Datenbanken
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Mo., – Uhr Ort: Hörsaal 5.01, Institut für Physik, Universitätsplatz 5, A-8010.
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
Präsentation #6 Einladung an Dritte. Manchmal möchten Menschen nicht, dass wir denken, sie bräuchten Geld und lehnen Angebote deshalb vorschnell ab. Was.
Prof. Dr. Walter F. Tichy Dr. Matthias Müller Sommersemester 2006 Empirische Softwaretechnik.
Informatik als Grundkursfach in der Oberstufe Was ist das Ziel? Problemstellungen modellieren und systematisch mit Softwarewerkzeugen einer Lösung zuführen.
MODAL-PARTIKELN.
Projekt: Schüler verbessern ihren Unterricht
Web-basierter Unterricht in der Computergraphik: Konzepte und Realisierung von interaktiven Online-Kursen Reinhard Klein, Frank Hanisch Wilhelm-Schickard.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
Projektaufgabe zur Vorlesung „Multimedia-Programmierung“ an der LFE für Medieninformatik Sommersemester 2005 Team 4: S andra Herker, E va Vodvarsky, A.
Modellbasierte Software-Entwicklung eingebetteter Systeme
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Informatik Im WPI – Bereich.
Kurze Rekapitulation aus der Einführungsvorlesung Stunde VII: Planen und Realisieren Manfred Thaller, Universität zu Köln Köln 20. Oktober 2011.
Einführung in die Programmierung mit Java
Informatik in den dualen Studiengängen Prof. Dr. Michael Löwe.
Informatik als Grundkursfach in der Oberstufe Was ist das Ziel? Problemstellungen modellieren und systematisch mit Softwarewerkzeugen einer Lösung zuführen.
Objektorientierte (OO) Programmierung
Softwarepraktikum LEDA/C++ Lehrstuhl fuer Datenstrukturen und effiziente Algorithmen Prof. Naeher Dozent: Daniel Scmitt.
Coden mit Python Was sind deine Erfahrungen mit Programmieren?
Mögliche Stoffverteilung im Grundkurs
 Präsentation transkript:

Java, Java, Java R. Morelli Einführung in die Informatik II Vergleich von Programmierstilen und Abschluss-Besprechung Prof. Bernd Brügge, Ph.D Institut für Informatik Technische Universität München Sommersemester 2004 22. Juli 2004 2 Copyright 2000 by Ralph Morelli. All rights reserved.

Überblick für Heute Vergleich von Programmierstilen Allerlei Kurzfristiges Jobangebot Interaktives Antwortsystem Preisinformationen Evaluierung der Vorlesung

Programmierstile Funktionale Programmierung Imperative Programmierung Objekt-basierte Programmierung Objekt-orientierte Programmierung Ereignis-basierte Programmierung Regel-basierte Programmierung (in Info I/II nicht behandelt, Vorlesung Wissensbasierte Systeme)

System-Kategorien und Sprachniveaus Der Programmierstil ist nur eine von vielen Dimensionen, um Aspekte eines Informatik-Systems zu berurteilen. Andere Aspekte: System-Kategorie Sprachniveau System-Kategorie 1. Berechnung von Funktionen 2. Interaktive Systeme 3. Prozeßüberwachung 4. Eingebettete Systeme 5. Adaptive Systeme Sprachniveau Modellierungssprache Höhere Programmiersprache Maschinennahe Sprache Maschinensprache

Sprach- Niveau Programmierstil Modellierungs- sprache (UML, OMT,E/R...) Höhere Programmier- (Java, C++, C,...) Maschinen- nahe Sprache (Intel Assembler, PMI Assembler) Sprache (PMI, Java- Bytecode) Sprach- Niveau System-Klasse Berechnung von Funk- tionen Interaktive Systeme Prozess- überwachung Eingebettete Adaptive Programmierstil Funk- tional Impe- rativ Objekt- Basiert Orientiert Ereignis- Regel- basiert

Sprach- Niveau Programmierstil System-Klasse Adaptive Systeme PMI Modellierungs- sprache (UML, OMT,E/R...) Bumpers Fibo- nacci Kon- trol -Struk- turen Such- Sortier- Algorith- men Eingebettete Systeme Höhere Programmier- sprache (Java, C++, C,...) Prozess- überwachung Fibo- nacci Interaktive Systeme Maschinen- nahe Sprache (Intel Assembler, PMI Assembler) Berechnung von Funk- tionen Maschinen- Sprache (PMI, Java- Bytecode) Funk- tional Impe- rativ Objekt- Basiert Objekt- Orientiert Ereignis- Orientiert Regel- basiert Programmierstil

Dimensionen von Programmierstilen Elemente: Was sind die wesentlichen Bestandteile des Stils? Sicherheit: Sind Seiteneffekte möglich? Effizienz: Wie hoch ist die Laufzeiteffizienz? Nachweis der Korrektheit: Wie leicht ist es zu beweisen, dass ein im Stil geschriebenes Programm das Spezifikationsmodell korrekt implementiert? Nachweis der Terminierung: Wie leicht ist es, zu beweisen, dass das Programm anhält? Enkapsulierbarkeit: Erlaubt der Stil Zugriffsschutz (z.b. durch Sichtbarkeitsregeln) Erweiterbarkeit: Unterstützt der Stil die Einführung von neuen Typen? Lesbarkeit: Wieweit kann man das Programm durch Lesen des Quelltextes verstehen? Wiederverwendbarkeit: Wie leicht kann man existierende Programme bei der Lösung anderer Probleme einsetzen?

Funktionaler Programmierstil Wesentliche Elemente: Funktionsanwendung, Fallunterscheidung, Rekursion Sicherheit: hoch, keine Seiteneffekte Effizienz: für jeden Aufruf wird eine Inkarnation (Aktivierungssegment) angelegt Nachweis Korrektheit : partielle Korrektheit durch strukturelle Induktion Nachweise Terminierung: Terminierungsfunktion Enkapsulierung: Gering Erweiterbarkeit: Schwierig Lesbarkeit OK Wiederverwendbarkeit: Gering

Imperativer Programmierstil Wesentliche Elemente: Zuweisung, Kontrollstrukturen, Anweisungssequenzen, Programmzustand Sicherheit: nicht sehr hoch, weil Seiteneffekte auf Variablen/Zustand möglich Effizienz: in Schleifen wird auf eine Variable mehrfach zugewiesen, Zwischenergebnisse können gespeichert werden (i.A.höhere Effizienz) Nachweis Korrektheit: Durch Zusicherungen (Hoare Kalkül) Sehr aufwendig schon für kleine Programme Nachweis Terminierung: Schwierig Enkapsulierbarkeit: Gering Erweiterbarkeit: Schwierig Lesbarkeit OK Wiederverwendbarkeit: Gering

Objekt-basierter Programmierstil Wesentliche Elemente: Imperativer Programmierstil + Klassenkonzept Sicherheit: Seiteneffekte durch Klassenkonzept auf lokale Variablen/Zustand einschränkbar Effizienz: in Schleifen wird auf eine Variable mehrfach zugewiesen, Zwischenergebnisse können gespeichert werden (i.A.höhere Effizienz) Nachweis Korrektheit: Entwurf durch Verträge, aufwendig Nachweis Terminierung: Schwierig Enkapsulierbarkeit: Hoch Erweiterbarkeit: Schwierig Lesbarkeit OK Wiederverwendbarkeit: Nicht sehr hoch

Objekt-Orientierter Programmierstil Wesentliche Elemente Objekt-basierter Programmierstil + Vererbung und Polymorphismus Sicherheit: Seiteneffekte durch Klassenkonzept auf lokale Variablen/Zustand einschränkbar Effizienz: mittelmäßig (i.A. geringere Effizienz als beim imperativen Stil, insbesondere durch dynamischen Polymorphismus) Nachweis Korrektheit: Entwurf durch Verträge, aufwendig Nachweis Terminierung: Schwierig Enkapsulierbarkeit: Hoch Erweiterbarkeit: Sehr gut Lesbarkeit OK Wiederverwendbarkeit: Sehr gut

Ereignis-Orientierter Programmierstil Wesentliche Elemente Kontrollfluss durch Ereignisse, kein Hauptprogramm Sicherheit: gefährdet, weil Seiteneffekte auf Variablen/Zustand möglich Effizienz: hoch (wie beim imperativen Stil) Nachweis Korrektheit: Sehr schwierig wegen fehlendem Kontrollfluss Nachweis Terminierung: Äusserst schwierig (aber im allgemeinen garnicht erwünscht:-) Enkapsulierbarkeit: Gering Erweiterbarkeit: Sehr gut Lesbarkeit Schlecht Wiederverwendbarkeit: Mittelmäßig

Legende: + (hoch), 0 (mittel), - (gering/schwierig) Übersichtstabelle Objekt- basiert Ereignis- orientiert Objekt- orientiert Funktional Imperativ Sicherheit - + - Effizienz + - + Nachweis der Korrektheit + - - Nachweis der Terminierung + - - -- - - - + - + Enkapsulierung Erweiterbarkeit - - - + Lesbarkeit - Wiederverwend- barkeit - - - + Legende: + (hoch), 0 (mittel), - (gering/schwierig)

Überblick für Heute Vergleich von Programmierstilen Allerlei Kurzfristiges Jobangebot Interaktives Antwortsystem Preisinformationen Evaluierung der Vorlesung

Software-Entwickler gesucht! Projekt: Logistiktool für die chemische Industrie Was wir benötigen: Informatikstudenten für 2-3 monatige Hiwi-Anstellung MS Access - Kenntnisse wünschenswert Wann: Semesterferien (ab Anfang August) Was wir anbieten: Echte Projekterfahrung, richtiger Kunde (Fortführung eines aktuellen Softwareprojekts) Extreme Programming Erfahrung sammeln in Visual Basic und Datenbanken Kontakt: bruegge@in.tum.de

Info I und Info II -Preise 2 iPod Minis (24. Juli) Dominik Grusemann Nicolas Heuser Buch: Objektorientierte Softwaretechnik (11.August) Mario Gemoll Andreas Meinl Michael Dörfel Martina Laumeyer Biergarten (Mitte August oder Anfang September) Julia Habel Kariem Morsy Leon v. Tippelskirch Michael Dörfel, Thomas Schicketanz, Tilman Küstner Christian Schroeder & Johannes Stammer Benjamin Frank

Evaluierung Stoff Werkzeuge Folien Vorlesungsbetrieb

Stoff Bemühung um Modernisierung der VL GUI Benutzung (könnte auch schon ins 1. Semester) Java, nur eine Programmiersprache, nicht 3 auf einmal Moderne Beispiele Bumpers Erklärung mit UML Aufbau der Vorlesung insgesamt

Stoff Mehr Hintergrundwissen zur eigentlichen Informatik Weniger Themen anschneiden, dafür gründlicher Inhalt nicht redundant aufschreiben, sondern nur Stichpunkte Im Skript nur Sachliches, nicht “Heute fällt die ZU aus” Zuviele abstrakte Konzepte, die im Raum rumgeistern Kein OCL im Grundstudium “Bitte mehr Praxisbezug”, “Bitte mehr Theorie” Gewisses logisches/mathematisches Grundverständnis voraussetzen

Vorlesungsbetrieb Skript im Netz Unterstützung der TUM-BWL Übung in der Innenstadt 2x Tutorübung in der Woche! Pause zwischen langen Vorlesungen Zentralübung nur bei Bedarf

Werkzeuge Wahlfreiheit lassen bei Entwicklungsumgebungen, Betriebssystemen, Programmiersprachen

Java, Java, Java R. Morelli Folien Folien sind deutlich überfrachtet. Die letzten Folien länger stehen lassen. Das Konzept der Folien funktioniert einfach nicht, Tafelanschrieb wäre deutlich hilfreicher Prof. Brügge wirkte oft unvorbereitet, als ob er die Folien nicht kennen würde Powerpoint und Animationen Tafelanschrieb ist keine Option. Das Problem waren meiner Ansicht nach die Animationen. Sie sind eigentlich besser als Tafelanschrieb, aber offensichtlich sind hier noch weitere Verbesserungen nötig Copyright 2000 by Ralph Morelli. All rights reserved.

Sonstiges Keine Experimente Wirklich nicht? Warum haben Sie Informatik gewählt? Weniger gequälte Übersetzung englischer Begriffe, Englisch ist nun einmal die Sprache der Informatik Das Problem ist nicht Englisch vs Deutsch, sondern “Denglisch” Es ist nicht Sinn einer Vorlesung, für eine Firma zu werben Ziel war Werbung für die Ferienakademie Manchmal könnte das Mikro lauter sein, da im (vollen) Saal ein gewisser Lärmpegel herrscht. Der Lärmpegel war besonders hoch, als das Mikro gut war. Prof. etwas freundlicher, Überreaktion bei erhöhtem Lärmpegel Schwätzen ist unfair bezüglich der anderen Studierenden Keine Vorlesung um 8:30

Ein weiteres Experiment Interaktives Fragesystem iVote Erstellt von Studierenden im Webobjects Praktikum URL fuer Endbenutzer http://macbruegge27.informatik.tu-muenchen.de/cgi-bin/WebObjects/iVote Fragen Hat es Ihnen geholfen, dass wir die PPS Folien ins Netz gestellt haben? Ja, Nein Sollen wir die Vorlesung interaktiver machen? Ja, Nein, nur die Zentralübung Möchten Sie die Animation für die Huffmann-Codierung sehen? Ja, Nein Haben Sie Interesse an Angeboten wie dem Ferienjob? Ja, Nein Haben Sie Interesse, an der Weiterentwicklung von iVote mitzumachen?

Ein letzter Tip: Prüfungsvorbereitung Ein Skript ist Rohmaterial, kein Kondensat, für die Prüfung. Destillieren Sie die wesentlichen Punkte aus dem Skript Erarbeiten Sie eine Zusammenstellung der Konzepte Üben Sie nochmals möglichst viele Übungsaufgaben Gehen Sie mental durch eine Prüfung durch Was kann passieren? Arbeiten Sie mit anderen zusammen! Viel Glück im weiteren Studium!