Functioneel programmeren, Software-evolutie, Softwarearchitectuur

advertisement
Afstudeeropdrachten Software Technologie dr. Bastiaan Heeren, juni 2013 In mijn onderzoek bestudeer ik toepassingen van software technologische concepten, waaronder toepassingen om het onderwijs te verbeteren. In het IDEAS project (interactive domain‐specific exercise assistants) worden allerlei soorten oefenomgevingen ontworpen en gebouwd, variërend van omgevingen voor het oefenen van logica (GenExas) en wiskunde, programmeertutoren (Ask‐Elle), tot het trainen van communicatievaardigheden in een serious game. Centraal staat een strategietaal waaruit feedback kan worden gegenereerd, (term)herschrijfsystemen en feedback web‐services. Verder ben ik geïnteresseerd in functionele programmeertalen (Haskell) in het onderwijs en voor het modelleren van problemen. Een lijst met publicaties is te vinden op http://www.open.ou.nl/bhr/. Naast dit onderzoek heb ik een brede interesse in Software Engineering best‐practices. In overleg kan een afstudeeropdracht worden gezocht rond de vakken die ik verzorg in de master CS en de master SE (software evolutie, software architectuur en ontwerppatronen). Voorbeelden van afstudeeronderwerpen ‐
‐
‐
‐
Intelligent tutoring systems (ITS) o Nieuwe toepassingen van de IDEAS strategietaal (bijv. opstellen van logische bewijzen, oefenen van relatiealgebra, aansturen van non‐playable characters, feedback op UML modellen) o Programmeertutoren (bijv. herschrijven van functionele programma’s, tutor voor Java, contracten van programma’s, programmanormalisatie, automatisch nakijken) o Analyseren van het gebruik van de feedbacksystemen uit verzamelde loggegevens o Ontwerpen van (adaptieve) studentmodellen o Randomisatie van opgavegeneratie (van een bepaalde moeilijkheid) o Visualiseren, analyseren, transformeren, formaliseren en testen van strategieën. Functioneel programmeren o Ontwerp van domein‐specifieke talen (voor een bepaald domein) o Property‐based testen met QuickCheck o Metrieken voor functionele talen (zie ook software evolutie) Software evolutie o Transformatie, analyse en renovatie van programma’s en legacy systemen o Software metrieken, modellen voor onderhoudbaarheid (evt. met SIG), modellen voor voorspellen van software betrouwbaarheid o Mining software repositories o Visual software analytics Software architectuur en ontwerp o Architectuurpatronen, tactieken, patronen voor applicatie integratie Hoe kom je tot een opdracht? De nadere invulling van een opdracht gebeurt altijd in overleg met de student, zodat rekening kan worden gehouden met voorkeuren en de omvang van het afstudeertraject. Neem gerust contact met mij op om tot een invulling van je afstudeeropdracht te komen ([email protected]). 
Download