You are on page 1of 27

Programmeerproject 1

Space Invaders
Titularis
Prof. Dr. Coen De Roover
Assistenten
Thierry Renaux
Christophe De Troyer
Contact
spaceinvaders@soft.vub.ac.be

Christophe De Troyer
cdetroye@vub.ac.be

spaceinvaders@soft.vub.ac.be

Thierry Renaux
trenaux@vub.ac.be

Doelstelling

Programmeren in Scheme

Ontwerpen van en rapporteren


over een groter stukje software

Correct toepassen van


aangeleerde technieken
(bv. ADTs)

Softwareontwikkeling

Softwareontwikkeling
Specificatie

Opgave

Ontwerp
Implementatie
Rapportering
Mondelinge
vaardigheden

Voorstudie

Eindverslag

Verdediging

Aandachtspunten

Ontwerp
Documentatie
Rapportering
Correct gebruik van ADTs

Maar ook:
Programmeerstijl: Leesbare code, gedocumenteerd,
herbruikbaar, uitbreidbaar, enz.
Keuzes van datastructuren en algoritmen

opdracht algemeen

opdracht specifiek

Fasen
Fase 1 (20%)
Basisfunctionaliteit
Fase 2 (40%)
Werkbaar spel
Fase 3 (40%)
Volledig spel

Fase 1: Functionele vereisten

Bewegende raket

Kogel lanceren

Raket kan 1 kogel schieten per keer

Vloot van monsters

Links en rechts op bodem van het spelscherm

Een statische vloot van monsters

Monstertjes doodschieten

Een monstertje dat geraakt is verdwijnt van het scherm

Fase 2: Functionele vereisten

Vloot beweegt in S-vorm naar beneden

Raket kan meerdere kogels na elkaar schieten


Titelscherm

Game-over als de vloot de bodem bereikt

Bij de start van een spel


Na een game-over keer je hier naar terug

Verwerken van feedback op fase 1

Fase 3: Functionele vereisten

Power-ups

Levels
Menu

Raket kan speciale bolletjes opnemen die de spelregels


tijdelijk veranderen

Scorebord

Verwerken van feedback op fase 2

Opgelet!
Volg de opdracht nauwgezet!

Planning
Voorstudie*

Implementatie

Verslag

Verdediging

*Alleen voor fase 1 en 2

Ontwerpen

Programmeren en
documenteren

Rapporteren

Demonstreren

Agenda
Projectvoorstelling

week 6

VIP Wpo

week 7 (vrijdag)

Voorstudie fase 1

week 10 (zondag)

WPO

week 11

Code + eindverslag fase 1

week 22 (maandag)

Projectverdediging

week 22

Voorstudie fase 2

week 24 (maandag)

Code + eindverslag fase 2

week 30 (zondag)

Projectverdediging

week 31

Code + eindverslag fase 3

week 35

Projectverdediging

week 36

Voorstudie
= uitgeschreven rapport (max 5 paginas)
Leg je onderwerp vast

Denk nog niet in termen van hoe, maar in termen van wat:

Welke functionaliteit moet je programma bieden?


Welke ADTs moeten hiervoor ontworpen en gemplementeerd
worden?
Welk operaties moet elk ADT ondersteunen?
Welke data moet het encapsuleren?

Teken een diagram van de afhankelijkheden


Maak een planning voor jezelf

Verzorg je documenten!

Implementatie

Start zodra je voorstudie klaar is

Werk regelmatig en gebruik je tijdsschema

Werk incrementeel

Programmeer en test kleine ADTs

Vervolgens kleinere correcte eenheden combineren

Baseer je op afhankelijkheidsdiagram om prioriteiten te stellen

Documenteer je broncode

Hanteer een duidelijke en consistente naamgeving voor


variabelen en procedures

Denk aan aanpasbaarheid, uitbreidbaarheid naar volgende


fases toe

Tips!

Backups, backups, backups! Verwijzen naar documenten

Vermeld bronnen van code!

Stackoverflow, fora,..

Kopieer geen code van vrienden en/of collegas!

Git, SVN, USB-stick, Dropbox,

Bezoek bij de decaan = 0 op het vak, uitsluiting van de zittijd,..

Praat met mensen. Bv., collegas, assistenten,..

Kwaliteit van code

Verslag

Uitgeschreven rapport

Maximaal 10 paginas exclusief broncode

Geef volledige stand van zaken:

Alle functionaliteit gerealiseerd:


Welke uitbreidingen zijn mogelijk?
Heb je extra functionaliteit voorzien?
Anders:
Wat moet er concreet veranderen om de
doelstellingen te realiseren

Verslag

Geef uitleg over je aanpak (onderdelen, ADTs, algoritmes,..)

Refereer naar bronnen van oplossingen, schets


alternatieven, evalueer je keuzes

Duid aan welke hulpprogrammas en testprogrammas je


gemaakt hebt

Rapporteer over het finale afhankelijkheidsdiagram en


vergelijk met dat uit je voorstudie

Rapporteer over het eigenlijke verloop van het project en


vergelijk met het vooropgestelde tijdsschema

Tips!

Broncode met inhoudstafel die vermeldt welke


procedure van welk ADT op welke pagina staat.

Gn doorlopende tekst, wel een gestructureerd


professioneel document.

Vermeld je e-mail adres, rolnummer en richting!

Zorg dat je genoeg tijd neemt om je verslag te


schrijven.

Verdediging

Demo

Verdediging

Verdediging

Demonstratie en discussie over je aanpak

Bereid een demonstratie voor!

Verkoop je werk op een serieuze manier: schets de


goede n slechte kanten

Het is een verdediging: denk na over mogelijke


kritiek en hoe je deze kan weerleggen

Tips!

Leg voor jezelf een deadline vast die voor de echte


deadline valt.

Het is niet omdat het er mooi uitziet op het scherm dat


het de code er mooi uitziet!

Geen ADTs, slechte algoritmes,..

Broncode moet kleuren hebben zoals in Dr Racket, en


lijnnummers

Kuis je code op: verwijder displays etc

Praktische afspraken

Alle berichten vind je op PointCarr

Lees aandachtig de checklist (zie specifiek document)

Zoek extra info over het onderwerp en vermeld bronnen

Er zijn permanentieuren bij de assistenten

Een afspraak op een ander moment is ook altijd


mogelijk!

Deadlines zijn deadlines. Geen discussie.

Succes!

You might also like