Einführung in die objektorientierte Programmierung mit Squeak - BotsInc.

Slides:



Advertisements
Ähnliche Präsentationen
Blue J.
Advertisements

Frame-Logik Eine Einführung Andreas Glausch.
Variablen und Datentypen
MAM Einstellungen & Erweiterte Möglichkeiten.
Einführung PowerPoint
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Einführung Blue J.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Java: Referenzen und Zeichenketten
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
Ein Beispiel in Java.
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
Windows Explorer.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Einführung in die Programmierung mit Java
Java-Kurs Grafik Julian Drerup.
Zusammenfassung Vorwoche
Das Java-Hamstermodell
Batch-Programmierung Grundlagen
EDV1 - Komplexe Datentypen
DVG Klassen und Objekte
Einführung MySQL mit PHP
Ein Computerprogramm zur Erstellung von Concept Maps
Eine Bewerbung schreiben
Java programmieren mit JavaKara
Einführung in das Programmieren mit JavaScript Mag. Andreas Starzer weloveIT – EDV Dienstleistungen.
Erste Schritte mit PHP 5 von Max Brandt, 22. September 2006.
Anlegen von Ordnern, speichern und Öffnen von Bildern und Briefen
Bedienung der Maus.
Wie man eine einfache Präsentation erstellt...
Java ohne Kara. Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen.
Hyperlinks und Anker Links notieren
Debugging in Lua Universität zu Köln Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller Referent: Artur Wilke.
Von der Planung bis zum Hauptmenü Seminar: Softwaretechnologie II Dozent: Prof. Manfred Thaller Referent: Jan Bigalke.
Seminar Internet Technologien
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
Hallo Ich möchte einen Text einer Folie nicht einfach nur einfliegen lassen, sondern genau diesen Text, der schon an einer bestimmten Stelle steht, vergrößern.
Anlegen von Ordnern, speichern und Öffnen von Bildern und Briefen
Dynamische Datentypen
PHP Basic.
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
Einführung. Steuerelemente Hier erstellt man das Fenster, mit dem der Anwender später arbeiten soll: Werte eingibt Buttons klickt Auswahlen trifft.
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Java Programmierung.
EINFÜHRUNG in HOT POTATOES
Objectives Verstehen was unterDelegate verstanden wird
Erste Schritte in DELPHI
Getting started: das Weltfenster von Kara
Datei hochladen Um Mit der Dateiverwaltung zu beginnen klicken Sie zunächst auf den Wiki verwalten Button. Dann klicken Sie auf Dateien.
BMEVIEEA100 Grundlagen der Programmierung
Beispiel 8 aus den Vorlesungsbeispielen (2) Struktogrammentwurf schrittweise.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Einführung Blue J. Inhaltsverzeichnis  Definition  Vokabeln.
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Lektion 1 - Lektion 2 - Lektion 3 - Lektion 4
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
1 Servlets Stephan Baldes. 2 Was ist ein Servlet? S E R V L E T = Eine auf Java-Technologie basierte Web-Komponente, die von einem Container.
Pool Informatik, Sj 11/12 GZG FN W.Seyboldt 1 Pool Informatik 5 GZG FN Sj. 11/12 Kopieren, Daten, Programme.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Tutorium Software-Engineering SS14 Florian Manghofer.
Was kann oder bietet Outlook XP
 Präsentation transkript:

Einführung in die objektorientierte Programmierung mit Squeak - BotsInc

BotsInc  Roboterumgebung zum Programmieren  verwendet Squeak-Syntax  zur Einführung in objektorientierte Programmierung  spezielles Squeak-Image mit Umgebung für BotsInc

BotsInc  Informationen und Download unter  Startbildschirm zeigt einen Roboter, eine Roboterfabrik und zwei Klappen mit Werkzeugen  Programmieren heißt, Befehle an Roboter zu senden

BotsInc

 Hilfetext erscheint beim Überfahren mit der Maus  enthält Informationen über den Roboter wie Position und Richtung  Nachrichten werden verschickt durch Links- Klick, Tippen der Nachricht und Enter

BotsInc  Syntax der Nachrichten entspricht Squeak- Syntax  Roboter ist ein Objekt  Nachrichten können einzeln oder als Kaskade geschickt werden, auch eigene Nachrichten  einige Squeak-Smarties verfügbar

Sprachkonzept  Aufbau angelehnt an natürliche Sprache: S-P-O  5 reservierte Wörter: nil, true, false, self, super  beim Aufruf einer Methode Parameter übergeben, ist keiner angegeben, wird self übergeben  Rückgabewert aus Methode mit ^, sonst wird self zurückgegeben

Sprachkonzept  unäre Nachrichten bestehen aus Empfänger und Methode meinString size.  binäre Nachrichten bestehen aus Empfänger, Methode, Parameterobjekt  Schlüsselwort-Nachrichten bestehen aus Empfänger, Methode mit : und Parameterobjekt(e) meinString at: 1 put: ‘text‘.

Sprachkonzept  Kaskadieren von Nachrichten, mehrere Nachrichten an das selbe Objekt:  aStream nextPutAll: ’abc’; nextPutAll: ’def’; nextPutAll: ’ghi’. ist einfacher und übersichtlicher als:  aStream nextPutAll: ’abc’. aStream nextPutAll: ’def’. aStream nextPutAll: ’ghi’.

Variablen und Speicher  Variablen sind weder Objekte noch Speicherpositionen, sondern zeigen auf Objekte  nicht initialisierte Variablen zeigen auf nil  mehrere Variablen können auf das selbe Objekt zeigen - Duplikate erzeugt man mit copy

Variablen und Speicher  Vergleich zweier Variablen mit = testet auf Gleichheit (selbe Werte), mit == auf Äquivalenz (selbes Objekt)  automatische Speicherverwaltung erfolgt nebenbei, in der Regel dann, wenn nicht mehr genügend Speicherplatz verfügbar ist

Werkzeuge  Workspace, Arbeitsbereich um Befehle direkt auszuführen  Transcript, Ausgabefenster, z.B. vom Workspace ansprechbar  Klassenbrowser, Übersicht über alle Klassen

BotsInc  neuer Roboter wird in Roboterfabrik erzeugt  Roboterfabrik ist eine Klasse  beachten: Groß- und Kleinschreibung der Namen von Klasse und Objekt  Nachrichten an Fabrik wie an Roboter

BotsInc  neue Roboter werden mit new in der Fabrik erzeugt und zeigen immer nach Osten  spezielles Weltmenü mit Einträgen nur für BotsInc zum Speichern und Beenden, erscheint bei Klick auf den Hintergrund

BotsInc  Nachrichten-Kaskaden, indem Nachrichten durch Semikolon getrennt werden  für komplexe Programme sind direkte Nachrichten ungeeignet  deshalb: Skripte im Workspace

BotsInc  vorherige Nachrichten sind mit Pfeiltasten verfügbar  Skripte im Bot Workspace schreiben wie in Squeak  Do It All führt alle Nachrichten im Workspace aus, Do It führt markierten Teil aus, Clear Trails löscht Spuren, Clear Robots löscht Roboter und Clear All löscht beides

BotsInc

 | pica | definiert eine Variable, damit ich ein erzeugtes Objekt anfassen kann  pica := Bot new erzeugt Objekt der Klasse Bot  pica go: 100 sendet die Nachricht go: mit Parameter 100 an pica

BotsInc  Workspace hat Syntaxhighlighting  im Weltmenü gibt es unter Hilfe eine Übersicht über das Vokabular

BotsInc  Unterstützung bei Fehlern

BotsInc  unbekannte oder unbenutzte Variablen werden angezeigt

BotsInc  erste Aufgaben zum Zeichnen  jump: bewegen ohne Linie zu zeichnen  beInvisible und beVisible zum Unsichtbarmachen bzw. Darstellen  Richtungen können als Himmelsrichtungen angegeben werden  color: Color blue erzeugt blaues Farbobjekt, das nun einem Roboter zugewiesen werden kann

im Weltmenü unter open Browser für Bot öffnen

BotsInc  Browser, Workspace und Transcript auch in der Seitenklappe verfügbar  Skripte speichern im Menü vom Workspace mit save contents  Skripte laden im Weltmenü mit open-->file list-- >Datei, Inhalt kopieren  Bildschirm erfassen mit capture im Weltmenü um Bilder zu sichern  Nachrichten direkt ausführen im Workspace durch Markieren, printIt im Menü

BotsInc  penSize: und penColor: für Strichstärke und - farbe  Color r:g:b: für Farbangaben zwischen 0 und 1 pro Farbkomponente  lookLikeTriangle, lookLikeCircle für andere Form  extent: für

BotsInc  Malwerkzeug, um Roboter selber zu malen (wie in eToys)  rotes Smartie öffnet Malwerkzeug  blaues Smartie zum Speichern der Graphik  lila Smartie zum Laden einer Graphik

BotsInc  wenn Roboterfabrik eigene Graphik verwenden soll:  Graphik an Klasse Bot senden mit orangem Smartie oder Roboter sendet Nachricht passImageToClass  Bot sendet Nachricht lookLikeImage  von da an wird eigene Graphik bei new verwendet

BotsInc  Nachrichten auch in Skripten verwendbar  loadImage (Nutzer wird nach Name gefragt) und loadImage: 'dateiname' (Datei muss vorhanden sein) ‏  saveImage und saveImage: 'dateiname' zum Speichern  clearImage setzt Roboterfabrik auf Anfangszustand zurück  lookLikeBot stellt wieder Roboterbild ein  getImageFromClass lädt Graphik der Roboterfabrik

Programmieren mit BotsInc  grundlegende Algorithmenstrukturen kennenlernen wie Folge, Schleife und Verzweigung  Variablenbegriff  objektorientierte und ereignisorientierte Softwareentwicklung  Implementierung von Algorithmen als Methode von Objekten  Verwendung graphischer Basisroutinen zur Visualisierung

Programmieren mit BotsInc  Folge: sequentielle Ausführung aller Anweisungen im Ballon, Workspace oder Methode  Beispiel: Zeichnen vorgegebener einfacher geometrischer Formen

Programmieren mit BotsInc  Zählschleifen: n timesRepeat: [ Folge von Anweisungen]  Variablen: werden zwischen Balken am Beginn des Skriptes angegeben, beginnen mit Kleinbuchstaben | hoehe breite |  Zuweisung von Werten mit :=

Programmieren mit BotsInc  Parameter können im Quelltext wie jede andere Variable verwendet werden  Unterschied zu Variablen: - Parameter müssen nicht explizit deklariert werden - Parametern kann kein Wert zugewiesen werden - Initialisierung eines Parameters erfolgt beim nur Senden der Nachricht und Ausführen der korrespondierenden Methode

Programmieren mit BotsInc  Erstellen und Kombinieren von Methoden  Parameterübergabe an Methoden, Formalparameter, Aktualparameter quadrat: seitenlänge Methodenquelltext  Formalparameter seitenlänge  Aktualparameter noch nicht bekannt, das Objekt, was bei Programmausführung beim Aufruf der Methode quadrat als Parameter übergeben wird

Programmieren mit BotsInc  Verzweigung: Abfragen von Bedingungen bedingung ifTrue: [Folge von Anweisungen] ifFalse: [Folge von Anweisungen]  Bedingung muss Wahrheitswert ergeben  Verzweigungen können auch nur einen Zweig zur Ausführung enthalten  Verzweigungen können verschachtelt werden

Programmieren mit BotsInc  bedingungsabhängige Schleifen: [bedingung] whileTrue: [Folge von Anweisungen]  Debugger kann jederzeit aus dem Quelltext aufgerufen werden self halt.  Ausgabe von Text in Transcript

BotsInc  im Browser der Klasse Bot kann editiert werden  Erstellen eigener Methoden für Roboter wie Programmierung in Squeak  Hintergrund kann Gitter sein

Programmieren mit BotsInc  Dateien laden  BotsInc starten  Kommandos ausprobieren  Beispiel-Methode unter turning testen  eigenen Robot zeichnen