donderdag 3 februari 2011

iPad in het onderwijs

De iPad is zo'n sexy apparaat, dat iedereen het ding in zijn gebied wil toepassen. Handig voor de vergaderstukken. Ontwikkelend voor baby's. Frishoudend voor ouderen. Leerzaam voor leerlingen. Meteen dient men bij zoveel enthousiasme de sceptische hersengebieden te raadplegen. Waarom zou een bedrijf dat al iedere medewerker een laptop verschaft ook nog eens iPads gaan kopen voor de OR-leden? Misschien omdat de baas vindt dat hij er als een loonslaaf ziet als hij met een opengeklapte laptop zit te vergaderen?

Niettemin kun je met een iPad, of een voortzetting dan wel concurrent daarvan, wel degelijk dingen die je niet met een laptop kunt doen.

Een tablet heeft het evidente voordeel dat hij plat ligt. Het scherm van een laptop vormt een soort barrière tussen docent en student en tussen studenten onderling. Ik heb veel in computerlokalen gewerkt en daar zit je als docent altijd tegen ruggen aan te kijken of tegen achterkanten van schermen. Als je iemand wilt helpen die aan een computer werkt, heb je nauwelijks oogcontact, want je staat schuin achter of op zijn best naast de student.
Een tablet daarentegen is net zo min een barrière als een boek dat op de bank ligt en maakt een natuurlijker contact mogelijk.

Al jaren zit men aan te hikken tegen de vrachten aan boeken die onze schoolkinderen moeten rondsjouwen. Het kost handenvol geld en de bomen sneuvelen bij bossen. Alleen de uitgevers en de boekenhuizen varen er wel bij. En dat is precies het probleem, want de uitgevers hebben het meeste materiaal ("content") in handen en zijn niet erg happig op het digitaal beschikbaar stellen.

Op een onderwijscongres waar ik laatst was, wemelde het bij de lezingen over de iPad van de uitgeverijmedewerkers. Wat ze moeten doen weten ze nog niet, maar ze willen de boot niet missen, zoveel is duidelijk. Een van de redenen dat de iPad de overdeelde aandacht van de uitgevers heeft, is dat Apple een goede reputatie heeft als het gaat om betaald content werkend te krijgen. Met iTunes bleek, voor het eerst op grote schaal, dat digitale luisteraars best bereid waren om voor muziek betalen, als het maar werkte, niet te veel gedoe gaf en redelijk geprijsd was. Met de App-store voor de iPhone gebeurde iets dergelijks, maar dan voor software. Misschien dat het Apple ook lukt om digitaal lesmateriaal populair te maken.

Die App-store brengt me op een ander punt. Het model waarbij kleine bedragen voor software gevraagd worden en de producent een relatief groot deel (70%) van dit bedrag krijgt, blijkt bijzonder vruchtbaar voor innovatie. Bij die apps zitten juweeltjes van creatief gebruik van de multitouch interface. De user interface is vaak het zwakke punt van gratis en open-source software. De professionals die goede user interfaces kunnen maken zitten kennelijk in andere kringen dan de open-soruce ontwikkelaars. Het betaalmodel van de App store maakt het echter wel mogelijk om een goed idee binnen een kleine organisatie tot een compleet product te maken en dat is vaak waar de innovatie vandaan moet komen.

Een voorbeeld van wat zou kunnen. Het in een computer krijgen van een wiskundige formule is een heel gedoe. De bestaande WYSIWYG-applicaties zijn lastig te bedienen en leveren suboptimale resultaten. TeX en LaTeX leveren wel mooie resultaten, maar hebben nogal een leercurve en zijn niet WYSIWYG. Hier ligt een prachtige toepassing voor een multitouch tablet. Typen op een goed toetsenbord gaat een aantal malen sneller dan schrijven, maar voor het schrijven van formules is een pen en papier nog altijd superieur. Een goed programma voor een multitouch tablet kan daar verandering in brengen. Formules bestaan voor een groot deel uit symbolen die niet op een gewoon toetsenbord zitten. Daarom moeten we ons nu behelpen met het onthouden van toetsencombinaties of het moeizaam klikken met de muis op "paletten", maar met een stel goed ontworpen onscreen toetsenbordjes moet dat een stuk makkelijker kunnen. Verder maakt het tweedimensionale karakter van veel wiskundige formules het lastig om ze met de traditionele lineaire methodes in te voeren. Een touch interface zit veel dichter bij schrijven met pen op papier en kan het invoeren van subscripts, vectoren, breuken, etc. veel makkelijker maken. Maar het hoeft niet bij invoeren te blijven. Ook bij het editen van formules kan een tablet erg handig zijn. Om uit te breiden of te corrigeren, maar ook voor het wiskundig correct manipuleren. Je sleept bijvoorbeeld een term van de ene kant van het =-teken naar de andere kant en vanzelf wordt die term van een min-teken voorzien. Swipe naar links en de afgeleide wordt uitgerekend, swipe naar rechts en je krijgt de primitieve, etc. etc.

Dit is maar een pipedream van een wiskudnige, maar zijn veel meer mogelijk om de user interface van iPad-achtige tablets uit te buiten in het onderwijs. Interactieve kaarten, simulatieprogramma's, animaties en nog veel meer dingen die nog bedacht moeten worden. Te lang zijn we afgescheept met duurbetaalde CD-ROMs en slecht werkende websites die feitelijk fantasieloos geport papier van een defensieve uitgever waren. Er zijn wel mensen in het onderwijs die heel goede ideeën hebben en interessante prototypes maken, maar doorgaans hebben ze te weinig resources om daarvan materiaal te maken dat een echt goede user interface heeft en foutloos functioneert op verschillende platforms. Maar als de creatieve en deskundige geesten die nu die app-juweeltjes maken zich eens storten op onderwijsmateriaal kan er een hoop interessants gebeuren.


vrijdag 23 april 2010

Cijferen

Een beproefde manier om proefwerken te becijferen is om per onderdeel een maximaal aantal te behalen punten toe te kennen, de behaalde punten op te tellen en uit dit totaal T een cijfer C tussen 1 (of 0) en 10 af te leiden. Maar hoe doe je dat laatste? Er zijn in ieder geval twee nethodes. Noem het maximaal aantal te behalen punten M.
  1. C = T/M * 10. Het cijfer varieert tussen 0 en 10 en is evenredig met het aantal punten. In Engeland vermenigvuldigt men wel met 100 en scrhijft het als percentage.
  2. C = 1+T/M*9. Het cijfer varieert dan tussen 1 en 10.
Men zegt wel dat je bij methode 2 een punt kado krijgt, maar bedenk dat dit alleen zo is als je helemaal niks goed hebt. Hoe meer punten je hebt, hoe kleiner het verschil tussen het cijfer van methode 1 en methode 2 is en als je alles goed hebt is het verschil 0 geworden, je hebt in beide gevallen een 10. Een belangrijker verschil tussen 1 en 2 is waar de grens tussen voldoende en onvoldoende ligt. Normaal gesproken wordt het cijfer 5.5 als voldoende beschouwd (het rondt immers af naar 6) en alles daaronder als onvoldoende. Bij methode 1 moet je dus 55% van de punten hebben, 10% meer dan de helft. Die 10% is wat arbitrair. Waarom niet 15%? Of 1%? Bij methode 2 heb je een 5.5 als T/M*9 = 4.5, ofwel T/M = 1/2. Je krijgt dus bij de helft van de punten een voldoende, bij minder dan de helft een onvoldoende. De cijfers liggen wat hoger dan bij methode 1 en zijn niet eveneredig met het behaalde aantal punten. Daar staat tegenover dat de grens tussen voldoende en onvoldoende minder abritrair is.

Bij het centraal schriftelijk eindexamen wordt methode 2 gevolgd. Op de TU/e zou deze methode verboden zijn, zo heeft een collega mij ooit verteld. Je moet volgens methode 1 cijferen. Ik heb nooit nagegaan of dat nog steeds waar is. Weet iemand dat?


woensdag 14 april 2010

Collegebezigheden

Je kent het wel: je zit bij een lezing of een college dat kennelijk niet voor je bedoeld is. Je kent het verhaal al, je vindt het allemaal open deuren of de spreker neemt zonder dat te verifiëren aan dat het publiek weet wat PLQ's zijn. Wat nu te doen? Je kunt gaan twitteren, kletsen of uit het raam staren, maar je kunt ook gaan Nadenken. Dat stoort minder en scherpt de geest. Een paar suggesties.

1. Probeer alle 50 staten van Amerika op te noemen, bijvoorbeeld in alfabetische volgorde. Je probeert dan per beginletter de staten te vinden. De beginletters zijn als volgt verdeeld:
  • 8 beginletters die 1x voorkomen
  • 4 beginletters die 2x voorkomen
  • 2 beginletters die 3x voorkomen
  • 3 beginletters die 4x voorkomen
  • 2 beginletters die 8x voorkomen
2. Idem voor de landen van een werelddeel.

3. Idem voor de elementen van het periodiek systeem.

4. Probeer een zo lang mogelijke Collatz-rij te vinden. Een Collatz-rij is een rij die op een willekeurig geheel getal > 1 begint en waarvan het volgende getal bepaald door:
  • is het vorige getal even, deel dat door 2
  • is het vorige getal oneven, vermenigvuldig het met 3 en tel er 1 bij op
Meer suggesties worden gaarne ingewacht.

donderdag 4 juni 2009

Feest der democratie

Het was een beetje feest vandaag: weer stemmen met het potlood. En dan het biljet in de bus laten glijden terwijl het lid van het stembureau een streepje zet. Ik ben geteld!

's Avonds ben ik even gaan kijken bij het openen van de stembus, dat leek me een sacraal moment. En is het ook niet een beetje je burgerplicht om te kijken dat dat goed gaat? Ze vroegen of ik wilde helpen tellen en dat heb ik maar gedaan. Je kon wel zien dat de ervaring een beetje weg was. Er was geen plan hoe dat aan te pakken. Twee leden van het stembureau zaten in een kantoortje onduidelijke dingen te doen. De voorzitter ging de biljetten openvouwen en een jonge jongen, die als vierde lid erbij gehaald was om het te leren, zag dat er op de tafel te weinig ruimte was en begon toen maar op de grond stapeltjes maken. Steeds een biljet van tafel pakken en dan op de grond een stapel zoeken. Dat schoot niet erg op, maar al snel bleek dat er drie grote lijsten waren: CDA, D'66 en PVV. Dus kon je op tafel snel voorsorteren op die drie en dan een vierde stapel met de rest.

Ook bij het tellen van de lijststapels kwamen de andere twee niet helpen. De voorzitter en de jongeman telden samen een stapel, vaak hardop tellend, terwijl ik dan een andere deed. Ging ongeveer even vlug. Wat me verbaasde was dat er niet nageteld werd. Als een lijst klaar was ging je naar de twee in het kantoortje en dan vroegen ze: moet dit nageteld worden? Ik zei dat ik het zelf gecontroleerd had en dat vonden ze prima. Maar als ik er 20 van de PVV afgehaald had en Groen-Links er 20 bij gegeven had, had men het niet gemerkt, denk ik. Daar moet nog een beetje ervaring opgebouwd worden, zullen we maar zeggen. Maar het totaal klopte in één keer, tot grote opluchting van de voorzitter. Om half elf waren we klaar, geen gek resultaat voor een stelletje slome Brabanders.

En moest de kiezer weer wennen aan het rode potlood? Nee hoor, er was maar één ongeldig biljet, waarop een groot kruis door de VVD gezet was. Dus dat stemmen met het potlood, dat kunnen we nog wel.


zondag 24 mei 2009

OV-niets

Afgelopen dinsdag ging ik met de trein naar Utrecht. Ik moest naar de Uithof en daarna naar een ander adres, waar ik vanaf de Uithof alleen met een overstap kon komen dus een OV-fiets leek me het handigst. En als het werkt, is de OV-fiets bijzonder handig, zeker als je de stad beter kent dan het openbaar vervoer. Maar het werkt niet altijd.

Het begin gaat goed, de weg naar de fietsenstalling is met heldere pictogrammen aangegeven. Maar dan blijken de OV-fietsen op te zijn en word ik doorverwezen naar een andere stalling. "Daar zijn ze zeker." Als ik daar nog op mijn beurt sta te wachten om geholpen te worden, ziet de stallinghouder al wat voor vlees hij in de kuip heeft en verwijst me door naar de stalling op het Jaarbeursplein. Dat is helemaal aan de andere kant van het station en niet zo makkelijk te vinden, maar hoe meer ik moet lopen, hoe aantrekkelijker die fiets wordt. De stallinghouder kijkt wat sceptisch op als ik bij zijn hokje verschijn en zijn voorgevoel blijkt te kloppen. "Jammer voor u," zegt hij als hij mijn kaart scant. Ik snap meteen wat er aan de hand is. Een tijdje geleden is mijn portemonnee gestolen en ik heb pas een nieuwe Voordeeluren- annex OV-kaart gekregen. Maar ik heb er niet aan gedacht dat ik het OV-fiets-abonnement zelf moet overzetten. Tja, dan moet ik weer helemaal naar de andere kant van het grootste spoorstation van Nederland sjouwen om de bus te nemen. En daar begint dan de bekende milde stress. Waar vertrekt de bus? Het is dacht ik aan één kant van het lange perron. Maar welke kant? Er zijn meer bussen die naar de Uithof gaan en als ik de ene bus zoek, vertrekt misschien net de ander. Kijk, op die bus staat Uithof, maar de bus staat niet bij het perron. Alleen uitstappen of zo? O wacht, daar staat lijn 12. Van achteren ziet een bus aan de stoep er altijd uit of hij ieder moment kan wegrijden. Zal ik gaan hollen, of is dat belachelijk voor een bus die zo vaak gaat? Maar ja, ik ben door al dat gesjouw al erg laat en iedere minuut is meegenomen. Stevig doorstappen is de compromis. Als ik in de bus ben, vertrekt hij vrijwel direct. Mooi zo. Maar ik herken de route niet. Golfje paniek: zit ik misschien wel in de goede bus, maar in de verkeerde richting? Maar dat kan toch niet met lijn 12? Zit ik wel in lijn 12? O kijk, een routebord. Maar daar staat 13 op. Dan maar vragen. Ik negeer de dichtstbijzijnde, maar halfslapende muziekluisterende passagier en vraag het aan een paar vrolijke meisjes. Dat is het voordeel van het OV, er zijn bijna altijd aardige medepassagiers. Zij stellen me gerust. Dit is lijn 12 en we gaan naar de Uithof, over een busbaan die er al een tijdje ligt, maar voor mij nieuw is. Mooi. En een eindje verder, geheel onleesbaar vanuit mijn positie hangt het routebord van lijn 12. Dus zelfs dat klopt. Maar niet te lang gefeest, want het volgende probleem is nabij en in het OV moet je vooruit denken. Bij welke halte moet ik uitstappen? Dat heb ik niet nagekeken, omdat ik dacht met de fiets te gaan. De meisjes kennen het gebouw niet waar ik moet zijn, maar ze snappen dat ik de Uithof wel ken en stellen me opnieuw gerust: je hoeft niet te drukken, want de bus stopt toch bij iedere halte. Inderdaad zie ik waar ik moet uitstappen en hoewel ik vergeten ben me van tevoren naar de deur te begeven, zie ik toch kans het vervoermiddel te verlaten voor de deur weer sluit. Ik sta op het trottoir en de laatste OV-stress verlaat mijn lichaam. Als de bus weggereden is, zie het gebouw waar ik moet zijn al liggen en na een korte wandeling ben ik er. Maar in mijn oor klinkt niet het triomfantelijke "Bestemming bereikt" dat automobilisten zo goed kennen.

En eigenlijk zou dat best kunnen. Een OV-navigatiesysteem dat gekoppeld is aan je MP3-speler of telefoon en via een oortelefoontje vertelt waar de bus staat die je moet hebben, hoe laat die vertrekt en of je rustig kunt lopen of juist door moet stappen om hem te halen. In de bus waarschuwt het ding wanneer je op de stop-knop moet drukken en als je uitstapt, sta je niet verdwaads tegen die grote bus op te kijken, op zoek naar oriëntatiepunten, maar loop je kordaat meteen de goede kant op. En tegen de tijd dat je afspraak ten einde loopt, laat het apparaat zien wanneer je moet vertrekken om de volgende bus te halen, met bijbehorende aankomsttijd. Nooit meer hoef je een sociale babbel af te breken omdat je bang bent een bus te missen die nog lang niet komt. Nooit meer ga je halfslachtig naar een halte rennen omdat je in de verte iets ziet aankomen wat wel eens jouw bus zou kunnen zijn.

Technisch zou het allemaal kunnen, denk ik, al moet de GPS wel behoorlijk nauwkeurig zijn en ook goed in stationsgebouwen en dergelijke werken. En er moeten veel OV-gegevens on-line beschikbaar zijn. In ieder geval de dienstregelingen zoals die in 9292OV gebruikt worden, maar ook de precieze vertreklocaties van de verschillende lijnen op de stations en de actuele positie van de vervoermiddelen, liefst met een schatting van de reistijd naar de haltes. En natuurlijk moet-ie melden of er nog OV-fietsen op het aankomststation staan en bij welke stalling. En als we dan toch bezig zijn, zetten we er ook nog de Broeikasbonus op: een getalletje dat aangeeft hoeveel CO2 je sinds je vertrektijd bespaard hebt door niet de auto te nemen.

Echt goedkoop zal het niet worden, maar goed uitgevoerd kan het een hoop stress wegnemen, de reistijd verkorten en het gebruik van het openbaar bevorderen. Wie gaat het bouwen?



zaterdag 14 maart 2009

Piekerdag

Het is vandaag π-dag. Bijzonder dat er zoveel aandacht aan een getal wordt besteed –alleen 0 en misschien 13 komen daarbij in de buurt–, al vinden sommigen de keus voor 14 maart getuigen van Amerikaans cultureel imperialisme. Zij schrijven deze datum immers als 3/14, waardoor het verband met π duidelijk is, maar Europeanen die 14/3 schrijven voelen dat minder. Daar valt tegenin te brengen dat de cijfers in de notatie maand/dag van meer naar minder significant gaan, net als de cijfers in decimale notatie. En je kunt dus ook verder gaan met uren, minuten, enz., wat sommige fanatieke π-vierders ook doen.

Misschien is het allemaal flauwekul, maar het was voor mij aanleiding wat gedachten aan dit getal te wijden en kwam tot twee leuke observaties. Ongetwijfeld zijn ze vaker gedaan, maar voor mij zijn ze nieuw en voor u misschien ook.

Oppervlakte en omtrek

De oppervlakte van een cirkel is πr^2 en de omtrek is 2πr. In beide formules zit π. Dat is natuurlijk geen toeval, maar kunnen we dat ook begrijpen? Het antwoord is ja. Uit de formule voor de omtrek kun je makkelijk die voor de oppervlakte halen, en andersom.

Stel dat je weet dat de oppervlakte 2πr is. Om de oppervlakte van de cirkel uit te rekenen, snijden we die als een taart (pie, nietwaar) in een heleboel punten. Die punten hebben twee rechte en een ronde kant. Maar naarmate je meer punten hebt, en de punten dus smaller zijn, gaan ze steeds meer op een driehoek lijken. Wat is de oppervlakte van een driehoek? Dat is basis maal halve hoogte. Als we voor de basis de zijde aan de cirkelkant nemen, dan is de hoogte vrijwel de straal van de cirkel (voor smalle driehoekjes). De basisjes van die driehoekjes liggen langs de rand van de cirkel en als je oneindig veel driehoekjes hebt, zijn ze samen precies gelijk aan de omtrek van de cirkel. De oppervlakte van de cirkel is de opprvlakte van al die driehoekjes bij elkaar en is dus basisjes maal halve hoogte. En dat is 2πr · 1/2 r = πr^2.

22/7

Een heel oude en behoorlijk nauwkeurige benadering van π is 22/7. Wij rekenden daarmee op de lagere school, maar de rekenmachine met haar decimale kijk op de wereld heeft 3.14 hoger opgestuwd in de vaart der volkeren. Waarom is π ongeveer 22/7? Daarvoor kun je naar de decimaalontwikkelingen van de twee getallen kijken, maar dat is flauw. Aan de cirkel zelf kun je het ook zien.

Teken een cirkel op ruitjespapier, met het middelpunt op een roosterpunt en met een straal van 7 hokjes. Dan proberen we de omtrek van de cirkel zo goed mogelijk te volgen met rechte lijnstukken die van roosterpunt naar roosterpunt gaan. Je ziet dat er een aantal roosterpunten zijn die mooi dichtbij de cirkel liggen, zodat we een goede benadering van de omtrek krijgen. Zie plaatje.



Ik heb alleen een kwartcirkel gevolgd omdat de rest hetzelfde is (als je goed kijkt, zie je dat een achtste ook al genoeg zou zijn). De lengte van de lijstukjes is met Pythagoras berekend. Bij elkaar zijn ze:

1 + √10 + 2√2 + √10 + 1 = 2 (1 + √10 + √2) ≈ 2(1 + 3.1 + 1.4) = 11

We benaderen de wortels met getallen die er iets onder liggen omdat (a) de lijstukjes grotendeels buiten de cirkel liggen en (b) dat mooi uitkomt.

De officiële lengte van een kwartcirkel is 1/2 πr, voor deze cirkel dus 7/2 π.
Die lengte hebben we benaderd met 11, dus moet gelden:
7/2 π ≈ 11 ofwel π ≈ 22/7.

donderdag 1 januari 2009

Abstractie

Naar aanleiding van een uitgebreide discussie over abstractie en object-oriëntatie volgen hier wat van mijn ideeën over abstractie, speciaal in programmeertalen. 

Wiskunde

Het klassieke voorbeeld van abstractie in de wiskunde is de constructie van de rationale getallen (de breuken) uit de gehele getallen Z. In Z gaan delingen niet altijd op. Daarom heb je extra getallen nodig. Je begint met paren van gehele getallen (t,n). Zo'n paar stelt het getal voor dat je krijgt als je t door n deelt (de paren (x,0) doen niet mee). Maar die verzameling paren is niet abstract, dat wil zeggen dat ze "te veel" eigenschappen hebben. (1,2) is een ander paar dan (2,4), maar stellen wel hetzelfde getal voor (dat valt te bewijzen). Daarom voer je een equivalentierelatie "~" in die aangeeft welke paren hetzelfde getal moeten voorstellen. Deze relatie moet een aantal elementaire eigenschappen heben en  bovendien een congruentie voor vermenigvuldigen zijn. Met congruentie bedoel ik dan dat als (t,n) ~ (t',n'), dat dan ook x*(t,n) ~ x*(t',n') . 

Als dat allemaal ok is, hebben we een abstractie. Je kijkt niet meer naar de paren als gewone paren, maar door de bril van de equivalentierelatie. Twee paren beschouw je als gelijk als ze equivalent volgens ~ zijn. (Technisch doe je dat door de verzameling van alle paren die equivalent zijn als één getal te beschouwen.) Je hebt dan een nieuwe verzameling gemaakt waarin de eigenschappen van de losse paren verdwenen zijn. De verzameling bevat "minder" elementen en je ziet de teller en de noemer feitelijk niet meer. Je gebruikt ze alleen om de getallen te noteren, maar dat zou je ook anders kunnen doen, bijvoorbeeld met decimale breuken. Dat is nu alleen maar een andere notatie voor dezelfde dingen. De abstractie doet dus wat je wilt, abstraheren van toevallige "implementatie" en het geeft je een nieuw model. In die verzameling Q is zijn vermenigvuldiging en deling (en ook optelling en aftrekking) goed gedefinieerd en het model is gesloten voor die bewerkingen. Je kunt helemaal daarbinnen redeneren. Eigenschappen van de "implementatie" (teller en noemer, of de decimaalontwikkeling), spelen daarbij geen rol meer.

Programmeren

Bij procedures (functies) in programmeertalen vind je een duidelijk voorbeeld van abstractie. (Ik gebruik dit voorbeeld niet omdat het in de Oohaa-discussie aan de orde was.) 

Je begint met een stuk code dat een berekening uitvoert met gebruik van een aantal hulpvariabelen, bijvoorbeeld worteltrekken. In de allereenvoudigste vorm zorg je eerst dat in een globale variabele x het getal staat waaruit je de wortel wilt trekken. Vervolgens spring je naar het stuk code die het resultaat in een andere variabele y zet. Dan spring je terug en leest de waarde van y uit. 

Deze methode is niet abstract in die zin dat er allerlei specifieke effecten zijn. De variabelen x en y  moeten niet ergens anders in gebruik zijn, want die worden overgeschreven. Voor de hulpvariabelen geldt hetzelfde. Een nauwkeurige beschrijving van zo'n "call" moet ook het effect op x, y en de hulp variabelen bevatten. 


Daarom voer je parameters, return value en lokale variabelen in. Het gevolg is dat de procedure geen invloed meer heeft op globale variabelen en het is dus werkelijk alleen een functie die de wortel uitrekent. Verschillende implementaties geven hetzelfde gedrag. Een programma dat zulke functies gebruikt is gesloten in de zin dat je het helemaal kunt begrijpen door naar de abstracte beschrijving van de functies te kijken. Zoals bij de constructie van Q beschouw je alle functies die hetzelfde input-outputgedrag hebben als gelijk (of equivalent). 

Objecten

Bij objecten kun je beginnen bij records: groepjes globale variabelen die via een gezamenlijk groepsadres (later de object reference geheten) benaderd worden. Dat levert nog geen abstractie op, wel een handige naamgeving. Met encapsulatie kun je proberen abstractie te bereiken. Je verbergt dus de variabelen (=attributen) achter (object-)private access modifiers en je benadert ze via methods. De implementatie van de methods is sowieso niet zichtbaar voor de buitenwereld. Bij de procedures kon je vervolgens het abstracte gedrag in termen van input-output beschrijven. Dat is lekker abstract. Alle procedures die de wortel van de input-parameter opleveren beschouw je als equivalent. Maar hoe doe je dat met methods. Want in het algemeen is een method niet een side-effectloze functie, maar een ding dat de toestand van het object verandert. Dat wil zeggen, de waarden van de variabelen. Daar gaat je abstractie. 

Voor niet-losstaande objecten wordt het nog lastiger. Een method heeft dan namelijk niet alleen een verandering in het aangeroepen object tot gevolg, maar mogelijk ook in verbonden objecten, via method calls. De object-encapsulatie is dus niet volledig, itt de encapsulatie van lokale variabelen in procedures. 

Wil je toch abstractie krijgen, dan zul je abstracte variabelen moeten invoeren waarin je het gedrag van methods beschrijft. Die zitten wellicht in de hoofden van ontwerpers, maar ze komen er vaak niet uit, heb ik de indruk. Zo heeft een interface (een volledig abstracte klasse) 
meestal geen variabelen (in Java mag het zelfs niet), maar abstracte variabelen zou hij wel vaak
moeten hebben. Met verbonden objecten is het me niet helemaal niet duidelijk hoe je het moet doen. Moet je abstracte variabelen koppelen aan een configuratie van objecten? En als die configuraties overlappen, hoe doe je het dan? 

Ik benieuwd naar wat de OO-deskundigen hiervan vinden.