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