Skip to article frontmatterSkip to article content

1Inleiding

1.1Leeswijzer

Dit is een opdracht waar je één of twee maanden aan gaat werken. De opdracht bestaat uit meerdere hoofdstukken. Je docent vertelt welke hoofdstukken je moet maken.

Een hoofdstuk bevat uitleg en opdrachten. In de opdracht staat wat je code moet doen. Lees dit aandachtig door, voordat je begint te coderen. Bij een opdracht staan tips die je kunt gebruiken als je er niet uitkomt. Bekijk de tips één voor één van boven naar beneden en probeer na elke tip of je verder met de opdracht komt.

De eerste hoofdstukken werk je aan functionaliteit voor je webshop. Je maakt daarvoor gebruik van de producten (smurfen) die al in de startcode zijn opgenomen. Als je toe bent aan de uitbreidingen, dan kun je zelf kiezen welke producten je in je webshop aanbiedt. Denk aan kleding, sieraden, clubshirts, telefoons, auto’s, eten of iets anders dat jij leuk vindt. Zorg ervoor dat het netjes blijft, vraag het aan je docent als je twijfelt.

1.2Webshop

Je webshop bevat een plaatje en informatie over wat je verkoopt. Bezoekers kunnen filteren welke producten ze willen zien. Ze kunnen bestellen door je een mailtje te sturen.

Bezoekers kunnen niet inloggen op je webshop en er zit geen betaalmogelijkheid in de webshop. Dat maakt de webshop een stuk eenvoudiger. Bezoekers die willen bestellen sturen een mailte (of appje). De webshop houdt geen winkelmand, geen oude bestellingen en geen voorraad bij.

Je webshop maak je in een ontwikkelomgeving. Zodra je de ontwikkelomgeving afsluit, is je webshop niet meer bereikbaar. Als je wilt dat je webshop altijd bereikbaar is, dan moet je je code neerzetten op een server die altijd bereikbaar is. Dat noemen ze hosten. Je kunt een oude server gebruiken die je thuis hebt, of er eentje bij een bedrijf huren. Je webshop heeft een server met het Unix-besturingssysteem nodig. Als je dit wilt doen dan heb je handigheid met Unix nodig. Het hosten van je webshop is geen onderdeel van deze opdracht.

1.3Voorkennis en naslagmateriaal

Voor deze opdracht heb je basiskennis nodig van SQL. Basiskennis van SQL betekent dat je opdrachten gemaakt hebt met SELECT, WHERE, JOIN en GROUP BY.

Voor hoofdstuk 6 (filters) heb je tevens basiskennis nodig van Python. Je hebt basiskennis als je geoefend hebt met variabelen, selectie (if-jes), iteratie (for-loop), functies en lijsten.

Voor hoofdstuk 7 (client) heb je tevens basiskennis nodig van html en css. Je komt in dit hoofdstuk ook in aanraking met JavaScript.

1.4Tools

Voordat je kunt programmeren moet je bekend zijn met het gereedschap (de tools) die je voor deze opdracht gaat gebruiken.

Je kunt deze opdracht maken in GitHub Codespaces. Dit is een professionele online omgeving die door veel programmeurs gebruikt wordt. GitHub CodeSpaces werkt op alle computers met een moderne browser, ook op Chromebooks. Een account op GitHub is gratis en daarmee kun je 60 uur per maand gebruik maken van Codespaces. Je docent geeft misschien aan dat je een andere programmeeromgeving moet gebruiken voor deze opdracht.

1.5Werkwijze

Je werkt op de volgende manier aan de opdrachten.

1.6Inleveren

1.7Beoordeling

Je krijgt één cijfer per team, maar je docent kan hiervan afwijken als teamleden geen gelijkwaardige bijdrage hebben geleverd.

Er gelden minimale eisen waaraan je opdracht moet voldoen:

Een netjes uitgevoerde opdracht met alle basisstappen zal in de meeste gevallen beoordeeld worden met een voldoende. Om een hoog cijfer te halen moet je creatieve en complexe uitbreidingen toevoegen.

Een concept beoordelingsmodel staat hieronder. Je docent kan tijdens het nakijken aanpassingen doen aan het beoordelingsmodel of de berekening van het cijfer.

OnderdeelPunten havoPunten vwoToelichting
Code
Stijl55- Netjes uitgelijnd,
- helder commentaar,
- logische naamgeving van variabelen,
- logische volgorde van opdrachten,
- consistente code.
Basiscode2015- If-opdrachten goed toegepast, vergelijkingsoperatoren </>/== gebruikt, logische operatoren and/or gebruikt,
- lijsten toegepast,
- for (of while)-opdrachten toegepast,
- code kan omgaan met verschillende lengtes van lijsten (len goed gebruikt),
- code wijzigt aantal elementen in lijst tijdens het runnen.
Uitbreidingen (maantjes)1520- Uitbreidingen gemaakt met technieken die in de opdracht behandeld zijn, zoals meer loops, meer lijsten, meer functies (1 maantje)
- uitbreidingen gemaakt met technieken die niet in de opdracht behandeld zijn en je je zelfstandig hebt eigen gemaakt, zoals dicts, geneste loop, lijst in lijst (2 maantjes).
Functionaliteit
Speelbaarheid55- geen glitches
- soepele bediening
Basisfunctionaliteit2015- Bal stuitert tegen randen,
- plank beweegt en stopt aan de rand van het scherm en laat bal stuiteren,
- 1 blok waartegen bal stuitert,
- meer dan 10 blokken waartegen bal stuitert,
- blokken verdwijnen, je kunt af gaan en winnen.
Uitbreidingen (zonnetjes)1520Uitbreidingen in het spel die zorgen voor diversiteit en hoe beter je wordt hoe leuker of moeilijker het wordt,
- voorbeelden van kleine uitbreidingen (1 zonnetje) zijn steeds snellere bal, verschillende kleuren blokken,
- voorbeelden van grotere uitbreidingen (2 zonnetjes) zijn meer levels, ingewikkelde powerups zoals blokken wegschieten, veel ballen.
Proces
Planning55Uit de commits en/of tijdens de les blijkt dat het stappenplan gevolgd is en dat er regelmatig is gewerkt.
Samenwerking55Uit de commits en/of tijdens de les blijkt dat het werk gelijk verdeeld is onder teamleden. Als één teamlid beduidend minder doet, dan is dat een gezamenlijke verantwoordelijkheid van het team om dat op te lossen of te melden bij de docent. Maak vanaf het begin afspraken en spreek elkaar daarop aan. Als je er niet uitkomt, dan meld je dat zo snel mogelijk bij je docent.

Cijfer = 1 + 9 * behaalde punten / maximale punten