Initial commit
This commit is contained in:
11
.claude-plugin/plugin.json
Normal file
11
.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"name": "open-ict",
|
||||||
|
"description": "Plugin for Open ICT",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": {
|
||||||
|
"name": "Gijs Bartman"
|
||||||
|
},
|
||||||
|
"skills": [
|
||||||
|
"./skills"
|
||||||
|
]
|
||||||
|
}
|
||||||
73
plugin.lock.json
Normal file
73
plugin.lock.json
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
{
|
||||||
|
"$schema": "internal://schemas/plugin.lock.v1.json",
|
||||||
|
"pluginId": "gh:gijsbartman/hogeschool-utrecht:plugins/open-ict",
|
||||||
|
"normalized": {
|
||||||
|
"repo": null,
|
||||||
|
"ref": "refs/tags/v20251128.0",
|
||||||
|
"commit": "9ac03e2201d1c7092e2033a489e15b20412aa325",
|
||||||
|
"treeHash": "db4f2830231238219a73de9cc0820657571220e872e1b3919efdb19276f28326",
|
||||||
|
"generatedAt": "2025-11-28T10:17:00.098832Z",
|
||||||
|
"toolVersion": "publish_plugins.py@0.2.0"
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"remote": "git@github.com:zhongweili/42plugin-data.git",
|
||||||
|
"branch": "master",
|
||||||
|
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
|
||||||
|
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
|
||||||
|
},
|
||||||
|
"manifest": {
|
||||||
|
"name": "open-ict",
|
||||||
|
"description": "Plugin for Open ICT",
|
||||||
|
"version": "1.0.0"
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"path": "README.md",
|
||||||
|
"sha256": "ef845964bcf0acbb5a7d335be7d861b1be2438f13095bae6ea7d47472b742971"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": ".claude-plugin/plugin.json",
|
||||||
|
"sha256": "1f46ab07bfa066bcef43ab0371667d24b69333c47619c441729eb985a00d6935"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "skills/competenties/beroepstaken.md",
|
||||||
|
"sha256": "e1d6a50001d6d4ec707c61e2eada40e6a20992c97852d98e10760e9cb4f958cf"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "skills/competenties/SKILL.md",
|
||||||
|
"sha256": "dd7b4cfba2d8236f1c1dc7eeb36e2c6c87ee86012854396adfa3243d9469b1bc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "skills/competenties/vaardigheden.md",
|
||||||
|
"sha256": "dc531e29687dade400889f64074f0d0f88485e6ae18b977bce6e57999bd258e7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "skills/competenties/scripts/vaardigheden.py",
|
||||||
|
"sha256": "b737839008e4b2d9432690f0907f60f92190a4066e1f8cf59984939cb7852b7b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "skills/competenties/scripts/hboi.py",
|
||||||
|
"sha256": "c425792d8dd3663b77734337ee03b9c04585dd15ea4e944b78172757e0c4c0dd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "skills/competenties/data/vaardigheden-nl.json",
|
||||||
|
"sha256": "693daf385bf77e610d24efd206646c2409e695d87da2bfe2e4e40e3bf2466a6a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "skills/competenties/data/hboi-nl.json",
|
||||||
|
"sha256": "be2d2283cbb3bad4ce894bcd1bdbc610273d47582496b41ade066e23c9eb4c7e"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "skills/beoordelingshandleiding/SKILL.md",
|
||||||
|
"sha256": "4282511b1bc3c7172bbd3c0741a05b03e94a90f84aecb5aa8c50da064663fe5a"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dirSha256": "db4f2830231238219a73de9cc0820657571220e872e1b3919efdb19276f28326"
|
||||||
|
},
|
||||||
|
"security": {
|
||||||
|
"scannedAt": null,
|
||||||
|
"scannerVersion": null,
|
||||||
|
"flags": []
|
||||||
|
}
|
||||||
|
}
|
||||||
229
skills/beoordelingshandleiding/SKILL.md
Normal file
229
skills/beoordelingshandleiding/SKILL.md
Normal file
@@ -0,0 +1,229 @@
|
|||||||
|
---
|
||||||
|
name: beoordelingshandleiding
|
||||||
|
description: Beoordelingshandleiding voor Open-ICT studenten. Gebruik bij het beoordelen, evalueren of geven van feedback op vaardigheden en beroepstaken. Bevat principes voor niveaubepaling (cumulatief voor 8 vaardigheden, uitzonderingen voor Pro-actief handelen en Kwalitatief product maken), evaluatieopbouw, minimale vereisten voor assessment, en feedbacksystemen. Verwijs altijd naar exacte bewijsmaterialen uit Portflow.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Open-ICT Beoordelingshandleiding
|
||||||
|
|
||||||
|
## Instructions
|
||||||
|
|
||||||
|
### Fundamentele Principes
|
||||||
|
|
||||||
|
#### Definitie van Vaardigheden
|
||||||
|
|
||||||
|
De vaardigheden bij Open-ICT zijn onderverdeeld in drie categorieën die aansluiten bij de doeldomeinen van Biesta (kwalificatie, socialisatie en persoonsvorming):
|
||||||
|
|
||||||
|
**Productvaardigheden (Kwalificatie):**
|
||||||
|
|
||||||
|
- Juiste kennis ontwikkelen (JKO)
|
||||||
|
- Kwalitatief product maken (KPM)
|
||||||
|
- Overzicht creëren (OC)
|
||||||
|
- Kritisch oordelen (KO)
|
||||||
|
|
||||||
|
**Sociale vaardigheden (Socialisatie):**
|
||||||
|
|
||||||
|
- Samenwerken (SW)
|
||||||
|
- Boodschap delen (BD)
|
||||||
|
- Plannen (PL)
|
||||||
|
|
||||||
|
**Persoonsvormende vaardigheden:**
|
||||||
|
|
||||||
|
- Flexibel opstellen (FO)
|
||||||
|
- Proactief handelen (PH)
|
||||||
|
- Reflecteren (RE)
|
||||||
|
|
||||||
|
#### Definitie van HBO-i Beroepstaken
|
||||||
|
|
||||||
|
De HBO-i beroepstaken zijn gestructureerd volgens vijf architectuurlagen en vijf activiteiten:
|
||||||
|
|
||||||
|
**Architectuurlagen:**
|
||||||
|
|
||||||
|
- Gebruikersinteractie
|
||||||
|
- Organisatieprocessen
|
||||||
|
- Infrastructuur
|
||||||
|
- Software
|
||||||
|
- Hardware
|
||||||
|
|
||||||
|
**Activiteiten:**
|
||||||
|
|
||||||
|
1. Analyse van het probleem
|
||||||
|
2. Advies voor de oplossing
|
||||||
|
3. Ontwerp van de oplossing
|
||||||
|
4. Realisatie van de oplossing
|
||||||
|
5. Manage & Control van de oplossing (beheren)
|
||||||
|
|
||||||
|
Elke combinatie van een architectuurlaag met een activiteit vormt een specifieke beroepstaak die studenten moeten beheersen op een bepaald niveau, afhankelijk van hun studiejaar en beroepsrol.
|
||||||
|
|
||||||
|
#### Bewijsmateriaal en Verwijzing
|
||||||
|
|
||||||
|
**Algemeen Principe:**
|
||||||
|
Bij het beoordelen, evalueren of geven van feedback moet altijd verwezen worden naar de exacte naam van het bewijsmateriaal zoals het in Portflow staat. Dit zorgt voor duidelijkheid en traceerbaarheid.
|
||||||
|
|
||||||
|
**Types bewijsmateriaal:**
|
||||||
|
|
||||||
|
1. Reflecties
|
||||||
|
2. Evaluaties
|
||||||
|
3. Feedback
|
||||||
|
4. Check-ins/Check-outs
|
||||||
|
5. Documenten en bestanden
|
||||||
|
|
||||||
|
### Beoordelingsprincipes
|
||||||
|
|
||||||
|
#### Niveaubepaling Vaardigheden
|
||||||
|
|
||||||
|
Bij het beoordelen van vaardigheden gelden twee belangrijke regels:
|
||||||
|
|
||||||
|
**A. Cumulatieve Opbouw (8 van de 10 vaardigheden):**
|
||||||
|
Voor deze vaardigheden moet de student voldoen aan ALLE criteria van:
|
||||||
|
|
||||||
|
1. Alle voorgaande niveaus
|
||||||
|
2. Het huidige niveau
|
||||||
|
|
||||||
|
Bijvoorbeeld: Een student die niveau 2 wil behalen voor de vaardigheid 'samenwerken', moet aantonen dat zij voldoet aan ALLE criteria van niveau 1 én niveau 2.
|
||||||
|
|
||||||
|
**B. Uitzonderingen (2 vaardigheden):**
|
||||||
|
Voor deze vaardigheden hoeven alleen de criteria van het beoogde niveau behaald te worden:
|
||||||
|
|
||||||
|
- Pro-actief handelen
|
||||||
|
- Kwalitatief product maken
|
||||||
|
|
||||||
|
#### Niveaubepaling Beroepstaken
|
||||||
|
|
||||||
|
Bij beroepstaken geldt het 'OF' principe:
|
||||||
|
|
||||||
|
- Wanneer criteria worden gescheiden door 'of', volstaat het voldoen aan één van deze criteria
|
||||||
|
- Bijvoorbeeld: "Adviseren over X of Adviseren over Y", dan is het aantonen van óf X óf Y voldoende
|
||||||
|
|
||||||
|
### Evaluatieproces
|
||||||
|
|
||||||
|
#### Opbouw van een Evaluatie
|
||||||
|
|
||||||
|
Een evaluatie moet de volgende elementen bevatten:
|
||||||
|
|
||||||
|
1. **Contextbeschrijving**
|
||||||
|
|
||||||
|
- Project of werkzaamheden
|
||||||
|
- Tijdsperiode
|
||||||
|
- Rol van de student
|
||||||
|
- Relevante situaties
|
||||||
|
|
||||||
|
2. **Bewijsvoering**
|
||||||
|
|
||||||
|
- Concrete producten met exacte verwijzing naar bewijsmateriaal
|
||||||
|
- Koppeling tussen bewijzen en criteria
|
||||||
|
- Chronologische ontwikkeling
|
||||||
|
|
||||||
|
3. **Niveauonderbouwing**
|
||||||
|
|
||||||
|
- Expliciete koppeling met LEF-criteria
|
||||||
|
- Bij cumulatieve vaardigheden: aantonen van alle vereiste niveaus
|
||||||
|
- Concrete voorbeelden per criterium
|
||||||
|
|
||||||
|
4. **Ontwikkelingsrichting**
|
||||||
|
- Identificatie van verbeterpunten
|
||||||
|
- Concrete vervolgstappen
|
||||||
|
|
||||||
|
#### Minimale Vereisten voor Assessment
|
||||||
|
|
||||||
|
1. **Evaluatie-frequentie**
|
||||||
|
|
||||||
|
- Minimaal twee evaluaties per vaardigheid
|
||||||
|
- Voldoende spreiding over het semester
|
||||||
|
|
||||||
|
2. **Gildeactiviteiten (vanaf jaar 2)**
|
||||||
|
|
||||||
|
- Minimaal één kennisdeling per semester voor 'boodschap delen'
|
||||||
|
|
||||||
|
3. **Aanwezigheidsregistratie**
|
||||||
|
- Check-ins/check-outs
|
||||||
|
- Maximaal 20% afwijking toegestaan
|
||||||
|
- Bij afwijking: onderbouwing van geldige redenen
|
||||||
|
|
||||||
|
### Feedback Systeem
|
||||||
|
|
||||||
|
#### Principes voor Effectieve Feedback
|
||||||
|
|
||||||
|
**A. Objectiviteit:**
|
||||||
|
|
||||||
|
- Baseer feedback op concrete waarnemingen
|
||||||
|
- Verwijs naar specifieke bewijsmaterialen
|
||||||
|
- Koppel aan LEF-criteria
|
||||||
|
|
||||||
|
**B. Constructiviteit:**
|
||||||
|
|
||||||
|
- Begin met positieve observaties
|
||||||
|
- Formuleer verbeterpunten als ontwikkelkansen
|
||||||
|
- Geef concrete suggesties
|
||||||
|
|
||||||
|
**C. Specificiteit:**
|
||||||
|
|
||||||
|
- Verwijs naar exacte situaties of documenten
|
||||||
|
- Gebruik concrete voorbeelden
|
||||||
|
- Koppel aan specifieke leerdoelen
|
||||||
|
|
||||||
|
#### Feedback Aanvraag Structuur
|
||||||
|
|
||||||
|
1. **Situatieschets**
|
||||||
|
|
||||||
|
- Context van het werk
|
||||||
|
- Specifieke vaardigheid of beroepstaak
|
||||||
|
- Concrete feedbackvraag
|
||||||
|
|
||||||
|
2. **Bewijsmateriaal**
|
||||||
|
|
||||||
|
- Relevante documenten (exacte namen)
|
||||||
|
- Gerelateerde feedback of evaluaties
|
||||||
|
- Check-ins/check-outs indien relevant
|
||||||
|
|
||||||
|
3. **Gewenste Focus**
|
||||||
|
- Specifiek aspect van de vaardigheid
|
||||||
|
- Gewenst niveau
|
||||||
|
- Specifieke leerdoelen
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### Correcte Verwijzingen naar Bewijsmateriaal
|
||||||
|
|
||||||
|
Bij het beoordelen of evalueren, verwijs altijd naar de exacte naam van het bewijsmateriaal:
|
||||||
|
|
||||||
|
- "Uit 'Evaluatie samenwerken & boodschap delen' blijkt dat..."
|
||||||
|
- "In 'Reflectie coachgesprek' staat..."
|
||||||
|
- "Dit wordt bevestigd door 'Feedback Sprint Review 2'"
|
||||||
|
- "De check-in '9-12-2024' laat zien dat..."
|
||||||
|
- "Uit 'Onderzoek AI systemen' blijkt dat..."
|
||||||
|
|
||||||
|
### Voorbeeld: Cumulatieve Niveaubepaling
|
||||||
|
|
||||||
|
Voor de vaardigheid 'Samenwerken' niveau 2:
|
||||||
|
|
||||||
|
- De student moet aantonen dat zij voldoet aan ALLE criteria van niveau 1 én niveau 2
|
||||||
|
- Verwijs naar concrete bewijsmaterialen die beide niveaus ondersteunen
|
||||||
|
- Geef specifieke voorbeelden per criterium
|
||||||
|
|
||||||
|
### Voorbeeld: Evaluatie Structuur
|
||||||
|
|
||||||
|
Een complete evaluatie bevat:
|
||||||
|
|
||||||
|
1. **Context:** "Tijdens het project 'Webshop Development' (september-december 2024) werkte ik als frontend developer..."
|
||||||
|
|
||||||
|
2. **Bewijsvoering:** "Uit 'Evaluatie samenwerken & boodschap delen' blijkt dat ik actief deelnam aan daily stand-ups. In 'Feedback Sprint Review 2' wordt bevestigd dat ik constructief feedback gaf..."
|
||||||
|
|
||||||
|
3. **Niveauonderbouwing:** "Dit toont aan dat ik voldoe aan criterium 1.2 van niveau 2 voor Samenwerken, waarbij wordt gevraagd om actieve participatie in teamoverleggen..."
|
||||||
|
|
||||||
|
4. **Ontwikkelingsrichting:** "Om naar niveau 3 te groeien, moet ik meer initiatief nemen in het faciliteren van teamoverleggen..."
|
||||||
|
|
||||||
|
### Voorbeeld: Feedback Structuur
|
||||||
|
|
||||||
|
Een effectieve feedbackaanvraag bevat:
|
||||||
|
|
||||||
|
**Situatieschets:**
|
||||||
|
"Ik werk aan de vaardigheid 'Kritisch oordelen' en wil feedback op mijn niveau 2 beoordeling voor het project 'API Design'."
|
||||||
|
|
||||||
|
**Bewijsmateriaal:**
|
||||||
|
|
||||||
|
- 'Evaluatie Kritisch oordelen Q1'
|
||||||
|
- 'Reflectie code review proces'
|
||||||
|
- 'Feedback Sprint Review 3'
|
||||||
|
|
||||||
|
**Gewenste Focus:**
|
||||||
|
"Ik wil specifiek weten of mijn analyse van verschillende API-design patronen voldoet aan de criteria voor niveau 2, en wat ik nodig heb om naar niveau 3 te groeien."
|
||||||
74
skills/competenties/SKILL.md
Normal file
74
skills/competenties/SKILL.md
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
---
|
||||||
|
name: competenties
|
||||||
|
description: "Toegang tot het Hogeschool Utrecht Open-ICT competentiekader voor het analyseren en begrijpen van studentcompetenties en beroepstaken. Gebruik deze skill wanneer je: (1) Informatie nodig hebt over HBO-I beroepstaken binnen specifieke architectuurlagen (Gebruikersinteractie, Organisatieprocessen, Infrastructuur, Software, Hardwareinterfacing) en activiteiten (Analyseren, Adviseren, Ontwerpen, Realiseren, Manage & Control), (2) Details wilt over de tien kernvaardigheden (Juiste kennis ontwikkelen, Kwalitatief product maken, Overzicht creëren, Kritisch oordelen, Samenwerken, Boodschap delen, Plannen, Flexibel opstellen, Pro-actief handelen, Reflecteren) en hun competentieniveaus (1-4), (3) Studentcompetenties wilt analyseren of beoordelen tegen het framework, (4) Beroepstaken wilt identificeren voor specifieke architectuurlagen en activiteiten, of (5) Niveau-gerelateerde beschrijvingen nodig hebt voor feedback, beoordeling of curriculumontwikkeling."
|
||||||
|
---
|
||||||
|
|
||||||
|
# Open-ICT Competenties
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
Deze skill biedt toegang tot het Hogeschool Utrecht Open-ICT competentiekader, inclusief HBO-I beroepstaken en studentvaardigheden. Het framework helpt bij het analyseren en begrijpen van competentieniveaus voor ICT-studenten en professionals.
|
||||||
|
|
||||||
|
Het competentiekader bestaat uit twee hoofdcomponenten:
|
||||||
|
|
||||||
|
1. **HBO-I Beroepstaken**: Professionele taken georganiseerd volgens architectuurlagen, activiteiten en niveaus
|
||||||
|
2. **Studentvaardigheden**: Tien kernvaardigheden die worden beoordeeld in het Open-ICT curriculum
|
||||||
|
|
||||||
|
## Wanneer je Studentvaardigheden nodig hebt
|
||||||
|
|
||||||
|
Gebruik dit wanneer je informatie nodig hebt over de tien kernvaardigheden die worden beoordeeld in het Open-ICT curriculum. Deze vaardigheden beschrijven de essentiële competenties die ICT-studenten moeten ontwikkelen tijdens hun opleiding. Elke vaardigheid heeft vier niveaus (1-4) die oplopende complexiteit en zelfstandigheid representeren.
|
||||||
|
|
||||||
|
De tien kernvaardigheden zijn:
|
||||||
|
|
||||||
|
1. **Juiste kennis ontwikkelen**: Het vermogen om relevante kennis te identificeren, te verwerven en toe te passen
|
||||||
|
2. **Kwalitatief product maken**: Het vermogen om producten te maken die voldoen aan kwaliteitscriteria
|
||||||
|
3. **Overzicht creëren**: Het vermogen om informatie te verzamelen en overzichtelijk weer te geven
|
||||||
|
4. **Kritisch oordelen**: Het vermogen om verkregen informatie te verwerken en onderbouwde conclusies te trekken
|
||||||
|
5. **Samenwerken**: Het vermogen om effectief samen te werken in teams
|
||||||
|
6. **Boodschap delen**: Het vermogen om informatie en ideeën duidelijk te communiceren
|
||||||
|
7. **Plannen**: Het vermogen om activiteiten te plannen en te organiseren
|
||||||
|
8. **Flexibel opstellen**: Het vermogen om flexibel te reageren op veranderende omstandigheden
|
||||||
|
9. **Pro-actief handelen**: Het vermogen om proactief te handelen en initiatief te nemen
|
||||||
|
10. **Reflecteren**: Het vermogen om te reflecteren op eigen handelen en leerproces
|
||||||
|
|
||||||
|
**Samenvatting**: De tien kernvaardigheden omvatten het ontwikkelen van kennis en kwaliteit, het creëren van overzicht en kritisch oordelen, samenwerken en communicatie, plannen en flexibiliteit, pro-activiteit en reflectie. Deze vaardigheden vormen samen het fundament voor professioneel ICT-werk.
|
||||||
|
|
||||||
|
Je kunt vaardigheden ophalen voor alle niveaus, een specifieke vaardigheid, een specifiek niveau, of combinaties hiervan. Dit is nuttig wanneer je studentcompetenties wilt analyseren, beoordelingen wilt voorbereiden, feedback wilt geven op basis van het framework, of wanneer je wilt begrijpen welke vaardigheden op welk niveau worden verwacht.
|
||||||
|
|
||||||
|
**VERPLICHT - LEES HEEL BESTAND**: Lees [`vaardigheden.md`](vaardigheden.md) volledig van begin tot eind voordat je scripts uitvoert. **STEL GEEN RANGE LIMIETEN IN bij het lezen van dit bestand.** Dit bestand bevat alle gedetailleerde instructies over het gebruik van de scripts, beschikbare opties, responseformaten, validatie en foutafhandeling.
|
||||||
|
|
||||||
|
## Wanneer je HBO-I Beroepstaken nodig hebt
|
||||||
|
|
||||||
|
Gebruik dit wanneer je informatie nodig hebt over professionele taken binnen het HBO-I competentiekader. Beroepstaken beschrijven de concrete werkzaamheden die ICT-professionals uitvoeren in verschillende technische domeinen en ontwikkelingsfasen. Deze taken zijn georganiseerd in een drie-dimensionale matrix die de volledige breedte van het ICT-beroepenveld bestrijkt.
|
||||||
|
|
||||||
|
De structuur bestaat uit:
|
||||||
|
|
||||||
|
- **Architectuurlagen** (5 lagen): Verschillende technische domeinen in ICT-systemen
|
||||||
|
|
||||||
|
- Gebruikersinteractie: User interaction layer
|
||||||
|
- Organisatieprocessen: Organizational processes layer
|
||||||
|
- Infrastructuur: Infrastructure layer
|
||||||
|
- Software: Software layer
|
||||||
|
- Hardwareinterfacing: Hardware interfacing layer
|
||||||
|
|
||||||
|
- **Activiteiten** (5 activiteiten): Verschillende fasen van de ontwikkelingslevenscyclus
|
||||||
|
|
||||||
|
- Analyseren: Analysis phase
|
||||||
|
- Adviseren: Advisory phase
|
||||||
|
- Ontwerpen: Design phase
|
||||||
|
- Realiseren: Implementation phase
|
||||||
|
- Manage & Control: Management and control phase
|
||||||
|
|
||||||
|
- **Niveaus** (1-4): Oplopende complexiteit en zelfstandigheid
|
||||||
|
|
||||||
|
**Samenvatting**: HBO-I beroepstaken omvatten alle professionele taken die ICT'ers uitvoeren, georganiseerd over vijf architectuurlagen (van gebruikersinteractie tot hardwareinterfacing) en vijf activiteiten (van analyseren tot manage & control), elk met vier oplopende competentieniveaus. Dit geeft een compleet overzicht van wat ICT-professionals moeten kunnen in verschillende contexten en op verschillende niveaus.
|
||||||
|
|
||||||
|
Je kunt beroepstaken ophalen voor alle lagen en activiteiten, gefilterd op specifieke architectuurlagen, activiteiten, niveaus, of combinaties hiervan. Dit is nuttig wanneer je wilt weten welke taken worden verwacht voor een specifieke architectuurlaag, welke activiteiten relevant zijn voor een bepaald niveau, wanneer je projecten wilt koppelen aan beroepstaken, of wanneer je curriculum wilt ontwikkelen op basis van het HBO-I framework.
|
||||||
|
|
||||||
|
**VERPLICHT - LEES HEEL BESTAND**: Lees [`beroepstaken.md`](beroepstaken.md) volledig van begin tot eind voordat je scripts uitvoert. **STEL GEEN RANGE LIMIETEN IN bij het lezen van dit bestand.** Dit bestand bevat alle gedetailleerde instructies over het gebruik van de scripts, beschikbare opties, responseformaten, validatie en foutafhandeling.
|
||||||
|
|
||||||
|
## Wanneer je beide nodig hebt
|
||||||
|
|
||||||
|
Als je zowel studentvaardigheden als HBO-I beroepstaken nodig hebt:
|
||||||
|
|
||||||
|
**VERPLICHT - LEES BEIDE BESTANDEN**: Lees zowel [`vaardigheden.md`](vaardigheden.md) als [`beroepstaken.md`](beroepstaken.md) volledig van begin tot eind voordat je scripts uitvoert. **STEL GEEN RANGE LIMIETEN IN bij het lezen van deze bestanden.** Beide bestanden bevatten alle gedetailleerde instructies die je nodig hebt.
|
||||||
456
skills/competenties/beroepstaken.md
Normal file
456
skills/competenties/beroepstaken.md
Normal file
@@ -0,0 +1,456 @@
|
|||||||
|
# HBO-I Beroepstaken
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
Deze sectie beschrijft hoe je HBO-I beroepstaken uit het Open-ICT competentiekader kunt ophalen. Het framework organiseert professionele taken in een drie-dimensionale matrix van architectuurlagen, activiteiten en niveaus.
|
||||||
|
|
||||||
|
## Data Structuur
|
||||||
|
|
||||||
|
Het HBO-I competentiekader organiseert professionele taken volgens:
|
||||||
|
|
||||||
|
- **Architectuurlagen**: Verschillende technische domeinen in ICT systemen
|
||||||
|
- **Activiteiten**: Verschillende fasen van de ontwikkelingslevenscyclus
|
||||||
|
- **Niveaus**: Oplopende complexiteit en zelfstandigheid (1-4)
|
||||||
|
|
||||||
|
## Beschikbare Architectuurlagen
|
||||||
|
|
||||||
|
De volgende vijf architectuurlagen zijn beschikbaar:
|
||||||
|
|
||||||
|
1. **Gebruikersinteractie**: User interaction layer
|
||||||
|
2. **Organisatieprocessen**: Organizational processes layer
|
||||||
|
3. **Infrastructuur**: Infrastructure layer
|
||||||
|
4. **Software**: Software layer
|
||||||
|
5. **Hardwareinterfacing**: Hardware interfacing layer
|
||||||
|
|
||||||
|
## Beschikbare Activiteiten
|
||||||
|
|
||||||
|
De volgende vijf activiteiten zijn beschikbaar:
|
||||||
|
|
||||||
|
1. **Analyseren**: Analysis phase
|
||||||
|
2. **Adviseren**: Advisory phase
|
||||||
|
3. **Ontwerpen**: Design phase
|
||||||
|
4. **Realiseren**: Implementation phase
|
||||||
|
5. **Manage & Control**: Management and control phase
|
||||||
|
|
||||||
|
## Beschikbare Niveaus
|
||||||
|
|
||||||
|
Alle beroepstaken hebben vier niveaus (1-4) die oplopende complexiteit en zelfstandigheid representeren.
|
||||||
|
|
||||||
|
## Workflow Scenarios
|
||||||
|
|
||||||
|
### Scenario 1: Overzicht en Onderzoek (VERPLICHT: Alle Beroepstaken Ophalen)
|
||||||
|
|
||||||
|
**Wanneer te gebruiken:**
|
||||||
|
|
||||||
|
- Wanneer het nog niet duidelijk is aan welke beroepstaak er wordt gewerkt
|
||||||
|
- Wanneer de gebruiker wilt weten welke beroepstaken relevant zijn voor een bepaald bewijsstuk
|
||||||
|
- Wanneer je een overzicht nodig hebt van alle beschikbare beroepstaken en hun niveaus
|
||||||
|
- Bij het analyseren van bewijsstukken om te bepalen welke beroepstaken van toepassing zijn
|
||||||
|
- Wanneer je moet bepalen welke architectuurlagen of activiteiten relevant zijn
|
||||||
|
|
||||||
|
**VERPLICHTE WORKFLOW:**
|
||||||
|
|
||||||
|
1. **VOER UIT**: `python scripts/hboi.py` (zonder enige argumenten of filters)
|
||||||
|
2. **GEBRUIK ALLEEN**: De data die wordt gereturned door het script
|
||||||
|
3. **VERBODEN**: Het is **NIET TOEGESTAAN** om zelf criteria voor beroepstaken in te vullen of te verzinnen
|
||||||
|
4. **VERBODEN**: Het is **NIET TOEGESTAAN** om alleen een subset van beroepstaken op te halen in dit scenario
|
||||||
|
5. **ANALYSEER**: Gebruik de volledige dataset om te bepalen welke beroepstaken relevant zijn
|
||||||
|
|
||||||
|
**Voorbeeld gebruik:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python scripts/hboi.py
|
||||||
|
```
|
||||||
|
|
||||||
|
**Resultaat**: JSON object met alle vijf architectuurlagen, elk met alle vijf activiteiten, elk met alle vier niveaus. Gebruik deze volledige dataset om te analyseren welke beroepstaken relevant zijn.
|
||||||
|
|
||||||
|
### Scenario 2: Specifieke Beroepstaak Bekend
|
||||||
|
|
||||||
|
**Wanneer te gebruiken:**
|
||||||
|
|
||||||
|
- Wanneer er al duidelijk is aan welke specifieke architectuurlaag en/of activiteit wordt gewerkt
|
||||||
|
- Wanneer de gebruiker expliciet vraagt naar een specifieke architectuurlaag of activiteit
|
||||||
|
- Wanneer je alleen informatie nodig hebt over één of meerdere specifieke beroepstaken
|
||||||
|
|
||||||
|
**WORKFLOW:**
|
||||||
|
|
||||||
|
#### 2a. Één Specifieke Combinatie (Laag + Activiteit)
|
||||||
|
|
||||||
|
**Wanneer**: Er is één specifieke architectuurlaag EN één specifieke activiteit bekend
|
||||||
|
|
||||||
|
**VOER UIT**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python scripts/hboi.py --layer "Architectuurlaag" --activity "Activiteit"
|
||||||
|
```
|
||||||
|
|
||||||
|
**BELANGRIJK**:
|
||||||
|
|
||||||
|
- Gebruik de exacte namen zoals vermeld in de lijsten hierboven
|
||||||
|
- Voeg **GEEN** `--level` filter toe tenzij expliciet gevraagd naar een specifiek niveau
|
||||||
|
- Haal alle niveaus op voor de combinatie, tenzij expliciet anders gevraagd
|
||||||
|
|
||||||
|
**Voorbeeld:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python scripts/hboi.py --layer "Software" --activity "Realiseren"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Resultaat**: JSON object met alleen de "Software" laag en "Realiseren" activiteit, inclusief alle vier niveaus.
|
||||||
|
|
||||||
|
#### 2b. Één Specifieke Architectuurlaag
|
||||||
|
|
||||||
|
**Wanneer**: Er is één specifieke architectuurlaag bekend, maar geen specifieke activiteit
|
||||||
|
|
||||||
|
**VOER UIT**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python scripts/hboi.py --layer "Architectuurlaag"
|
||||||
|
```
|
||||||
|
|
||||||
|
**BELANGRIJK**:
|
||||||
|
|
||||||
|
- Haal alle activiteiten op voor deze laag
|
||||||
|
- Voeg **GEEN** `--level` filter toe tenzij expliciet gevraagd
|
||||||
|
|
||||||
|
**Voorbeeld:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python scripts/hboi.py --layer "Software"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Resultaat**: JSON object met alleen de "Software" laag, inclusief alle vijf activiteiten en alle vier niveaus.
|
||||||
|
|
||||||
|
#### 2c. Één Specifieke Activiteit
|
||||||
|
|
||||||
|
**Wanneer**: Er is één specifieke activiteit bekend, maar geen specifieke architectuurlaag
|
||||||
|
|
||||||
|
**VOER UIT**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python scripts/hboi.py --activity "Activiteit"
|
||||||
|
```
|
||||||
|
|
||||||
|
**BELANGRIJK**:
|
||||||
|
|
||||||
|
- Haal alle architectuurlagen op voor deze activiteit
|
||||||
|
- Voeg **GEEN** `--level` filter toe tenzij expliciet gevraagd
|
||||||
|
|
||||||
|
**Voorbeeld:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python scripts/hboi.py --activity "Ontwerpen"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Resultaat**: JSON object met alle vijf architectuurlagen, maar alleen de "Ontwerpen" activiteit voor elke laag, inclusief alle vier niveaus.
|
||||||
|
|
||||||
|
#### 2d. Meerdere Specifieke Combinaties
|
||||||
|
|
||||||
|
**Wanneer**: Er zijn meerdere specifieke combinaties van architectuurlagen en/of activiteiten bekend
|
||||||
|
|
||||||
|
**VERPLICHTE WORKFLOW:**
|
||||||
|
|
||||||
|
1. **VOER MEERDERE REQUESTS UIT**: Maak voor elke combinatie een aparte request naar het Python script
|
||||||
|
2. **GEEN COMBINATIE**: Je kunt niet meerdere combinaties in één request ophalen
|
||||||
|
3. **VOOR ELKE COMBINATIE**: Voer het juiste commando uit op basis van wat bekend is
|
||||||
|
|
||||||
|
**Voorbeelden:**
|
||||||
|
|
||||||
|
**Twee specifieke lagen:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python scripts/hboi.py --layer "Software"
|
||||||
|
python scripts/hboi.py --layer "Infrastructuur"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Twee specifieke activiteiten:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python scripts/hboi.py --activity "Ontwerpen"
|
||||||
|
python scripts/hboi.py --activity "Realiseren"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Twee specifieke combinaties:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python scripts/hboi.py --layer "Software" --activity "Realiseren"
|
||||||
|
python scripts/hboi.py --layer "Gebruikersinteractie" --activity "Ontwerpen"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Resultaat**: Meerdere aparte JSON objecten, één voor elke combinatie met alle relevante niveaus.
|
||||||
|
|
||||||
|
#### 2e. Specifiek Niveau (Alleen Wanneer Expliciet Gevraagd)
|
||||||
|
|
||||||
|
**Wanneer**: De gebruiker vraagt expliciet naar een specifiek niveau (bijv. "niveau 2", "level 3")
|
||||||
|
|
||||||
|
**VERPLICHTE WORKFLOW:**
|
||||||
|
|
||||||
|
1. **GEBRUIK `--level` FILTER**: Voeg `--level` toe aan de command alleen wanneer expliciet gevraagd
|
||||||
|
2. **COMBINEER MET ANDERE FILTERS**: Als er ook een specifieke laag en/of activiteit bekend is, combineer de filters
|
||||||
|
3. **GEEN NIVEAU FILTER**: Als er geen specifiek niveau wordt genoemd, haal alle niveaus op
|
||||||
|
|
||||||
|
**Voorbeelden:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Specifieke combinatie op specifiek niveau (expliciet gevraagd)
|
||||||
|
python scripts/hboi.py --layer "Software" --activity "Realiseren" --level 2
|
||||||
|
|
||||||
|
# Specifieke laag op specifiek niveau (expliciet gevraagd)
|
||||||
|
python scripts/hboi.py --layer "Software" --level 3
|
||||||
|
|
||||||
|
# Specifieke activiteit op specifiek niveau (expliciet gevraagd)
|
||||||
|
python scripts/hboi.py --activity "Ontwerpen" --level 4
|
||||||
|
|
||||||
|
# Alle beroepstaken op specifiek niveau (expliciet gevraagd)
|
||||||
|
python scripts/hboi.py --level 2
|
||||||
|
|
||||||
|
# Specifieke combinatie zonder niveau (geen niveau genoemd)
|
||||||
|
python scripts/hboi.py --layer "Software" --activity "Realiseren"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Kritieke Regels
|
||||||
|
|
||||||
|
### VERPLICHT: Gebruik Alleen Gereturned Data
|
||||||
|
|
||||||
|
**KRITIEK**: Je MOET alleen de data gebruiken die wordt gereturned door het Python script.
|
||||||
|
|
||||||
|
**VERBODEN:**
|
||||||
|
|
||||||
|
- ❌ Het verzinnen of invullen van criteria voor beroepstaken
|
||||||
|
- ❌ Het gebruik van kennis over beroepstaken die niet in de gereturned data staat
|
||||||
|
- ❌ Het aannemen van wat een beroepstaak zou moeten zijn zonder de data te raadplegen
|
||||||
|
|
||||||
|
**VERPLICHT:**
|
||||||
|
|
||||||
|
- ✅ Gebruik alleen de `title` velden uit de gereturned JSON
|
||||||
|
- ✅ Baseer alle analyses en conclusies op de daadwerkelijke data
|
||||||
|
- ✅ Raadpleeg altijd de volledige dataset wanneer onzekerheid bestaat
|
||||||
|
|
||||||
|
### VERPLICHT: Scenario 1 bij Onzekerheid
|
||||||
|
|
||||||
|
**KRITIEK**: Wanneer het niet duidelijk is welke beroepstaak relevant is, MOET je Scenario 1 gebruiken (alle beroepstaken ophalen).
|
||||||
|
|
||||||
|
**VERBODEN:**
|
||||||
|
|
||||||
|
- ❌ Het gissen naar welke beroepstaak relevant zou kunnen zijn
|
||||||
|
- ❌ Het ophalen van alleen een subset van beroepstaken "omdat je denkt dat die relevant zijn"
|
||||||
|
- ❌ Het overslaan van het ophalen van alle data bij onzekerheid
|
||||||
|
|
||||||
|
**VERPLICHT:**
|
||||||
|
|
||||||
|
- ✅ Bij twijfel: gebruik altijd Scenario 1
|
||||||
|
- ✅ Haal alle beroepstaken op wanneer je moet bepalen welke relevant zijn
|
||||||
|
- ✅ Analyseer de volledige dataset om te bepalen welke beroepstaken van toepassing zijn
|
||||||
|
|
||||||
|
### VERPLICHT: Meerdere Requests voor Meerdere Combinaties
|
||||||
|
|
||||||
|
**KRITIEK**: Wanneer je meerdere specifieke combinaties nodig hebt, maak je meerdere aparte requests.
|
||||||
|
|
||||||
|
**VERBODEN:**
|
||||||
|
|
||||||
|
- ❌ Het proberen om meerdere combinaties in één request te combineren
|
||||||
|
- ❌ Het ophalen van alle beroepstaken wanneer je alleen specifieke nodig hebt (tenzij Scenario 1 van toepassing is)
|
||||||
|
|
||||||
|
**VERPLICHT:**
|
||||||
|
|
||||||
|
- ✅ Maak voor elke combinatie een aparte request
|
||||||
|
- ✅ Voer elk script commando apart uit
|
||||||
|
- ✅ Verwerk de resultaten van elke request afzonderlijk
|
||||||
|
|
||||||
|
### VERPLICHT: Niveau Filter Alleen bij Expliciete Vraag
|
||||||
|
|
||||||
|
**KRITIEK**: Gebruik de `--level` filter alleen wanneer de gebruiker expliciet vraagt naar een specifiek niveau.
|
||||||
|
|
||||||
|
**VERBODEN:**
|
||||||
|
|
||||||
|
- ❌ Het toevoegen van `--level` "omdat je denkt dat het handig is"
|
||||||
|
- ❌ Het filteren op niveau zonder expliciete vraag van de gebruiker
|
||||||
|
- ❌ Het aannemen van een niveau zonder dat dit wordt genoemd
|
||||||
|
|
||||||
|
**VERPLICHT:**
|
||||||
|
|
||||||
|
- ✅ Gebruik `--level` alleen wanneer expliciet gevraagd (bijv. "niveau 2", "level 3", "op niveau 4")
|
||||||
|
- ✅ Haal standaard alle niveaus op voor de geselecteerde combinatie(s)
|
||||||
|
- ✅ Laat de gebruiker alle niveaus zien tenzij specifiek anders gevraagd
|
||||||
|
|
||||||
|
## Script Gebruik
|
||||||
|
|
||||||
|
### Basis Commando
|
||||||
|
|
||||||
|
Het Python script `scripts/hboi.py` wordt gebruikt om beroepstaken op te halen:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python scripts/hboi.py [--layer LAYER] [--activity ACTIVITY] [--level LEVEL]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Opties
|
||||||
|
|
||||||
|
Alle opties zijn optioneel en kunnen gecombineerd worden:
|
||||||
|
|
||||||
|
- `--layer LAYER`: Filter op architectuurlaag
|
||||||
|
|
||||||
|
- Als niet opgegeven: haalt alle lagen op
|
||||||
|
- Moet exact overeenkomen met een van de vijf geldige lagen
|
||||||
|
- Hoofdlettergevoelig
|
||||||
|
|
||||||
|
- `--activity ACTIVITY`: Filter op activiteit
|
||||||
|
|
||||||
|
- Als niet opgegeven: haalt alle activiteiten op
|
||||||
|
- Moet exact overeenkomen met een van de vijf geldige activiteiten
|
||||||
|
- Hoofdlettergevoelig
|
||||||
|
|
||||||
|
- `--level LEVEL`: Filter op niveau (1, 2, 3, of 4)
|
||||||
|
|
||||||
|
- **ALLEEN gebruiken wanneer expliciet gevraagd naar een specifiek niveau**
|
||||||
|
- Als niet opgegeven: haalt alle niveaus op
|
||||||
|
|
||||||
|
- `-h` of `--help`: Toont gebruiksinformatie en sluit af
|
||||||
|
|
||||||
|
### Response Formaat
|
||||||
|
|
||||||
|
**Scenario 1 - Alle beroepstaken (zonder filters):**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Gebruikersinteractie": {
|
||||||
|
"Analyseren": {
|
||||||
|
"1": { "title": "Identificeren van de kernelementen..." },
|
||||||
|
"2": { "title": "Benchmarken van functionaliteit..." },
|
||||||
|
"3": { "title": "Analyseren van de eindgebruiker..." },
|
||||||
|
"4": { "title": "Analyseren van maatschappelijke..." }
|
||||||
|
},
|
||||||
|
"Adviseren": {
|
||||||
|
"1": { "title": "..." },
|
||||||
|
"2": { "title": "..." },
|
||||||
|
"3": { "title": "..." },
|
||||||
|
"4": { "title": "..." }
|
||||||
|
},
|
||||||
|
...
|
||||||
|
},
|
||||||
|
"Organisatieprocessen": {
|
||||||
|
...
|
||||||
|
},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Scenario 2a - Specifieke combinatie (zonder niveau filter):**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Software": {
|
||||||
|
"Realiseren": {
|
||||||
|
"1": { "title": "..." },
|
||||||
|
"2": { "title": "..." },
|
||||||
|
"3": { "title": "..." },
|
||||||
|
"4": { "title": "..." }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Scenario 2b - Specifieke laag (zonder niveau filter):**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Software": {
|
||||||
|
"Analyseren": {
|
||||||
|
"1": { "title": "..." },
|
||||||
|
"2": { "title": "..." },
|
||||||
|
"3": { "title": "..." },
|
||||||
|
"4": { "title": "..." }
|
||||||
|
},
|
||||||
|
"Adviseren": {
|
||||||
|
"1": { "title": "..." },
|
||||||
|
...
|
||||||
|
},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Scenario 2e - Specifieke combinatie op specifiek niveau:**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Software": {
|
||||||
|
"Realiseren": {
|
||||||
|
"3": {
|
||||||
|
"title": "..."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Filter Logica
|
||||||
|
|
||||||
|
Filters worden in de volgende volgorde toegepast:
|
||||||
|
|
||||||
|
1. **Architectuurlaag filter**: Reduceert de dataset tot alleen de opgegeven laag
|
||||||
|
2. **Activiteit filter**: Filtert activiteiten binnen de overgebleven lagen
|
||||||
|
3. **Niveau filter**: Filtert niveaus binnen de overgebleven activiteiten
|
||||||
|
|
||||||
|
Filters zijn **additief**: alle opgegeven filters moeten worden voldaan voor een entry om in het resultaat te verschijnen.
|
||||||
|
|
||||||
|
## Validatie en Foutafhandeling
|
||||||
|
|
||||||
|
### Validatie
|
||||||
|
|
||||||
|
Het script valideert automatisch:
|
||||||
|
|
||||||
|
1. **Architectuurlaag**: Controleert of de opgegeven laag exact overeenkomt met een van de vijf geldige lagen
|
||||||
|
2. **Activiteit**: Controleert of de activiteit exact overeenkomt met een van de vijf geldige activiteiten
|
||||||
|
3. **Niveau**: Controleert of het niveau een geldige waarde is (1, 2, 3, of 4)
|
||||||
|
4. **Data bestand**: Controleert of het benodigde JSON bestand bestaat
|
||||||
|
|
||||||
|
### Foutmeldingen
|
||||||
|
|
||||||
|
**Ongeldige architectuurlaag:**
|
||||||
|
|
||||||
|
```
|
||||||
|
Error: Invalid architecture layer: Ongeldige Laag
|
||||||
|
Valid options: Gebruikersinteractie, Organisatieprocessen, Infrastructuur, Software, Hardwareinterfacing
|
||||||
|
```
|
||||||
|
|
||||||
|
**Ongeldige activiteit:**
|
||||||
|
|
||||||
|
```
|
||||||
|
Error: Invalid activity: Ongeldige Activiteit
|
||||||
|
Valid options: Analyseren, Adviseren, Ontwerpen, Realiseren, Manage & Control
|
||||||
|
```
|
||||||
|
|
||||||
|
**Ongeldig niveau:**
|
||||||
|
|
||||||
|
```
|
||||||
|
Error: Invalid level: 5 (must be 1-4)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Ontbrekend data bestand:**
|
||||||
|
|
||||||
|
```
|
||||||
|
Error: Data file not found: /path/to/hboi-nl.json
|
||||||
|
```
|
||||||
|
|
||||||
|
**Geen resultaten:**
|
||||||
|
|
||||||
|
```
|
||||||
|
No professional tasks found with the specified filters
|
||||||
|
```
|
||||||
|
|
||||||
|
Alle foutmeldingen worden naar stderr geschreven. Het script eindigt met exit code 1 bij fouten.
|
||||||
|
|
||||||
|
## Exit Codes
|
||||||
|
|
||||||
|
- `0`: Succesvol uitgevoerd
|
||||||
|
- `1`: Fout opgetreden (ongeldige input, ontbrekend bestand, geen resultaten)
|
||||||
|
|
||||||
|
## Best Practices Samenvatting
|
||||||
|
|
||||||
|
1. **Bij onzekerheid**: Gebruik altijd Scenario 1 (alle beroepstaken ophalen)
|
||||||
|
2. **Gebruik alleen gereturned data**: Verzin geen criteria, gebruik alleen wat het script retourneert
|
||||||
|
3. **Meerdere combinaties**: Maak meerdere aparte requests
|
||||||
|
4. **Niveau filter**: Alleen gebruiken wanneer expliciet gevraagd
|
||||||
|
5. **Exacte namen**: Laag- en activiteitsnamen zijn hoofdlettergevoelig en moeten exact overeenkomen
|
||||||
|
6. **Alle niveaus**: Haal standaard alle niveaus op tenzij expliciet anders gevraagd
|
||||||
|
7. **Specifieke combinaties**: Gebruik `--layer` en `--activity` samen wanneer beide bekend zijn
|
||||||
364
skills/competenties/data/hboi-nl.json
Normal file
364
skills/competenties/data/hboi-nl.json
Normal file
@@ -0,0 +1,364 @@
|
|||||||
|
{
|
||||||
|
"Gebruikersinteractie": {
|
||||||
|
"Analyseren": {
|
||||||
|
"1": {
|
||||||
|
"title": "Identificeren van de kernelementen van een externe opdracht waarbij verduidelijking wordt gezocht bij opdrachtgever, eindgebruikers en experts \n\nof\n\nInventariseren van opdrachtgevers- en eindgebruikersbehoeften en deze vertalen naar ict-middelen \n\nof\n\nOriënteren op bestaande interactieve concepten, diensten en producten"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Benchmarken van functionaliteit, gebruikerservaring, toegankelijkheid, en andere ontwerpaspecten voor een opdrachtgever \n\nof\n\nAnalyseren van bestaande producten of diensten in relatie tot gebruikersbehoeften en kernwaarden van de opdrachtgever \n\nof\n\nInventariseren van relevante data-visualisaties voor een dataset"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Analyseren van de eindgebruiker en gebruikersinteractie en -ervaring, zowel individueel (fysiek, psychologisch, persoonlijke karakteristieken) als in grotere maatschappelijke context (sociaal, cultureel, ethisch, technologisch) \n\nof\n\nAnalyseren van actuele en opkomende interactieve technologieën \n\nof\n\nDoorlopend evalueren van het effect van de interventie op de gebruikerservaring"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Analyseren van maatschappelijke en/of domeinspecifieke trends & kansen en hierover op strategisch niveau communiceren met de key stakeholders \n\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Adviseren": {
|
||||||
|
"1": {
|
||||||
|
"title": "Adviseren over interactieontwerp passend bij opdracht, opdrachtgever, gebruikersbehoeften en voorafgaande inventarisaties \n\nof\n\nAdviseren over interactieontwerp op basis van een eenvoudige, eigen of gegeven bruikbaarheidsanalyse \n\n"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Geven van een gemotiveerd, concreet advies over de te gebruiken interactieconcepten en/of -technieken \n\nof\n\nVoorstellen doen over de realisatiekeuzes, zoals de te gebruiken technologieën, daarbij rekening houdend met de professionele context en eindgebruikers \n\nof\n\nAdviseren over de doelstellingen van de huidige en volgende iteraties"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Vertalen van een analyse naar strategische aanbevelingen voor realisatie van gebruikersinteractie, inclusief advies voor een geschikt ontwerpproces \n\nof\n\nAdviseren welke vormen van datavisualisatie voor de opdrachtgever het gewenste effect zullen hebben, rekening houdend met kwaliteitseisen en ethische randvoorwaarden \n\nof\n\nAdviseren over interventies op de gebruikerservaring in de huidige en volgende iteraties"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Extrapoleren van technologische en maatschappelijke trends en deze vertalen naar een advies voor het ontwerp op strategisch niveau dat een visie omvat op de gebruikerservaring en de relatie tussen gebruiker en product/dienst \n\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Ontwerpen": {
|
||||||
|
"1": {
|
||||||
|
"title": "Vertalen van adviezen in een eenvoudige gebruikersinteractie via een gegeven interactieproces, bijv. met een gangbare prototypingtechniek \n\nof\n\nOntwerpen van een test waarmee essentiële interactieproblemen geïdentificeerd kunnen worden \n\nof\n\nOntwerpen van een visualisatie van een eenvoudige dataset"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Vertalen van adviezen in een ontwerp van gedetailleerde gebruikersinteractie met verschillende prototypingtechnieken \n\nof\n\nOntwerpen van testen waarmee de doelstellingen van de iteratie geëvalueerd worden \n\nof\n\nOnder eigen regie toepassen van een interactieontwerpproces in samenwerking met stakeholders"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Vertalen van adviezen naar een concreet en gedetailleerd gebruikersinteractieontwerp, passend bij de projectfasering, hierbij gebruik makend van een adequaat en gemotiveerd ontwerpproces \n\nof\n\nOntwerpen van een voor de fase passende teststrategie waarmee de doelstellingen vanuit het perspectief van de beoogde gebruikers geëvalueerd worden \n\nof\n\n"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Ontwerpen van een gebruikersinteractie, rekening houdend met langetermijnstrategie en organisatiedoelstellingen van de opdrachtgever en anticiperend op relevante maatschappelijke trends en technologische ontwikkelingen \n\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Realiseren": {
|
||||||
|
"1": {
|
||||||
|
"title": "Realiseren en testen van eenvoudige interactieve producten of diensten op basis van een interactieontwerp, waarbij gebruik wordt gemaakt van gangbare tools, toegankelijkheidsrichtlijnen en/of huisstijl \n\n"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Met verschillende tools en technieken realiseren en testen van het eigen interactieontwerp voor interactieve producten of diensten voor meerdere type eindgebruikers \n\nof\n\nRealiseren van een visualisatie van een dataset voor verschillende typen eindgebruikers \n\n"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Realiseren, testen en overdragen van de gebruikerservaring van een interactief product, prototype, systeem of dienst op basis van het ontwerp met voor de projectfasering passende tools en technieken \n\n"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Realiseren van toekomstbestendige producten, diensten of prototypes die innovatief en duurzaam zijn op basis van gebruikersinteractieontwerp en tools en technieken \n\nof\n\nValidatie met key stakeholders van visie en strategie \n\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Manage & Control": {
|
||||||
|
"1": {
|
||||||
|
"title": "Vastleggen van de belangrijkste beslissingen, resultaten en inzichten met betrekking tot het interactieontwerp in een iteratief proces \n"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Toepassen van standaarden (interactieontwerprichtlijnen, technieken en methoden), passend binnen de professionele context \n\nof\n\nBewaken en overdragen van het interactie-ontwerp bij het gerealiseerde interactieve product of dienst \n"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Bewaken van de kernwaarden en gebruikerservaring van product, organisatie of dienst in iedere fase van het ontwikkel- en productieproces \n\nof\n\nPlanmatig en methodisch vastleggen van designkeuzes voor alle stakeholders binnen een bedrijf \n\n"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Vanuit gebruikersinteractie-perspectief aansturen van een complex project op strategisch niveau met inachtneming van korte- en langetermijndoelen en met afstemming met alle betrokken stakeholders \n\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Organisatieprocessen": {
|
||||||
|
"Analyseren": {
|
||||||
|
"1": {
|
||||||
|
"title": "Analyseren van een enkel(e) organisatie, organisatieproces of procesbesturing op operationeel niveau met bijbehorende gegevensstromen en (gestructureerde) databehoeften \n\nof\n\nAnalyseren van knelpunten en oorzaak-gevolgrelaties vanuit de invalshoek van de informatievoorziening \n\nof\n\nAnalyseren van beschikbare ict- mogelijkheden in het veld"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Analyseren van meerdere operationele en tactische organisatieprocessen, inclusief kwaliteit van de bijbehorende data en van de huidige en toekomstige ict-voorziening \n\nof\n\nAnalyseren van de samenhang van knelpunten en oorzaak-gevolgrelaties \n\nof\n\nVaststellen van de ict-requirements vanuit de behoefte van relevante stakeholders"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Analyseren van de consequenties van een (strategische) koerswijziging voor organisatieprocessen en bijbehorende informatievoorziening \n\nof\n\nAnalyseren (kwantitatief en/of kwalitatief) van de huidige en toekomstige situatie op het gebied van bijvoorbeeld beleid, strategie, alignment en architectuur \n\nof\n\nAnalyseren van de acceptatie van en eventuele weerstanden tegen de huidige en vernieuwde technologie en organisatieprocessen"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Uitvoeren van grondig theoretisch onderbouwd toegepast onderzoek naar technologische (interorganisationele) procesinnovaties \n\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Adviseren": {
|
||||||
|
"1": {
|
||||||
|
"title": "Adviseren over verbeteringen voor een enkel organisatieproces op het terrein van organisatie(structuur), processen en gestructureerde data, met inachtneming van de mogelijkheden van ict \n\n"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Samenhangende oplossingen adviseren voor knelpunten op het terrein van organisatiestructuur, processtructuur en informatievoorziening \n\nof\n\nAdviseren over nieuwe ict-mogelijkheden, waaronder pakketselectie en advies \n\n"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Adviseren over de inrichting van en afstemming tussen business en ict (alignment en governance), rekening houdend met de doelstellingen van de organisatie \n\nof\n\nAdviseren over een veranderkundige aanpak bij de invoering van nieuwe, duurzame ict-mogelijkheden en organisatieprocessen \n\nof\n\nAdviseren over oplossingen voor gestructureerde en ongestructureerde data, rekening houdend met ethische en juridische aspecten"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Adviseren van organisatorische en technologische (interorganisationele) procesinnovaties, waarbij rekening wordt gehouden met alle relevante interne en externe stakeholders, de sociale context (mens, maatschappij en organisatie) en ethische en juridische aspecten \n\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Ontwerpen": {
|
||||||
|
"1": {
|
||||||
|
"title": "Ontwerpen van enkele organisatieprocessen, enkele gegevensstromen van gestructureerde data, de inrichting van een organisatieonderdeel en/of een deel van de informatievoorziening \n\nof\n\nOpstellen van een eenvoudig datamanagementplan \n\nof\n\nOpstellen van een eenvoudig implementatieplan"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Ontwerpen van samenhangende organisatieprocessen: functionele organisatiestructuur, procesmanagement en informatievoorziening, rekening houdend met security en privacywetgeving \n\nof\n\nOntwerpen van de interfaces voor een applicatie in het applicatielandschap (mappings) \n"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Ontwerpen van de architectuur van organisatieprocessen en/of besturingsmodellen, inclusief bijbehorende beheersing met behulp van data-oplossingen, informatievoorziening en veranderproces \n\nof\n\nOntwerpen van een veranderkundige aanpak met bijbehorende interventies \n\n"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Evalueren en valideren van mogelijke procesinnovaties, onder andere aan de hand van data \n\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Realiseren": {
|
||||||
|
"1": {
|
||||||
|
"title": "Beschrijven en opstellen van werkinstructies, functie- en rolbeschrijvingen en procedures voor een (aangepast) proces \n\nof\n\nTesten van de aansluiting van de organisatieprocessen met de opgeleverde informatievoorziening \n\n"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Realiseren van de invoering en acceptatie van procedures in samenhang met nieuwe of gewijzigde informatievoorziening en besturing \n\nof\n\nGenereren en valideren van een proof of concept van een applicatie \n\nof\n\nInrichten van een standaardapplicatie"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Realiseren van invoering en acceptatie van gewijzigde organisatieprocessen op basis van een implementatieplan \n\nof\n\nCreëren van draagvlak voor veranderingen onder alle relevante (interne) stakeholders \n\n"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Bouwen en valideren van (prototypen van) nieuwe organisatieprocessen en technologische oplossingen voor (interorganisationele) procesinnovaties \n\nof\n\nCreëren van breed draagvlak voor veranderingen onder alle relevante interne en externe stakeholders \n\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Manage & Control": {
|
||||||
|
"1": {
|
||||||
|
"title": "Verrichten van onderhoudswerkzaamheden aan de procesdocumentatie (bijv. business rules, principes en procesmodellen) \n\nof\n\nMeten en bewaken van ict-processen aan de hand van data \n\nof\n\nBeschrijven van de veranderbehoefte voor een enkel deelproces"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Inrichten, onderhouden en actualiseren van (functionele) beheerprocessen \n\nof\n\nMeten en bewaken van organisatieprocessen aan de hand van data \n\nof\n\nSignaleren van de veranderbehoefte van meerdere operationele en tactische organisatieprocessen"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Formuleren en actualiseren van principes, business rules en modellen van procesarchitectuur \n\nof\n\nMeten en bewaken van de strategische doelen van de organisatie aan de hand van data \n\nof\n\nProactief signaleren van behoefte aan verandering in alle organisatieprocessen en bijbehorende veranderprocessen in gang zetten"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Bedenken van nieuwe organisatorische en technologische oplossingen voor het beheren van (interorganisationele) procesinnovaties \n\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Infrastructuur": {
|
||||||
|
"Analyseren": {
|
||||||
|
"1": {
|
||||||
|
"title": "Analyseren van een eenvoudige infrastructuur volgens een standaardmethode en op basis van gegeven kwaliteitseisen, bijvoorbeeld security \n\n"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Analyseren van de kwaliteit van een bestaande infrastructuur en de daarop aanwezige services aan de hand van gangbare methoden en standaarden \n\nof\n\nAnalyseren van aan infrastructuur gerelateerde incidenten, problemen en security-bedreigingen \n\n"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Analyseren van trends en best practices en deze vertalen naar gewenste of benodigde ontwikkelingen in de enterprise infrastructuur \n\nof\n\nUitvoeren van een requirementsimpact- of gap-analyse voor een enterprise infrastructuur om kwaliteitseisen op te stellen \n\nof\n\nAnalyseren van technische mogelijkheden en privacy concerns van systemen voor beheer en verwerking van data"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Uitvoeren van een grondig, theoretisch onderbouwd en toegepast onderzoek naar referentiearchitecturen, best practices en standaarden voor cloud-agnostische enterprise infrastructuren of high performance computing om het volwassenheidsniveau bij verschillende organisaties te kunnen bepalen \n\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Adviseren": {
|
||||||
|
"1": {
|
||||||
|
"title": "Aanbevelingen doen over een opzet van, of aanpassingen aan, een eenvoudige infrastructuur \n"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Adviseren over inrichting en beheer van een (cloudgebaseerde) infrastructuur met onderbouwde keuzes vanuit kwaliteitseisen, beschikbare technologie en beheermethodes \n\nof\n\nMaatregelen voorstellen die de informatiebeveiliging van een infrastructuur verbeteren \n\nof\n\nAdviseren over de mogelijke migratie naar of keuze voor bijvoorbeeld een private, hybride of publieke cloud"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Adviseren over zakelijke rechtvaardiging en business-IT alignment van enterprise infrastructuren, inclusief beheer-, beveiliging- en privacy aspecten, in relatie tot informatie- en referentiearchitecturen \n\nof\n\nAdviseren over de inrichting van de infrastructuur voor de verwerking van grote hoeveelheden data \n\nof\n\nAdviseren over een cloudmanagementplatform voor DevOps"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Adviseren over de architectuur van een enterprise infrastructuur of high performance computing, inclusief beheer-, beveiliging- en privacyaspecten, in relatie tot informatie- en referentiearchitecturen, innovatie, maatschappelijke en internationale ontwikkelingen \n\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Ontwerpen": {
|
||||||
|
"1": {
|
||||||
|
"title": "Opstellen van specificaties voor een eenvoudige, bijvoorbeeld cloudgebaseerde, infrastructuur volgens een standaardmethode \n\n"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Ontwerpen van een infrastructuur door specificatie van technieken op basis van gegeven requirements met betrekking tot kwaliteitseisen zoals beschikbaarheid, performance, schaalbaarheid, security. privacy en duurzaamheid \n\n"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Ontwerpen van een cloud-agnostische enterprise infrastructuur door specificatie van cloudtechnieken op basis van zelf opgestelde requirements binnen de kaders van enterprise architectuur, referentiearchitecturen en/of standaarden \n\nof\n\nOntwerpen van een security operations center (SOC) voor het voorkomen en oplossen van security-incidenten en -problemen \n\n"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Ontwerpen van cloud-agnostische enterprise infrastructuren, inclusief de processen, om een hoger volwassenheidsniveau te bereiken \n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Realiseren": {
|
||||||
|
"1": {
|
||||||
|
"title": "Inrichten, testen en beschikbaar stellen van (een proof of concept van) een eenvoudige infrastructuur \n"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Inrichten en testen van (een proof of concept van) een cloudgebaseerde infrastructuur met gebruik van (cloud)technieken waarmee voldaan wordt aan ontwerp en daarin gestelde eisen \n\nof\n\nOpstellen en uitvoeren van een testplan voor een infrastructuur om de kwaliteit te toetsen op basis van de risico's \n\n"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Realiseren van (een proof of concept van) een cloud-agnostische infrastructuur door specificatie van cloudtechnieken binnen de kaders van enterprise architectuur, referentiearchitecturen en/of standaarden \n\nof\n\nRealiseren van een cloudmanagementplatform voor DevOps \n\n"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Toepassen van volwassenheidsmodellen bij het realiseren van cloud-agnostische enterprise infrastructuren \n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Manage & Control": {
|
||||||
|
"1": {
|
||||||
|
"title": "Opzetten en documenteren van standaardbeheerprocessen en werkprocedures voor beheer van een eenvoudige, bijvoorbeeld cloudgebaseerde, infrastructuur \n\n"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Implementeren van het beheer van technologische ontwikkelingen m.b.t. de (cloudgebaseerde) infrastructuur \n\nof\n\nImplementeren van delen van beheerprocessen \n\n"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Implementeren van beheerprocessen voor een cloud-agnostische enterprise infrastructuur \n\nof\n\nInbedden van een vernieuwde infrastructuur in de organisatie \n\n"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Vormgeven van Business - IT alignment en IT governance in relatie tot een cloud-agnostische enterprise infrastructuur \n\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Software": {
|
||||||
|
"Analyseren": {
|
||||||
|
"1": {
|
||||||
|
"title": "Verzamelen en valideren van functionele eisen voor een softwaresysteem met één stakeholder volgens een standaardmethode en het opstellen van acceptatiecriteria \n\nof\n\nUitvoeren van een analyse van de functionaliteit van een bestaand softwaresysteem of bestaande component om de (on)mogelijkheden voor aanpassing vast te stellen \n\nof\n\nAnalyseren of een gegeven dataset informatie oplevert voor een gegeven toepassing"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Uitvoeren van een requirementsanalyse voor een softwaresysteem met verschillende stakeholders, rekening houdend met duurzaamheidsaspecten en andere kwaliteitseigenschappen waaronder security \n\nof\n\nUitvoeren van een analyse om de functionaliteit, veiligheid, ontwerp, interfaces e.d. van een bestaand softwaresysteem of bestaande component te formuleren en te valideren \n\nof\n\nBeoordelen van de kwaliteit van een dataset met onder andere beschrijvende statistiek en visualisaties"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Uitvoeren van een requirementsanalyse voor een softwaresysteem met verschillende stakeholders in een context van bestaande systemen \n\nof\n\nDefiniëren van acceptatiecriteria aan de hand van kwaliteitseigenschappen en een uitgevoerde risicoanalyse met onder andere aandacht voor duurzaamheids-, security- en privacyaspecten en toegankelijkheid \n"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Analyse uitvoeren op complexe software-in-software systemen om alle niet-functionele requirements, waaronder safety, security en privacy en de compliance daarvan met wet- en regelgeving te inventariseren om te komen tot best practices en vernieuwde ict-standaarden \n\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Adviseren": {
|
||||||
|
"1": {
|
||||||
|
"title": "Aanbevelingen doen over specifieke requirements van een softwaresysteem op grond van onderzoek naar bestaande, vergelijkbare systemen \n"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Adviseren over aanschaf en selectie van softwarecomponenten bij het ontwikkelen van een softwaresysteem op basis van functionaliteit en kosten \n\nof\n\nAdviseren over een onderdeel van een architectuur of een beperkt softwaresysteem \n\n"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Adviseren in de keuze van een data-architectuur voor een dataoplossing, opgebouwd uit bestaande en nieuwe databronnen, waarbij kostenaspecten en kwaliteitseisen zoals beschikbaarheid, performance, security en schaalbaarheid een rol spelen \n\nof\n\nAdviseren over de toepassing van nieuwe technologieën (als machine learning en artificial intelligence) alsmede de impact daarvan op aspecten als duurzaamheid, security en privacy \n\nof\n\nAdviseren over de inrichting van een softwareontwikkelproces, waaronder het test- en releaseproces"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Definiëren van een visie ten aanzien van toekomstige technologie in afstemming met stakeholders en compliance met wet- en regelgeving op aspecten van security en privacy \n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Ontwerpen": {
|
||||||
|
"1": {
|
||||||
|
"title": "Maken van een ontwerp voor een softwaresysteem, inclusief database, met modelleertechnieken volgens een standaardmethode \n\nof\n\nOpstellen van testscripts voor eindgebruikers/acceptatietests \n\n"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Opstellen van een ontwerp voor een softwaresysteem, rekening houdend met het gebruik van bestaande componenten en libraries \n\nof\n\nToepassen van ontwerpkwaliteitscriteria rekening houdend met (duurzaamheids)aspecten zoals privacy, grote hoeveelheden data en gebruik op diverse devices \n\nof\n\nVaststellen van de kwaliteit van het ontwerp, bijvoorbeeld door toetsing of prototyping, rekening houdend met de geformuleerde kwaliteitseigenschappen\n\nof\n\nOpstellen van testontwerpen volgens een gegeven teststrategie"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Opstellen van een softwarearchitectuur voor een softwaresysteem, opgebouwd uit bestaande en nieuwe systemen, rekening houdend met meerdere stakeholders en kwaliteitseisen \n\nof\n\nOpstellen van teststrategie voor systeem- en compliancytesten \n\nof\n\nOntwerpen van de data-architectuur en de modelarchitectuur inclusief een teststrategie voor de data en de machine learning-modellen"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Opstellen van een herbruikbare softwarearchitectuur voor (cross-platform) softwaresystemen opgebouwd uit bestaande en nieuwe (cloud-based) systemen, rekening houdend met meerdere stakeholders, kwaliteitskenmerken en compliance met wet- en regelgeving \n\nof\n\nOntwerpen van een softwaresysteem of framework voor het oplossen van een generieke klasse van problemen \n\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Realiseren": {
|
||||||
|
"1": {
|
||||||
|
"title": "Op gestructureerde wijze bouwen, testen en beschikbaar stellen van een eenvoudig softwaresysteem dat werkt met gestructureerde data en voldoet aan de basis kwaliteitseisen \n\nof\n\nOpstellen en uitvoeren van (geautomatiseerde) unittesten \n\n",
|
||||||
|
"info": "## Opmerkingen\n\nDenk bij het bevragen van een database ook aan het bevragen van een (REST API) backend vanuit de frontend.\n\n## Beroepsproducten\n\nBij het uitvoeren van deze beroepstaak kunnen onder andere de volgende beroepstaken worden gemaakt:\n- Werkende code;\n- Werkende database;\n- Webpagina's/website.\n\n## Links en bronnen\n\n- [Backend development](https://www.youtube.com/playlist?list=PLKssF68zVDQ7Byksmqyi69MyTtxunGBEN)"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Bouwen van een softwaresysteem dat bestaat uit meerdere subsystemen, gebruikmakend van bestaande of gegenereerde componenten en de gemaakte keuze kunnen beredeneren \n\nof\n\nIntegreren van softwarecomponenten in een bestaand softwaresysteem, waarbij onder andere de integriteit, veiligheid en systeemprestaties bewaakt worden \n\nof\n\nOpstellen en uitvoeren van (geautomatiseerde) unit- en UI-testen"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Bouwen, testen en beschikbaar stellen van een schaalbaar softwaresysteem dat aansluit bij bestaande systemen, eventueel in de cloud, volgens een ontworpen of gegenereerde architectuur met onderbouwd gebruik van frameworks \n\nof\n\nOpstellen en uitvoeren van regressie-, integratie- en systeemtesten en de uitkomsten ervan evalueren, verwerken en opvolgen \n\nof\n\nRefactoren van een bestaande applicatie m.b.v. design patterns"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Bouwen en beschikbaar stellen van (zelflerende) softwaresysteem gebaseerd op een model, algoritme of data met wetenschappelijk aantoonbare correcte werking en antwoorden gevend op ethische vragen \n\nof\n\nOpstellen en uitvoeren van (herbruikbare) compliancytesten \n\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Manage & Control": {
|
||||||
|
"1": {
|
||||||
|
"title": "Inrichten en gebruik maken van beheersysteem ter ondersteuning van softwareontwikkeling in teamverband \n\n",
|
||||||
|
"info": "## Links en bronnen\n\n- [GIT gebruik playlist](https://www.youtube.com/playlist?list=PLKssF68zVDQ4jNCrTlUE2UMhOucbvzyeg)"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Beheren en gebruiken van een ontwikkelstraat ter ondersteuning van softwareontwikkeling in teams, waardoor onder andere continuous integration (CI) tot de mogelijkheden behoort \n\nof\n\nToepassen van methoden en technieken om een softwareontwikkelproces te managen en de kwaliteit ervan te borgen \n\n"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Uitvoeren van configuratie-, change- en releasemanagement in afstemming met infrastructuurmanagement waardoor CI/CD tot de mogelijkheden behoort \n\nof\n\nInrichten en evalueren van een ontwikkelstraat met CI/CD ondersteuning \n\n"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "(Door)Ontwikkelen van methoden en technieken voor het softwareontwikkelproces met als doel de effectiviteit en kwaliteit van het softwaresysteem te verbeteren alsmede de kosten en doorlooptijd van het softwareontwikkelproces te verkleinen \n\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Hardwareinterfacing": {
|
||||||
|
"Analyseren": {
|
||||||
|
"1": {
|
||||||
|
"title": "Verzamelen van kwaliteitseisen en acceptatiecriteria voor een systeem, bijv. een embedded of ander technisch (deel)systeem op basis van een domeinanalyse \n\nof\n\nBeschrijven van de (fysieke) architectuur van een systeem, bijv. een embedded of ander technisch (deel)systeem \n\nof\n\nBeschrijven van de toepasbaarheid van actuatoren en sensoren"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Uitvoeren van een requirementsanalyse voor een (deel)systeem, inclusief hardware- en software, rekening houdend met domeinaspecten en relevante kwaliteitseigenschappen waaronder security, safety en duurzaamheid \n\nof\n\nUitvoeren van een protocolanalyse \n\nof\n\nOpstellen van een acceptatietest voor een systeem aan de hand van de kwaliteitseisen"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Uitvoeren van een requirementsanalyse in afstemming met stakeholders voor een gedistribueerd systeem rekening houdend met de kwaliteitseisen inclusief timing, resourcegebruik, performance, security (netwerken), safety en andere relevante niet functionele eisen. (bijv. met machine learning-componenten) \n\nof\n\nOpstellen van een acceptatietestplan en een integratietestplan aan de hand van de kwaliteitseisen \n\n\n"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Onderzoek doen naar emerging technologies, bijv. machine learning, voor toepassing in gedistribueerde systemen \n\nof\n\nOnderzoek doen naar security, safety, privacy en duurzaamheidsaspecten binnen emerging technologies \n\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Adviseren": {
|
||||||
|
"1": {
|
||||||
|
"title": "Een onderbouwd technisch advies geven voor een eenvoudig (deel van een) systeem \n\nof\n\nAanbevelingen doen voor de initiële structuur en functionaliteit van een gegeven (deel)systeem, zowel op hardware- als softwaregebied \n\n"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Uitbrengen van een technisch advies voor de architectuur van een (deel van een) systeem inclusief de hardware- en software-componenten, op basis van de requirementsanalyse \n\nof\n\nAdviseren over het koppelen van hardwaresystemen en softwarecomponenten \n\n"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Uitbrengen van een technisch advies over een te realiseren gedistribueerd systeem, inclusief hardware- en softwarecomponenten en koppelingen op basis van de requirementsanalyse en in relatie tot referentiearchitecturen, innovatie en internationale ontwikkelingen en standaarden \n\nof\n\nAdviseren over de inrichting van een ontwikkel- en testproces \n\n"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Uitbrengen van een technisch advies over de toepassing van emerging technologies om een gedistribueerd systeem te realiseren \n\nof\n\nAdviseren over toekomstgerichte inrichting van gedistribueerde systemen \n\nof\n\nDefiniëren van visie op technologieroadmap en deze afstemmen met key stakeholders"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Ontwerpen": {
|
||||||
|
"1": {
|
||||||
|
"title": "Ontwerpen van een (deel van een) systeem, bijv. een embedded of ander technisch systeem, op basis van gegeven hardware \n\nof\n\nOntwerpen van een eenvoudig protocol \n"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Methodisch ontwerpen van een (deel van een) systeem op basis van requirements met zelfgekozen hardware- en softwarecomponenten \n\nof\n\nIntegreren van een hardware interface In een applicatie (bijv. een applicatie-driver) \n"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Ontwerpen van een gedistribueerd systeem inclusief bepaling van relevante hardware- en softwarecomponenten op basis van de kwaliteitseisen inclusief niet-functionele eisen zoals timing, resourcegebruik, onderhoudbaarheid, safety en security \n\nof\n\nOntwerpen van een protocol voor betrouwbare productie en transmissie van grote hoeveelheden data \n\n"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Ontwerpen van gedistribueerde systemen met gebruik van hardware synthese en/of artificial intelligence \n\nof\n\nOntwerpen van een gedistribueerd systeem met gebruik van machine learning-componenten inclusief bepaling van actuatoren, sensoren, circulariteit, CO2-footprint, timing, resourcegebruik en performance \n\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Realiseren": {
|
||||||
|
"1": {
|
||||||
|
"title": "Software schrijven voor een ontworpen (deel van een) systeem, voorzien van actuatoren en sensoren \n\nof\n\nTesten van een gerealiseerd (deel van een) systeem \n"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Realiseren van een ontworpen (deel van een) systeem en met behulp van software de koppelingen met hardwarecomponenten realiseren \n\nof\n\nSchrijven en testen van ontworpen (delen van) systemen en hardware interfaces (bijv. applicatiedriver-software) \n\n"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Realiseren van een gedistribueerd systeem of deel ervan op basis van een gegeven ontwerp, inclusief de relevante kwaliteitseisen \n\nof\n\nOpstellen en uitvoeren van een acceptatieprocedure van een gerealiseerd systeem \n"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Realiseren van een compleet systeem waarbij gebruik gemaakt wordt van hardware synthese (VHDL) of artificial intelligence \n\nof\n\nRealiseren van een compleet systeem met machine learning-elementen inclusief netwerk, hardware en systeemsoftware \n\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Manage & Control": {
|
||||||
|
"1": {
|
||||||
|
"title": "Installeren en gebruiken van een ontwikkel- en testplatform ten behoeve van hardware/software, inclusief tools \n"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Beoordelen van een gegeven ontwikkelomgeving op basis van kwaliteitseisen \n\nof\n\nMonitoren, rapporteren en beoordelen van een gegeven testontwikkelomgeving \n\n"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Opzetten en gebruikmaken van versiebeheer, releasemanagement, teamworkondersteuning en automated testing voor hard- en softwaresystemen \n\n"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Aansturen van co-designteams voor het beheren van het realisatieproces van de hardware, software en synthese, inclusief de ontwikkelomgeving \n\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
153
skills/competenties/data/vaardigheden-nl.json
Normal file
153
skills/competenties/data/vaardigheden-nl.json
Normal file
@@ -0,0 +1,153 @@
|
|||||||
|
{
|
||||||
|
"Juiste kennis ontwikkelen": {
|
||||||
|
"1": {
|
||||||
|
"title": "Student bepaalt welke kennis, noodzakelijk voor het maken van een product of het uitvoeren van een taak, verkregen dient/moet worden en stelt voor het leren hiervan learning stories/tasks met leerdoelen op. Student toont aan welke bronnen zijn gebruikt en welke kennis die zich eigen heeft gemaakt. Student past deze kennis toe in producten/uitvoeren van een taak en kan deze kennis overdragen aan peers."
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "niveau 1 + \n\nStudent kijkt naar gangbare en toepasselijke kennis en technieken in het beroepenveld, maakt deze zich eigen en deelt deze kennis aan experts. Student laat zien om te kunnen gaan met tegenstrijdigheden in beschikbare informatie (bronnen)."
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "niveau 2 + \n\nStudent kijkt zelfstandig naar diverse nieuwe, complexe en/of uitdagende kennis en technieken in het beroepenveld."
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "niveau 3 + \n\nStudent laat zien in staat te zijn om kennis eigen te maken uit bronnen die niet direct voor het leren zijn ontwikkeld."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Kwalitatief product maken": {
|
||||||
|
"1": {
|
||||||
|
"title": "Student gebruikt voor het maken van producten opgestelde acceptatie- en kwaliteitscriteria die passend zijn voor dit niveau en toont aan hoe deze criteria zijn toegepast in/op het product. Student laat zien in staat te zijn om producten op (HBO-i) niveau 1 te kunnen opleveren."
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Student gebruikt voor het maken van producten opgestelde acceptatie- en kwaliteitscriteria die passend zijn voor dit niveau en toont aan hoe deze criteria zijn toegepast in/op het product. Student laat zien in staat te zijn om producten op (HBO-i) niveau 2 te kunnen opleveren. Student draagt zorg voor de samenhang tussen enkele relevante producten (HBO-i)."
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Student gebruikt voor het maken van producten opgestelde acceptatie- en kwaliteitscriteria die passend zijn voor dit niveau en toont aan hoe deze criteria zijn toegepast in/op het product. Student laat zien in staat te zijn om producten op (HBO-i) niveau 3 te kunnen opleveren. Student draagt zorg voor de samenhang tussen alle relevante producten."
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Student gebruikt voor het maken van producten opgestelde acceptatie- en kwaliteitscriteria die passend zijn voor dit niveau en toont aan hoe deze criteria zijn toegepast in/op het product. Student laat zien in staat te zijn om producten op (HBO-i) niveau 4 te kunnen opleveren. Student draagt zorg voor de samenhang tussen alle relevante producten."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Overzicht creëren": {
|
||||||
|
"1": {
|
||||||
|
"title": "Student stelt vragen om te ontdekken wat er gedaan moet worden en welke manieren er zijn om dit gedaan te krijgen. Student verzamelt deze informatie, bijvoorbeeld vanuit bronnen of experimenten, en geeft deze overzichtelijk weer. Student formuleert hieruit ook acceptatie-, kwaliteits- en/of selectiecriteria. Student laat zien dat waar mogelijk rekening is gehouden met toegankelijkheid en/of gegevensbescherming.",
|
||||||
|
"info": "Deze vaardigheid, samen met KO, vormt het oordeelvormend vermogen, oftewel onderzoekend vermogen. \"Overzicht creëren\" heeft te maken met een goed beeld krijgen van het probleem en mogelijk oplossingsrichtingen.\n\n### Mogelijke bewijsstukken\n\nVoor het opvoeren van bewijs voor deze vaardigheid kan je bijvoorbeeld denken aan de onderstaande bewijsstukken. Deze lijst is niet volledig, maar geeft je een goede indicatie wat je zou kunnen gebruiken. Het kan natuurlijk ook een combinatie van deze stukken zijn.\n\n- Een beschrijving van de probleemstelling/oplossingsrichtingen op bijvoorbeeld een wiki van het team/project\n\n### Links\n- [Product realiseren als een expert](https://openict.fyndr.wiki/items/cl3wla81m194674sn5sc1dozn3?playlist=cl3wkj8ei167324sn57r2ad7sm)"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "niveau 1 + \n\nStudent laat zien dat op voor het product cruciale vraagstellingen door middel van research stories/tasks methodisch informatie is verkregen en weergegeven waarbij de waardes van directe stakeholders zijn meegenomen. Student laat zien dat waar mogelijk rekening is gehouden met duurzaamheid, overdraagbaarheid, inclusiviteit en/of security. De student kiest daarbij voor toepasselijke onderzoeksmethoden en voert deze ook vakkundig uit. Student gebruikt deze informatie om criteria te formuleren. De student onderbouwt dat de mate van grondigheid passend is voor de situatie.",
|
||||||
|
"info": "Op dit niveau begin je je onderzoekend vermogen methodisch in te steken. Er zijn vele verschillende manieren waarop dit kan gebeuren. Binnen Open-ICT wordt dit vaak gedaan door middel van Research Stories en Research Taken.\n\nHet stuk 'Overview'/'Overzicht' uit het DOT Framework heeft vooral met deze vaardigheid te maken.\n\n### Mogelijke bewijsstukken\n\nVoor het opvoeren van bewijs voor deze vaardigheid kan je bijvoorbeeld denken aan de onderstaande bewijsstukken. Deze lijst is niet volledig, maar geeft je een goede indicatie wat je zou kunnen gebruiken. Het kan natuurlijk ook een combinatie van deze stukken zijn.\n\n- De resultaten van gekozen onderzoeksmethode\n - Transcriptie van interview\n - Video van de observatie\n - Beschrijving met bronnenlijst\n\n### Links\n- [Research stories](https://openict.fyndr.wiki/playlists/cl3wkj8ei167324sn57r2ad7sm?playlist=cl3wkj8ei167324sn57r2ad7sm)\n- [Praktijkgericht onderzoek met het DOT Framework](https://openict.fyndr.wiki/playlists/cl3wkneqv176584sn5lvy28cxf)"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "niveau 2 + \n\nStudent laat zien dat de waardes van indirect betrokkenen buiten de opleiding, SDGs en/of wetenschap zijn meegenomen. Student laat zien dat waar mogelijk rekening gehouden is met schaalbaarheid, onderhoudbaarheid en/of ethiek.",
|
||||||
|
"info": "### Voorbeeld\n\nStel je hebt een uitdaging/vraagstuk waar je een oplossing voor wilt vinden. Het idee van niveau 3 van Overzicht Creëren is dat je het komen tot de aanpak van het probleem/uitdaging/vraagstuk methodisch gaat doen. Hiervoor stel je in het algemeen een research story op à la \"Als team willen we weten hoe we het probleem effectief kunnen aanpakken zodat wij tot een goed onderbouwde oplossing kunnen komen\". Deze story kan je natuurlijk aanpassen met specifieke details, maar wat belangrijk is is dat ze vanuit de story de taken en methodes kunnen benoemen.\n\n---\n\n#### RS: aanpak vinden voor uitdaging\n\n**Taken:**\n\n- Vinden van mogelijke aanpakken (Community Research, Available Product Analysis, Expert Interview, etc...)\n- Criteria opstellen voor keuze van de aanpak (Brainstorm, Literature Study, Expert Interview, etc...)\n- Aanpakken scoren op basis van criteria (Multi-criteria Decision Making/MCDM, etc....)\n- Conclusie trekken\n- Opstellen van acceptatie- en kwaliteitscriteria voor de op te leveren producten uit de gekozen aanpak\n\n**Tussenproducten: (bijvoorbeeld als attachment aan deze research story)**\n\n- Overzicht van de mogelijke aanpakken\n- Lijst van selectie criteria\n- Gevulde tabel met conclusie uit MCDM\n\n**Deliverables:**\n\n- Een gekozen aanpak (in stories, wiki bijdrage, paper, rapport, etc...)\n\n---\n\nDoor jouw aanpak-research story uit te voeren laat je zien dat je op een methodische manier gekomen bent tot een aanpak. Je kan ook laten zien door acceptatie- en kwaliteitscriteria op te stellen aan welke kwaliteit dat moet voldoen. Als jouw aanpak-research story is uitgevoerd weet je wat je moet gaan doen om tot een oplossing te komen. Vaak zitten daar weer research stories of taken bij om uiteindelijk ook de onderbouwing van je deliverables/producten voor je opdrachtgever te kunnen geven."
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "niveau 3 + \n\nStudent laat zien dat de waardes komende uit wetenschappelijke standaarden, het beroepenveld de maatschappij en gekozen bedrijfsstrategie zijn meegenomen."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Kritisch oordelen": {
|
||||||
|
"1": {
|
||||||
|
"title": "Student verwerkt verkregen informatie, bijvoorbeeld uit bronnen of experimenten, en trekt daaruit conclusies op basis van vooraf opgestelde acceptatie-, kwaliteits- en/of selectiecriteria.",
|
||||||
|
"info": "Deze vaardigheid, samen met OC, vormt het oordeelvormend vermogen, oftewel onderzoekend vermogen. \"Kritisch oordelen\" heeft te maken met het maken van onderbouwde keuzes en het nemen van verantwoorde beslissingen.\n\n### Mogelijke bewijsstukken\n\nVoor het opvoeren van bewijs voor deze vaardigheid kan je bijvoorbeeld denken aan de onderstaande bewijsstukken. Deze lijst is niet volledig, maar geeft je een goede indicatie wat je zou kunnen gebruiken. Het kan natuurlijk ook een combinatie van deze stukken zijn.\n\n- Een beschrijving van de probleemstelling/oplossingsrichtingen op bijvoorbeeld een wiki van het team/project\n\n### Links\n- [Product realiseren als een expert](https://openict.fyndr.wiki/items/cl3wla81m194674sn5sc1dozn3?playlist=cl3wkj8ei167324sn57r2ad7sm)"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "niveau 1 + \n\nStudent verkrijgt en verwerkt, door middel van research stories/tasks, methodisch informatie en trekt op basis van de criteria onderbouwde conclusies. De student kiest daarbij voor toepasselijke onderzoeksmethoden en voert deze ook vakkundig uit. Student is in staat om gangbare normen, praktijken en meningen ter discussie te stellen. De student onderbouwt dat de mate van grondigheid passend is voor de situatie.",
|
||||||
|
"info": "Op dit niveau begin je je onderzoekend vermogen methodisch in te steken. Er zijn vele verschillende manieren waarop dit kan gebeuren. Binnen Open-ICT wordt dit vaak gedaan door middel van Research Stories en Research Taken.\n\nHet stuk 'Certainty'/'Zekerheid' uit het DOT Framework heeft vooral met deze vaardigheid te maken.\n\n### Mogelijke bewijsstukken\n\nVoor het opvoeren van bewijs voor deze vaardigheid kan je bijvoorbeeld denken aan de onderstaande bewijsstukken. Deze lijst is niet volledig, maar geeft je een goede indicatie wat je zou kunnen gebruiken. Het kan natuurlijk ook een combinatie van deze stukken zijn.\n\n- De resultaten van gekozen onderzoeksmethode\n - Testrapport\n\n### Links\n- [Research stories](https://openict.fyndr.wiki/playlists/cl3wkj8ei167324sn57r2ad7sm?playlist=cl3wkj8ei167324sn57r2ad7sm)\n- [Praktijkgericht onderzoek met het DOT Framework](https://openict.fyndr.wiki/playlists/cl3wkneqv176584sn5lvy28cxf)"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "niveau 2 + \n\nStudent laat zien kritisch te zijn richting de opdracht, de opdrachtrichting en de oplossingsruimte waarbij er aandacht is voor de vraag achter vraag. Student is in staat om gangbare normen, praktijken en meningen uit te dagen."
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "niveau 3 + \n\nStudent is in staat om bij te dragen in het vormen van nieuwe gangbare normen, praktijken en meningen. Student laat zien dat getrokken conclusies tot nieuwe inzichten voor beroepenveld leiden. Student evalueert kritisch de resultaten van het onderzoek voor andere situaties en/of de mate van methodologische grondigheid van het uitgevoerde onderzoek."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Samenwerken": {
|
||||||
|
"1": {
|
||||||
|
"title": "Student zoekt de samenwerking op met andere teamleden en teambegeleiding. Student draagt bij aan het gezamenlijk resultaat en een professionele werksfeer. Student kan eigen bijdrage verwoorden, is op de hoogte van wat teamleden doen en zorgt ervoor dat taken gelijkwaardig verdeeld zijn. Student helpt peers en maakt conflicten bespreekbaar. Student geeft regelmatig informatieve feedback aan teamleden."
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "niveau 1 + \n\nStudent zoekt de samenwerking op met de direct betrokkenen buiten diens team of de indirect betrokkenen binnen de opleiding. Student zorgt ervoor dat deze betrokkenen op de hoogte zijn van de eigen werkzaamheden. Student stelt zich coöperatief en respectvol op. Student geeft regelmatig informatieve feedback aan indirect betrokkenen binnen de opleiding.",
|
||||||
|
"info": "*Let op*: communicatie is tweerichtingsverkeer. "
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "niveau 2 + \n\nStudent zoekt de samenwerking op met indirecte betrokkenen buiten de opleiding. Student zorgt voor professionele communicatie met deze betrokkenen. Student zorgt ervoor dat de belangen en waarden van alle betrokkenen meegenomen worden bij de uitvoering van de opdracht. Student helpt anderen zich ook verder te ontwikkelen. ",
|
||||||
|
"info": "### Opmerking\n\nIn deze fase wordt met de direct betrokkenen ook de directe gebruikers van de toepassing/oplossing bedoeld.\n\nMet indirect betrokkenen worden die personen/instanties bedoeld die wel met de effecten/gevolgen van de oplossing te maken krijgen, maar niet direct betrokken zijn in het ontwikkelen en gebruiken van de oplossing.\n\n### Voorbeeld\n\nJe maakt voor de artsen in het ziekenhuis een applicatie voor het efficiënt kunnen inrichten van hun werkplek. Dit doe je in opdracht van de afdeling Ruimtelijk Beheer. De direct betrokken zijn dan onder andere:\n\n- Artsen\n- Verpleegkundigen\n- Manager van de afdeling Ruimtelijk Beheer\n\nDe indirect betrokkenen zijn in dit geval o.a.:\n\n- Patienten\n- Management van het ziekenhuis\n- Afdeling Schoonmaak"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "niveau 3 + \n\nStudent is in staat om strategische samenwerkingen aan te gaan/op te zetten zodat relevante partijen op de passende wijze betrokken worden, daarbij rekening houdend met hun specifieke belangen en waarden.",
|
||||||
|
"info": "In deze fase kan je bij relevante partijen denken aan bijvoorbeeld onderzoeksinstituten, gemeentes, belangenverenigingen, incubatores en NGO's."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Boodschap delen": {
|
||||||
|
"1": {
|
||||||
|
"title": "Student brengt boodschappen over in de vorm van bijvoorbeeld documenten, presentaties en besprekingen. Student kiest passende opbouw/structuur om het doel te bereiken. Student reageert passend op feedback en vragen. Student toont aan dat ondersteunende/gebruikte producten van passende kwaliteit zijn. "
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "niveau 1 + \n\nStudent sluit aan bij kennis en context van de doelgroep, onder andere in woordkeuze, middelen en taalgebruik. Student gaat de dialoog aan door actief te luisteren en door door te vragen om de ander te begrijpen. Student geeft opbouwende feedback en is in staat om feedback te ontvangen."
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "niveau 2 + \n\nStudent overtuigt betrokkenen om het draagvlak voor het doel te vergroten, met aandacht voor de context waarin de betrokkenen zich bevinden. Student maakt onderscheid tussen feiten en meningen."
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "niveau 3 + \n\nStudent gebruikt de meningen en feiten van anderen in de onderbouwing van de boodschap. Student is in in staat om een bredere boodschap uit te kunnen dragen die verder gaat dan de eigen ideeën waarbij de boodschap niet direct in lijn is met de eigen visie en denkbeelden."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Plannen": {
|
||||||
|
"1": {
|
||||||
|
"title": "Student maakt met direct betrokkenen regelmatig een kortetermijnplanning. Student plant het maken van story's met heldere acceptatie en kwaliteitscriteria. Student neemt inzicht op eigen capaciteit mee en zorgt voor voldoende eigen werk. Student definieert voor story's eigen taken van behapbare grootte en zet ze in een logische volgorde. Student communiceert dagelijks de stand van zaken en verantwoordt verstoringen in de planning tijdig aan team. Student plant peerreview van eigen werk. ",
|
||||||
|
"info": "Er staat in de beschrijving 'Team'. Dat is niet alleen je squad, maar denk daarbij ook vooral aan de tribe en coach. Rekening houden met hoeveel capaciteit er is in de tribe voor reviews en kennisdelingen is een belangrijk onderdeel van je planning.\n\nMet kortetermijnplanning moet je denken aan een planning voor enkele dagen tot ongeveer een sprint. \n\n### Mogelijke bewijsstukken\n\n- Overzicht van je checkins/checkouts (met benoeming van de taken die je gaat doen/hebt gedaan)\n- Overzicht van het sprintboard (inclusief status van de stories en taken) van het begin en het eind van de sprint."
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "niveau 1 + \n\nStudent maakt met direct betrokkenen aan een middellangetermijnplanning door een aantal cycli vooruit te plannen. Student draagt bij aan overzichten zodat de tijdlijn en de prioriteiten in de planning helder zijn en keuzes gemaakt kunnen worden. Student neemt een inschatting van capaciteiten van het team mee in de middellangetermijnplanning. Student zet deze middellangetermijnplanning daarna om naar een eigen kortetermijnplanning. ",
|
||||||
|
"info": "Er staat in de beschrijving 'Team'. Dat is niet alleen je squad, maar denk daarbij ook vooral aan het gilde. Rekening houden met hoeveel capaciteit er is in het gilde voor gilde reviews en kennisdelingen is een belangrijk onderdeel van je planning.\n\nMet middellangetermijnplanning moet je denken aan een planning van meerdere weken, bijvoorbeeld een milestone of een tweetal sprints.\n\n### Mogelijke bewijsstukken\n\nVoor het opvoeren van bewijs voor deze vaardigheid kan je bijvoorbeeld denken aan de onderstaande bewijsstukken. Deze lijst is niet volledig, maar geeft je een goede indicatie wat je zou kunnen gebruiken. Het kan natuurlijk ook een combinatie van deze stukken zijn.\n\n- Screenshots van planning (met verwijzingen in onderbouwing)\n - Planboard met stories en taken\n - Planboard van gilde\n - Checkins waarin taken worden genoemd\n - Afspraken met opdrachtgevers"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "niveau 2 + \n\nStudent maakt een langetermijnplanning met één of meer doelen. Student stemt deze planning af met de betrokkenen. Student onderhoudt de planning of past deze aan met het team.",
|
||||||
|
"info": "Met langetermijnplanning kan je denken aan een termijn van meerdere maanden bijvoorbeeld zes tot acht sprints."
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "niveau 3 + \n\nStudent vertaalt de gekozen bedrijfsstrategie en visie naar een langetermijnplanning (mogelijk meerjaren) en past deze planning aan waar nodig. Student houdt bij het maken van deze planning rekening met de beschikbare capaciteit van het team en de wensen van direct en indirect betrokkenen."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Flexibel opstellen": {
|
||||||
|
"1": {
|
||||||
|
"title": "Student houdt zich vanuit diens rol binnen het team gedurende de hele looptijd aan de gekozen werkwijze binnen team en school. Student beweegt mee met deze omgeving en stelt zich constructief op bij lastige keuzes of onverwachte situaties en tegenslagen. Student doet zo wat nodig is om de rol goed neer te zetten."
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "niveau 1 + \n\nStudent houdt zich aan de gekozen werkwijze binnen team, school en opdrachtgever. Student werkt op een constructieve manier mee aan bijeenkomsten met vakgenoten. Student is voor het invullen van zijn rol in staat om over aannames, vooroordelen, eigen gemakken en ideeën heen te stappen en/of deze ter discussie te stellen. Student gaat bij invullen van rol bewust om met dilemma's rond duurzaamheid en diversiteit."
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "niveau 2 + \n\nStudent is zich bewust van de gegeven bedrijfsstrategie en past de eigen werkwijze daarop aan. Student stelt zich onafhankelijk op en kan omgaan met concurrerende doelen, waaronder de eigen belangen, en dilemma's daaromheen"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "niveau 3 + \n\nStudent houdt zich aan de gekozen bedrijfsstrategie en is in staat om bij te dragen aan aanpassingen van de strategie en deze bij te stellen op basis van conflicterende belangen vanuit direct en indirect betrokkenen."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Pro-actief handelen": {
|
||||||
|
"1": {
|
||||||
|
"title": "Student pakt rol en zorgt ervoor dat eigen bijdrage voldoende uitdagend is. Student ziet zelf kansen op de korte termijn en neemt zelf het initiatief voor de ontwikkeling van zichzelf en/of het team. Student herkent zelf problemen op korte termijn en neemt zelf het tijdig het initiatief om deze te voorkomen of op te lossen. De student laat zien dat het initiatief effect heeft gehad."
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "Student pakt rol en zorgt in eigen bijdrage voor evenwicht tussen uitdaging en niveau van eigen vaardigheid. Student ziet zelf kansen op de middellange termijn en neemt zelf het initiatief voor ontwikkeling van zichzelf en/of vakgenoten (team, gilde). Student herkent zelf problemen op middellange termijn en neemt zelf tijdig het initiatief om deze te voorkomen of op te lossen. Student laat zien dat het initiatief effect heeft gehad."
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "Student ziet zelf kansen op de lange termijn en neemt het initiatief voor ontwikkeling van zichzelf, vakgenoten (team, gilde) en/of de opdrachtgever Student herkent zelf problemen op lange termijn en neemt zelf het tijdig het initiatief om deze te voorkomen of op te lossen. Student laat zien dat het initiatief effect heeft gehad."
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "Student ziet zelf kansen op de lange termijn en neemt zelf het initiatief voor ontwikkeling van direct en indirect betrokkenen. Student herkent zelf problemen op lange termijn en neemt zelf het tijdig het initiatief om deze te voorkomen of op te lossen. De student laat zien dat het initiatief effect heeft gehad. Student activeert anderen om tijdig kansen te pakken en problemen te voorkomen of op te lossen."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Reflecteren": {
|
||||||
|
"1": {
|
||||||
|
"title": "Student haalt met name aan de hand van reviews en retrospectives regelmatig feedback op over producten en eigen functioneren. Student kijkt terug op wat goed gaat en wat beter kan. Student stelt ontwikkeldoelen op en werkt daar naartoe door actiepunten te formuleren en uit te voeren. Student herkent hoe eigen gedrag zich verhoudt tot gangbare normen, praktijken en meningen."
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "niveau 1 + \n\nStudent haalt regelmatig en doelgericht feedback op bij indirect betrokkenen (meestal uit gilde). Student waardeert de verkregen feedback en geeft aan hoe deze wordt meegenomen in toekomstige activiteiten. Student kijkt terug op eerdere reflecties en gaat na wat de effectiviteit is geweest van de ondernomen acties. Student herkent hoe perspectieven en gedrag van zichzelf en anderen impact hebben op het functioneren van het team, en laat dit zien in een reflectie. "
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "niveau 2 + \n\nStudent zoekt bij het reflecteren naar de diepere onderliggende oorzaken van zowel positieve als negatieve aspecten van het eigen gedrag op het functioneren van zichzelf en anderen. Student neemt bij de reflectie mee hoe de student en het team bijdragen aan de uitvoering van de bedrijfsstrategie."
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "niveau 3 + \n\nStudent kijkt terug op hoe er door de student en het team wordt bijgedragen aan het bepalen en uitvoeren van de bedrijfsstrategie. Student onderzoekt wat in de omgeving impact heeft op het functioneren van zichzelf en het team, brengt dit in kaart en stelt daarbij het eigen gedrag bij."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
252
skills/competenties/scripts/hboi.py
Executable file
252
skills/competenties/scripts/hboi.py
Executable file
@@ -0,0 +1,252 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
HBO-I Professional Tasks Query Tool
|
||||||
|
|
||||||
|
This module provides a command-line interface for querying professional tasks
|
||||||
|
from the Open-ICT competency framework for HBO-I (Higher Professional Education
|
||||||
|
in Information Technology). The framework organizes tasks by architecture layers,
|
||||||
|
activities, and proficiency levels.
|
||||||
|
|
||||||
|
The data structure follows a three-dimensional matrix:
|
||||||
|
- Architecture layers (e.g., Software, Infrastructure)
|
||||||
|
- Activities (e.g., Analyseren, Ontwerpen, Realiseren)
|
||||||
|
- Proficiency levels (1-4, representing increasing complexity)
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
python hboi.py [--layer LAYER] [--activity ACTIVITY] [--level LEVEL]
|
||||||
|
|
||||||
|
Exit Codes:
|
||||||
|
0: Success
|
||||||
|
1: Error (invalid input, missing data file, or no results found)
|
||||||
|
"""
|
||||||
|
|
||||||
|
import json
|
||||||
|
import sys
|
||||||
|
import argparse
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
# Directory paths for locating data files relative to script location
|
||||||
|
SCRIPT_DIR = Path(__file__).parent
|
||||||
|
DATA_DIR = SCRIPT_DIR.parent / "data"
|
||||||
|
|
||||||
|
# Valid architecture layers as defined in the Open-ICT framework
|
||||||
|
# These represent different technical domains in ICT systems
|
||||||
|
VALID_LAYERS = [
|
||||||
|
"Gebruikersinteractie", # User interaction layer
|
||||||
|
"Organisatieprocessen", # Organizational processes layer
|
||||||
|
"Infrastructuur", # Infrastructure layer
|
||||||
|
"Software", # Software layer
|
||||||
|
"Hardwareinterfacing" # Hardware interfacing layer
|
||||||
|
]
|
||||||
|
|
||||||
|
# Valid professional activities as defined in the Open-ICT framework
|
||||||
|
# These represent different phases of the development lifecycle
|
||||||
|
VALID_ACTIVITIES = [
|
||||||
|
"Analyseren", # Analysis phase
|
||||||
|
"Adviseren", # Advisory phase
|
||||||
|
"Ontwerpen", # Design phase
|
||||||
|
"Realiseren", # Implementation phase
|
||||||
|
"Manage & Control" # Management and control phase
|
||||||
|
]
|
||||||
|
|
||||||
|
def load_data():
|
||||||
|
"""
|
||||||
|
Load professional tasks data from the JSON data file.
|
||||||
|
|
||||||
|
Reads the hboi-nl.json file containing the complete HBO-I competency
|
||||||
|
framework data. The file is expected to be in the data directory relative
|
||||||
|
to this script's location.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
dict: Nested dictionary structure containing professional tasks organized by:
|
||||||
|
{layer: {activity: {level: task_description}}}
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
SystemExit: If the data file is not found, contains invalid JSON,
|
||||||
|
or cannot be read for any other reason.
|
||||||
|
|
||||||
|
Note:
|
||||||
|
All errors are written to stderr before exiting with status code 1.
|
||||||
|
"""
|
||||||
|
data_file = DATA_DIR / "hboi-nl.json"
|
||||||
|
|
||||||
|
# Verify data file exists before attempting to read
|
||||||
|
if not data_file.exists():
|
||||||
|
print(f"Error: Data file not found: {data_file}", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Open with explicit UTF-8 encoding to handle Dutch characters
|
||||||
|
with open(data_file, 'r', encoding='utf-8') as f:
|
||||||
|
return json.load(f)
|
||||||
|
except json.JSONDecodeError as e:
|
||||||
|
# Provide specific error for malformed JSON
|
||||||
|
print(f"Error: Invalid JSON in data file: {e}", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
except Exception as e:
|
||||||
|
# Catch-all for other file reading errors (permissions, I/O, etc.)
|
||||||
|
print(f"Error: {e}", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
def filter_tasks(data, layer=None, activity=None, level=None):
|
||||||
|
"""
|
||||||
|
Filter professional tasks based on specified criteria.
|
||||||
|
|
||||||
|
Applies one or more filters to the competency framework data to narrow down
|
||||||
|
the results. Filters can be combined and are applied in the following order:
|
||||||
|
1. Architecture layer (reduces dataset to single layer)
|
||||||
|
2. Activity (filters activities within remaining layers)
|
||||||
|
3. Level (filters specific proficiency levels within remaining activities)
|
||||||
|
|
||||||
|
Args:
|
||||||
|
data (dict): Complete competency framework data structure
|
||||||
|
layer (str, optional): Architecture layer to filter by (e.g., "Software")
|
||||||
|
activity (str, optional): Activity type to filter by (e.g., "Ontwerpen")
|
||||||
|
level (str, optional): Proficiency level to filter by ("1", "2", "3", or "4")
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
dict: Filtered data structure maintaining the same nested format as input,
|
||||||
|
but containing only entries matching all specified filters
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
SystemExit: If the specified layer is not found in the data, or if no
|
||||||
|
tasks match the specified filter combination
|
||||||
|
|
||||||
|
Note:
|
||||||
|
When no filters are specified, returns the complete dataset unchanged.
|
||||||
|
"""
|
||||||
|
result = {}
|
||||||
|
|
||||||
|
# First-level filter: narrow down to specific architecture layer if requested
|
||||||
|
if layer:
|
||||||
|
if layer not in data:
|
||||||
|
print(f"Error: Architecture layer '{layer}' not found", file=sys.stderr)
|
||||||
|
print(f"Valid layers: {', '.join(VALID_LAYERS)}", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
# Reduce dataset to only the requested layer
|
||||||
|
data = {layer: data[layer]}
|
||||||
|
|
||||||
|
# Second and third level filters: iterate through remaining layers
|
||||||
|
# and apply activity and/or level filters
|
||||||
|
for layer_name, activities in data.items():
|
||||||
|
filtered_activities = {}
|
||||||
|
|
||||||
|
for activity_name, levels in activities.items():
|
||||||
|
# Skip activities that don't match the activity filter
|
||||||
|
if activity and activity_name != activity:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Apply level filter if specified
|
||||||
|
if level:
|
||||||
|
# Use dictionary comprehension to filter levels efficiently
|
||||||
|
filtered_levels = {lvl: content for lvl, content in levels.items() if lvl == level}
|
||||||
|
# Only include activity if it has matching levels
|
||||||
|
if filtered_levels:
|
||||||
|
filtered_activities[activity_name] = filtered_levels
|
||||||
|
else:
|
||||||
|
# No level filter: include all levels for this activity
|
||||||
|
filtered_activities[activity_name] = levels
|
||||||
|
|
||||||
|
# Only include layer if it has matching activities after filtering
|
||||||
|
if filtered_activities:
|
||||||
|
result[layer_name] = filtered_activities
|
||||||
|
|
||||||
|
# Validate that at least one task matches the filter criteria
|
||||||
|
if not result:
|
||||||
|
print("No professional tasks found with the specified filters", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""
|
||||||
|
Main entry point for the command-line interface.
|
||||||
|
|
||||||
|
Parses command-line arguments, validates user input, loads the competency
|
||||||
|
framework data, applies filters, and outputs the results as formatted JSON.
|
||||||
|
|
||||||
|
The function handles all user interaction and orchestrates the data loading
|
||||||
|
and filtering pipeline. All errors are reported to stderr with helpful
|
||||||
|
messages, and the program exits with appropriate status codes.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
None: Outputs results to stdout and exits with status code 0 on success,
|
||||||
|
or exits with status code 1 on error
|
||||||
|
|
||||||
|
Side Effects:
|
||||||
|
- Reads from data file system
|
||||||
|
- Writes to stdout (JSON results)
|
||||||
|
- Writes to stderr (error messages)
|
||||||
|
- Calls sys.exit() on errors or successful completion
|
||||||
|
"""
|
||||||
|
# Configure argument parser with detailed help text
|
||||||
|
# RawDescriptionHelpFormatter preserves formatting in epilog
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
description="Retrieve HBO-I professional tasks from the Open-ICT competency framework.",
|
||||||
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||||
|
epilog=f"""
|
||||||
|
Architecture layers:
|
||||||
|
{chr(10).join(' - ' + layer for layer in VALID_LAYERS)}
|
||||||
|
|
||||||
|
Activities:
|
||||||
|
{chr(10).join(' - ' + activity for activity in VALID_ACTIVITIES)}
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
%(prog)s
|
||||||
|
%(prog)s --layer "Software"
|
||||||
|
%(prog)s --activity "Ontwerpen"
|
||||||
|
%(prog)s --layer "Software" --activity "Realiseren"
|
||||||
|
%(prog)s --layer "Software" --level 2
|
||||||
|
%(prog)s --level 3
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
# Define command-line arguments
|
||||||
|
# All arguments are optional, allowing flexible querying
|
||||||
|
parser.add_argument(
|
||||||
|
'--layer',
|
||||||
|
help='Filter by architecture layer'
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
'--activity',
|
||||||
|
help='Filter by activity'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Level argument uses choices to restrict valid values at parse time
|
||||||
|
parser.add_argument(
|
||||||
|
'--level',
|
||||||
|
type=str,
|
||||||
|
choices=['1', '2', '3', '4'],
|
||||||
|
help='Filter by level (1-4)'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Parse command-line arguments (exits with error message if invalid)
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
# Additional validation: argparse handles level choices, but we validate
|
||||||
|
# layer and activity against our constants to ensure consistency
|
||||||
|
# This provides better error messages than relying on filter_tasks()
|
||||||
|
if args.layer and args.layer not in VALID_LAYERS:
|
||||||
|
print(f"Error: Invalid architecture layer: {args.layer}", file=sys.stderr)
|
||||||
|
print(f"Valid layers: {', '.join(VALID_LAYERS)}", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
if args.activity and args.activity not in VALID_ACTIVITIES:
|
||||||
|
print(f"Error: Invalid activity: {args.activity}", file=sys.stderr)
|
||||||
|
print(f"Valid activities: {', '.join(VALID_ACTIVITIES)}", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
# Execute the main workflow: load data, apply filters, output results
|
||||||
|
data = load_data()
|
||||||
|
result = filter_tasks(data, args.layer, args.activity, args.level)
|
||||||
|
|
||||||
|
# Output filtered results as formatted JSON
|
||||||
|
# ensure_ascii=False preserves Dutch characters (e.g., é, ë)
|
||||||
|
# indent=2 provides human-readable formatting for debugging
|
||||||
|
print(json.dumps(result, ensure_ascii=False, indent=2))
|
||||||
|
|
||||||
|
# Entry point: only execute main() when script is run directly (not when imported)
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
|
||||||
216
skills/competenties/scripts/vaardigheden.py
Executable file
216
skills/competenties/scripts/vaardigheden.py
Executable file
@@ -0,0 +1,216 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Student Skills Query Tool
|
||||||
|
|
||||||
|
This module provides a command-line interface for querying student skills
|
||||||
|
from the Open-ICT competency framework. The framework organizes skills by
|
||||||
|
skill name and proficiency levels, representing different competencies that
|
||||||
|
students should develop during their ICT education.
|
||||||
|
|
||||||
|
The data structure follows a two-dimensional matrix:
|
||||||
|
- Skill names (e.g., "Samenwerken", "Kritisch oordelen")
|
||||||
|
- Proficiency levels (1-4, representing increasing complexity)
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
python vaardigheden.py [--skill SKILL] [--level LEVEL]
|
||||||
|
|
||||||
|
Exit Codes:
|
||||||
|
0: Success
|
||||||
|
1: Error (invalid input, missing data file, or no results found)
|
||||||
|
"""
|
||||||
|
|
||||||
|
import json
|
||||||
|
import sys
|
||||||
|
import argparse
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
# Directory paths for locating data files relative to script location
|
||||||
|
SCRIPT_DIR = Path(__file__).parent
|
||||||
|
DATA_DIR = SCRIPT_DIR.parent / "data"
|
||||||
|
|
||||||
|
# Valid skill names as defined in the Open-ICT framework
|
||||||
|
# These represent core competencies that ICT students should develop
|
||||||
|
VALID_SKILLS = [
|
||||||
|
"Juiste kennis ontwikkelen", # Developing appropriate knowledge
|
||||||
|
"Kwalitatief product maken", # Creating quality products
|
||||||
|
"Overzicht creëren", # Creating overview
|
||||||
|
"Kritisch oordelen", # Critical judgment
|
||||||
|
"Samenwerken", # Collaboration
|
||||||
|
"Boodschap delen", # Sharing messages
|
||||||
|
"Plannen", # Planning
|
||||||
|
"Flexibel opstellen", # Being flexible
|
||||||
|
"Pro-actief handelen", # Proactive action
|
||||||
|
"Reflecteren" # Reflection
|
||||||
|
]
|
||||||
|
|
||||||
|
def load_data():
|
||||||
|
"""
|
||||||
|
Load student skills data from the JSON data file.
|
||||||
|
|
||||||
|
Reads the vaardigheden-nl.json file containing the complete student skills
|
||||||
|
competency framework data. The file is expected to be in the data directory
|
||||||
|
relative to this script's location.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
dict: Nested dictionary structure containing student skills organized by:
|
||||||
|
{skill_name: {level: skill_description}}
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
SystemExit: If the data file is not found, contains invalid JSON,
|
||||||
|
or cannot be read for any other reason.
|
||||||
|
|
||||||
|
Note:
|
||||||
|
All errors are written to stderr before exiting with status code 1.
|
||||||
|
"""
|
||||||
|
data_file = DATA_DIR / "vaardigheden-nl.json"
|
||||||
|
|
||||||
|
# Verify data file exists before attempting to read
|
||||||
|
if not data_file.exists():
|
||||||
|
print(f"Error: Data file not found: {data_file}", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Open with explicit UTF-8 encoding to handle Dutch characters
|
||||||
|
with open(data_file, 'r', encoding='utf-8') as f:
|
||||||
|
return json.load(f)
|
||||||
|
except json.JSONDecodeError as e:
|
||||||
|
# Provide specific error for malformed JSON
|
||||||
|
print(f"Error: Invalid JSON in data file: {e}", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
except Exception as e:
|
||||||
|
# Catch-all for other file reading errors (permissions, I/O, etc.)
|
||||||
|
print(f"Error: {e}", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
def filter_skills(data, skill_name=None, level=None):
|
||||||
|
"""
|
||||||
|
Filter student skills based on specified criteria.
|
||||||
|
|
||||||
|
Applies one or more filters to the competency framework data to narrow down
|
||||||
|
the results. Filters can be combined and are applied in the following order:
|
||||||
|
1. Skill name (reduces dataset to single skill)
|
||||||
|
2. Level (filters specific proficiency levels within remaining skills)
|
||||||
|
|
||||||
|
Args:
|
||||||
|
data (dict): Complete competency framework data structure
|
||||||
|
skill_name (str, optional): Skill name to filter by (e.g., "Samenwerken")
|
||||||
|
level (str, optional): Proficiency level to filter by ("1", "2", "3", or "4")
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
dict: Filtered data structure maintaining the same nested format as input,
|
||||||
|
but containing only entries matching all specified filters
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
SystemExit: If the specified skill name is not found in the data, or if
|
||||||
|
no skills match the specified filter combination
|
||||||
|
|
||||||
|
Note:
|
||||||
|
When no filters are specified, returns the complete dataset unchanged.
|
||||||
|
"""
|
||||||
|
result = {}
|
||||||
|
|
||||||
|
# First-level filter: narrow down to specific skill if requested
|
||||||
|
if skill_name:
|
||||||
|
if skill_name not in data:
|
||||||
|
print(f"Error: Skill '{skill_name}' not found", file=sys.stderr)
|
||||||
|
print(f"Valid skills: {', '.join(VALID_SKILLS)}", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
# Reduce dataset to only the requested skill
|
||||||
|
data = {skill_name: data[skill_name]}
|
||||||
|
|
||||||
|
# Second-level filter: apply level filter if specified
|
||||||
|
if level:
|
||||||
|
# Iterate through all skills in the dataset (may be filtered or complete)
|
||||||
|
for skill, levels in data.items():
|
||||||
|
# Use dictionary comprehension to filter levels efficiently
|
||||||
|
filtered_levels = {lvl: content for lvl, content in levels.items() if lvl == level}
|
||||||
|
# Only include skill if it has matching levels
|
||||||
|
if filtered_levels:
|
||||||
|
result[skill] = filtered_levels
|
||||||
|
else:
|
||||||
|
# No level filter: include all skills and levels
|
||||||
|
result = data
|
||||||
|
|
||||||
|
# Validate that at least one skill matches the filter criteria
|
||||||
|
if not result:
|
||||||
|
print("No skills found with the specified filters", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""
|
||||||
|
Main entry point for the command-line interface.
|
||||||
|
|
||||||
|
Parses command-line arguments, validates user input, loads the competency
|
||||||
|
framework data, applies filters, and outputs the results as formatted JSON.
|
||||||
|
|
||||||
|
The function handles all user interaction and orchestrates the data loading
|
||||||
|
and filtering pipeline. All errors are reported to stderr with helpful
|
||||||
|
messages, and the program exits with appropriate status codes.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
None: Outputs results to stdout and exits with status code 0 on success,
|
||||||
|
or exits with status code 1 on error
|
||||||
|
|
||||||
|
Side Effects:
|
||||||
|
- Reads from data file system
|
||||||
|
- Writes to stdout (JSON results)
|
||||||
|
- Writes to stderr (error messages)
|
||||||
|
- Calls sys.exit() on errors or successful completion
|
||||||
|
"""
|
||||||
|
# Configure argument parser with detailed help text
|
||||||
|
# RawDescriptionHelpFormatter preserves formatting in epilog
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
description="Retrieve student skills from the Open-ICT competency framework.",
|
||||||
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||||
|
epilog=f"""
|
||||||
|
Valid skills:
|
||||||
|
{chr(10).join(' - ' + skill for skill in VALID_SKILLS)}
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
%(prog)s
|
||||||
|
%(prog)s --skill "Samenwerken"
|
||||||
|
%(prog)s --skill "Samenwerken" --level 2
|
||||||
|
%(prog)s --level 3
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
# Define command-line arguments
|
||||||
|
# All arguments are optional, allowing flexible querying
|
||||||
|
parser.add_argument(
|
||||||
|
'--skill',
|
||||||
|
help='Filter by skill name'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Level argument uses choices to restrict valid values at parse time
|
||||||
|
parser.add_argument(
|
||||||
|
'--level',
|
||||||
|
type=str,
|
||||||
|
choices=['1', '2', '3', '4'],
|
||||||
|
help='Filter by level (1-4)'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Parse command-line arguments (exits with error message if invalid)
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
# Additional validation: validate skill name against our constants
|
||||||
|
# This provides better error messages than relying on filter_skills()
|
||||||
|
if args.skill and args.skill not in VALID_SKILLS:
|
||||||
|
print(f"Error: Invalid skill: {args.skill}", file=sys.stderr)
|
||||||
|
print(f"Valid skills: {', '.join(VALID_SKILLS)}", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
# Execute the main workflow: load data, apply filters, output results
|
||||||
|
data = load_data()
|
||||||
|
result = filter_skills(data, args.skill, args.level)
|
||||||
|
|
||||||
|
# Output filtered results as formatted JSON
|
||||||
|
# ensure_ascii=False preserves Dutch characters (e.g., é, ë)
|
||||||
|
# indent=2 provides human-readable formatting for debugging
|
||||||
|
print(json.dumps(result, ensure_ascii=False, indent=2))
|
||||||
|
|
||||||
|
# Entry point: only execute main() when script is run directly (not when imported)
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
|
||||||
325
skills/competenties/vaardigheden.md
Normal file
325
skills/competenties/vaardigheden.md
Normal file
@@ -0,0 +1,325 @@
|
|||||||
|
# Studentvaardigheden
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
Deze sectie beschrijft hoe je studentvaardigheden uit het Open-ICT competentiekader kunt ophalen. Het framework bevat tien kernvaardigheden die worden beoordeeld in het Open-ICT curriculum, elk met vier niveaus die oplopende complexiteit en zelfstandigheid representeren.
|
||||||
|
|
||||||
|
## Beschikbare Vaardigheden
|
||||||
|
|
||||||
|
De volgende tien vaardigheden zijn beschikbaar:
|
||||||
|
|
||||||
|
1. **Juiste kennis ontwikkelen**: Het vermogen om relevante kennis te identificeren, te verwerven en toe te passen
|
||||||
|
2. **Kwalitatief product maken**: Het vermogen om producten te maken die voldoen aan kwaliteitscriteria
|
||||||
|
3. **Overzicht creëren**: Het vermogen om informatie te verzamelen en overzichtelijk weer te geven
|
||||||
|
4. **Kritisch oordelen**: Het vermogen om verkregen informatie te verwerken en onderbouwde conclusies te trekken
|
||||||
|
5. **Samenwerken**: Het vermogen om effectief samen te werken in teams
|
||||||
|
6. **Boodschap delen**: Het vermogen om informatie en ideeën duidelijk te communiceren
|
||||||
|
7. **Plannen**: Het vermogen om activiteiten te plannen en te organiseren
|
||||||
|
8. **Flexibel opstellen**: Het vermogen om flexibel te reageren op veranderende omstandigheden
|
||||||
|
9. **Pro-actief handelen**: Het vermogen om proactief te handelen en initiatief te nemen
|
||||||
|
10. **Reflecteren**: Het vermogen om te reflecteren op eigen handelen en leerproces
|
||||||
|
|
||||||
|
## Workflow Scenarios
|
||||||
|
|
||||||
|
### Scenario 1: Overzicht en Onderzoek (VERPLICHT: Alle Vaardigheden Ophalen)
|
||||||
|
|
||||||
|
**Wanneer te gebruiken:**
|
||||||
|
|
||||||
|
- Wanneer het nog niet duidelijk is aan welke vaardigheid er wordt gewerkt
|
||||||
|
- Wanneer de gebruiker wilt weten welke vaardigheden relevant zijn voor een bepaald bewijsstuk
|
||||||
|
- Wanneer je een overzicht nodig hebt van alle beschikbare vaardigheden en hun niveaus
|
||||||
|
- Bij het analyseren van bewijsstukken om te bepalen welke vaardigheden van toepassing zijn
|
||||||
|
|
||||||
|
**VERPLICHTE WORKFLOW:**
|
||||||
|
|
||||||
|
1. **VOER UIT**: `python scripts/vaardigheden.py` (zonder enige argumenten of filters)
|
||||||
|
2. **GEBRUIK ALLEEN**: De data die wordt gereturned door het script
|
||||||
|
3. **VERBODEN**: Het is **NIET TOEGESTAAN** om zelf criteria voor vaardigheden in te vullen of te verzinnen
|
||||||
|
4. **VERBODEN**: Het is **NIET TOEGESTAAN** om alleen een subset van vaardigheden op te halen in dit scenario
|
||||||
|
5. **ANALYSEER**: Gebruik de volledige dataset om te bepalen welke vaardigheden relevant zijn
|
||||||
|
|
||||||
|
**Voorbeeld gebruik:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python scripts/vaardigheden.py
|
||||||
|
```
|
||||||
|
|
||||||
|
**Resultaat**: JSON object met alle tien vaardigheden, elk met alle vier niveaus (1-4). Gebruik deze volledige dataset om te analyseren welke vaardigheden relevant zijn.
|
||||||
|
|
||||||
|
### Scenario 2: Specifieke Vaardigheid Bekend
|
||||||
|
|
||||||
|
**Wanneer te gebruiken:**
|
||||||
|
|
||||||
|
- Wanneer er al duidelijk is aan welke specifieke vaardigheid wordt gewerkt
|
||||||
|
- Wanneer de gebruiker expliciet vraagt naar een specifieke vaardigheid
|
||||||
|
- Wanneer je alleen informatie nodig hebt over één of meerdere specifieke vaardigheden
|
||||||
|
|
||||||
|
**WORKFLOW:**
|
||||||
|
|
||||||
|
#### 2a. Één Specifieke Vaardigheid
|
||||||
|
|
||||||
|
**Wanneer**: Er is één specifieke vaardigheid bekend
|
||||||
|
|
||||||
|
**VOER UIT**:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python scripts/vaardigheden.py --skill "Vaardigheidsnaam"
|
||||||
|
```
|
||||||
|
|
||||||
|
**BELANGRIJK**:
|
||||||
|
|
||||||
|
- Gebruik de exacte vaardigheidsnaam zoals vermeld in de lijst hierboven
|
||||||
|
- Voeg **GEEN** `--level` filter toe tenzij expliciet gevraagd naar een specifiek niveau
|
||||||
|
- Haal alle niveaus op voor de vaardigheid, tenzij expliciet anders gevraagd
|
||||||
|
|
||||||
|
**Voorbeeld:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python scripts/vaardigheden.py --skill "Samenwerken"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Resultaat**: JSON object met alleen de "Samenwerken" vaardigheid, inclusief alle vier niveaus.
|
||||||
|
|
||||||
|
#### 2b. Meerdere Specifieke Vaardigheden
|
||||||
|
|
||||||
|
**Wanneer**: Er zijn meerdere specifieke vaardigheden bekend
|
||||||
|
|
||||||
|
**VERPLICHTE WORKFLOW:**
|
||||||
|
|
||||||
|
1. **VOER MEERDERE REQUESTS UIT**: Maak voor elke vaardigheid een aparte request naar het Python script
|
||||||
|
2. **GEEN COMBINATIE**: Je kunt niet meerdere vaardigheden in één request ophalen
|
||||||
|
3. **VOOR ELKE VAARDIGHEID**: Voer `python scripts/vaardigheden.py --skill "Vaardigheidsnaam"` uit
|
||||||
|
|
||||||
|
**Voorbeeld bij 3 vaardigheden:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python scripts/vaardigheden.py --skill "Samenwerken"
|
||||||
|
python scripts/vaardigheden.py --skill "Kritisch oordelen"
|
||||||
|
python scripts/vaardigheden.py --skill "Reflecteren"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Resultaat**: Drie aparte JSON objecten, één voor elke vaardigheid met alle vier niveaus.
|
||||||
|
|
||||||
|
#### 2c. Specifiek Niveau (Alleen Wanneer Expliciet Gevraagd)
|
||||||
|
|
||||||
|
**Wanneer**: De gebruiker vraagt expliciet naar een specifiek niveau (bijv. "niveau 2", "level 3")
|
||||||
|
|
||||||
|
**VERPLICHTE WORKFLOW:**
|
||||||
|
|
||||||
|
1. **GEBRUIK `--level` FILTER**: Voeg `--level` toe aan de command alleen wanneer expliciet gevraagd
|
||||||
|
2. **COMBINEER MET `--skill`**: Als er ook een specifieke vaardigheid bekend is, combineer beide filters
|
||||||
|
3. **GEEN NIVEAU FILTER**: Als er geen specifiek niveau wordt genoemd, haal alle niveaus op
|
||||||
|
|
||||||
|
**Voorbeelden:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Specifieke vaardigheid op specifiek niveau (expliciet gevraagd)
|
||||||
|
python scripts/vaardigheden.py --skill "Reflecteren" --level 3
|
||||||
|
|
||||||
|
# Alle vaardigheden op specifiek niveau (expliciet gevraagd)
|
||||||
|
python scripts/vaardigheden.py --level 2
|
||||||
|
|
||||||
|
# Specifieke vaardigheid zonder niveau (geen niveau genoemd)
|
||||||
|
python scripts/vaardigheden.py --skill "Samenwerken"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Kritieke Regels
|
||||||
|
|
||||||
|
### VERPLICHT: Gebruik Alleen Gereturned Data
|
||||||
|
|
||||||
|
**KRITIEK**: Je MOET alleen de data gebruiken die wordt gereturned door het Python script.
|
||||||
|
|
||||||
|
**VERBODEN:**
|
||||||
|
|
||||||
|
- ❌ Het verzinnen of invullen van criteria voor vaardigheden
|
||||||
|
- ❌ Het gebruik van kennis over vaardigheden die niet in de gereturned data staat
|
||||||
|
- ❌ Het aannemen van wat een vaardigheid zou moeten zijn zonder de data te raadplegen
|
||||||
|
|
||||||
|
**VERPLICHT:**
|
||||||
|
|
||||||
|
- ✅ Gebruik alleen de `title` en `info` velden uit de gereturned JSON
|
||||||
|
- ✅ Baseer alle analyses en conclusies op de daadwerkelijke data
|
||||||
|
- ✅ Raadpleeg altijd de volledige dataset wanneer onzekerheid bestaat
|
||||||
|
|
||||||
|
### VERPLICHT: Scenario 1 bij Onzekerheid
|
||||||
|
|
||||||
|
**KRITIEK**: Wanneer het niet duidelijk is welke vaardigheid relevant is, MOET je Scenario 1 gebruiken (alle vaardigheden ophalen).
|
||||||
|
|
||||||
|
**VERBODEN:**
|
||||||
|
|
||||||
|
- ❌ Het gissen naar welke vaardigheid relevant zou kunnen zijn
|
||||||
|
- ❌ Het ophalen van alleen een subset van vaardigheden "omdat je denkt dat die relevant zijn"
|
||||||
|
- ❌ Het overslaan van het ophalen van alle data bij onzekerheid
|
||||||
|
|
||||||
|
**VERPLICHT:**
|
||||||
|
|
||||||
|
- ✅ Bij twijfel: gebruik altijd Scenario 1
|
||||||
|
- ✅ Haal alle vaardigheden op wanneer je moet bepalen welke relevant zijn
|
||||||
|
- ✅ Analyseer de volledige dataset om te bepalen welke vaardigheden van toepassing zijn
|
||||||
|
|
||||||
|
### VERPLICHT: Meerdere Requests voor Meerdere Vaardigheden
|
||||||
|
|
||||||
|
**KRITIEK**: Wanneer je meerdere specifieke vaardigheden nodig hebt, maak je meerdere aparte requests.
|
||||||
|
|
||||||
|
**VERBODEN:**
|
||||||
|
|
||||||
|
- ❌ Het proberen om meerdere vaardigheden in één request te combineren
|
||||||
|
- ❌ Het ophalen van alle vaardigheden wanneer je alleen specifieke nodig hebt (tenzij Scenario 1 van toepassing is)
|
||||||
|
|
||||||
|
**VERPLICHT:**
|
||||||
|
|
||||||
|
- ✅ Maak voor elke vaardigheid een aparte request
|
||||||
|
- ✅ Voer elk script commando apart uit
|
||||||
|
- ✅ Verwerk de resultaten van elke request afzonderlijk
|
||||||
|
|
||||||
|
### VERPLICHT: Niveau Filter Alleen bij Expliciete Vraag
|
||||||
|
|
||||||
|
**KRITIEK**: Gebruik de `--level` filter alleen wanneer de gebruiker expliciet vraagt naar een specifiek niveau.
|
||||||
|
|
||||||
|
**VERBODEN:**
|
||||||
|
|
||||||
|
- ❌ Het toevoegen van `--level` "omdat je denkt dat het handig is"
|
||||||
|
- ❌ Het filteren op niveau zonder expliciete vraag van de gebruiker
|
||||||
|
- ❌ Het aannemen van een niveau zonder dat dit wordt genoemd
|
||||||
|
|
||||||
|
**VERPLICHT:**
|
||||||
|
|
||||||
|
- ✅ Gebruik `--level` alleen wanneer expliciet gevraagd (bijv. "niveau 2", "level 3", "op niveau 4")
|
||||||
|
- ✅ Haal standaard alle niveaus op voor de geselecteerde vaardigheid(en)
|
||||||
|
- ✅ Laat de gebruiker alle niveaus zien tenzij specifiek anders gevraagd
|
||||||
|
|
||||||
|
## Script Gebruik
|
||||||
|
|
||||||
|
### Basis Commando
|
||||||
|
|
||||||
|
Het Python script `scripts/vaardigheden.py` wordt gebruikt om vaardigheden op te halen:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python scripts/vaardigheden.py [--skill SKILL] [--level LEVEL]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Argumenten en Opties
|
||||||
|
|
||||||
|
- `--skill SKILL`: De naam van een specifieke vaardigheid om op te halen
|
||||||
|
|
||||||
|
- Als niet opgegeven: haalt alle vaardigheden op (Scenario 1)
|
||||||
|
- Moet exact overeenkomen met een van de tien geldige vaardigheidsnamen
|
||||||
|
- Hoofdlettergevoelig
|
||||||
|
|
||||||
|
- `--level LEVEL`: Filter op specifiek niveau (1, 2, 3, of 4)
|
||||||
|
|
||||||
|
- **ALLEEN gebruiken wanneer expliciet gevraagd naar een specifiek niveau**
|
||||||
|
- Optioneel: kan gecombineerd worden met `--skill`
|
||||||
|
- Als niet opgegeven: haalt alle niveaus op voor de geselecteerde vaardigheid(en)
|
||||||
|
|
||||||
|
- `-h` of `--help`: Toont gebruiksinformatie en sluit af
|
||||||
|
|
||||||
|
### Response Formaat
|
||||||
|
|
||||||
|
**Scenario 1 - Alle vaardigheden (zonder argumenten):**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Juiste kennis ontwikkelen": {
|
||||||
|
"1": {
|
||||||
|
"title": "Student bepaalt welke kennis..."
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"title": "niveau 1 + \n\nStudent kijkt naar gangbare..."
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"title": "niveau 2 + \n\nStudent kijkt zelfstandig..."
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"title": "niveau 3 + \n\nStudent laat zien..."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Kwalitatief product maken": {
|
||||||
|
"1": { "title": "..." },
|
||||||
|
"2": { "title": "..." },
|
||||||
|
"3": { "title": "..." },
|
||||||
|
"4": { "title": "..." }
|
||||||
|
},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Scenario 2a - Specifieke vaardigheid (zonder niveau filter):**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Samenwerken": {
|
||||||
|
"1": { "title": "..." },
|
||||||
|
"2": { "title": "..." },
|
||||||
|
"3": { "title": "..." },
|
||||||
|
"4": { "title": "..." }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Scenario 2c - Specifieke vaardigheid op specifiek niveau:**
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Reflecteren": {
|
||||||
|
"3": {
|
||||||
|
"title": "..."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Sommige niveaus kunnen ook een `info` veld bevatten met aanvullende informatie, links naar bronnen, of voorbeelden.
|
||||||
|
|
||||||
|
## Validatie en Foutafhandeling
|
||||||
|
|
||||||
|
### Validatie
|
||||||
|
|
||||||
|
Het script valideert automatisch:
|
||||||
|
|
||||||
|
1. **Vaardigheidsnaam**: Controleert of de opgegeven naam exact overeenkomt met een van de tien geldige vaardigheden
|
||||||
|
2. **Niveau**: Controleert of het niveau een geldige waarde is (1, 2, 3, of 4)
|
||||||
|
3. **Data bestand**: Controleert of het benodigde JSON bestand bestaat
|
||||||
|
|
||||||
|
### Foutmeldingen
|
||||||
|
|
||||||
|
**Ongeldige vaardigheidsnaam:**
|
||||||
|
|
||||||
|
```
|
||||||
|
Error: Invalid skill: Ongeldige naam
|
||||||
|
Valid skills: Juiste kennis ontwikkelen, Kwalitatief product maken, ...
|
||||||
|
```
|
||||||
|
|
||||||
|
**Ongeldig niveau:**
|
||||||
|
|
||||||
|
```
|
||||||
|
Error: Invalid level: 5 (must be 1-4)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Ontbrekend data bestand:**
|
||||||
|
|
||||||
|
```
|
||||||
|
Error: Data file not found: /path/to/vaardigheden-nl.json
|
||||||
|
```
|
||||||
|
|
||||||
|
**Geen resultaten:**
|
||||||
|
|
||||||
|
```
|
||||||
|
No skills found with the specified filters
|
||||||
|
```
|
||||||
|
|
||||||
|
Alle foutmeldingen worden naar stderr geschreven. Het script eindigt met exit code 1 bij fouten.
|
||||||
|
|
||||||
|
## Exit Codes
|
||||||
|
|
||||||
|
- `0`: Succesvol uitgevoerd
|
||||||
|
- `1`: Fout opgetreden (ongeldige input, ontbrekend bestand, geen resultaten)
|
||||||
|
|
||||||
|
## Best Practices Samenvatting
|
||||||
|
|
||||||
|
1. **Bij onzekerheid**: Gebruik altijd Scenario 1 (alle vaardigheden ophalen)
|
||||||
|
2. **Gebruik alleen gereturned data**: Verzin geen criteria, gebruik alleen wat het script retourneert
|
||||||
|
3. **Meerdere vaardigheden**: Maak meerdere aparte requests
|
||||||
|
4. **Niveau filter**: Alleen gebruiken wanneer expliciet gevraagd
|
||||||
|
5. **Exacte namen**: Vaardigheidsnamen zijn hoofdlettergevoelig en moeten exact overeenkomen
|
||||||
|
6. **Alle niveaus**: Haal standaard alle niveaus op tenzij expliciet anders gevraagd
|
||||||
Reference in New Issue
Block a user