Het project VISNUE:
Technische handleiding deel 1
Patrick Vansevenant and Adhemar Bultheel
21 november 2001
http://www.cs.kuleuven.be/~nalag/research/ALpubs/AL13.abs.shtml
Samenvatting:
We geven in dit rapport een kort verslag van de technische achtergrond van de
gerealiseerde hulpmiddelen voor het project VISNUE (1999-2001).
Dit moet toelaten het systeem te onderhouden of eventuele aanpassingen te
maken.
In deel 1 wordt aandacht bestaad aan Cgi-bin scripts, de nieuwsgroep,
de vragentrommel, het gebruik van matlab en maple, java applets,
de navigatiesoftware, en latex2html.
In deel 2 wordt de werking uitgelegd van het toetssysteem.
Het project VISNUE is een OOI (Onderwijsgerichte onderzoeks-, ontwikkelings-
en implementatie-)
project dat gefinancierd wordt door de K.U.Leuven.
Via de OOI-projecten wil de Academische Overheid bijkomende stimulansen
bieden om het universitair onderwijs te vernieuwen en de interne
onderwijskundige expertise te verdiepen en te verbreden.
VISNUE (VISualisatie van Numerieke Experimenten) is een project goedgekeurd
in de derde OOI ronde en liep van 1/9/1999 tot 31/8/2001.
Het had tot doel een ICT platform te maken voor de basiscursussen numerieke
wiskunde bij de faculteiten toegepaste wetenschappen en wetenschappen.
In dit platform werden een aantal middelen voorzien die de studenten moeten
helpen bij het verwerken van een cursus numerieke wiskunde.
Die middelen zijn onder andere
- Online oefeningen:
Voor de oefenzittingen die doorgaan in de PC klassen moeten de studenten een
elektronisch antwoordformulier invullen. Hun antwoorden kunnen daarna
elektronisch bekeken worden en kan er een globale (of individuele) feedback
kan verzorgd worden.
- Nieuwsgroep:
Dit is een elektronische discussiegroep waarin de studenten (ongemodereerd)
kunnen discussiëren over onderwerpen in verband met de cursus.
- Vragentrommel:
Hiermee kunnen studenten via elektronische weg (relatief korte) vragen
stellen over de verschillende hoofdstukken van de cursus.
- Virtueel labo:
Hier worden illustraties onder de vorm van applets, maple of matlab
code aangeboden. Er worden ook bijkomende opgaven meegeleverd om te
experimenteren.
- Zelftest:
Een soort van elektronische gegevensbank die toelaat een zelftest te
genereren die on-line opgelost kan worden. De antwoorden worden automatisch
verbeterd en het systeem geeft een terugkoppeling.
- Extra informatie:
Naast het strikt noodzakelijke wordt extra informatie aangeboden via het web:
errata, historische nota's, interessante numerieke sites, bibliotheken
van numerieke software, etc.
De bedoeling van dit rapport is het documenteren van de technische
ondersteuning van dit platform zodat men daarop kan terugvallen voor
wijzigingen en onderhoud.
De ``Common Gateway Interface (CGI)'' is een standaard voor het connecteren
van externe applicaties met informatieservers, zoals HTTP- of webservers.
Een cgi programma wordt in reële tijd uitgevoerd zodat het dynamische
informatie kan genereren. Omdat een cgi programma een executable is komt het
er min of meer op neer dat iedereen dat cgi script kan uitvoeren op jouw
systeem wat natuurlijk niet zo veilig is. Daarom moeten enkele
veiligheidsmaatregelen in acht genomen worden. Dichtst bij de
typische web gebruiker staat het feit dat cgi programma's zich moeten
bevinden in een speciale folder zodat de web server weet dat deze cgi-bin
scripts moeten uitgevoerd worden i.p.v. getoond te worden via de browser.
De CGI scripts voor de externe web server zijn gesitueerd in de sub-directories
van:
/cw/wwwserver/extern/cgi-bin.
- Scripts in `cgi-bin' zijn toegankelijk voor iedereen.
- Scripts in `cgi-bin-kul' zijn enkel toegankelijk voor aanvragen
binnen het `kuleuven.be' domein.
- Scripts in `cgi-bin-cs' zijn enkel toegankelijk voor aanvragen die
komen van binnen het `cs.kuleuven.be' domein.
Raadpleeg http://www.cs.kuleuven.be/system/software/www/cgi-bin.shtml
voor meer informatie omtrent het creëren van cgi scripts voor de
departementale webserver.
Enkele interessante Perl links zijn:
Voor de online oefenzittingen:
http://www.cs.kuleuven.be/~ade/WWW/NW/oef/antwoord9.html
en
http://www.cs.kuleuven.be/~ade/WWW/NW/oef/antwoord10.html
werden er enkele Perl scripts geschreven om de antwoorden te verzamelen en
te verwerken (= omvormen tot een beter leesbare vorm) per reeks.
Om ervoor te zorgen dat de online oefenzittingen enkel kunnen opgelost
worden tijdens de geplande zittingen werden de scripts `oefstart' en
`oefstop' geschreven. Met `oefstart' krijgen de studenten van een bepaalde
reeks toegang om hun antwoorden door te sturen. Met `oefstop' wordt hun die
toegang terug ontnomen.
Hoe de scripts intalleren
De 2 scripts (voor het academiejaar 2000-2001)
http://www.cs.kuleuven.be/~patrickv/oefstart
en
http://www.cs.kuleuven.be/~patrickv/oefstop
moeten gekopieerd door elke oefeningengever naar hun eigen home directory en
ze moeten er tevens voor zorgen de deze scripts uitvoerbaar zijn voor hen
door een
chmod 700 oefstart en een
chmod 700 oefstop uit te voeren.
Hoe de scripts gebruiken
Bij het begin en het einde van de pc-zitting kun je dan via telnet (wat
geïnstalleerd is in de pc-lokalen) je machine bereiken op cs en zo de
scripts `oefstart' en `oefstop' uitvoeren. Dit doe je als volgt:
- Open een dos-box.
- Voer uit: telnet telnet.cs.kuleuven.be
- Geef je login en paswoord.
- Voer uit: Xrlogin jouw_machine
- Bij het begin van een oefenzitting voer je het volgende uit:
./oefstart *oefznr* *reeksnr*
waarbij *oefznr* het nummer is van de oefenzitting en
*reeksnr* het nummer van de reeks is.
- Bij het einde van een oefenzitting voer je het volgende uit:
./oefstop *oefznr* *reeksnr*
Werking van de scripts
Het shell script `oefstart' maakt de directory
/home/ade/public_html/WWW/NW2/oef/antwoorden*acjaar*/oefz*oefznr*
aan indien deze directory nog niet bestaat en indien de directory
/home/ade/public_html/WWW/NW2/oef/antwoorden*acjaar*
bestond. *acjaar* is opgebouwd uit 4 cijfers waarbij de eerste 2 het
beginjaar en de laatste 2 het eindjaar voorstellen. Vb. voor het academiejaar
2000-2001 wordt *acjaar* = 0001. Verder worden de toegangsrechten van deze
directory gewijzigd naar drwxrwxr-x, waardoor de personen van de groep natw
schrijfrecht krijgen in deze directory.
Daarna wordt het lege bestand
~ade/public_html/WWW/NW2/oef/antwoorden*acjaar*/oefz*oefznr*/reeks*reeksnr*.out
aangemaakt indien het nog niet bestaat. Verder worden de toegangsrechten ervan
gewijzigd naar -rwxrwxrwx, zodat de studenten (=wereld) schrijfrecht verkrijgen
in dit bestand.
Het shell script `oefstop' wijzigt de toegangsrechten van
~ade/public_html/WWW/NW2/oef/antwoorden*acjaar*/oefz*oefznr*/reeks*reeksnr*.out
naar -rwxr-xr-x indien dit bestand reeds bestond zodat de studenten
(=wereld) hun schrijfrecht verliezen. Indien het voorgaande slaagt dan wordt
ook het lege bestand
~ade/public_html/WWW/NW2/oef/antwoorden*acjaar*/oefz*oefznr*/reeks*reeksnr*.html
aangemaakt als het nog niet bestaat en worden de schrijfrechten ervan gewijzigd
naar -rwxrwxrwx zodat de webserver kan schrijven in dit html bestand tijdens
de verwerking van de antwoorden.
De volgende scripts:
/cw/wwwserver/extern/cgi-bin/cgi-bin/cgi-bin-nalag/oef9.pl en
/cw/wwwserver/extern/cgi-bin/cgi-bin/cgi-bin-nalag/oef10.pl
zorgen ervoor dat de antwoorden die verstuurd werden via het respectievelijke
html formulier geschreven worden in het juiste `.out' bestand:
/home/ade/public_html/WWW/NW2/oef/antwoorden*acjaar*/oefz*zitting*/reeks*nr*.out
waarbij:
- *acjaar* is opgebouwd uit 4 cijfers waarbij de eerste 2 het
beginjaar en de laatste 2 het eindjaar voorstellen. Vb. voor het academiejaar
2000-2001 wordt *acjaar* = 0001.
- *zitting* het nummer voorstelt van de oefenzitting. Vb. voor oefenzitting
9 wordt *zitting* = 9.
- *nr* het reeksnummer voorstelt. Vb. voor reeks nummer 5 wordt *nr* = 5.
Het formulier kan slechts worden opgestuurd als zowel het voornaamveld
en het naamveld werd ingevuld en als het reeksnummer werd aangeduid.
Om de vragen met bijhorende antwoorden op een wat meer overzichtelijke manier
te kunnen bekijken werden volgende Perl scripts geschreven:
/cw/wwwserver/extern/cgi-bin/cgi-bin/cgi-bin-nalag/verwerk9.pl en
/cw/wwwserver/extern/cgi-bin/cgi-bin/cgi-bin-nalag/verwerk10.pl
Deze scripts genereren per reeks een nieuwe html pagina:
/home/ade/public_html/WWW/NW2/oef/antwoorden*acjaar*/oefz*zitting*/reeks*nr*.html
en zorgen ervoor dat de antwoorden:
/home/ade/public_html/WWW/NW2/oef/antwoorden*acjaar*/oefz*zitting*/reeks*nr*.out
alfabetisch gesorteerd worden op naam en dat elk antwoord wordt voorafgegaan
door de bijhorende vraag.
Een voorbeeld van zo'n resulterende html pagina is:
http://www.cs.kuleuven.be/~ade/WWW/NW2/oef/antwoorden0001/oefz10/reeks1.html
Deze scripts (verwerk9.pl en verwerk10.pl) kunnen opgeroepen (uitgevoerd)
worden via volgende html pagina's:
~ade/public_html/WWW/NW2/oef/antwoorden*acjaar*/oefz*zitting*/verwerk*zitting*.html.
Voor een voorbeeld zie:
http://www.cs.kuleuven.be/~ade/WWW/NW2/oef/antwoorden0001/oefz10/verwerk10.html
Vroeger moest de webserver quota hebben op de machine waarop de antwoorden
werden bewaard. Dus in dit geval op `ake'. Ook de oefeningengevers moesten
quota hebben op de machine waarop de antwoorden bewaard werden omdat zij
eigenaar waren van de `.out' en `.html' bestanden.
Tegenwoordig gebruikt de nieuwe externe webserver zijn eigen directory op
zijn eigen schijf en is er dus geen quota meer nodig.
oefstart en oefstop
Zowel in `oefstart' als in `oefstop' wijzig je acjaar naar het huidige
acjaar. Indien er meer dan 10 oefenzittingen en/of meer dan 12
reeksen zijn dan moet je tevens Omax en/of Rmax aanpassen.
oef*.pl en verwerk*.pl
Hier hoef je enkel aanpassingen te maken onder `Jaarafhankelijke zaken',
in dit geval het huidig academiejaar. Dit natuurlijk als de nummers van
de oefenzittingen en dergelijke meer ongewijzigd blijven.
antwoorden*acjaar*/oefz*zitting*
Laat door prof. Bultheel volgende directory aanmaken:
drwxrwxrwx /home/ade/public_html/WWW/NW2/oef/antwoorden*acjaar*
Daarna kan je zelf de nodige oefz*zitting* directories aanmaken:
drwxrwxr-x /home/ade/public_html/WWW/NW2/oef/antwoorden*acjaar*/oefz*zitting*
verwerk*.html
Nu moet je nog de juiste verwerk*.html kopiëren naar de juiste directory
~ade/public_html/WWW/NW2/oef/antwoorden*acjaar*/oefz*zitting*/verwerk*.html
Als het aantal reeksen of de nummers van de oefenzittingen veranderen moet
je natuurlijk bijkomende aanpassingen maken.
Nadat het systeem is klaargezet voor het huidige academiejaar (Zie sectie
2.4.5 : Onderhoud: jaarlijkse aanpassingen) kan je de nodige informatie
verstrekken aan de oefeningengevers omtrent de online oefenzittingen.
De belangrijkste informatie voor hen staat beschreven in ``Sectie 2.4:
Scripts voor de online oefenzittingen'' tot aan ``Werking van de scripts''.
Er is een nieuwsgroep (kuleuven.faculty.tw.cursus.numwis)
aangemaakt voor
Numerieke Wiskunde waarop de studenten kunnen discussiëren over het vak.
Het is een interne nieuwsgroep die werd aangemaakt en onderhouden
wordt door het LUDIT. Omdat de KULeuven nieuwsserver enkel intern bedoeld is,
is hij om deze reden niet bereikbaar buiten het KULeuven domein, enkel vanop
KULeuvenNet en KotNet (ook dialin).
De contactpersoon is Rudy Rys (diensthoofd systeembeheer) van het ludit
mailto:Rudy.Rys@cc.kuleuven.be
Om berichten te kunnen lezen moet je geabonneerd zijn op de nieuwsgroep.
Dit kan als volgt gebeuren:
Nieuwsgroepen en Netscape 4+
- Nieuwsgroep activeren
- Netscape Messenger File Subscribe...
- Server news.kulnet.kuleuven.be
- All kuleuven.faculty.tw.cursus.numwis
Maak de nieuwsgroep actief
door er op te klikken Subscribe
(Indien dit niet blijkt te werken doe dan eerst een ``Refresh List''.)
- Bericht(en) lezen
- Nieuwsgroep activeren indien nog niet geactiveerd
- news.kulnet.kuleuven.be
kuleuven.faculty.tw.cursus.numwis
- Bericht(en) versturen
- Nieuwsgroep activeren indien nog niet geactiveerd
- news.kulnet.kuleuven.be
kuleuven.faculty.tw.cursus.numwis
- New Msg Bericht neerschrijven Send
kuleuven.faculty.tw.cursus.numwis
Het manueel bijhouden van de subscriptionlijst
Voor meer algemene informatie over Nieuwsgroepen door
LUDIT zie:
http://www.ludit.kuleuven.be/info/news/
Voor het betreffende vak is er ook een `vragentrommel' ter beschikking gesteld
waar de studenten via elektronische weg ten allen tijde vragen kunnen
stellen over de cursus/oefeningen edm. Hiervoor werd gebruik gemaakt van de
infrastructuur van het kandidatuurcentrum waar een dergelijk systeem bestaat
voor de vakken van de eerste kandidaturen. Voor numerieke wiskunde bestaan
er 3 versies voor de vragentrommel: (a) 2de kan. Burg. ir.;
(b) 2de kan. Wisk./Inform.; (c) aanv. opl. informatica + ind. ing. Deze
verschillende vragentrommels zijn bereikbaar via de volgende
overzichtspagina:
http://www.kc.kuleuven.be/numwis/
en via de stek van het betreffende vak.
De vragentrommels worden dan ook onderhouden door het kandidatuurcentrum (KC).
Contactpersonen voor de vragentrommel op het KC zijn:
mailto:Andreas.Tirez@kc.kuleuven.be
en
mailto:Hilde.Vanaenroyde@kc.kuleuven.be.
Vragen kunnen gesteld worden over elk van de hoofdstukken uit de cursus en
over de oefeningen. Er is een zoekfunctie voorzien waardoor alle relevante
vragen over een bepaald trefwoord kunnen opgezocht worden.
Er kan ook gezocht worden in vragen van vorige jaren door de link te volgen
naar de vragentrommel van het vorige jaar.
Gedurende het zomerverlof wordt er een bericht getoond dat er geen garantie
kan gegeven worden dat de vragen zullen beantwoord worden.
De docent/oefeningengever(s) worden op de hoogte gebracht indien er een
nieuwe vraag aan de vragentrommel werd losgelaten via email. Om op de
vraag te kunnen antwoorden dient de docent/oefeningengever met de muis te
klikken achter `Antwoord:' van de betreffende vraag op het `smiley icon'.
Om te kunnen antwoorden
heeft hij eveneens een login en paswoord nodig die kan aangevraagd worden
op het KC. Het systeem is beveiligd
zodat maar 1 iemand (terzelfdertijd) een antwoord kan geven.
Als de vraag beantwoord is verdwijnt de `smiley icon', maar men kan nog steeds
het antwoord terug opvragen om eventuele wijzigingen aan te brengen door
op de plaats te klikken waar de `smiley' stond.
Als de student zijn e-mail adres heeft opgegeven krijgt hij automatisch
een kopie van het antwoord toegestuurd, tenzij deze mogelijkheid afgezet
wordt doordat de beantwoorder dit door een knop aan te klikken afzet.
Voor wiskundige formules is er nog geen handige oplossing voorzien. Ofwel
volg je de de link met richtlijnen (Tips voor speciale tekens en formattering)
ofwel typ je de vraag in html formaat in als je dat kent.
Matlab installeren
Matlab kan in het begin van het academiejaar bekomen worden via de VTK
cursusdienst door een mailtje te sturen naar
(cd-matlab@vtk.be).
Daarbij moet je minstens je volledige naam en het jaar waarin je zit
vermelden. Via de mailingslist en via het bakske zal je verwittigd
worden wanneer de CD's klaar zijn. Je krijgt daar ook een geheime code mee
voor de installatie van de CD. Als je die niet hebt gekregen moet je nog
even langslopen op de cursusdienst.
In de PC-klassen is matlab aanwezig.
Matlab programma's installeren
- Creëer in de directory
C:\Matlab
van uw eigen PC een subdirectory
demo*.
- Vanop de homepagina van het vak Numerieke Wiskunde kun je nu de
gewenste Matlab code proberen zichtbaar te maken in Netscape.
- Ofwel lukt dit. En kan je de code opslaan in de directory
C:\Matlab\demo*
door in Netscape `File' `Save Frame As' te
selecteren.
- Ofwel lukt dit niet. Dan klik je de link aan door tegelijk de `shift'
toets op je toetsenbord ingedrukt te houden. (Hetzelfde wordt
bekomen door de link aan te klikken met je rechtermuis knop en
vervolgens `Save Link As'... te kiezen.) Verder kun je dan de code
opslaan in de directory
C:\Matlab\demo
.
- Je slaat de code het best op onder de aangegeven *.m naam.
Als er geen naam vermeldt staat dan moet je uiteraard zelf een naam
kiezen. Maar zorg er dan wel voor dat Matlab deze naam niet zelf gebruikt
in zijn standaard bibliotheek.
Matlab programma's uitvoeren
- Ga naar de directory
C:\Matlab\demo*
.
- Start Matlab op.
- Probeer de code van het hoofdprogramma uit te voeren. Soms moet je wel
enkele parameters meegeven. In die gevallen moet je de code nakijken.
Matlab handleiding
Een korte matlab handleiding vind je hier:
http://www.cs.kuleuven.be/~ade/WWW/NW/matlab/index.html.
Maple installeren
Er kan een maple CD ontleend worden op het secretariaat van het
departement computerwetenschappen.
In ieder geval kan je MAPLE zonder problemen gebruiken in de
PC-klassen.
Maple programma's installeren
- Creëer in de directory
C:\Maple
van uw eigen PC een subdirectory
demo*.
- Klik via Netscape de gewenste Maple code aan op de pagina van Numerieke
Wiskunde
- Ofwel wordt direct een maple venster geopend (zoals op de PC
klassen van de campus).
- Je kan nu maple uitvoeren.
- Je kan ook vragen om het bestand op te slaan als je het later nog wil
gebruiken.
`File' `Save As' Dat kan best gebeuren in de
directory:
C:\Maple\demo*
.
- Ofwel komt Netscape vragen waar het bestand moet opgeslagen
worden.
- Dat kan het best gebeuren in de directory
C:\Maple\demo*
en
gebruik als extensie mws.
- Start maple op.
- Open de Maple worksheet: `File' `Open'.
- Voer de Maple worksheet uit: `Edit' `Execute'
`Worksheet'.
- Je kan in het geval 2 de situatie van geval 1 creëren door via de
`preferences' van Netscape (`edit' `preferences'
`navigator' `applications') ervoor te zorgen dat het `MIMEtype'
= application/x-maple en `application' = xmaple '%s'
Maple handleiding
Een korte inleiding op maple 5.1 kan je vinden op de analyse paginas van
eerste kan.:
http://www.kc.kuleuven.be/analyse/
Maple gids .
De applets die werden aangemaakt voor het project werden verzameld onder de
nalag webpagina's:
http://www.cs.kuleuven.be/~nalag/demos/visnue/.
Als navigatiesoftware voor de webstek werd er gekozen voor `joust outliner'
http://www.ivanpeters.com
omdat het de eerste navigatiesofware voor het web is die:
- te downloaden is in enkele seconden
- niet werkt op basis van grote GIF beelden
- lokaal wordt uitgevoerd zodat geen herhaaldelijke server toegangen nodig
zijn
- werkt op elke browser die javascript ondersteunt
- zowel een `Floating Menu' als een frame interface ondersteunt
- Dynamische Menus ondersteunt zodat grote menus sneller en
flexibeler worden.
De software wordt ter beschikking gesteld als `FREEWARE'. Dus vrij
te gebruiken als je maar voldoet aan de software licenties:
http://www.ivanpeters.com/joust/license.htm
Algemene informatie omtrent de LaTeX2HTML vertaler vind je hier
http://www.latex2html.org/
Specifiek over converteren van documenten met LaTeX2HTML:
http://www.tcm.phy.cam.ac.uk/~prck2/tools/l2html.html
Command Line Options voor LaTeX2HTML:
http://cbl.leeds.ac.uk/nikos/tex2html/doc/manual/node6.html
Op vraag van de studenten is een gezipte versie van de hele site beschikbaar
gemaakt zodat ze alle informatie op 2 of 3 floppies kunnen kopiëren en thuis
op een eigen computer de bestanden off-line kunnen bekijken. Dit laatste zal
enkel werken als alle links naar `index.html' pagina's expliciet werden
gemaakt. Als de webstek on-line bekeken wordt zal dat geen probleem geven
omdat de browser dan default de `index.html' pagina toont.
De technische aspecten van de toets- en testomgeving worden behandeld in een
afzonderlijk rapport ``Het project VISNUE: Technische handleiding deel 2''.
© Adhemar Bultheel
2001-11-21