Deze website is een hulpmiddel bij P2-K1. De officiële examendocumenten en beoordelingscriteria blijven leidend.
De uitleg helpt je op weg. Lees altijd het examendocument op itslearning goed door en controleer wat er voor jouw opdracht gevraagd wordt.
P2-K1-W2
W2 - Automatiseren
Bouw het programma dat je bij W1 hebt ontworpen. Test of het werkt en leg uit hoe je code is opgebouwd.
Wat ga je doen?
- Kijk terug naar het goedgekeurde ontwerp uit W1.
- Schrijf je programma en leg functies en gegevensstromen uit.
- Test de normale situatie, een fout en een randgeval.
- Lever je code, documentatie, bewijs en AI-verantwoording in.
Lees altijd het examendocument op itslearning goed door. Lees het onderdeel W2 voordat je begint met programmeren. Controleer ook welke code, tests en bewijsstukken je moet inleveren. Stel een vraag als iets onduidelijk is.
Hulp bij de code? Bekijk de Python-cheatsheet voor korte voorbeelden.
Klik op een onderwerp om de uitleg te openen.
1. Welk proces automatiseer je?
Gebruik W1 als beginpunt. Benoem het handmatige proces, de gebruiker, de programmastappen, benodigde gegevens en de opbrengst van de automatisering.
Onderbouw je proceskeuze
Beschrijf wie het proces uitvoert, hoe vaak, de huidige problemen en minimaal twee aspecten die automatisering geschikt maken: repeterend, foutgevoelig, tijdrovend of vaste stappen. Benoem naam, doel, input en output en formuleer het verwachte resultaat SMART.
Voor de hoogste score noemt de beoordelingsonderlegger ook het analyseren van meerdere processen, het onderbouwen van de beste keuze en het aantonen van tijdwinst.
2. Opbouw van het programma
Laat zien dat je programmeerconcepten begrijpt. Gebruik ze waar ze een functie hebben in jouw oplossing. De kleine voorbeelden hieronder zijn uitleg; schrijf eigen code voor je eigen casus.
Variabelen en datatypes
Een variabele bewaart een waarde. Een string bevat tekst, een integer een geheel getal en een boolean is True of False. Kies namen die vertellen wat erin staat.
voornaam = "Sam" # str: tekst
afdeling = "ICT" # str: tekst
actief = True # bool: waar/onwaar
aantal_accounts = 2 # int: geheel getal
Input en output
Met input ontvang je gegevens; met output geef je een resultaat terug. Python-input is tekst. Controleer de waarde voordat je die gebruikt.
voornaam = input("Voornaam: ").strip()
if voornaam:
print(f"Medewerker {voornaam} wordt verwerkt.")
else:
print("Vul een voornaam in.")
Beslissingen: if / elif / else
Een beslissing kiest welke actie nodig is. Houd het bepalen van een accounttype apart van de controle of de huidige gebruiker die actie mag uitvoeren.
if afdeling == "ICT":
rechten = "ICT-gebruiker"
elif afdeling == "HR":
rechten = "HR-gebruiker"
else:
rechten = "standaard-gebruiker"
Herhalen: for en while
Een for-loop verwerkt bijvoorbeeld alle accounts in een lijst. Een while-loop herhaalt zolang een voorwaarde waar is. Zorg dat de while-loop kan stoppen.
accounts = ["sam.voorbeeld", "noor.voorbeeld"]
for account in accounts:
print(f"Controleer account: {account}")
voornaam = ""
while not voornaam:
voornaam = input("Voornaam (verplicht): ").strip()
print(f"Invoer ontvangen: {voornaam}")
Functies en een logisch algoritme
Een functie bundelt een herbruikbare taak. Een algoritme is de logische volgorde van stappen: eerst controleren, dan verwerken, vervolgens opslaan en het resultaat tonen.
def maak_gebruikersnaam(voornaam, achternaam):
return f"{voornaam.strip()}.{achternaam.strip()}".lower()
gebruikersnaam = maak_gebruikersnaam("Sam", "Voorbeeld")
print(gebruikersnaam)
Dit voorbeeld maakt een gebruikersnaam, geen echt account. Ontwerp daarnaast functies voor validatie, autorisatie, accountverwerking en opslag. Controleer ook of gebruikersnamen uniek zijn.
Foutafhandeling
Een professioneel programma geeft bruikbare feedback als iets fout gaat. Vang verwachte fouten gericht af. Onderdruk geen fouten zonder melding of herstelactie.
try:
aantal = int(input("Aantal accounts: "))
if aantal < 1:
print("Het aantal moet minimaal 1 zijn.")
else:
print(f"Te verwerken: {aantal}")
except ValueError:
print("Vul een geheel getal in.")
Vang bij een databaseverbinding de specifieke fouten van je gekozen driver af. Toon geen wachtwoorden of technische verbindingsdetails in een melding voor de gebruiker.
Modules en verbindingen
Deel grotere code op in logische modules, bijvoorbeeld
validatie.py en database.py. Gebruik
bestanden, API’s of databaseverbindingen wanneer je casus dat
vraagt. Benoem de gebruikte libraries en versies in je
documentatie.
Sequenties en regelnummers
Een sequentie is de volgorde van instructies. Leg met regelnummers uit waarom je eerst valideert, dan verwerkt en daarna opslaat. Wijs ook variabelen, datatypes, conditionals en loops in je eigen code aan en leg de stopconditie van iedere loop uit.
Het W2-invuldocument vraagt in 4.2.2 minimaal 6 variabelen, terwijl de eindcontrole minimaal 3 noemt. Werk voorlopig 6 relevante variabelen uit en laat je docent de afwijking bevestigen. De eindcontrole vraagt minimaal 3 verschillende datatypes; beschrijf daarnaast alle gebruikte datatypes en waarom ze passen.
| Variabele | Regelnr. in eigen code | Datatype | Doel |
|---|---|---|---|
| voornaam | Vul het echte regelnummer in | str | Naam uit invoer |
| afdeling | Vul het echte regelnummer in | str | Accounttype bepalen |
| actief | Vul het echte regelnummer in | bool | Status bijhouden |
Deze drie regels zijn alleen een voorbeeld; werk de relevante variabelen van jouw programma uit.
3. Componenten en relaties
Maak inzichtelijk uit welke onderdelen de oplossing bestaat en hoe ze communiceren. Een eenvoudig componentdiagram is voldoende als je ieder onderdeel en de gegevensstromen uitlegt.
| Onderdeel | Taak | Gegevens die heen en weer gaan |
|---|---|---|
| Gebruikersinterface | Invoer verzamelen en output tonen | Medewerkergegevens, bevestiging of foutmelding |
| Applicatielogica | Valideren, bevoegdheid controleren, acties bepalen | Gevalideerde invoer en verwerkingsresultaat |
| Databaselaag | Verbinden en query’s uitvoeren | Parameters, opgeslagen gegevens en queryresultaten |
Leg functie-aanroepen vast
Het W2-document vraagt om de tien belangrijkste functies waarmee je begrip aantoont. Beschrijf alle functies/modules en noteer wie wie aanroept, argumenten, returnwaarde en de logica. Bespreek met je docent hoe je het formulier invult als je ontwerp minder dan tien functies nodig heeft; voeg geen zinloze functies toe.
| Aanroepende functie | Roept aan | Argumenten | Returnwaarde |
|---|---|---|---|
| main() | valideer_medewerker() | medewerkergegevens | Geldig/ongeldig en foutmeldingen |
| main() | sla_medewerker_op() | Gevalideerde gegevens | ID of verwerkingsresultaat |
Leg ook de data flow vast per stap: welke data, waar deze vandaan komt en waar deze naartoe gaat. Voeg de flowchart toe; een globaal componentdiagram alleen dekt deze invulvelden niet.
4. Werkende code en testen
Het programma moet daadwerkelijk functioneren. Demonstreer de normale situatie, ongeldige invoer, fouten, beslissingen, meerdere gegevens en juiste output.
Noteer per test de eis, invoer, verwachte uitkomst, werkelijke uitkomst, geslaagd/mislukt en bewijs. Voer de test echt uit; onderstaande uitkomsten zijn verwachtingen.
| Test | Invoer / situatie | Verwacht resultaat |
|---|---|---|
| 1. Correcte medewerker | Alle verplichte velden ingevuld, bevoegde gebruiker | Medewerker opgeslagen; afgesproken accountactie uitgevoerd; bevestiging |
| 2. Leeg verplicht veld | Voornaam ontbreekt | Duidelijke melding; geen onvolledige registratie |
| 3. Onvoldoende rechten | Gebruiker zonder beheerrechten start beheerfunctie | Actie geweigerd; geen wijziging |
| 4. Database onbereikbaar | Testserver tijdelijk gestopt | Begrijpelijke foutmelding; geen onterechte succesmelding |
| 5. Meerdere medewerkers | Lijst met geldige en ongeldige records | Ieder record gecontroleerd; resultaten per record zichtbaar |
Evaluatie en reflectie
Vat je tests samen en vergelijk het resultaat met de SMART-doelen. Meet de tijd vóór en na automatisering, beschrijf welke fouten worden voorkomen, de concrete voordelen en verbeterpunten of uitbreidingen. Vul geen verzonnen meetresultaten in.
5. Documentatie
Gebruik duidelijke namen, logisch benoemde functies en comments waar ze iets uitleggen. Beschrijf hoe iemand het programma installeert, start en gebruikt. Noem benodigde libraries en bekende beperkingen.
# Naam applicatie
## Doel
Welk proces wordt geautomatiseerd en voor wie?
## Benodigdheden
Python-versie, libraries, databaseserver en testgegevens.
## Installatie
Stappen om de testomgeving en dependencies klaar te zetten.
## Starten
Exact startcommando en benodigde configuratie.
## Werking
Invoer, proces, output en benodigde rechten.
## Testen
Hoe voer je tests uit en waar staan de resultaten?
## Bekende beperkingen
Wat is nog niet ondersteund of valt buiten scope?
Wat moet je technisch documenteren?
| Onderdeel | Wat vul je in? |
|---|---|
| Systeemvereisten | Hardware (processor, RAM, schijfruimte), OS, runtime, libraries met versies en benodigde rechten. |
| Installatie en gebruik | Stappen, startcommando, parameters en concrete gebruiksvoorbeelden. |
| Input/output | Bestandsformaat, verplichte velden, geldige voorbeeldregel, outputlocatie en loginhoud. |
| Troubleshooting | Foutmelding, oorzaak en oplossing in een tabel. |
| Commentaar | Header met studentnummer, datum en doel; functie-uitleg met parameters en returnwaarde; uitleg bij complexe code en vaste waarden. |
| Beveiliging en privacy | Wachtwoorden buiten code, wie mag uitvoeren, omgaan met gevoelige logs en persoonsgegevens. |
Het document vraagt verplicht om commentaar in de code. Gebruik je studentnummer als auteursverwijzing vanwege de instructie om nergens je naam te gebruiken.
Versiebeheer en logboek
Bewaar versies tijdens bouwen, testen en verbeteren, bijvoorbeeld met Git. Schrijf bij wijzigingen wat je veranderde en waarom. Als je afwijkt van W1, leg je dat uit in je W2-verslag.
Voeg een logboek toe: datum, tijd, activiteit en resultaat. Bewaar ook de communicatie over de oplevering aan je opdrachtgever.
6. Wat moet ik bewaren?
AI-verantwoording invullen
Lever bij W2 een aparte AI-verantwoording in. Ook als je geen AI hebt gebruikt.
Download het meest recente AI-formulier op itslearning.
- Vul de scanpagina in: studentnummer, datum, werkproces en of je AI gebruikte.
- Geen AI gebruikt? Kies “Nee” en ga direct naar de eindverklaring in sectie 3.
- Wel AI gebruikt? Vermeld de tool en het model als je dat weet. Vul de overzichtstabel in.
- Beschrijf de belangrijkste AI-momenten: datum, tool, je probleem, de exacte prompt en een korte samenvatting van het antwoord.
- Voeg een screenshot toe waarop jouw vraag en het antwoord zichtbaar zijn. Beschrijf wat je gebruikte, aanpaste of niet gebruikte, welke fouten je vond en hoe je die oploste.
- Wijs het resultaat aan: bestandsnaam, regelnummers of pagina en een fragment van maximaal 15 regels uit je eindproduct.
- Vul de eindverklaring in en onderteken die. Je screenshots moeten echt en onbewerkt zijn. Je moet je eigen werk kunnen uitleggen.
Gebruik zoveel blokken als nodig. Je hoeft de ongebruikte blokken niet in te vullen.
Sla op als P2K1W2_AI-verantwoording_studentnummer.docx.
Het algemene formulier noemt
examencode_AI-verantwoording_studentnummer.docx; de
PvB-informatie geeft bovenstaande naam voor W2.
Eindcheck W2
Lees altijd het examendocument op itslearning goed door. Vergelijk je werk vóór het inleveren met de officiële opdracht en beoordelingscriteria. Alleen deze checklist afvinken is niet voldoende. Stel een vraag als iets onduidelijk is.
Je vinkjes worden lokaal bewaard en gedeeld met de algemene eindcheck.