Het technisch rapport

In het technisch rapport, ook wel lab report of practicumverslag genoemd, rapporteer je voldoende informatie om een onderzoek te kunnen beoordelen en repliceren. Met andere woorden, je lezer moet na het doornemen van het geschreven rapport in staat zijn om te kunnen beoordelen of je het onderzoek op een zinnige wijze hebt uitgevoerd en heeft alle benodigde informatie om het zelf op exact dezelfde manier uit te voeren. Het technisch rapport is in deze dus een versimpelde versie van een onderzoeksverslag.

Opbouw van het technisch rapport

Het technisch rapport dient een samenhangende tekst te zijn, zowel inhoudelijk als op tekstueel niveau. Maak er dus zo veel mogelijk een lopend verhaal van en niet alleen een opsomming. Het is geschreven in correct wetenschappelijk Nederlands. Wees volledig, maar vermijd irrelevante zaken. Het is daarom verstandig om na het schrijven het rapport nogmaals door te nemen en te controleren op taalgebruik en of alle benodigde informatie erin staat.

De vorm en opbouw van het rapport heeft een duidelijke functie. Deze vorm schept duidelijkheid en laat zien hoe nieuwe inzichten tot stand zijn gekomen en waarop ze zijn gebaseerd. Daarnaast zijn door een gestandaardiseerde opbouw onderdelen voor anderen snel herkenbaar en makkelijk terug te vinden (zie de sectie over IMRaD). De onderdelen van het technisch rapport staan hieronder.

  1. Titel
  2. Naam auteurs, datum en cursus
  3. Inleiding
  4. Methode
  5. Resultaten
  6. Discussie
  7. Referenties
  8. Bijlagen

Hierop zijn een aantal variaties mogelijk. Zo is het gebruikelijk om bij een langer technisch rapport (meer dan 2 à 3 pagina's) een korte samenvatting toe te voegen voor de inleiding en bij een zeer uitgebreid rapport (10+ pagina's) een inhoudsopgave. Daarnaast kan een docent bij een specifieke cursus afwijken van deze opbouw - houd je dan altijd aan de eisen bij de cursus.

Hieronder geven wordt per onderdeel aangegeven welke informatie er in het technisch rapport verwacht wordt. Daarbij is het afhankelijk van het specifieke onderzoek wat je exact zult rapporteren. Zo krijg je mogelijk een ander rapport wanneer je over software rapporteert dan over hardware of wanneer je de nader druk op de toepassing versus de fundamentele onderliggende processen. In alle gevallen: denk goed na wat je rapporteert en ga niet hersenloos een checklist aflopen.

Titel

Idealiter is de titel bondig, niet langer dan 12 woorden, en geeft de kern van het onderzoek weer. Het is de kortst denkbare samenvatting van het rapport die de aandacht vraagt en de inhoud dekt. De titel kan bijvoorbeeld het belangrijkste resultaat of conclusie zijn. Gebruik geen aparte titelpagina bij een technisch rapport.

Inleiding

Je beschrijft de context van het onderzoek. Wat is er onderzocht en waarom? Meestal kun je het opdelen in twee onderdelen: onderwerp en onderzoeksvraag.

Bij de beschrijving van het onderwerp geef je aan wat de bredere context is, de relevantie, en eerdere bevindingen. Geef in enkele zinnen aan wat de algemene achtergrond van het rapport is. Als het een opdracht is bij een practicum, beschrijf je hier in je eigen woorden de instructies. Hierbij staat vaak een groter probleem centraal; aan de oplossing lever je met je onderzoek een kleine bijdrage. Informatie die nodig is om de rest van het rapport te kunnen begrijpen, zoals definities van belangrijke concepten, geef je ook hier. Daarbij geef je aan waarom dit onderwerp belangrijk is, dan wel op wetenschappelijk of maatschappelijk niveau. In dit geheel kun je bevindingen uit eerdere onderzoek beschrijven ter onderbouwing.

Na de omschrijving van het onderwerp geef je expliciet aan welke vraag je in dit onderzoek gaat beantwoorden. Deze onderzoeksvraag is het belangrijkste onderdeel van het rapport en vormt de rode draad voor de andere onderdelen. Een heldere onderzoeksvraag biedt houvast bij het schrijven. Alle gegevens die je in het rapport vermeldt, dienen tot het geven van een antwoord op de onderzoeksvraag. Zonder een duidelijke vraag zal het moeilijk zijn om tot een conclusie te komen.

Indien je specifieke verwachtingen hebt over het antwoord op je onderzoeksvraag, dan dien je deze ook te vermelden. Daarbij horen de verwachtingen onderbouwd te zijn: als het goed is, zouden deze logisch moeten volgen uit de eerdere bevindingen uit de literatuur die je hiervoor hebt beschreven.

Hieronder volgen fragmenten van een technisch rapport, gebasseerd op rapporten die eerstejaars studenten afgelopen jaren geschreven hebben. Dit voorbeeld illustreert hoe de verschillende onderdelen in één sectie terugkomen. Het is op andere aspecten geen perfect voorbeeld dat letterlijk overgenomen dient te worden.

Inleiding van 'Het breedte-eerst zoekalgoritme is sneller bij een complexe route dan diepte-eerst'
Meer dan 100 miljoen mensen gebruiken tegenwoordig een programma zoals Google Maps om efficiënt van punt A naar punt B geleid te worden. Dergelijke programma’s dienen dus snel een correcte route te kunnen weergeven. Brede context en maatschappelijke relevantie
Een manier om deze route te modelleren is een graaf. Een graaf is een verzameling knopen die wel of niet zijn verbonden door kanten, voor te stellen als lijnen [Rosen, 2012]. De meest gebruikte graaf is de enkelvoudige graaf, waarin de lijnen altijd tussen twee knopen lopen en waar bovendien maximaal één lijn tussen twee knopen loopt [Gibbons, 1985].
Als daarnaast in een graaf alle knopen met elkaar verbonden zijn, kan de graaf weergegeven worden als een boom (tree, zie figuur 1 voor een illustratie een graaf die tegelijk een boom is). Om de kortste afstand in de graaf weer te geven, wordt ook wel de minimaal opspannende boom [minimum spanning tree; Morrin, 2013] gebruikt. Dit is een boom die de kortste route van de beginpositie naar elke andere positie in het doolhof beschrijft.
Om een minimaal opspannende boom te maken, begint men bij de startpunt, voorgesteld als de ‘wortel’ van de boom. Vervolgens worden alle knopen die bereikbaar zijn met een stap vanaf de startpunt als ‘kinderen’ toegevoegd, waarbij de wortel de ‘ouder’ is van deze kinderen. Dit kan eindeloos herhaald worden voor alle knopen die weer vanaf elk van deze kinderen te bereiken zijn, waarbij de kinderen in de vorige stap nu de ouder zijn, totdat er geen stappen meer mogelijk zijn.
Eerdere bevindingen (leidend tot de onderzoeksvraag)
In de minimaal opspannende boom kunnen twee algoritmes gebruikt worden om een route te vinden, de breedte-eerst (breadth-first) en diepte-eerst (depth-first) zoekalgoritmes [Steven, 2008]. Hoewel beide bij de wortel van de boom, hier het startpunt van de route, beginnen, verschilt de verdere aanpak.
Het breedte-eerst zoekalgoritme gaat voor elk van de kinderen na of deze de oplossing of eindpunt is en vervolgens voor elk van die kinderen dit proces herhaalt totdat het eindpunt gevonden is. Wil je bijvoorbeeld in een grote winkelketen gespecialiseerd in consumentenelektronica van de DVD-afdeling naar de uitgang lopen, dan zou je met breedte-eerst in alle richtingen naar het volgende knooppunt lopen en kijken of daar de uitgang is. Zo niet, dan loop je opnieuw vanuit alle bereikte knooppunten één stuk verder, net zo lang tot je buiten bent. Op deze manier worden alle opties afgegaan, terwijl het twee stappen verwijderd van de uitgang efficiënter is om daar rechtstreeks naartoe te gaan.
Het diepte-eerst zoekalgoritme daarentegen kiest vanuit de wortel één tak en doorzoekt deze zo ver mogelijk zonder terug te keren op eerdere stappen. Pas als blijkt dat deze tak niet de oplossing bevat, wordt teruggegaan naar een eerder punt dat nog niet doorzocht is. Hier loop je dus van de DVD-afdeling één kant, net zo ver tot je bij de uitgang bent of niet verder kunt. Wanneer je niet verder kunt, loop je terug naar het vorige knooppunt en ga je een kant op die je nog niet bent op geweest. Hier kan het dus zijn dat je op een kruispunt staat waarbij één richting de uitgang is, maar toch eerst een doodlopend pad ingaat.
Definities van belangrijke concepten
Zoals de voorbeelden illustreren, hebben beide zoekalgoritmes eigen eigenaardigheden wanneer deze toegepast worden om een route te vinden. Bovendien kan het afhankelijk zijn van de lengte van de route wanneer deze algoritmes optimaal functioneren. Daarom onderzoek ik welk algoritme sneller is en in hoeverre dit afhankelijk is van de complexiteit van de route. Om dit te toetsen, worden de zoekalgoritmes gebruikt om de uitgang te vinden in een doolhof waarbij de grootte en het aantal stappen naar de uitgang gevarieerd wordt. Onderzoeksvraag

Methode

Je beschrijft hoe het onderzoek is uitgevoerd. Dit moet gedetailleerd genoeg zijn om de resultaten juist te kunnen interpreteren en het onderzoek te kunnen repliceren - en aan de andere kant zo beknopt mogelijk geschreven zijn. Afhankelijk van de exacte discipline binnen de informatica kan het verschillen wat precies van je verwacht wordt. Hieronder staan suggesties voor verschillende subsecties die je kunt gebruiken. Je zult niet in ieder rapport dezelfde subsecties hanteren.

Algoritme

Beschrijf het algoritme dat je gebruikt. Neem niet de echte code op, maar illustreer waar nodig met behulp van pseudo-code. Hierin beschrijf je stap voor stap wat de code doet op een abstract niveau, zonder dat je de taal zelf gebruikt.

Diagram

Teken een diagram van de structuur van het programma. Zet iedere functie of procedure in een apart vakje en geef met behulp van pijlen aan hoe informatie tussen de verschillende procedures loopt. Soms is het logischer om een dergelijk diagram bij de resultaten te zetten. Het verschil zit er dan vooral in of het programma het resultaat is van je onderzoek, of nodig is om je onderzoek uit te kunnen voeren.

Software en hardware

Geef een beschrijving van de gebruikte software en hardware in zoverre dat deze relevant is voor het onderzoek (het is in veel gevallen bijvoorbeeld niet relevant welk type keyboard je gebruikt hebt).

Procedure

Beschrijf hier de specifieke handelingen van het onderzoek die zijn gedaan in een logische volgorde. Dit hoeft niet per se de chronologische volgorde te zijn waarin je het onderzoek hebt uitgevoerd.

Data-analyse

Wanneer je data hebt verzameld, beschrijf de methoden die zijn gebruikt om de data vervolgens te analyseren. Vermeld, indien van toepassing, hoe de data zijn samengevat (gemiddelden, percentages, mediaan), welke maten van variabiliteit zijn gebruikt (zoals standaardafwijking, standaardfout), hoe de data zijn genormaliseerd (bijvoorbeeld log-transformatie), welke statistische toets(en) zijn toegepast (bijvoorbeeld chikwadraattoets voor passendheid), welke significantiegrens aangehouden wordt (bijvoorbeeld p < 0,05), en alle andere numerieke of grafische methoden die zijn toegepast om de data te analyseren. Vermeld daarnaast wat je met elkaar vergelijkt.

Methode van 'Het breedte-eerst zoekalgoritme is sneller bij een complexe route dan diepte-eerst'
Procedure
Om de zoekalgoritmes te testen, zijn doolhoven gegenereerd. Deze bestonden uit ASCII tekens, waarbij de muren werden aangegeven met een kardinaalteken (#), de start- en eindpositie met respectievelijk een 'S' en 'E', en het pad met de spatie.
Er waren drie doolhoven, waarbij de complexiteit verschillende was:
  • Simpele doolhof: 6 bij 6 tekens, kortste afstand van start naar einde 4 stappen.
  • Middel doolhof: 14 bij 14 tekens, kortste afstand van start naar einde 20 stappen.
  • Complex doolhof: 38 bij 38 tekens, kortste afstand van start naar einde 39 stappen.
De gemaakte doolhoven werden eerst omgezet naar een minimaal opspannende boom, waarna beide zoekalgoritmes ieder doolhof 200 keer doorliepen. Hierbij werd de tijd van de start tot het moment dat de eindpositie bereikt was gemeten.
Procedure
Algoritme
Bij de implementatie van het breedte-eerst zoekalgoritme is gekozen om gebruik te maken van een first-in-first-out queue waarbij de spatie in een bezocht pad vervangen werd door een komma. Wanneer paden met een komma vanuit een andere vertakking bezocht werden, werden deze automatisch niet meer als pad beschouwd. Hierdoor werd voorkomen dat dezelfde paden meerdere keren doorlopen werden.
Algoritme
Software en hardware
Beide zoekalgoritmes zijn geschreven in C omdat deze programmeertaal redelijk dicht aansluit bij de hardware en relatief snel is. Het experiment is gedraaid op een laptop met een Intel i3 processor, 4 GiB aan RAM met daarop Ubuntu 14.04.3 LTS.
Software en hardware
Data-analyse
Om te bepalen of de gevonden resultaten significant waren, werd een 2 bij 3 herhaalde metingen ANOVA met als onafhankelijke variabelen het zoekalgoritme (breedte-eerst, diepte-eerst) en de complexiteit van het doolhof (simpel, middel, complex) met de oplostijd in milliseconden als afhankelijke variabele gebruikt.
Data-analyse

Resultaten

Je beschrijft de belangrijkste bevindingen van het onderzoek. Zorgt dat je nog niet gaat interpreteren of verklaren, daar is de discussie voor. Vermeld ook resultaten die je niet verwacht had, maar die wel relevant voor je onderzoeksvraag zijn. Je geeft hierbij zowel de meetresultaten (bijvoorbeeld een gemiddelde en standaardafwijking) als toetsingsresultaten (bijvoorbeeld de t- en p-waarde).

In deze sectie is het vaak zinnig om gebruik te maken van figuren en tabellen om je resultaten visueel weer te geven. Let er dan op dat zowel je lopende tekst als je figuren en tabellen zelfstandig leesbaar zijn met een duidelijk bijschrift, en dat je in de lopende tekst minimaal één keer verwijst naar ieder figuur en iedere tabel. Een figuur of tabel dient zo dicht mogelijk bij de tekst te staan waar die het eerst genoemd wordt.

Figuren en tabellen

Figuren zoals grafieken zijn visuele representaties van de resultaten die de lezer snel moet kunnen begrijpen. Ook tabellen geven met getallen of tekst een overzicht van de resultaten. Voor advies over de opmaak van beide en voorbeelden, zie het hoofdstuk Figuren en tabellen.

Discussie

Het onderwerp van het rapport wordt in de discussie afgesloten. Begin met een samenvatting van de belangrijkste resultaten en geef aan of deze in lijn zijn met je verwachtingen.

Vervolgens verklaar je de gevonden resultaten. Zijn deze logisch en hoe verklaar je deze inhoudelijk? Eventueel kun je hier ook nagaan of er methodologische verklaringen zijn voor de gevonden resultaten: zijn er factoren in het verloop van het onderzoek geweest die de resultaten (ongewenst) hebben beïnvloed. Ga daar alleen op in als deze factoren een zinvolle interpretatie van de resultaten in de weg hebben kunnen staan.

Daarna koppel je terug naar eerder bevindingen van de in de inleiding besproken literatuur. Als het logisch is om andere literatuur aan te halen om de resultaten verklaren, dan kun je dat ook doen. Ook koppel je terug naar een bredere context - het probleem dat je in de inleiding genoemd hebt en eventueel maatschappelijke relevantie. Als je onderbouwde aanbevelingen kunt geven aan de hand van je resultaten, dan doe je dat hier.

Eventueel kun je suggesties doen voor vervolgonderzoek als daar aanleiding voor is. Dit moet een logisch vervolg vormen op het huidige onderzoek dat goed doordacht en onderbouwd is. Het is niet hetzelfde onderzoek maar dan zonder de hierboven beschreven methodologische problemen.

Conclusie

Sluit de discussie sterk af met een duidelijke conclusie. In de conclusie wordt de discussie samenvattend afgerond en kom je weer terug op de onderzoeksvraag die in de inleiding is beschreven. Herhaal hierbij eventueel de onderzoeksvraag en geef daarbij aan wat het belangrijkste is dat we hierover na dit onderzoek te weten gekomen zijn. Eventueel kun je terugkoppelen naar het grotere probleem dat je in de inleiding beschreven hebt of suggesties voor vervolgonderzoek geven. Je kunt hier de gevolgen van je discussie weer naar een bredere context doortrekken. Zorg dat er in je rapport duidelijke argumenten gegeven zijn om je conclusie te onderbouwen.

Discussie van 'Het breedte-eerst zoekalgoritme is sneller bij een complexe route dan diepte-eerst'
Of het breedte-eerst of diepte-eerst zoekalgoritme sneller is, blijkt afhankelijk van de complexiteit van de route die gevolgd dient te worden. Waar het bij simpele route niet uitmaakt welk algoritme gebruikt wordt, is breed-eerst sneller dan diepte-eerst bij de meest complexe routes. Samenvatting resultaten
Een verklaring hiervoor is dat het diepte-eerst zoekalgoritme vrij willekeurig één tak van de boom geheel doorgaat: is dit toevallig de correct tak, dan is het algoritme net zo snel of mogelijk sneller dan het breedte-eerst zoek-algoritme. De kans dat deze richting correct is wordt echter kleiner naarmate er meer takken zijn, zoals bij een complexe route. Hoe snel het diepte-eerst algoritme daardoor het eindpunt vindt, wisselt daardoor erg. Dit illustreert het belang van de Grote-O (Big-Oh) notatie, waardoor de groei begrensd wordt [Lagerberg, 2015]. Inhoudelijke verklaring resultaten
Daarbij kan de nuancering aangebracht worden dat in dit experiment de minimaal opspannende boom bekend was. Waren de zoekalgoritmes gebruikt om deze boom te maken en was deze tijd meegenomen, dan zijn er aanpassingen mogelijk waardoor diepte-eerst beter presteert, door bijvoorbeeld het programma direct te laten stoppen wanneer een route naar de uitgang gevonden is. Ook bij een brede boom met meerdere eindposities zou diepte-eerst beter kunnen functioneren, omdat dit minder geheugen vereist dan breedte-eerst en de kans om een uitgang te vinden groter wordt. Methodologische verklaring resultaten
Hoewel het breedte-eerst eerst zoekalgoritme dus sneller het eindpunt vindt van een complexe route dan het diepte-eerst zoekalgritme, verdwijnt dat verschil bij minder complexe routes en zijn er mogelijk specifieke omstandigheden waarin diepte-eerst sneller kan zijn. Conclusie

Referenties

In de meeste rapporten verwijs je naar wetenschappelijke literatuur. Het doel van de referentielijst is dat de lezer alle bibliografische informatie kan achterhalen bij brongebruik - en dus relatief eenvoudig zelf de bron kan opzoeken - zonder dat deze informatie de lopende tekst constant doorbreekt. Hanteer voor het verwijzen de stijl van de Association for Computing Machinery, tenzij de docent nadrukkelijk aangeeft dat een andere stijl gewenst is. Om de opmaak te automatiseren, kan gebruik gemaakt worden van BibTeX.

Verwijs slechts bij hoge uitzondering naar een practicumhandleiding en zeker niet naar Wikipedia of soortgelijke niet- wetenschappelijke bronnen.

Bijlagen

Voor sommige cursussen kan je gevaagd worden om bijvoorbeeld je code in een bijlage met het technisch rapport in te leveren. Zorg er in dat geval voor dat je rapport nog steeds zelfstandig leesbaar is. In principe moet de lezer alle essentiïle informatie uit het rapport kunnen halen zonder naar de bijlage te hoeven kijken.

Wanneer je meerdere bijlagen gebruikt, geef je ieder bijlage een letter. Zo kun je in het rapport verwijzen naar een specifieke bijlage, zoals bijvoorbeeld Bijlage B. Begin iedere bijlage op een nieuwe pagina.