Das Lehren von objektorientierter Programmierung in Java mit



Ähnliche Dokumente
Java lernen mit BlueJ

Objektorientierte Programmierung OOP

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Softwaretechnik (Allgemeine Informatik) Überblick

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

BEISPIELKLAUSUR Softwareentwicklung:

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Software Engineering Klassendiagramme Assoziationen

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Lehrpläne NRW Sek.stufe 2. Lernen im Kontext

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Objektorientierte Programmierung

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Computeranwendung und Programmierung (CuP)

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Java Kurs für Anfänger Einheit 5 Methoden

Was meinen die Leute eigentlich mit: Grexit?

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Software Engineering Interaktionsdiagramme

Robot Karol für Delphi

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

16 Architekturentwurf Einführung und Überblick

Abschnitt 16: Objektorientiertes Design

Professionelle Seminare im Bereich MS-Office

Arbeit zur Lebens-Geschichte mit Menschen mit Behinderung Ein Papier des Bundesverbands evangelische Behindertenhilfe e.v.

Softwarepraktikum: Enigma

Objektorientierte Programmierung. Kapitel 12: Interfaces

Muster. Selbstverantwortliches Lernen. für. Eine Mustersprache für die Waldorfpädagogik?

Adventskalender Gewinnspiel

Java Enterprise Architekturen Willkommen in der Realität

Einführung in die Programmierung für NF

Grundlagen von Python

Java Einführung Packages

Java: Vererbung. Teil 3: super()

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog

Kompetenz. rund um. Ihren. Entwicklungsprozess. Über uns. Technische Software. Modellbasierter Test. Prüfplätze. Automatisierung.

Institut für Telematik Universität zu Lübeck. Programmieren. Kapitel 0: Organisatorisches. Wintersemester 2008/2009. Prof. Dr.

Wintersemester 2010/2011 Rüdiger Westermann Institut für Informatik Technische Universität München

Gesucht und Gefunden: Die Funktionsweise einer Suchmaschine

Schulcurriculum Informationstechnische Grundkenntnisse und Informatik Stand:

Virtuelle Fotografie (CGI)

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich. Softwaretechnik I

VBA-Programmierung: Zusammenfassung

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Einführung in Eclipse und Java

Übungsblatt: Protein interaction networks. Ulf Leser and Samira Jaeger

Kreativ visualisieren

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

Blumen-bienen-Bären Academy. Kurzanleitung für Google Keyword Planer + Google Trends

Softwaretechnologie -Wintersemester 2011/ Dr. Günter Kniesel

Look Inside: desite. modellorientiertes Arbeiten im Bauwesen. B.I.M.

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Subpostfächer und Vertretungen für Unternehmen

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

Professionelle Seminare im Bereich MS-Office

Programmieren Lernen mit BYOB. Gerald Futschek 5. November 2012

Schulinternes Curriculum für Informatik (Q2) Stand April 2015

Einrichtung HBCI-Chipkarte in VR-NetWorld-Software

3. Stored Procedures und PL/SQL

ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Planung. Visualisierung. Programmierung

Kommunikations-Management

R&I-Fließbilder in PLANEDS

Use Cases. Use Cases

Programmieren in Java

Symbole und Schnittvorlagen aus

3D Visualisierung von UML Umgebungsmodellen

Einführung und Motivation

das usa team Ziegenberger Weg Ober-Mörlen Tel Fax: mail: lohoff@dasusateam.de web:

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Übungen zu Übersetzerbau 2

Das Leitbild vom Verein WIR

Informatik (G8) Sek I - Differenzierung 8/9

Fragebogen ISONORM 9241/110-S

WS 2002/03. Prof. Dr. Rainer Manthey. Institut für Informatik III Universität Bonn. Informationssysteme. Kapitel 1. Informationssysteme

Einführung in die Programmierung mit Java. Hörsaalübung

Informatik (G8) Sek I - Differenzierung 8/9

Informatik Java-Programmierkurs im Rahmen der Berufs- u. Studienorientierung für Schüler. Joliot-Curie-Gymnasium GR 2010 Nico Steinbach

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Herzlich Willkommen 26. November 2012, Fachtagung in Peiting-Herzogsägmühle

Verwalten Sie Ihre Homepage von überall zu jeder Zeit! Angebote und Informationen auf

EINE PLATTFORM

Grundwissen IT 10. Klasse

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.

Primzahlen und RSA-Verschlüsselung

Übungen zur Softwaretechnik

Vorkurs C++ Programmierung

Vererbung in der OOP

Transkript:

Das Lehren von objektorientierter Programmierung in Java mit Dr. Axel Schmolitzky Arbeitsbereich Softwaretechnik Fachbereich Informatik Universität Hamburg Überblick Kurz zu meiner Person Objektorientierung in Softwareentwicklung und Lehre Hintergrund von BlueJ Entwurfsprinzipien für BlueJ Demo Unterstützung für BlueJ 1

Zu meiner Person Informatikstudium Uni Bremen Diplomabschluss 1993 Wissenschaftlicher Mitarbeiter Uni Ulm Dissertation 1999 DAAD Postdoc-Stipendiat, 1999-2000 Monash University, Melbourne, Australien u.a. Mitarbeit im BlueJ-Team Wissenschaftlicher Assistent Uni Hamburg AB Softwaretechnik, seit 1.4.2001 Senior-Entwickler bei der it-wps GmbH Schulungen, Coaching, Beratung, Entwicklung seit Anfang 2003 nur noch freiberuflich Was ist Objektorientierung? Eine Sicht auf die Welt: Die Welt besteht aus Objekten, die miteinander interagieren. Objekte befinden sich in Zuständen, die sich über die Zeit ändern können. Objekte lassen sich klassifizieren. Intuitiv verständlich Gut vermittelbar Ein Verständnis von Softwaresystemen: Ein Softwaresystem besteht aus Objekten, die miteinander über Aufrufe kommunizieren. Objekte kapseln Zustände, die über Operationen auf Objekten geändert werden können. Objekte sind Exemplare von Klassen. 2

Objektorientierung überall... Objektorientierte Analyse Objektorientierte Modellierung Objektorientierte Programmierung... Objektorientierte Programmierung OOP ist eine Evolution imperativer Programmierung kein grundlegend anderes Paradigma (im Gegensatz zu funktionaler und logischer Programmierung) OOP ist deshalb im Kern imperativ zustandsbasiert Kontrollstrukturen: Sequenz, Selektion, Wiederholung OOP ist eine Abstraktion oberhalb prozeduraler Konzepte Methodenrümpfe der Klassen (die das Verhalten der Objekte festlegen) bestehen aus klassisch sequenziellen Anweisungen 3

Abstraktionen imperativer Programmierung Objektorientierte Programmierung Prozedurale Programmierung Assembler- Programmierung Klassen Methoden Vererbung Variablen Typen Prozeduren Register logische Adressierung Sprünge Hardware Thema Modellierung Informatische Modellierung Im Informatikunterricht lernen die Schülerinnen und Schüler, eine Problemsituation zu analysieren, zu modellieren und ein den Anforderungen entsprechendes Modell auf den in der Schule vorhandenen Informatiksystemen zu implementieren. Sie klassifizieren Modelle und modifizieren gegebene Modelle. Sie erarbeiten und üben unterschiedliche Modellierungstechniken, die ihnen auch außerhalb des Informatikunterrichts die Strukturierung und Beherrschung großer und komplexer Wissensbestände ermöglichen. (aus dem Rahmenplan Informatik für die gymnasiale Oberstufe) 4

Der Modellbegriff Ein Modell hat drei Merkmale: Abbildungsmerkmal Modelle sind stets Modelle von etwas, nämlich Abbildungen, Repräsentationen natürlicher oder künstlicher Originale, die selbst wieder Modelle sein können. Verkürzungsmerkmal Modelle erfassen im allgemeinen nicht alle Attribute des durch sie repräsentierten Originals, sondern nur solche, die den jeweiligen Modellerschaffern und/oder Modellbenutzern relevant scheinen. Pragmatisches Merkmal Modelle sind ihren Originalen nicht per se eindeutig zugeordnet. Sie erfüllen ihre Ersetzungsfunktion a) für bestimmte erkennende und/oder handelnde, modellbenutzende Subjekte, b) innerhalb bestimmter Zeitintervalle und c) unter Einschränkung auf bestimmte gedankliche oder tatsächliche Operationen. (Nach Stachowiak: Allgemeine Modelltheorie, 1973) Modelle und Software Anwendungsbereich modelliert Ausschnitt Modell des Anwendungsbereichs wirkt auf implementiert Anwendungssystem führt aus Modell des Anwendungssystems (Programmtext) 5

Rolle der Objektorientierung Das Paradigma prägt seit langem die Softwareentwicklung: Objektorientierte Analyse hat die Strukturierte Analyse abgelöst Bruchlose Übergänge von Analyse über Entwurf zu Implementierung möglich Kernabstraktionen eines Anwendungsbereichs häufig intuitiv objektorientiert modellierbar Moderne Softwaretechniksprachen sind objektorientiert: Eiffel, C++, Java, C# Praxisnahe Schulbildung sollte Objektorientierung prominent berücksichtigen! Objektorientierung in der Lehre? Unis Anfang der 90er: ein Thema für das Hauptstudium Langsames Hineinwachsen in das Grundstudium in den 90ern Heute: heterogene Hochschullandschaft Imperativer Einstieg Funktionaler Einstieg Objektorientierter Einstieg ( Objects First ) 6

Objects First? Klassisch: imperative Grundlagen zuerst Erst: Variablen, Ausdrücke, Kontrollstrukturen, Basisdatentypen, Algorithmen Später: Klassen und Objekte, Vererbung Definiert Struktur der meisten Lehrbücher Objects First: Objekte als Ausgangspunkt Inverted Curriculum Opening Black Boxes Erfordert Werkzeugunterstützung... Hintergrund: Blue (ohne J) Vorgänger von BlueJ Sprache und Umgebung für OO Lehre Alternative zu C++... entwickelt 94-96 Universität Sydney seit 97 an Sydney Uni eingesetzt geschrieben in C++: nur unter Unix... 7

Java kommt in s Spiel... Java löst C++ in der Lehre ab gesucht: IDE für die Lehre BlueJ: Blue-Umgebung für Java implementiert in Java auf allen Plattformen verfügbar frei erhältlich unterstützt durch Sun Microsystems Designprinzipien für Blue(J) Objektorientiert! Interaktiv Visualisieren Einfach 8

Interaktion Interaktion mit Klassen Konstruktoren interaktiv aufrufbar Interaktion mit Objekten Exemplarmethoden interaktiv aufrufbar Objektzustände überprüfbar beliebige Parameter übergebbar Objekte zum Anfassen Visualisierung Klassen und Objekte sind sichtbar. Beziehungen zwischen Klassen ( benutzt und erbt ) sind sichtbar. Designentscheidungen werden sichtbar und diskutierbar. 9

Einfachheit Beschränkung auf OO Kernkonzepte: Klassen Objekte Methoden in kürzester Zeit beherrschbar kein Feature-Overkill Sonstiges BlueJ bietet außerdem... Protokollierung von Ein-/Ausgaben Unterstützung für Javadoc einen einfachen Debugger Testunterstützung 10

Demo Unterstützung für BlueJ Gut betreute Homepage: www.bluej.org Englische Newsliste mit Diskussionen zu BlueJ Eigene Webseite mit Lehrmaterialien (passwortgeschützt) 11

Das Buch zu BlueJ David Barnes, Michael Kölling: Objects First with Java A Practical Introduction using BlueJ, Prentice-Hall/Pearson Education, 2002. David Barnes, Michael Kölling: Objektorientierte Programmierung mit Java eine praxisnahe Einführung mit BlueJ, Pearson Education Deutschland, 2003. 12