Soll und kann ich mit Java programmieren?

Slides:



Advertisements
Ähnliche Präsentationen
C Sharp (C#) Martin Saternus Senior Student Partner
Advertisements

der Universität Oldenburg
Einführung in die Programmierung Zusammenfassung
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Kapselung , toString , equals , Java API
Puck eine visuelle Programmiersprache für die Schule
Imperative Programmierung -Entwicklungswerkzeuge
Spec# Proseminar Assertions im SS 2007 Uni Paderborn Andreas Martens Betreuer: Dipl. Inform. Björn Metzler.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Ein Beispiel in Java.
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Programmieren mit JAVA
Programmieren mit JAVA
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
Einführung in die Programmierung Datensammlung
Presenter: Daniel Walzenbach Technologieberater
Delphi Eine objektorientierte Programmiersprache © Beushausen 2000.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Einführung in die Programmiersprache Java
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Objektorientiertes Konstruieren
Variablenkonzept Klassisch, in Java Basistyp
Programmiersprachen Proseminar Grundlagen wissenschaftlichen Arbeitens
Vortrag: Visual Basic Neuerungen Autor : Dennis Hoyer
EPROG Tutorium #4 Philipp Effenberger
Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
Starten der Entwicklungsumgebung (IDE)
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
LEGO-Robotik mit Java Projekt Virtueller Campus LLB Projektlauzeit: Oktober Februar 2006 Mitarbeiter:Jarka Arnold (Projektleitung) Andreas Marti.
Charles Hohmann, Dr. phil., Institut Montana Zugerberg
Objektorientierung.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Einführung in Java PING e.V. Weiterbildung Andreas Rossbacher 24. März 2005.
Erweiterte Zuweisungskompatibilität. Wie kann man Objekte verschiedener Klassen einer Klassenhierarchie einander zuweisen ?
Objektorientierte (OO) Programmierung
Java Programme nur ein bisschen objektorientiert.
1 Grundsätze objektorientierter Programmierung. Dr. Wolfram Amme, Grundsätze objektorientierter Programmierung, Informatik II, FSU Jena, SS Objektorientierte.
Objects first mit BlueJ und Greenfoot
Implementieren von Klassen
 Präsentation transkript:

Soll und kann ich mit Java programmieren? Kolloquium Informatik und Unterricht, Wintersemester 2007 Soll und kann ich mit Java programmieren? Aegidius Plüss, Bern www.aplu.ch Original: www.aplu.ch/kolloquium Kolloquium Informatik und Unterricht Wintersemester 2007

Arbeitsthesen, Preconditions Programmieren Gibt eine fundamentale Einsicht in die Kerninformatik Ist nicht ICT, Programmierkenntnisse sind für die meisten Computerbenützer unnötig Ist für viele Webdesigner, Mathematiker, Natur- wissenschafter und Ingenieure notwendig Entwickelt ganz allgemein die intellektuellen Fähigkeiten und das Problemlösungsverhalten Fördert die Phantasie und macht Spass Gehört in den Unterricht, insbesondere im Gymnasium (Ergänzungsfach, Grundlagenfach?) Kolloquium Informatik und Unterricht Wintersemester 2007

Kolloquium Informatik und Unterricht Wintersemester 2007 Inhalt Teil: Tabula rasa Wir beginnen von ganz vorne, ohne Vorurteile Wir sind "erblich" (von unseren eigenen Lehrpersonen) unbelastet Teil: Programmier-Paradigmen Was ist Programmieren? Prozedurale Programmierung, Kapselung Datentypen, streng typisierte Sprachen Formularorientierte Programmierung Teil: To OOP or not to OOP, that is the question Falls GUI, keine Alternative! Optimales methodisches Vorgehen: Zuerst ohne OOP, dann OOP hinzufügen OOP von Anfang an Kolloquium Informatik und Unterricht Wintersemester 2007

Kolloquium Informatik und Unterricht Wintersemester 2007 Inhalt Teil: Eignet sich Java als Unterrichts- und Einsteigersprache? Wahl der IDE Anatomie eines Java-Programms OOP in fünf Minuten Vermeidung von Vorwärtsbezügen Didaktische Klassenbibliotheken Teil: Einstiegsvarianten Teil: Sample Session: OOP mit Java Teil: Diskussion (hoffentlich heftiger Protest) Kolloquium Informatik und Unterricht Wintersemester 2007

Kolloquium Informatik und Unterricht Wintersemester 2007 1. Teil: Tabula rasa Die Informatik hat zwar eine historische Dimension. Lehrplan und Methodik eines Programmierkurses snd nicht daran zu orientieren (Hinweise genügen) Die meisten Lehrpersonen sind durch ihren eigenen Wertegang, ihre Kenntnisse und ihre Vorlieben vorbelastet (Hardware-Plattform, Einsatzgebiet, Be-triebssystem, Entwicklungsumgebung, Programmier-sprache). Junge Menschen sind unbelastet Computer sind ausschliesslich sequentielle Maschinen. Diese Vorstellung ist falsch: Ereignisgesteuerte Pro-gramme, Threads, Client-Server-Systeme Kolloquium Informatik und Unterricht Wintersemester 2007

Kolloquium Informatik und Unterricht Wintersemester 2007 Was ist Programmieren? Programmieren bezeichnet die Tätigkeit, Computer-programme (Software) zu erstellen (sehr pragmatisch, was sind Computerprogramme?) Programmieren ist die Umsetzung von Algorithmen in eine computerlesbare Form (etwas vornehm, der meiste Code besteht nicht aus Algorithmen, was sind Algorithmen?) Programmieren ist eine Kunst... Kolloquium Informatik und Unterricht Wintersemester 2007

2. Teil: Programmier-Paradigmen Prozedurale Programmierung, Kapselung Programme sollten lediglich die drei Grundstrukturen Sequenz, Selektion, Iteration aufweisen (Böhm, Jacopini, 1966) Programme sollten aus funktionalen Blöcken (klassisch: Prozeduren, Funktionen, Methoden, Subroutinen; modern: Module, Objekte) bestehen, deren Schnittstelle klar beschrieben wird, und die interne Daten vor dem Zugriff schützen (Geheimnisprinzip, Kapselung). Sie sollten möglichst keine Veränderung an äusseren Daten vornehmen (keine Seiteneffekte) Wichtige Begriffe: globale und lokale Variable, formale und aktuelle Parameter, Werte- und Variablenparameter Dominiert das Programmieren seit 50 Jahren bis zum heutigen Tag! Kolloquium Informatik und Unterricht Wintersemester 2007

Prozedurale Programmierung, Kapselung Interface (Loch in Schutzhülle) Kapsel (Haut schützt) Methoden (Würmer) Daten (Fruchtfleisch, Kerne) Kolloquium Informatik und Unterricht Wintersemester 2007

Kolloquium Informatik und Unterricht Wintersemester 2007 Beispiel: PHP <?php function getMax($a, $b) { if ($a > $b) return $a; return $b; } if (isset($_GET["Submit"])) $a = $_GET["ta"]; $b = $_GET["tb"]; $result = getMax($a, $b); ?> <html><body> <form name = "form1" method = "get"> <p>1. Zahl: <input type="text" name = "ta" value = "<? echo $value1 ?>"></p> <p>2. Zahl: <input type="text" name = "tb" value = "<? echo $value2 ?>"></p> <p>Resultat: <input type="text" name = "tr" value = "<? echo $result ?>" ></p> <p><input type="submit" name = "Submit" value = "Submit"> </p> </form></body></html> Anwendungslogik Präsentationslogik Kolloquium Informatik und Unterricht Wintersemester 2007

Kolloquium Informatik und Unterricht Wintersemester 2007 PHP, einige Fragen... Ist PHP weit verbreitet? Brauchst Du es? Ist PHP einfach? (Ist Java, C++, usw. einfach?) Ist PHP wesentlich anders als andere prozedurale Programmiersprachen (Syntax, Semantik)? Ist PHP eine universelle höhere Programmiersprache? Ist es gut, dass man erst dann mit dem Erlernen einer Programmiersprache beginnt, wenn man für eine Website PHP braucht? Wieviel Zeit verbratet man mit dummen Fehlern in PHP, wenn man keine Ahnung vom Programmieren hat? Umgekehrt: Wie schnell hat man PHP im Griff, wenn man vorher die Grundprinzipien des Programmierens kennt? "PHP ist ein performanter Hack!" Kolloquium Informatik und Unterricht Wintersemester 2007

Datentypen, streng typisierte Sprachen Streng typisiert: Eine Variable besitzt einen zur Compilationszeit festgelegten Datentyp. Es können ihr nur Werte von diesem Datentyp zugewiesen werden Nicht typisiert: Eine Variable erhält zu Laufzeit den Datentyp des zugewiesenen Werts Streng typisierte Sprachen Nicht typisierte Sprachen Pascal (Familie) C/C++ Java VB.NET PHP Python VBScript Kolloquium Informatik und Unterricht Wintersemester 2007

Typisierte versus nicht typisierte Sprachen Vorteile Typisierte Sprachen Häufige Programmierfehler werden zur Compilationszeit angezeigt (sind Syntaxfehler) Datentypen spielen insbesondere in der OOP eine fundamentale Rolle (Klassen sind Datentypen) Für robuste, fehlertolerante System geeignet Nicht typisierte Sprachen Für den schnellen Einstieg und das schnelles Prototyping gut geeignet Meist Interpreter, einzelne Anweisungen können als Test ausgeführt werden Als Zusatz zu bestehenden Systemen geeignet: Scriptsprachen, Websprachen Nachteile Aufwändiger, das Typcasting (Umwandlung von Typen) ist anspruchsvoll Am Anfang etwas gewöhnungs- bedürftig, da in der Mathematik keine Typenbindung von Variablen Viele dumme, aber auch heikle Programmierfehler werden erst zu Laufzeit (oder nie) gemerkt Der Datentyp ist zentraler Begriff einer Programmiersprache. Er wird als sekundär betrachtet Kolloquium Informatik und Unterricht Wintersemester 2007

Formularorientierte Programmierung = "neues" Paradigma? Visual Basic verdankt seinen Erfolg: Nachfolger altgedienter Interpreter (Turbo Basic, QuickBasic, Comodore Basic, usw.) Formularbasierte Entwicklungsumgebung zur schnellen interaktiven Erstellung von GUI-Applikationen Integration in die .NET-Sprachen, zusammen mit C++ und C# Gratis-Version der Entwicklungsumgebung "Visual Studio Express" Formularorientierte Programmierung ist eventgesteuert, d.h. gemäss der Programmstruktur: "wann immer das Ereignis eintritt, dann tue..." objektorientiert: GUI-Elemente besitzen Eigenschaften (Attribute, Properties, Instanzvariablen) Verhalten (Subroutines, Methoden, Prozeduren, Funktionen, Operationen) Kolloquium Informatik und Unterricht Wintersemester 2007

Kolloquium Informatik und Unterricht Wintersemester 2007 Beispiel: VB.NET Installation von Visual Studio Express gemäss Anhang. VB Sample Session: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim value1 As String Dim value2 As String Dim a As Integer Dim b As Integer value1 = TextBox1.Text value2 = TextBox2.Text a = CInt(value1) b = CInt(value2) TextBox3.Text = CStr(Ggt(a, b)) End Sub Private Function Ggt(ByVal a As Integer, ByVal b As Integer) As Integer If b = 0 Then Return a End If Return Ggt(b, a Mod b) End Function Kolloquium Informatik und Unterricht Wintersemester 2007

Visual Basic, einige Fragen Ist VB weit verbreitet? (MS-Windows only) Ist VB einfach? Ist die Syntax von VB modern? Ist VB eine volle objektorientierte Programmiersprache? Wie schnell kann man unter VB animierte Grafik machen (z.B. Julia-Menge)? Ist in der Ausbildung die Ausrichtung auf formular-orientierte Programmierung statthaft? Wo sind die klassischen sequentiellen Abläufe? Dieselben Fragen könnte man bezüglich Delphi/Lazarus stellen... (mit etwas unterschiedlichen Antworten) Kolloquium Informatik und Unterricht Wintersemester 2007

3. Teil: To OOP or not to OOP Shakespeare's Hamlet: To be, or not to be: that is the question: Whether 'tis nobler in the mind to suffer The slings and arrows of outrageous fortune, Or to take arms against a sea of troubles, And by opposing end them? To die: to sleep; No more Sein oder Nichtsein; das ist hier die Frage: Obs edler im Gemüt, die Pfeil und Schleudern Des wütenden Geschicks erdulden oder, Sich waffnend gegen eine See von Plagen, Durch Widerstand sie enden? Sterben - schlafen Nichts weiter! OOP gehört zu den grundlegenden Informatikkenntnissen Falls GUI- und Fensterprogrammierung, ist OOP eine Notwendigkeit! Hybride Sprache: zuerst ohne OOP/GUI, dann hinzufügen? (Typisch C/C++) Zwei Sprachen: zuerst Pascal, LOGO, Scriptsprache, dann OOP/GUI? Kolloquium Informatik und Unterricht Wintersemester 2007

4. Teil: Eignet sich Java im Unterricht? These: Java ist eine Programmiersprache, die den Ansprüchen einer modernen Unterrichtssprache gerecht wird, und dies aus folgenden Gründen: Setzt man didaktische Programmbibliotheken ein, so ist der Einstieg sanft und motivierend (Turtle, Grafikfenster) Ja, Sie können sich an Java heran wagen... Java ist die Programmiersprache mit der grössten Zahl von Lehrbüchern und Online-Beiträgen Java wird weltweit an Lehrinstitutionen am häufigsten eingesetzt Java ist auf alle üblichen Plattformen (Mac, Windows, Linux) gleichartig einsetzbar (sogar gleiche IDE) Kolloquium Informatik und Unterricht Wintersemester 2007

Wahl der Entwicklungsumgebung (IDE) Die IDE ist die erste und dann die tägliche Berührung mit der Programmiersprache. Besonders geeignet: NetBeans (www.netbeans.org) Eclipse (www.netbeans.org) JCreator (www.jcreator.com) Online-Editor PHBern (www.java-online.ch) Meine bevorzugte IDE: NetBeans kostenlos mehrere Sprachversionen (auch Deutsch) mehrere Plattformen (Linux, Mac, Windows) intelligenter Editor (automatische Syntaxprüfung) hervorragender GUI-Builder Kurzanleitungen: www.netbeans.org, www.aplu.ch/forum Kolloquium Informatik und Unterricht Wintersemester 2007

Online-Editor (www.java-online.ch) Praktisch kein Installations- aufwand (nur JRE) Basiert auf Applets und WebStart Integrierte, im Unterricht er- probte Lernprogramme auch zum Selbststudium Quellcode kann im Editor übernommen und ausgeführt werden Entwicklungsumgebung für Lego-Robotik (Edit/Compile/Download) Entwicklungsumgebung für Handy-Programmierung (J2ME) Kolloquium Informatik und Unterricht Wintersemester 2007

Anatomie eines Java-Programms Kommentar Bibliotheksimport Klassendeklaration Instanzierung der Turtle Konstruktor Methodenblock Entry point (main) Erzeugung einer Applikationsinstanz Kolloquium Informatik und Unterricht Wintersemester 2007

Kolloquium Informatik und Unterricht Wintersemester 2007 Paradigmenwechsel Ein Programm ist nicht Aneinanderreihung von Code 10 INPUT A 20 INPUT B 30 IF A > B PRINT 'A IST GROESSER ALS B' 40 GOTO 60 50 PRINT ‘A IST KLEINER ALS B’ 60 END sondern: Ein Programm ist ein Objekt! (Instanz der Applikationsklasse) class MyProg { main() new MyProg() } Kolloquium Informatik und Unterricht Wintersemester 2007

Kolloquium Informatik und Unterricht Wintersemester 2007 Tue es nicht! Man kann zwar in Java auch (fast) prozedural (ohne OOP) programmieren, indem man den Code in main() schreibt und alle Methoden static macht: Kolloquium Informatik und Unterricht Wintersemester 2007

Tue es so! Konstruktor Consolefenster Methoden des Consolefensters Methode (nicht statisch) Applikationsinstanz erzeugen Kolloquium Informatik und Unterricht Wintersemester 2007

OOP in 5 Minuten: Kapselung in Klassen Instanzvariablen (Eigenschaften) Konstruktor (Initialisierung) Methode (Verhalten) Methode (Verhalten) Kolloquium Informatik und Unterricht Wintersemester 2007

OOP in 5 Minuten: Vererbung Klassendeklaration (abgeleitete Klasse) Konstruktor Initialisierung der Basisklasse Methode (überschrieben) UML-Diagramm: Klassenhierarchie Basisklasse (Mutter) Abgeleitete Klasse (Kind) Ein Quadrat IST EIN Rechteck, kennt daher zeige() Kolloquium Informatik und Unterricht Wintersemester 2007

OOP in fünf Minuten: Polymorphie Applikationsklasse Instanzierung GPanel Instanzierung Objekte Container-Klasse Elemente hinzufügen Elemente durchlaufen Elemente durchlaufen Es wird das zum Datentyp gehörende fuelle() aufgerufen Instanzierung der Applikationsklasse Kolloquium Informatik und Unterricht Wintersemester 2007

Ist der Mathematikunterricht einfacher? Nichts ist umsonst: Hochsprung Geigenspiel Elektrodynamik ... Programmieren Freude herrscht, wenn Widerstand gebrochen! Kolloquium Informatik und Unterricht Wintersemester 2007

Vermeidung von Vorwärtsbezügen Die Kunst des Unterrichtens besteht darin, den Unter-richt in angepasst kleine Lernschritte zu strukturieren, dass der Lernende weder unter- noch überfordert wird. Neue Begriffe sollen unter Berücksichtigung des gegen-wärtigen Wissensstandes und der Persönlichkeit des Lernenden eingeführt werden und müssen von ihm lo-gisch nachvollziehbar sein. Zu einem systematisch aufgebauten Unterricht gehört der weitgehende Verzicht auf Unerklärbares und auf Hinweise, dass ein Verständnis erst später möglich sei. Kolloquium Informatik und Unterricht Wintersemester 2007

Java's Schwächen als Unterrichtssprache Das ominöse Main: public static void main(String[] args) Variablenkonzept: Basistypen: int, double, usw. sind keine Objekte Referenztypen: Variablendeklaration erzeugt kein Objekt, sondern nur eine Referenz auf ein Objekt. Diese werden ausschliesslich mit new erzeugt: Turtle t; // Variablendeklartion t = new Turtle(); // Objekterzeugung und Zuweisung Es gibt nur Werte- aber keine Variablenparameter Es gibt keine Zeiger, denn alle Referenzen sind bereits Zeiger Kolloquium Informatik und Unterricht Wintersemester 2007

Didaktische Klassenbibliotheken Ohne didaktische Klassenbibliotheken ist der Einstieg in Java schwierig (zu?) Besonders geeignet: Turtle (Mehrere Turtles im gleichen Fenster) Grafikfenster mit Benützerkoordinaten (GPanel) Konsolenfenster für Ein- und Ausgabe (Console) Hilfsklassen: HiResTimer, SoundPlayer, JRunner Beim Einstieg kann weitgehend auf den OOP-Klassenentwurf (Vererbung, Polymorphie) verzichtet werden Für die Programmierung klassischer Algorithmen geeignet. Beispielprogramme aus C/C++, Basic und Pascal können in der Regel leicht übernommen werden Kolloquium Informatik und Unterricht Wintersemester 2007

Drei Arten der Komplexitätsreduktion Klassenbibliotheken verdecken zwar eine Menge an kompliziertem Code, es werden aber nicht alle Fallgruben entfernt, sondern der Lernende muss sich in der harten Wirklichkeit zurechtfinden Glashaus-Systeme: der Lernende befindet sich in einer "geschützten Umgebung". Beispiele: C++/Champ (enthält Multiple Turtle, CPWindow) Logo (turtlebasiert!) Kara (turtlebasiert!) Lernsprachen sind eine alte Tradition der ETH Zürich, gemäss der Lebensphilosophie von N. Wirth: "Gibt es keine Programmiersprache, welche meinen Vorstel-lungen entspricht, so erfinde ich sie" Kolloquium Informatik und Unterricht Wintersemester 2007

5. Teil: Java-Einstiegsvarianten "Hello World" ausschliesslich mit dem Java API konsolenorientiert formularorientiert (GUI-Builder) Applets Web-Programmierung (JSP) Java exemplarisch: Turtle (Logo orientiert) Console (traditionell) GPanel ("ein Bild sagt mehr als tausend Worte") Lejos (robotikorientiert, Java für Lego Mindstorm) J2ME (handyorientiert) Kolloquium Informatik und Unterricht Wintersemester 2007

Sample Session: OOP mit Java Weihnachtssterne Top-Down-Design Sterne sind Objekte mit Eigenschaften (Grösse, Farbe, usw.): Instanzvariablen Verhalten ("erscheine an diesem Ort"): Methoden Es lassen sich beliebig viele Sterne (Objekte) erzeugen Zwei Programmkonzepte: sequentieller Code (klassisch) formularorientiert (eventgesteuert) Let's do it (Learning by Doing) Kolloquium Informatik und Unterricht Wintersemester 2007