Natürliches Programmieren

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
Imperative Programmierung -Entwicklungswerkzeuge
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
Daten Anzeigen und Ausdrucken Zu Zeigende Daten (z.B. Studentenplan) Daten in XML müssen geparst und in PDF- Format umgewandelt werden. Dazu iTEXT Bibliothek.
FH-Hof Sockets in Java Richard Göbel. FH-Hof Kommunikation über das Internet - Grundlagen Ein Rechner wird im Internet über die so genannte IP- Adresse.
Java: Grundlagen der Sprache
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
Verzweigung oder bedingte Anweisung Weiter mit PP.
IF-ELSE-IF-Ketten Weiter mit PP..
Konstruktoren.
Assoziationen (Beziehungen) 1 : n. Zu einem Auto gibt es mehrere Fahrer (2) und zu diesen 2 Fahrern gibt es genau dieses Auto.
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Programmieren mit JAVA
Programmieren mit JAVA
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
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 Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
Einführung in C EDV1 - 03C-Einführung.
Abstrakte Klassen DVG
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
Einführung in C EDV1 - 04C-Einführung.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Step by step zum JFrame 1 Zum JFrame Step by step by step by step by step by step by step by step by.
Thema: Fibonacci-Zahlen
Bestimmung des ggT zweier Zahlen
© 2006 MPohlig Grundkurs Informatik mit Java 1 JFrame-Vorlage Step by step by step by step by step by step by step by step by.
Verzweigung.
Vererbung Einfache Vererbung – Erben von abstrakten Klassen – Implementieren eines Interfaces.
© 2003 Pohlig Informatikgrundkurs (Pohlig-Häberle) 1 5.Was ist eine Syntax? – Ein bierseliger Bayer im Himmel 5.1 Syntax des frohlockenden Bayern Alois.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Rekursive Funktionen (Fakultät)
Objektorientiertes Konstruieren
Die Klasse String und ihre Methoden
Unterprogramme in JAVA
CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
Starten der Entwicklungsumgebung (IDE)
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Programmieren - wie einsteigen ?
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Schleifen
Programmiervorkurs WS 2014/15 Instanzmethoden
Programmiervorkurs WS 2014 Referenzdatentypen
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Selection-Sort Insertion-Sort Bubble-Sort.
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
© 2004 Pohlig Informatik Kurse © 2004 Pohlig Informatik Kurse Der Tramp tanzt die Rekursion zünderUntersuchen(…) Basisfall Rückmeldung:
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Mit der Turtle Java Programmieren
Grundkurs Informatik mit Java
Schleifen mit der Turtle
Mit Java die Turtle steuern
Ein Referat von Sabrina Vissel, darleen paul und yannick fuchs
 Präsentation transkript:

Natürliches Programmieren Schülerkolleg Hasso-Plattner-Institut Natürliches Programmieren

Einführung / Motivation Schülerkolleg Hasso-Plattner-Institut Einführung / Motivation

Was stellt ihr euch unter Programmieren vor? Wer von euch hat schon mal programmiert? Was / mit welcher Sprache? Was ist Programmieren überhaupt?

So sieht Programmieren heute aus: vier verschiedene Schlüsselworte class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); } Java: Hello World Java drei Arten von Klammern

So sieht Programmieren heute aus: foreach $f (<*>) { $i{$f} = -s $f }; foreach $k (sort{ $i{$b} <=> $i{$a} } keys %i) { printf "%8d %s\n", $i{$k}, $k } Perl: Listing a directory by size Perl

So sieht Programmieren heute aus: Erlang by_length(Lists) -> qsort(Lists, fun(A,B) -> A < B end). qsort([], _)-> []; qsort([Pivot|Rest], Smaller) -> qsort([X || X <- Rest, Smaller(X,Pivot)], Smaller) ++ [Pivot] ++ qsort([Y || Y <- Rest, not(Smaller(Y, Pivot))], Smaller). Erlang: sort lists according to length

Was könnte natürliches Programmieren sein?

HANDS Human-centered Advances for Novices to Develop Software HANDS

Alice Alice

Greenfoot Greenfoot

Kodu KODU

Google App Inventor Google App Inventor

Natürliches Programmieren mit Scratch Schülerkolleg Hasso-Plattner-Institut Natürliches Programmieren mit Scratch

Schülerkolleg Hasso-Plattner-Institut Demo

Demo PI Erzählung Pong Tron

Ideen für heute Pong Tron Erzählung / Film Pi berechnen Punkte-Einsammeln

Schülerkolleg Hasso-Plattner-Institut Installation

Und los geht‘s goo.gl/6ot8u

Scratch installieren Scratch herunterladen http://info.scratch.mit.edu/de/Scratch_1.4_Download

Scratch installieren Die heruntergeladene Datei entpacken

Scratch installieren Zum Starten auf „Scratch.exe“ doppelklicken (im Ordner WinScratch1.4 > Scratch)

Scratch installieren Sprache einstellen

Schülerkolleg Hasso-Plattner-Institut Erste Schritte

Preproduction mit Scratch | Schülerkolleg | FF 2012

Bewegung

Malen

Geometrische Formen

Lösung: Rechteck, Dreieck, Kreis

Steuerung

Geometrische Formen mit Steuerung

Interaktion: Tastatur und Maus

Ein- und Ausgabe

Vergleiche

Labyrinth

Lösung: Labyrinth

Spielzeit

Rechnen

Variablen

Aussehen

Nachrichten

Schülerkolleg Hasso-Plattner-Institut Ideen / Projekte

Ideen für heute Satz des Pythagoras Bälle zählen

Der große Plan Pong Überblick Software-Entwicklung Selbst ausprobieren mit verteiltem Überblick Pre-Production in der Spiele-Entwicklung Auswahl eines Projektes für die nächsten Wochen Verteilung der Rollen Analyse → Entwurf → Implementierung → Qualitätssicherung Wahl eines Wunschthemas für die nächste Woche Pong - Mario - KnowHow des HPI: Teamwork und Softwareentwicklungsprozesse - Grober ablauf: - Einstieg Softwareentwicklungsprozess Prototypen und pre-Production (Smalltalk) in der Softwareindustrie - Scratch Fokus auf Spieleentwicklung darum Fokus auf pre-production in Spieleindustrie - heute - am Beispiel: (verteiltes) Pong - für nächsten Wochen größeres Projekt - Vertiefungsbereich auswählen Preproduction mit Scratch | Schülerkolleg | FF 2012

Ihr habt die Wahl Weitere Themen Teamrollen Besonderheiten Genres Software Entwicklungs- prozess Spiele Entwicklungs-prozess Preproduction mit Scratch | Schülerkolleg | FF 2012

Ideen für heute Pong Tron Space Invaders Brick Breaker Tetris Mine Sweeper RPG Adventure Racing Game Pacman Asteroids Super Mario Taschen-rechner Billiard Snake Pi-Berechner Preproduction mit Scratch | Schülerkolleg | FF 2012

Plan für Heute Ca. 30min beenden der Projekte Präsentation der Projekte Zusammenfassung Feedback

Präsentation der Projekte Euer Program vorstellen Was geht alles? Welche Möglichkeiten von Panther/Scratch habt hier verwendet? Was ist euch leicht/schwer gefallen? Worauf seit ihr besonders stolz?

Natürliches Programmieren mit Scratch und Panther Zusammenfassung Natürliches Programmieren mit Scratch und Panther Bewegung Malen Steuerung Tastatur und Maus Variablen Rechnen Nachrichten Vergleiche Projekt Space Invaders Brick Breaker Tetris Mine Sweeper RPG Pacman Asteroids …

Hasso-Plattner-Institut Schülerkolleg Hasso-Plattner-Institut Hasso-Plattner-Institut

Preproduction mit Scratch | Schülerkolleg | FF 2012

Schwerpunkte: Software Engineering Team Work Preproduction mit Scratch | Schülerkolleg | FF 2012

Softwareentwicklungsprozess Schülerkolleg Hasso-Plattner-Institut Softwareentwicklungsprozess

Das Wasserfallmodell „Big Design Up Front“ Phasen Anforderungsanalyse Entwurf Realisierung Testen Wartung http://en.wikipedia.org/wiki/File:Waterfall_model_(1).svg Preproduction mit Scratch | Schülerkolleg | FF 2012

Extreme programming Kurze Zyklen Feedback Techniken Pair Programming Unit Test Continuous Integration Preproduction mit Scratch | Schülerkolleg | FF 2012 http://en.wikipedia.org/wiki/File:XP-feedback.gif

Rollen Kunde: legt die Anforderungen fest Management: Zuteilung von Ressourcen, Verträge mit Kunden Projektleiter: Vertreter des Managements, Projektplanung Gruppenleiter: Leiter der Entwickler, hohes technisches Wissen Analytiker: Anforderungsanalyse und -modell Integrator: Schnittstellen z. anderen Systemen, Inbetriebnahme Programmierer: Implementiert das Projekt Tester: Erstellt Testpläne, testet fertig gestellte Produkte Qualitätssicherer: Überprüfung der Qualität des Prozesses Preproduction mit Scratch | Schülerkolleg | FF 2012

Anforderungsanalyse Preproduction mit Scratch | Schülerkolleg | FF 2012

Entwurf Preproduction mit Scratch | Schülerkolleg | FF 2012

Entwurf Preproduction mit Scratch | Schülerkolleg | FF 2012

Softwareentwicklungsprozess am Beispiel von Schülerkolleg Hasso-Plattner-Institut Softwareentwicklungsprozess am Beispiel von Pong

Projekt: Pong Pong Pong Über Netzwerk Preproduction mit Scratch | Schülerkolleg | FF 2012

Projekt: Pong Pong Anforderungen Jeder Spieler sieht das Spielfeld auf seinem Rechner Jeder Spieler kann nur sein „Paddle“ steuern Die Steuerkommandos werden per Netzwerk an einen Server übertragen Die Position des Balls und des gegnerischen „Paddle“ wird vom Server abgefragt Der Punktestand wird angezeigt Preproduction mit Scratch | Schülerkolleg | FF 2012

Projekt: Pong Pong Grobentwurf Was muss mit wem kommuniziert werden Welche Objekte brauche ich Welche Ein-/Ausgaben müssen realisiert werden Preproduction mit Scratch | Schülerkolleg | FF 2012

Projekt: Pong Pong Feinentwurf z.B.: Namen der auszutauschenden Nachrichten und Variablen Preproduction mit Scratch | Schülerkolleg | FF 2012

Schülerkolleg Hasso-Plattner-Institut Preproduction

Preproduction mit Scratch | Schülerkolleg | FF 2012

Preproduction mit Scratch | Schülerkolleg | FF 2012

Schülerkolleg Hasso-Plattner-Institut Spieleentwicklung

Rollen bei der Spieleentwicklung Artists Concept Art Sound Designer 3D Modelle / Texturen Game-Design Story-Telling Entwickler Engine / Plattform Multiplayer / MMO Künstliche Intelligenz Tester Community Lokalisierung Sprache Text Geschäftsmodell Distribution Micro-Transactions In-Game Advertising Rechtsabteilung Interface Entwicklung Quality Assurance Preproduction mit Scratch | Schülerkolleg | FF 2012

Besonderheiten der Genres Preproduction mit Scratch | Schülerkolleg | FF 2012

Schülerkolleg Hasso-Plattner-Institut Panther

Der Panther: Das Kätzchen wird erwachsen Erweitertes Scratch mit neuen Fähigkeiten Netzwerkkommunikation Klonen von Objekten Viele neue nützliche Blöcke (Erstellen eigener Blöcke) http://wiki.scratch.mit.edu/wiki/Panther_(Scratch_Modification) http://pantherprogramming.weebly.com/

Demo: Mario

Installation Herunterladen Entpacken Sprache auf Deutsch umstellen http://goo.gl/tJQRa Entpacken Genau wie beim letzten Mal  Sprache auf Deutsch umstellen Geht leider nicht 

Verbindungsaufbau Preproduction mit Scratch | Schülerkolleg | FF 2012

Demo: Chat Preproduction mit Scratch | Schülerkolleg | FF 2012

Und los geht‘s! Pong Anforderungen Jeder Spieler sieht das Spielfeld auf seinem Rechner Jeder Spieler kann nur sein „Paddle“ steuern Die Steuerkommandos werden per Netzwerk an einen Server übertragen Die Position des Balls und des gegnerischen „Paddle“ wird vom Server abgefragt Der Punktestand wird angezeigt Preproduction mit Scratch | Schülerkolleg | FF 2012