Methods of Development

Vergelijkbare documenten
Thinking of Development

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Capita Selecta Design Patterns voor administratieve applicaties

1750,00 excl. BTW. analytisch denkvermogen, empathie, assertief, communicatief, aanleg voor formalisme,...

Object Oriented Programming

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

De Vergeten Abstracties

Ontwerp van Informatiesystemen

Zelftest OOAD/UML. Document: N0767Test.fm 30/08/2010. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

Aan het eind van deze lesbrief wordt uitgelegd wat het nut van OOP is en vind je een aantal oefenopdrachten.

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

voorbeeldexamen Object Oriëntatie Foundation (OOF.NL) editie juli 2010 inhoud inleiding 3 voorbeeldexamen 4 antwoordindicatie 11 evaluatie 22

Inleiding Programmeren 2

Module 3: Scratch programmeren: is het logisch of is het niet logisch?

Modeleren. Modelleren. Together UML. Waarvan maken we een model? overzicht les 14 t/m 18. ControlCenter 6.2

Planning. 1. Mini College. 2. Introductiecursus Imperatief Programmeren. 3. Crash and Compile (vanaf 17:00 uur)

Object Oriëntatie Foundation (OOF.NL)

OBJECT SPAGHETTI : PATTERNS BIEDEN UITKOMST? Wat is het probleem nou eigenlijk? public class CoffeeDrinker { private CoffeeProducer mycoffeeproducer;

Programmeren in Java 3

Leren programmeren in C# Deel 4 - Objectoriëntatie

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.

Programmeren in Java 2

Vorig jaar in 5v cluster, tot en met OO hoofdstukken, geen problemen. Nu in mengcluster, tot OO hoofdstukken, wel problemen bij 4h leerlingen

Object-oriented programmeren met BlueJ en Visual Studio

Inleiding Programmeren 2

Modulewijzer Tirdat01

Handleiding. MED PLUS software

bug fixen F. Vonk versie

Kleine cursus PHP5. Auteur: Raymond Moesker

Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn.

Scala. Korte introductie. Sylvia Stuurman

Unit testen van EJB's. Koert Zeilstra - iprofs

IMP Uitwerking week 13

ALGORITME objectgeoriënteerd programmeren

UML is een visuele taal om processen, software en systemen te kunnen modeleren.

Programmeermethoden NA

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, uur

Modulewijzer tirprog02/infprg01, programmeren in Java 2

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak);

Wat gaan we maken? Scratch Invaders!

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

Mijn eerste ADO.NET applicatie

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49

Design patterns.

UNIT 4 GAMES DROOMGAMES EERSTE GAMES SCORE EXTENSIES INTERACTIES DEBUG IT!

1 De basis. Documenten om te bewaren. Extra leesvoer: Start Here Handleiding Gamemaker. 2 Geschiedenis van Games en Gamegenres

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts

Python (gem=1,86) Java (gem=1,57) Enquete cursus informatica 1e bachelors oefeningen beter aansluiten bij project?

Open SQL Server Management Studio en log in als Administator. Je ziet dan wat je in figuur 2.1 ziet.

Unified Modeling Language

Thinking of development

Zelf een spel maken met GameMaker Les 3: Vijanden en levens

JavaScript. 0 - Wat is JavaScript? JavaScript toevoegen

HvA Instituut voor Interactieve Media ActionScript 3.0

Inleiding C++ Coding Conventions

Verantwoording van de te bezoeken les

Inleiding Software Engineering! Unit Testing, Contracten, Debugger! 13 Februari 2014!

Module 4 Hoofdstuk 1. Programmeertalen

De lesgever laat een voorbeeldspel zien en vertelt dat de kinderen dit gaan maken.

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Master Class Java Accelerated

SMART-Microsoft Software Factory

EXACT ONLINE INTEGRATION TOOL VERSIE 1.0.9

inhoudsopgave Dankbetuiging 13 Inleiding 15

Master Class Java Accelerated

Programmeren in C# Interfaces. Hoofdstuk 23

Stacks and queues. Hoofdstuk 6

Opdrachtformulering (pagina 3 van 7)

Vakmanschap in Java Software Development

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Workshop FLL. Leer robots programmeren. Marieke Peelen Lennart de Graaf Daryo Verouden -

Abstracte klassen & Interfaces

Knowledgeable Referenceable Personable Accountable Scalable

Vakmanschap in Java Software Development

Vakmanschap in Java Software Development

Noties Informatica. In java fungeren objecten als een model voor de elementen waarin een probleem kan worden opgesplitst

Microsoft Excel. It s all about Excel - VBA

Opdracht 7a. Applicatiebouw 2014/2015

Design patterns Startbijeenkomst

VI. Klassen en objecten

Peergrade Docenthandleiding.

Domotechnology BVBA Dikberd 14 unit 1a 2200 HERENTALS België. Handleiding SQUEEZEBOX

Tentamen in2705 Software Engineering

Object Oriented Ontwerp. Yannick Reekmans

Deel II: Modelleren en software ontwikkeling. Hoofdstuk 7 Software ontwikkeling - Overzicht. Naïeve benadering

Programmeren met Scratch

Design principes.

Principles of Object Ooriented design (in Ditch)

Tentamen Object Georiënteerd Programmeren TI oktober 2014, Afdeling SCT, Faculteit EWI, TU Delft

L E S B O E K J E. J. van Weert Wt (at) sgdb.nl Stedelijk Gymnasium s-hertogenbosch Wt /

Een gelinkte lijst in C#

Module 2: Wat is Scratch?

3.1 Opsomming data type

Snelgids voor het bouwen van een IT- RDBMS in EXCEL.

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 7 november 2014, uur

Inhoud. Blz. 3. Blz. 4. Blz. 5. Blz. 7. Blz. 8. Blz. 9. Blz. 10. Opdracht 1 - Brainstormen. Opdracht 2 - Je eigen controller. informatie - makey makey

LES 4 & 5 GAMEMAKER4YOU

Gevorderde EV3 PROGRAMMEER LES

Overerving & Polymorfisme

Transcriptie:

Methods of Development College 4 OO & Tentamenstof Arjan Scherpenisse arjan.scherpenisse@kmt.hku.nl @acscherp

Deze week Object-oriëntatie Herhaling vorige week Compositie De Opdracht Tentamenstof overview Q&A

Hello, world!! Child.naam = Arris Thedo Scherpenisse Child.roepnaam = Arris

Objecten objecten objecten...

De Interface van een class Class TROOPER Attributen: - naam - prijs - positie - health Methoden: + attack() + move() + retreat() + guard()

Instantiëren maarr..! position = (10, 10) health = 100 position = (190, 80) health = 30 position = (10, 200) health = 100

Class vs. Object??? Een class is een definitie Er is maar 1 definitie Een object is een instantie van een class Er kunnen meerdere instanties zijn (meerdere dezelfde units, allemaal met verschillende health, positie e.d.)

Instantiëren maarrrr... SET unitcount = 0 REPEAT new Trooper() unitcount = unitcount + 1 UNTIL unitcount = 100

Instantiëren maarrrr... SET unitcount = 0 SET units = [ ] REPEAT mijnunit = new Trooper() add mijnunit to units unitcount = unitcount + 1 UNTIL unitcount = 100 (Als je later iets met de troopers wilt doen, moet je ze bewaren in een aray..)

Inheritance

Overerving (inheritance) Unit Motorized Pedestrian Tank Jeep Amfibie Bazooka dude Shotgun dude

Ontwerp van classes Stop niet alles in 1 class Probeer logische componenten te vinden Zijn er dingen te generaliseren? Zijn er dingen te herbruiken? Compositie Classes kunnen andere classes als onderdelen hebben

Compositie CLASS character ATTRIBUTEN: - naam - level - inventory - controller Weirdo1990 7 [dagger, blue gem, magic mushroom]

CLASS inventoryitem ATTRIBUTEN: - name - price METHODEN: + sell() + use() CLASS dagger EXTENDS inventoryitem ATTRIBUTEN: - sharpness CLASS magicmushroom EXTENDS inventoryitem ATTRIBUTEN: - strength - poisonous yes/no

Compositie Dit betekent inheritance Dit betekent compositie

Tussenstand opdracht 92 mensen hebben een Scratch game ingeleverd! 6 mensen hebben pseudocode gestuurd 4 mensen heeft class diagrams gestuurd Hmm...

Coen van Camp

Damir Kalbic

Kevin Nederkoorn

Kasper Smits Overzicht scratchgames

Max Plooi

Download alle 92! *klik* http://usat1112.hku.nl/wp-content/uploads/2011/11/scratch_games.zip

Ontwerp van software Don't Repeat Yourself (DRY) Zijn er dingen te herbruiken? Denk in classes, overerving, functies Keep It Simple, Stupid (KISS) Maak het in eerste instantie niet moeilijker dan De 80/20 regel nodig, dat kan later altijd nog De laatste 20% kost 80% van de tijd...

Design patterns (heel snel) Standaard manieren om dingen te doen Singleton Factory Als je maar 1 instantienodig hebt van een class Het uitbesteden van het instantieren van objecten Listener/observer Loskoppelen van logica

Komende colleges College 1: waar hebben we het over College 2: imperatief programmeren College 3: object-orientatie College 4: vervolg OO, design patterns, Q&A Tentamen 8 december 10:00 11:30

Tentamenstof (1) De 6 best practices uit college 1

Tentamenstof (2) Pseudocode snappen EN kunnen schrijven Pseudocode begrippen If/then/else Loops Variabelen Functies

Tentamenstof (3) Object-georienteerd kunnen denken Begrippen: Class vs. object Interface vs. implementatie Encapsulatie Overerving (inheritance) Compositie

Beoordeling Tentamen Opdracht 60% multiple choice 40% open vraag Opdracht 1 ingeleverd Opdracht 2 voldoende Beoordeling = (opdracht + tentamen) / 2

Oefenopdracht Bedenk een goede tentamenvraag! Multiple choice Open vraag 1 goed antwoord, 2 foute antwoorden met voorbeelduitwerking 2 van de inzendingen komen terug in het *echte* tentamen!

Zijn Er Nog Vragen? Handige aantekeningen PDF binnenkort online! Hou blog in de gaten.

Leer-ze en tot volgende week!

Methods of Development College 4 OO & Tentamenstof Arjan Scherpenisse arjan.scherpenisse@kmt.hku.nl @acscherp

Deze week Object-oriëntatie Herhaling vorige week Compositie De Opdracht Tentamenstof overview Q&A

Hello, world!! Child.naam = Arris Thedo Scherpenisse Child.roepnaam = Arris

Objecten objecten objecten...

De Interface van een class Class TROOPER Attributen: - naam - prijs - positie - health Methoden: + attack() + move() + retreat() + guard() Objecten hebben een publieke interface. Dat is de manier waarop je het object kan gebruiken. Met zijn interface geeft het object aan wat het kan en hoe het gebruikt dient te worden. In tegenstelling tot de implementatie, weet je bij de interface niet hoe iets is geprogrammeerd. Je gaat er gewoon vanuit dat het werkt zoals er wordt gezegd dat het werkt. De implementatie is de daadwerkelijke code die achter elke methode van een class verborgen zit. Het woord interface gaat zeker te weten terugkomen in een tentamenvraag!

Instantiëren maarr..! position = (10, 10) health = 100 position = (190, 80) health = 30 position = (10, 200) health = 100

Class vs. Object??? Een class is een definitie Er is maar 1 definitie Een object is een instantie van een class Er kunnen meerdere instanties zijn (meerdere dezelfde units, allemaal met verschillende health, positie e.d.) Als je in een RTS game een overzicht hebt van je units die je kunt laten bouwen, dan kijk je eigenlijk naar een lijstje van classes. Als je een unit laat bouwen in de game, dan wordt hij geinstantieerd tot een object, met zijn eigen naam, health, positie, e.d. Je programmeert de class maar uiteindelijk leven in je programma de instanties van die class, de objecten.

Instantiëren maarrrr... SET unitcount = 0 REPEAT new Trooper() unitcount = unitcount + 1 UNTIL unitcount = 100

Instantiëren maarrrr... SET unitcount = 0 SET units = [ ] REPEAT mijnunit = new Trooper() add mijnunit to units unitcount = unitcount + 1 UNTIL unitcount = 100 (Als je later iets met de troopers wilt doen, moet je ze bewaren in een aray..)

Inheritance

Overerving (inheritance) Unit Motorized Pedestrian Tank Jeep Amfibie Bazooka dude Shotgun dude Classes kunnen eigenschappen van elkaar overnemen. Ze delen eigenschappen. Alle units in een RTS hebben bv. Een positie, maar ze kunnen niet allemaal schieten.

Ontwerp van classes Stop niet alles in 1 class Probeer logische componenten te vinden Zijn er dingen te generaliseren? Zijn er dingen te herbruiken? Compositie Classes kunnen andere classes als onderdelen hebben

Compositie CLASS character ATTRIBUTEN: - naam - level - inventory - controller Weirdo1990 7 [dagger, blue gem, magic mushroom]

CLASS inventoryitem ATTRIBUTEN: - name - price METHODEN: + sell() + use() CLASS dagger EXTENDS inventoryitem ATTRIBUTEN: - sharpness CLASS magicmushroom EXTENDS inventoryitem ATTRIBUTEN: - strength - poisonous yes/no Je ziet dat inventoryitem een methode heeft use. Maar wat die methode precies doet, is afhankelijk van de subclass!! Het is dus 1 methode met meerdere implementaties, eentje per subclass. (Dit fenomeen heet polymorphisme.) Maar de methode sell is voor beide subclasses identiek. Of je nu een dagger of een mushroom wilt verpatsen, dat gaat op dezelfde manier. (je raakt het item kwijt en krigjt er geld voor terug)

Compositie Dit betekent inheritance Dit betekent compositie De class inventoryitem is abstract. Je instantieert nooit direct een inventoryitem, maar

Games zijn vaak hele ingewikkelde dingen met veel classes. Deze classes hebben allemaal een relatie tot elkaar.

Google maar eens op class diagram game om meer voorbeelden te zien.

Tussenstand opdracht 92 mensen hebben een Scratch game ingeleverd! 6 mensen hebben pseudocode gestuurd 4 mensen heeft class diagrams gestuurd Hmm...

Coen van Camp

Damir Kalbic

Kevin Nederkoorn

Kasper Smits Overzicht scratchgames

Max Plooi

Download alle 92! *klik* http://usat1112.hku.nl/wp-content/uploads/2011/11/scratch_games.zip

Ontwerp van software Don't Repeat Yourself (DRY) Zijn er dingen te herbruiken? Denk in classes, overerving, functies Keep It Simple, Stupid (KISS) Maak het in eerste instantie niet moeilijker dan De 80/20 regel nodig, dat kan later altijd nog De laatste 20% kost 80% van de tijd...

Design patterns (heel snel) Standaard manieren om dingen te doen Singleton Factory Als je maar 1 instantienodig hebt van een class Het uitbesteden van het instantieren van objecten Listener/observer Loskoppelen van logica

Komende colleges College 1: waar hebben we het over College 2: imperatief programmeren College 3: object-orientatie College 4: vervolg OO, design patterns, Q&A Tentamen 8 december 10:00 11:30

Tentamenstof (1) De 6 best practices uit college 1

Tentamenstof (2) Pseudocode snappen EN kunnen schrijven Pseudocode begrippen If/then/else Loops Variabelen Functies

Tentamenstof (3) Object-georienteerd kunnen denken Begrippen: Class vs. object Interface vs. implementatie Encapsulatie Overerving (inheritance) Compositie

Beoordeling Tentamen Opdracht 60% multiple choice 40% open vraag Opdracht 1 ingeleverd Opdracht 2 voldoende Beoordeling = (opdracht + tentamen) / 2

Oefenopdracht Bedenk een goede tentamenvraag! Multiple choice Open vraag 1 goed antwoord, 2 foute antwoorden met voorbeelduitwerking 2 van de inzendingen komen terug in het *echte* tentamen!

Zijn Er Nog Vragen? Handige aantekeningen PDF binnenkort online! Hou blog in de gaten.

Leer-ze en tot volgende week!