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.

Inleiding

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

  1. 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.
  2. Nieuwsgroep: Dit is een elektronische discussiegroep waarin de studenten (ongemodereerd) kunnen discussiëren over onderwerpen in verband met de cursus.
  3. Vragentrommel: Hiermee kunnen studenten via elektronische weg (relatief korte) vragen stellen over de verschillende hoofdstukken van de cursus.
  4. Virtueel labo: Hier worden illustraties onder de vorm van applets, maple of matlab code aangeboden. Er worden ook bijkomende opgaven meegeleverd om te experimenteren.
  5. 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.
  6. 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.

Online oefenzittingen

Cgi-bin scripts in het algemeen

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.

Cgi-bin scripts voor de departementale webserver

De CGI scripts voor de externe web server zijn gesitueerd in de sub-directories van:
/cw/wwwserver/extern/cgi-bin. 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.

Perl scripts

Enkele interessante Perl links zijn:

Scripts voor de online oefenzittingen

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.

De shell scripts: oefstart en oefstop

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:

  1. Open een dos-box.
  2. Voer uit: telnet telnet.cs.kuleuven.be
  3. Geef je login en paswoord.
  4. Voer uit: Xrlogin jouw_machine
    1. 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.
    2. 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 scripts: oef*.pl

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: Het formulier kan slechts worden opgestuurd als zowel het voornaamveld en het naamveld werd ingevuld en als het reeksnummer werd aangeduid.

De scripts: verwerk*.pl

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

Quota op de machine waar de antwoorden worden bewaard

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.

Onderhoud: jaarlijkse aanpassingen

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.

Wat de oefeningengevers moeten weten

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''.

Nieuwsgroep

Nieuwsgroep voor het vak Numerieke Wiskunde

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).

Waar een K.U.Leuven nieuwsgroep aanvragen

De contactpersoon is Rudy Rys (diensthoofd systeembeheer) van het ludit
mailto:Rudy.Rys@cc.kuleuven.be

Hoe de `kuleuven.faculty.tw.cursus.numwis' nieuwsgroep gebruiken

Om berichten te kunnen lezen moet je geabonneerd zijn op de nieuwsgroep. Dit kan als volgt gebeuren:
Nieuwsgroepen en Netscape 4+
Het manueel bijhouden van de subscriptionlijst
Voor meer algemene informatie over Nieuwsgroepen door LUDIT zie:

http://www.ludit.kuleuven.be/info/news/

Vragentrommel

Algemeen

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.

De vragentrommel en de student

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 vragentrommel en de docent/oefeningengevers

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.

Wiskundige formules

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 en Maple

Matlab op een Windows-PC

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
  1. Creëer in de directory C:\Matlab van uw eigen PC een subdirectory demo*.
  2. Vanop de homepagina van het vak Numerieke Wiskunde kun je nu de gewenste Matlab code proberen zichtbaar te maken in Netscape.
  3. 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
  1. Ga naar de directory C:\Matlab\demo*.
  2. Start Matlab op.
  3. 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 op een Windows-PC

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
  1. Creëer in de directory C:\Maple van uw eigen PC een subdirectory demo*.
  2. Klik via Netscape de gewenste Maple code aan op de pagina van Numerieke Wiskunde
    1. 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' $\rightarrow$ `Save As' $\rightarrow$ Dat kan best gebeuren in de directory:
        C:\Maple\demo*.
    2. 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' $\rightarrow$ `Open'.
      • Voer de Maple worksheet uit: `Edit' $\rightarrow$ `Execute' $\rightarrow$ `Worksheet'.
    3. Je kan in het geval 2 de situatie van geval 1 creëren door via de `preferences' van Netscape (`edit' $\rightarrow$ `preferences' $\rightarrow$ `navigator' $\rightarrow$ `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/ $\rightarrow$ Maple gids .

Java Applets

De applets die werden aangemaakt voor het project werden verzameld onder de nalag webpagina's:
http://www.cs.kuleuven.be/~nalag/demos/visnue/.

Navigatiesoftware voor de webstek

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: 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

LATEX omzetten naar html via LaTeX2HTML

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

Webstek Numerieke Wiskunde

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 toets- en testomgeving

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