<?xml version='1.0'?><rss xmlns:admin='http://webns.net/mvcb/' version='2.0' xmlns:sy='http://purl.org/rss/1.0/modules/syndication/' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
    <channel>
    <title>Logging the Switch</title>
    <link>http://luijten.org</link>
    <description>altijd van je áf bloggen</description>
    <dc:language>en-us</dc:language>
    <dc:creator/>
    <dc:date>2010-01-24T20:13:09+00:00</dc:date>
    <admin:generatorAgent rdf:resource='http://hobix.com/?v=0.4'/>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
    <item><title>Geslaagd!</title><link>http://luijten.org/study/geslaagd.html</link><guid isPermaLink='false'>study/geslaagd@http://luijten.org</guid><dc:subject>study</dc:subject><dc:subject>study</dc:subject><dc:subject>coffeedregs</dc:subject><dc:creator>Christian Luijten</dc:creator><dc:date>2009-06-29T19:02:41+00:00</dc:date><description>&lt;p&gt;Ik ben geslaagd! Alweer meer dan een week, maar gewoon geen tijd gehad
om erover te schrijven. Op 19 juni hield ik mijn eindpresentatie en na
een vrij lange ondervraging/discussie kreeg ik het eindoordeel:
Geslaagd!&lt;/p&gt;
&lt;p class=&quot;center&quot;&gt;&lt;img src=&quot;http://luijten.org/image/software/coffeedregs-wordle.png&quot; alt=&quot;&quot; /&gt; &lt;br /&gt; &lt;em&gt;Een tag-wolk van mijn afstudeerverslag&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Ik ben eens met &lt;a href=&quot;http://www.wordle.net/&quot;&gt;Wordle&lt;/a&gt; aan de slag gegaan
om een leuk plaatje te maken van mijn afstudeerverslag.&lt;/p&gt;
&lt;p&gt;Intussen werk ik nu bijna een maand bij &lt;a href=&quot;http://www.isaac.nl/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;ISAAC&lt;/span&gt;&lt;/a&gt;
en het bevalt me wel! De collega&amp;#8217;s zijn leuk en de projecten
uitdagend. Er is alleen meteen wel weer een hoop nieuws te leren&amp;#8230;
Ach ja, zo is het nou eenmaal. &lt;span class=&quot;caps&quot;&gt;ISAAC&lt;/span&gt; wil dat ik mijn
&lt;a href=&quot;http://www.sun.com/training/certification/java/scjp.xml&quot;&gt;&lt;span class=&quot;caps&quot;&gt;SCJP&lt;/span&gt;&lt;/a&gt; haal,
dus zit ik weer lekker te studeren, en eigenlijk bevalt dat ook wel.&lt;/p&gt;</description></item><item><title>De Laatste Loodjes</title><link>http://luijten.org/studie/de-laatste-loodjes.html</link><guid isPermaLink='false'>studie/de-laatste-loodjes@http://luijten.org</guid><dc:subject>studie</dc:subject><dc:subject>studie</dc:subject><dc:subject>coffeedregs</dc:subject><dc:creator>Christian Luijten</dc:creator><dc:date>2009-04-06T09:39:20+00:00</dc:date><description>&lt;p&gt;&lt;img src=&quot;http://luijten.org/image/koffiedrab.jpg&quot; class=&quot;right&quot; alt=&quot;&quot; /&gt; Nog een paar weken, dan is het gebeurd met
de studententijd! Het werk aan &lt;a href=&quot;http://luijten.org/tags/coffeedregs&quot;&gt;CoffeeDregs&lt;/a&gt; is af, het
is in mijn ogen (en gelukkig ook in de ogen van m&amp;#8217;n begeleiders) een leuke
tool geworden. Ik heb twee experimenten met studenten gehouden en beiden
waren erover te spreken, om verschillende redenen zelfs! Om te kunnen
testen of CoffeeDregs een beetje iets is had ik wat programmeeropdrachten
gegeven, waarbij ze enerzijds van een bestaand programma moesten
voorspellen en verklaren wat het deed en anderzijds een niet-werkend
programma moesten aanpassen.&lt;/p&gt;
&lt;p&gt;Nu ben ik aan het schrijven aan m&amp;#8217;n verslag. Hopelijk is het eind van de week
zo ver gevorderd dat we kunnen spreken van een eerste conceptversie. Dat
betekent namelijk dat ik waarschijnlijk nog in april mijn presentatie kan
gaan houden en dus nog een maandje vakantie heb voordat ik bij
&lt;a href=&quot;http://www.isaac.nl/&quot;&gt;&lt;acronym title=&quot;Internet Strategy and Automation Company&quot;&gt;&lt;span class=&quot;caps&quot;&gt;ISAAC&lt;/span&gt;&lt;/acronym&gt;&lt;/a&gt; ga
beginnen.&lt;/p&gt;
&lt;p class=&quot;center&quot;&gt;&lt;img src=&quot;http://luijten.org/image/isaac-logo.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Jawel! Ik heb vanaf 1 juni een baan bij een snel groeiend web- en
softwarebureau in Eindhoven, schuin tegenover het Parktheater, met klanten
als &lt;a href=&quot;http://www.isaac.nl/portfolio_megapool.jsp&quot;&gt;Megapool&lt;/a&gt;, &lt;a href=&quot;http://www.isaac.nl/portfolio_modern.jsp&quot;&gt;Modern
Electronics&lt;/a&gt; en &lt;a href=&quot;http://www.isaac.nl/portfolio_ikea.jsp&quot;&gt;&lt;span class=&quot;caps&quot;&gt;IKEA&lt;/span&gt;
Family&lt;/a&gt;. Ik ben erg benieuwd!&lt;/p&gt;
&lt;p&gt;Het is grappig, want onze wasmachine gaan we nu waarschijnlijk bestellen door
gebruik te maken van code die door mijn toekomstige collega&amp;#8217;s is geschreven.&lt;/p&gt;</description></item><item><title>CoffeeDregs in Supremum</title><link>http://luijten.org/studie/coffeedregs-in-supremum.html</link><guid isPermaLink='false'>studie/coffeedregs-in-supremum@http://luijten.org</guid><dc:subject>studie</dc:subject><dc:subject>studie</dc:subject><dc:subject>coffeedregs</dc:subject><dc:creator>Christian Luijten</dc:creator><dc:date>2009-03-02T22:52:56+00:00</dc:date><description>&lt;p&gt;&lt;img src=&quot;http://www.gewis.nl/~supremum/archief/kaft/sup40.3.jpg&quot; class=&quot;left border&quot; alt=&quot;&quot; /&gt; De
redactie van de &lt;a href=&quot;http://www.gewis.nl/supremum/&quot;&gt;Supremum&lt;/a&gt;, het periodiek van
de studievereniging &lt;span class=&quot;caps&quot;&gt;GEWIS&lt;/span&gt;, vroeg of ik een stukje wilde schrijven over m&amp;#8217;n
afstuderen voor het derde nummer van het jaar. Nou, dat wilde ik wel. De
deadline kwam en de deadline ging en ik was een paar dagen te laat, maar&amp;#8230;
Het stukje kwam er wel!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ik weet zeker dat een paar van jullie na het lezen van dit
stukje hadden gewild dat ik een paar jaar eerder was begonnen met
afstuderen. Het onderwerp van mijn afstuderen is namelijk het uitbreiden en
verbeteren van CoffeeDregs, een tool die het begrijpen van
object-geori&amp;euml;nteerd programmeren in Java voor beginnende programmeurs
moet vereenvoudigen. Kort gezegd biedt CoffeeDregs je een (beperkt en
daardoor aangenaam) kijkje in de virtuele machine van Java.&lt;/p&gt;
&lt;p&gt;Laat ik mijzelf eerst even voorstellen. Mijn naam is Christian Luijten en
loop alweer een paar jaartjes teveel rond op onze universiteit. Vorig jaar
augustus ben ik begonnen met afstuderen bij &lt;a href=&quot;http://www.win.tue.nl/~keesh/&quot;&gt;dr. Kees
Huizing&lt;/a&gt; en &lt;a href=&quot;http://www.win.tue.nl/~wsinruur/&quot;&gt;dr. Ruurd
Kuiper&lt;/a&gt; die een deel van het
programmeeronderwijs aan de TU/e en op een aantal &lt;span class=&quot;caps&quot;&gt;VWO&lt;/span&gt;-scholen in Eindhoven
verzorgen. Ze hebben hiervoor hun eigen lesmateriaal ontwikkeld, waarin ze
een visueel model voor de uitvoering van (Java)programma&amp;#8217;s gebruiken. De
oorsprong van dit model ligt al in de jaren zeventig, toen een soortgelijke
methode werd voorsteld voor processen die een blokstructuur vertonen
(verreweg de meeste moderne &amp;#8220;general purpose&amp;#8221; programmeertalen voldoen
hieraan). In het model wordt uitgegaan van een set distincte objectruimten
in de tijd en de overgangen hiertussen. Je zou het dus als een soort
transititesysteem kunnen zien.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://luijten.org/image/software/coffeedregs-netbeans-integrated.png&quot; rel=&quot;lightbox&quot; title=&quot;Een screenshot van CoffeeDregs ge&amp;iuml;ntegreerd in NetBeans&quot;&gt;&lt;img src=&quot;http://luijten.org/image/software/coffeedregs-netbeans-integrated-small.png&quot; class=&quot;left thumbnail&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
Als je een Javaprogramma start, zal Java als eerste op zoek gaan naar de
main methode in de klasse die je hebt opgegeven. Van hieruit kan je als
programmeur zorgen dat de rest van het programma wordt geladen. Wat we in
CoffeeDregs doen is alles wat vanuit deze eerste klasse ontspruit in beeld
brengen, in de meeste gevallen zijn dat instantiaties van klassen. Zowel
klassen als instantiaties worden weergegeven als een doosje met een titel
en een inhoud. Die inhoud zijn bijvoorbeeld de klasse- of
instantiatievariabelen en de actieve methoden die zelf ook weer als doosjes
worden weergegeven. Wordt een methode meerdere malen aangeroepen, dan zul
je deze ook meerdere keren terugvinden.&lt;/p&gt;
&lt;p&gt;Wanneer een variabele een referentie bevat naar een instantiatie, wordt een
pijl getekend van die variabele naar instantiatie. Zodoende bouw je een
graaf van object-referenties op. Naarmate de kennis en oefening van de
programmeur vordert, worden zijn/haar programma&amp;#8217;s groter en complexer. Als
er veel objecten in het spel komen, heeft de visualizatie dan ook de
neiging om nogal onoverzichtelijk te worden. Het is daarom belangrijk te
filteren welke objecten wel en welke niet van belang zijn voor de
programmeur.&lt;/p&gt;
&lt;p&gt;Objecten waarin geen functionaliteit zit, maar alleen data, blijven
bijvoorbeeld standaard als dichtgeklapt klein doosje zichtbaar op het
scherm. Referenties van buitenaf zijn zichtbaar, maar waar de referenties
van het dataobject heen gaan wordt verborgen, net als alles wat er verder
nog achter hangt. Denk hierbij aan de structuur van een linked list, of een
of andere geavanceerde boomstructuur. Het blijft w&amp;eacute;l altijd mogelijk
de doosjes open te klappen en te volgen waar de referenties heen lopen.
Als in een object een methode wordt aangeroepen, wordt het bijbehorende
doosje opengeklapt om de effecten goed te kunnen bestuderen. De uitgaande
referenties worden dan getoond en de &amp;#8220;buurobjecten&amp;#8221; worden zichtbaar
gemaakt.&lt;/p&gt;
&lt;p&gt;Op een gegeven moment in de executie van het programma zullen er meerdere
methoden actief zijn; het is immers vrij normaal dat de ene methode een
andere aanroept, die weer een andere aanroept enzovoort. Zonder visuele
hulp is het dan lastig de vraag te beantwoorden welke methode welke andere
methode heeft aangeroepen en waar de huidige plek van executie is (waar
komen we vandaan? waar gaan we naartoe? het kan er filosofisch aan toe
gaan!). De methoden worden in CoffeeDregs verbonden met een pijl die
letterlijk als een rode draad door het programma gaat. Heeft je programma
meerdere threads, dan krijg je ook meerdere losse draden te zien.&lt;/p&gt;
&lt;p&gt;Het ontwerp- en implementatiedeel van mijn afstuderen is nu grotendeels
afgerond en ik ga me nu richten op een kleinschalig onderzoek naar de
inzetbaarheid van de huidige staat van CoffeeDregs in het
programmeeronderwijs van volgend jaar. Hiervoor heb ik een aantal
experimenten voorbereid om op verse studenten los te laten. Je kan hierbij
denken aan het gedrag van een programma te laten verklaren terwijl het
uitgevoerd wordt of een kleine aanpassing maken zodat het programma doet
wat je wil dat het doet. Dat alles uiteraard met hulp van CoffeeDregs.&lt;/p&gt;
&lt;p&gt;Wil je je eigen Java-programma&amp;#8217;s eens aan de visuele test onderwerpen? Op
&lt;a href=&quot;https://svn.win.tue.nl/trac/CoffeeDregs/&quot;&gt;https://svn.win.tue.nl/trac/CoffeeDregs/&lt;/a&gt;
vind je de website van het project en een link naar de source code. Er is
ook een plugin voor NetBeans beschikbaar. Over niet al te lange tijd zullen
ook binaire versies van CoffeeDregs op de site komen te staan.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Koffiedik kijken met CoffeeDregs</title><link>http://luijten.org/studie/koffiedik-kijken.html</link><guid isPermaLink='false'>studie/koffiedik-kijken@http://luijten.org</guid><dc:subject>studie</dc:subject><dc:subject>studie</dc:subject><dc:subject>software</dc:subject><dc:subject>java</dc:subject><dc:subject>coffeedregs</dc:subject><dc:creator>Christian Luijten</dc:creator><dc:date>2009-01-30T11:02:35+00:00</dc:date><description>&lt;p&gt;In augustus had ik &lt;a href=&quot;http://luijten.org/studie/alle-vakken-af.html&quot;&gt;hier al
geschreven&lt;/a&gt; dat ik koffiedik
zou gaan kijken. Nu, vijf maanden later is het werk aan
&lt;a href=&quot;https://svn.win.tue.nl/trac/CoffeeDregs/&quot;&gt;CoffeeDregs&lt;/a&gt; grotendeels klaar.
Ik ben nu nog een beetje aan het schaven om de laatste probleempjes eruit
te werken, maar het grote werk is af.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://luijten.org/image/software/coffeedregs-in-actie-scaled-50.png&quot; rel=&quot;lightbox&quot; title=&quot;Een screenshot van CoffeeDregs in actie&quot;&gt;&lt;img src=&quot;http://luijten.org/image/software/coffeedregs-in-actie-picturesque.png&quot; class=&quot;left&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
De gebruiker kan nu een Java-broncode inladen en deze met behulp van de
tool uitvoeren. Je ziet dan de objecten gecreeerd en verwijderd worden,
referenties gelegd, methoden aangeroepen worden, hoe waardes in variabelen
veranderen. We (m&amp;#8217;n begeleiders en ik) hopen over een paar weken een
aantal studenten met de tool te laten spelen en kijken hoe ze ermee
omgaan, om te zien of het bruikbaar zou zijn om vanaf september in het
programmeer-onderwijs in te gaan zetten.&lt;/p&gt;
&lt;p&gt;Helaas maak ik die lancering natuurlijk niet meer mee, maar interessant
gaat het zeker worden; ik heb dan toch een klein beetje een stempel weten
te drukken op het onderwijs van de &lt;a href=&quot;http://www.tue.nl/&quot;&gt;TU/e&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;De komende twee maanden ga ik m&amp;#8217;n verslag schrijven en de experimenten
uitvoeren en dan ben ik hopelijk afgestudeerd!&lt;/p&gt;</description></item><item><title>Alle vakken af, ik ga koffiedik kijken!</title><link>http://luijten.org/studie/alle-vakken-af.html</link><guid isPermaLink='false'>studie/alle-vakken-af@http://luijten.org</guid><dc:subject>studie</dc:subject><dc:subject>studie</dc:subject><dc:subject>coffeedregs</dc:subject><dc:creator>Christian Luijten</dc:creator><dc:date>2008-08-15T11:42:34+00:00</dc:date><description>&lt;p&gt;Nou, het is dan toch eindelijk gebeurd, het allerlaatste vak is gehaald (van de vier studenten die het tentamen hebben gedaan, ben ik trouwens de enige die het gehaald heeft)! Tussen mij en m&amp;#8217;n papiertje staat nu alleen nog maar een afstudeerproject.&lt;/p&gt;
&lt;p&gt;Ik zal proberen uit te leggen wat ik ga doen.&lt;/p&gt;
&lt;p&gt;De &lt;a href=&quot;http://www.win.tue.nl/&quot;&gt;faculteit Wiskunde en Informatica&lt;/a&gt; verzorgt onder andere de programmeer-cursussen voor de andere faculteiten van de TU en voor een paar &lt;span class=&quot;caps&quot;&gt;&lt;span class=&quot;caps&quot;&gt;VWO&lt;/span&gt;&lt;/span&gt; scholen in Eindhoven (bij het schoolvak informatica dus). &lt;a href=&quot;http://www.win.tue.nl/~wsinruur/JavaCourse/JavaBook2008.pdf&quot;&gt;Deze cursussen&lt;/a&gt; zijn een introductie in de programmeertaal Java, een taal die in het onderzoek en bedrijfsleven tegenwoordig veel gebruikt wordt.&lt;/p&gt;
&lt;p&gt;Een van de concepten die Java rijk is, is objectori&amp;euml;ntatie. Omdat veel beginnende studenten bij een programma denken aan een rechtlijnige uitvoer van instructies levert dit problemen op bij Java, omdat in een objectgeori&amp;euml;nteerd programma veel meer op en neer wordt gesprongen in verschillende delen van de code. De beginnende programmeur verliest dan al snel het overzicht over z&amp;#8217;n programma en kan daardoor fouten maken.&lt;/p&gt;
&lt;p&gt;Het project waaraan ik ga werken heet CoffeeDregs (koffiedrab) en gaat de uitvoering van objectgeori&amp;euml;nteerde programma&amp;#8217;s visualizeren. Objecten, methoden, variabelen, ze krijgen allemaal een visuele representatie in de tool.&lt;/p&gt;
&lt;p&gt;Wat er nu is, is een proof-of-concept, een bewijs dat wat ze willen ook mogelijk zou zijn in een echt product. Een programma kan gestart worden in de tool en dan stapje voor stapje gevolgd worden bij de uitvoering. Grafisch klopt er echter nog niet veel van en dat moet ik dus nu gaan oplossen.&lt;/p&gt;
&lt;p&gt;Het idee is niet helemaal nieuw en er zijn dan ook al verschillende tools die de uitvoering van programma&amp;#8217;s visualiseren (&lt;a href=&quot;http://cs.joensuu.fi/~jeliot/description.php&quot;&gt;JEliot heeft een filmpje op de site staan&lt;/a&gt; en lijkt wel een beetje op wat wij zouden willen), maar natuurlijk gaan wij het helemaal anders en beter doen :P&lt;/p&gt;
&lt;p&gt;Het project spreekt mij aan omdat er een echte gebruiker is en je niet in het wilde weg aan het onderzoeken bent. Ik hoop ook dat de studenten er straks iets aan gaan hebben.&lt;/p&gt;</description></item></channel>
</rss>
