[Scheme/Constraints] Bachelor-Master Curriculum planning

Pagina: 1
Acties:

  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
Hoe zouden jullie het volgende probleem aanpakken?

Vanaf volgend jaar wordt ( in Belgie ) het systeem van Bachelor-Master ook ingevoerd in de scholen.

Een student kan dan een bachelor kiezen ( bv: Informatica ). Een Bachelor heeft enkele verplichte vakken en ook enkele vrij in te vullen studiepunten.
Vanaf het volgende jaar kan hij dan ook een Minor kiezen ( bv: Artificiele Intelligentie ). Deze Minor heeft ook terug verplichte vakken en enkele vrij te kiezen vakken.

Na 3 jaar ben je afgestudeerd als Bachelor Informatica met als Minor Artificiele Intelligentie. Nu kan je een Master volgen in Informatica of in een andere richting. Je moet er wel voor zorgen dat je de juiste prerequisities hebt. Een prerequisite zijn vakken die reeds moet gevolgd hebben om een ander vak te kunnen beginnen ( bv: voor het vak "Software-ontwerp", moet je de vakken "Structuur van computerprogramma's I" en "Structuur van computerprogramma's II" gevolgd hebben in je Bachelor-jaren).

Dus in principe zou je een Master "Wiskunde" kunnen volgen, zolang je voor de vakken in deze master alle prerequisities voldaan zijn.

Tijdens je Master kan je dan ook nog een Profile kiezen. Dit is equivalent met een Minor in de Bachelor-jaren.

Het uiteindelijke probleem is als volgt

Een gebruiker kan kiezen welke studierichting hij wil volgen. Bijvoorbeeld: Master in Informatica met als profile Softwareontwikkeling.

Daarna moeten alle mogelijke oplossingen gegeven worden zodat de gebruiker deze richting zal kunnen volgen. Met andere woorden:
- de bachelor moet gekozen worden
- de minor
- de juiste keuzevakken

zodat aan alle prerequisities voldaan is om aan deze Master te kunnen beginnen.


Ikzelf denk eraan om eerst alle prerequisities van alle vakken van de Master en de Profile op te halen.
Dan alle bachelors en minors overlopen en de lijst met prerequisites aanpassen.
Wanneer de prerequisites leeg zijn, is het een oplossing.


Misschien kunnen jullie wat tips geven om tot een goed resultaat te komen, want mij het het mijn petje te boven.
Ter informatie: document

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


  • Kees
  • Registratie: Juni 1999
  • Laatst online: 15:13

Kees

Serveradmin / BOFH / DoC
->pw

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23-05 18:13
Het vakgebied waar jouw probleem onder valt staat bekend als constrant logic programming (CLP), in dit geval over een eindig domein (finite domain of FD). Dan heb je alvast wat om mee te Google-en. ;)

De aanpak bestaat meestal uit het opstellen van een model: een definitie van een domein en de bijbehorende constraints. Een domein is vaak een samenstelling van domeinen van afzonderlijke variabelen; bijvoorbeeld de studiekeuze is een variabele met als domein de waarden Informatica, Rechten, Natuurkunde, enzovoorts en alle mogelijke vakken zou je kunnen zien als variabelen met als waarde 0 of 1 naar gelang ze wel of niet in het curriculum voorkomen. Je totale domein is dan een carthesisch product van de domeinen van de afzonderlijke variabelen.

Een oplossing van je model is een toekenning van een waarde aan elk van die variabelen, zo dat de waarde binnen het domein van de variabele valt en zo dat aan alle constraints voldaan is. Bijvoorbeeld: studiekeuze = Informatica, Inleiding Programmeren = 1, Recht voor het Openbaar Bestuur = 0, Combinatoriek = 1, ... .

De vraag is nu hoe je zo'n oplossing gaat construeren. Ik denk dat in jouw geval het de bedoeling is dat je een interactieve applicatie maakt waarbij de gebruiker keuzen kan maken terwijl de applicatie er voor zorgt dat de gemaakte keuzen aan alle constraints voldoen (en de oplossing dus consistent blijft).

In dit geval kun je naar een oplossing toe werken door het domein steeds te verkleinen. Na elke keuze van een gebruiker voert je applicatie dan de beperkingen door die uit de constraints volgen. Stel je hebt een constraint hebt gedefinieerd dat studiekeuze=Informatica impliceert dat Combinatoriek=1 en Programmeren=1. In het begin is voor elke variabele het hele domein beschikbaar. Nu kiest de gebruiker voor Informatie als waarde van de variabele studiekeuze; het domein daarvan is nu gereduceerd tot een enkele waarde. Vervolgens voert je applicatie de eerder genoemde constraint door en beperkt de domeinen van de variabelen Combinatoriek en Programmeren tot de enkele waarde 1; de gebruiker kan deze dus niet meer uitvinken. Dit proces heet constraint propagation.

Het proces eindigt als er geen keuzemogelijkheden meer zijn; als het goed is, is dan aan alle constraints voldaan en is er een consistente oplossing tot stand gekomen.

  • BestTested!
  • Registratie: Oktober 2003
  • Laatst online: 23-05 20:37
[klein-beetje-off-topic-maar-misschien-toch-wel-interessant-modus]

Is het niet zo dat voor dit soort problemen speciale programmeertalen ontwikkeld zijn? Zogenaamde logische programmeertalen, waarin je dus programmeert met domeinen, relaties, modellen etc.? De naam ProLog klinkt hier ergens vaag in mijn achterhoofd.

[/klein-beetje-off-topic-maar-misschien-toch-wel-interessant-modus]

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

BestTested! schreef op 31 juli 2004 @ 16:13:
Is het niet zo dat voor dit soort problemen speciale programmeertalen ontwikkeld zijn? Zogenaamde logische programmeertalen, waarin je dus programmeert met domeinen, relaties, modellen etc.? De naam ProLog klinkt hier ergens vaag in mijn achterhoofd.
Er zijn Prolog implementaties die CLP ondersteunen. Maar het is niet gebruikelijk dat ze het doen.

[ Voor 14% gewijzigd door Alarmnummer op 31-07-2004 16:17 ]