Von der Aufgabe zum Code

Ähnliche Dokumente
API und Kommentare. Javakurs 2014, 4. Vorlesung. Georg Hieronimus. basierend auf der Vorlage von Theresa Enghardt, Mario Bodemann und Sebastian Dyroff

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Programmierkurs Java

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Standardkonstrukte in Java

pue13 January 28, 2017

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Übung Grundlagen der Programmierung WS 2008/09. Übung 04: Methoden. Abgabetermin: Prosabeschreibung Java-Programm.

EidP. Blocktutorium SS 2014

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate

5. Tutorium zu Programmieren

Programmieren I + II Regeln der Code-Formatierung

Musterlösung Stand: 5. Februar 2009

JAVA - Methoden

Programmieren in Java

Eine kleine Befehlssammlung für Java Teil1

Einführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

System.out.println("TEXT");

Institut für Programmierung und Reaktive Systeme 5. Dezember Programmieren I. 5. Übungsblatt

Institut für Programmierung und Reaktive Systeme 20. November Programmieren I. 4. Übungsblatt

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Bitte beachten Sie: Es gibt mehr als einen Lösungsweg. Ihre Lösung kann auch richtig sein, wenn sie nicht mit der hier gezeigten Lösung übereinstimmt.

Themen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen

Programmieren I + II Regeln der Code-Formatierung

Distributed Computing Group

JAVA für Nichtinformatiker - Probeklausur -

Primitive Datentypen

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Vorkurs Informatik WiSe 17/18

Methoden und Wrapperklassen

Probeklausur: Programmierung WS04/05

Übungen zu Programmieren - Code-Formatierung -

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden

Grundlagen der Programmierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Javakurs für Anfänger

Ausgabe:

Vorkurs Informatik WiSe 17/18

! 1. Erste Schritte! 2. Einfache Datentypen! 3. Anweisungen und Kontrollstrukturen! 4. Verifikation! 5. Reihungen (Arrays) II.1.4. Verifikation - 1 -

JAVA - Methoden - Rekursion

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Programmieren in Java

Objektorientierte Programmierung OOP Programmieren mit Java

Programmieren, Wintersemester 13/14 Übungsleiter: Sebastian Ebers Aufgabenblatt 3

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

Java-Schulung Grundlagen

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. Juni 2004

Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration

3. Grundanweisungen in Java

Wie entwerfe ich ein Programm?

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Schöner Programmieren

Java - Programmierung - Prozedurale Programmierung 1

public class SternchenRechteckGefuellt {

Software Entwicklung & Programmierung - 0. Übungsblatt

Objektorientierte Programmierung

Informatik 1 - Translation Studies in Information Technology. Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 16/17

Einstieg in die Informatik mit Java

Javakurs für Anfänger

Grundlagen der Programmierung

Informatik B von Adrian Neumann

Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?

Informatik I - Einstiegskurs

Die Klasse java.lang.object. Thorsten Treffer

Vorkurs Informatik WiSe 16/17

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

Java-Vorkurs Wintersemester 15/16

Strings. 3 Stringvergleiche Realisieren Sie bitte folgendes Programm: AnPr

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem

Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO

Algorithmen und Datenstrukturen

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2016/17. Vorbereitende Aufgaben

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15

Äußere Form ArrayList Vererbung API. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann. Tilman Lüttje, Jean Wiele

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

AuD-Tafelübung T-B5b

3. Anweisungen und Kontrollstrukturen

Test zu Grundlagen der Programmierung Leitung: Susanne Guth/Michael Hahsler. 28. Februar 2003

Welche Informatik-Kenntnisse bringen Sie mit?

Programmieren 2 Java Überblick

Objektorientierte Programmierung Studiengang Medieninformatik

Repetitorium Informatik (Java)

Programmiertechnik Kontrollstrukturen

Innere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.

Transkript:

Javakurs 2010 Freitagsrunde - TU Berlin 24. März 2010

Inhalt Warum ist cooler schlechter 1 wollen wir hin? 2 3 Schreiben eines 4 Überblick in meinem 5 Warum ist cooler schlechter 6 2 / 33

Was ihr bisher können solltet Warum ist cooler schlechter Was ihr bisher können solltet Umgang mit Variablen Ausgabe Fallunterscheidungen Schleifen Arrays Methoden API nutzen alles eher Faktenwissen 3 / 33

Was nun? Warum ist cooler schlechter Alles gelernte zusammenführen Im Detail Wie beginnt man mit einer Aufgabe? Wie teilt man sie geschickt auf? Wie löst man die einzelnen Teile Wie setze ich das Ganze in Java um? 4 / 33

Beispielaufgabenstellung Chef: Ich brauche ein Programm um Hangman zu spielen. Warum ist cooler schlechter 5 / 33

Eure Vorstellung: Warum ist cooler schlechter / (_) \ / / \ 6 / 33

Eure Vorstellung: Warum ist cooler schlechter ++-+++------+-- // // _ _ +/ /o 0\ ++ ( ( ) + \_-_/ )----O : O----( : _ ++ /++\ _ _ // \\ \ / \ / // \\ --++--++--++------------------ 7 / 33

Eure Vorstellung: Warum ist cooler schlechter... )) / / / / /.-. / / _ \ /, (\\ _..- --. /Y.. Y\ // \\ //. \\ ) ( / \ """""""""" _ - - """ " """""""\ \ " " \ \ : : \ \ : :.... 8 / 33

Schritt 1 - Aufgabe verstehen Warum ist cooler schlechter Was sind die Regeln von Hangman? Programm wählt zufällig ein Wort Spieler gibt Buchstaben ein Falscher Buchstabe führt zu einem Strich Richtiger Buchstabe wird eingetragen Spiel wird beendet wenn Wort erraten oder Hangman komplett 9 / 33

Schritt 2 - Ablauf nachvollziehen Warum ist cooler schlechter Wie? Am besten grafisch (Stift und Papier) Sorgt für mehr Durchblick Ordnet den Ablauf des Programms Definiert Teilbereiche des Spieles Nützlich für Gruppenarbeiten Teile und Hersche Prinzip 10 / 33

Warum ist cooler schlechter 1 1 http://www.flickr.com/photos/lepke/276252512/ 11 / 33

Skizze Menü neue Runde zufälliges Wort Bildschirmausgabe Warum ist cooler schlechter ja nein falsch Galgenmännchen wächst Buchstabe wählen richtig Wort aktualisieren Ende? 12 / 33

Schritt 3 - Skizze verfeinern Warum ist cooler schlechter Skizzen mit Ablauf erzeugen bisher schlecht in Java umzusetzen linearerer Ablauf kann erzeugt werden Teilprobleme können definiert werden 13 / 33

Warum ist cooler schlechter 14 / 33

Schritt 4 - Teilen in Methoden Warum ist cooler schlechter Skizze in Methode umwandeln Jedes Teilproblem ist eine Methode im Programm sinnvolle Namen geben! Was braucht die Methode? Parameter? Rückgabewert? 15 / 33

Schritt 4 - Teilen in Methoden Warum ist cooler schlechter Methoden void menue () boolean isgamewanted() String chooseword () char askforchar () boolean ischarinword (char character, String word) void updategame (char guessedcharacter) void displaygame () boolean isgameover() 16 / 33

Schritt 5 - Wiederholen Warum ist cooler schlechter Kontrollieren Inhalt der Methoden sofort ersichtlich? Ja, weiter mit nächster Methode Nein, neue Skizze Bei offensichtlichen Methoden Aufschreiben der Eingabe- und Rückgabeparameter 17 / 33

Einblick Warum ist cooler schlechter Viele Methoden,aber wie in Java umsetzen? Empfehlung 1: TopDown Verfahren Beginn bei void main() Empfehlung 2: mit den Methoden die man am besten Testen kann Beginn mit Ausgabefunktionen Kommentare für noch nicht existierende Methoden einfügen 18 / 33

Beispielcode Warum ist cooler schlechter 1 public static void main(string[] args) { 2 // Menueschleife 3 // neues Spiel? 4 // wenn nein, dann Ende 5 // Wort waehlen 6 // Spielschleife 7 // Spielstand ausgeben 8 // Buchstaben erfragen 9 // Eingabe bewerten 10 // Spielstand aktualisieren 11 // Spielende pruefen 12 // ende 13 // ende 14 } 19 / 33

Überblick in meinem Warum ist cooler schlechter Überblick durch: Nun pro Kommentar eine neue Methode Variablen, Kommentare sowie Ausgaben einfügen Sobald neue Methode fertig: Testdurchlauf 20 / 33

Testen Testen So früh wie möglich So oft wie möglich So gründlich wie möglich Warum ist cooler schlechter 21 / 33

Testen Dumme Methoden Was sind dumme Methoden? Wir schreiben die Methoden mit Ein - und Ausgabeparametern auf Jedoch erstmal ohne Funktion Platzhalter Warum ist cooler schlechter 22 / 33

Testen Dumme Methoden Warum ist cooler schlechter 1 // TODO: Befuell mich! 2 public char askforchar(){ 3 // liefere festen Wert 4 return a ; 5 } 1 // TODO: Befuell mich! 2 public String chooseword() { 3 // liefere festes Wort 4 return "Javakurs"; 5 } 23 / 33

Testen println debug Was ist println debug? Im Normalfall wird man beim Testen Fehler finden Woran liegt es? Einfach Zwischenergebnisse anzeigen lassen Warum ist cooler schlechter 24 / 33

Beispiel println debug Warum ist cooler schlechter 1 // starte ein Spiel 2 public double add (double a, double b){ 3 // Parameter okay? 4 System.out.println(a + ", " + b); 5 double result = a+b; 6 // Ergebnis okay? 7 System.out.println( result ); 8 return result; 9 } 25 / 33

Beispiel schlechter 1 int i=4; Warum ist cooler schlechter 1 System.out.println( (i==4)? "i ist 4" : "i ist nicht 4"); 1 if (i==4){ 2 System.out.println("i ist 4"); 3 } else { 4 System.out.println("i ist nicht 4"); 5 } 26 / 33

Wie sollte der aussehen? Folgende Sachen solltet Ihr beachten: Formatierungen Einrückungen Kommentierung Sprechende Namen Warum ist cooler schlechter 27 / 33

Einrückung Warum ist cooler schlechter Erkennen von Teilbereichen wichtig bei: Bedingungen 1 if( a == b ) { Schleifen Klassen Methoden 2 // dann Zweig 3 } else { 4 // sonst Zweig 5 } 1 while( baktiv ) { 2 // 3 // wiederhole... 4 // 5 } 28 / 33

Sprechende Namen Was sind sprechende Namen? Was steht in der Variablen? Was tut die Methode? Kann ich aus dem Namen rauslesen, was sie tut? Warum ist cooler schlechter 29 / 33

Schönheit kostet nichts Warum ist cooler schlechter Schönheit von Wichtig: muss laufen Optimierung macht der Kompiler meist besser als ihr Erst wenn viel zu langsam ist müsst ihr gucken Aufgabenstellung richtig gelesen? zu viele Nice to haves? (3D-Galgen?) 30 / 33

Ausblick Warum ist cooler schlechter Was habt ihr gelernt? Wie zerlege ich eine Aufgabe in Teilprobleme Wie teile ich die Teilprobleme Wie formuliere ich ein Teilproblem in Java Was sollte ich beim Schreiben von beachten? 31 / 33

Organisatorisches jetzt: Feedback Abgabe dann: Übung im TEL 106/206 heute wieder ein zweiter Vortrag!!! Warum ist cooler schlechter 32 / 33

Fragen Fragen? Warum ist cooler schlechter 33 / 33