Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 39 reacties

Programmeur Alex Gerdes heeft voor zijn promotieonderzoek aan de Open Universiteit een programmeerleeromgeving ontwikkeld. De software moet studenten automatisch feedback geven tijdens het maken van opdrachten en het eenvoudiger maken om te leren programmeren.

Bij de ontwikkeling van de programmeerleeromgeving voor de functionele programmeertaal Haskell, Ask-Elle geheten, werkte Gerdes samen met studenten van de Universiteit Utrecht. Ask-Elle zou in staat zijn om een student die met een programmeeropdracht bezig is feedback te geven of hij een juiste stap heeft gezet met zijn geschreven Haskell-code. Ook moet Ask-Elle, dat is gericht op eerstejaars studenten, hints geven als een student vastloopt.

De feedback die Ask-Elle geeft, wordt automatisch gegenereerd op basis van modeloplossingen voor een bepaalde programmeeropgave. Bij modeloplossingen is de code geschreven alsof een expert deze geproduceerd heeft en bevat de code methoden die een student zichzelf moet aanleren.

Volgens Gerdes is Ask-Elle ook nuttig voor docenten, omdat studenten zelfstandiger aan opdrachten kunnen werken. Bovendien is het voor docenten mogelijk om zelf modeloplossingen toe te voegen aan de programmeerleeromgeving waarbij tevens de geboden feedback veranderd kan worden. Gerdes zal op 23 november aan de Open Universiteit in Heerlen promoveren op basis van zijn proefschrift 'Ask-Elle: a Haskell Tutor'.

Reacties (39)

Reactiefilter:-139037+118+22+30
Moderatie-faq Wijzig weergave
Je hebt helemaal gelijk als je schrijft dat Functioneel programeren een andere manier van denken vergt.

Echter, ik vind Haskell code in veel gevallen makkelijker te lezen dan imperatieve code, met name omdat je veel minder tekst hoeft te lezen. Als je Haskell bijvoorbeeld met Java vergelijkt, dan valt het op dat Java zeker een factor 5 meer regels vergt en die moet je allemaal lezen. Daar moet ik wel de kanttekening bij plaatsten dat het lezen van sommige stukken Haskell code flinke hersenkrakers kunnen zijn. Maar dit hangt ook in sterke mate van je ervaring en de codingstyle af.
is dit niet net zoiets als http://www.codecademy.com/ ?
is dan wel voor python, javascript en nog een paar, maar lijkt hetzelfde principe.
erg leuk om zo python te leren :)
Duidelijke taal! ik had gelijk wat vragen bedacht om te stellen maar je beantwoord ze al :)
Mijn dochter is net begonnen aan CKI aan de UU, maar die heeft nog Java (http://www.phil.uu.nl/java/).
Functioneel Programmeren het moeilijkste? Nooit Optimalisering en Complexiteit gevolgd zeker? :P
Tnx, ga ik doen na w3school.com ,vind het op deze manier leren van iets wel zo makkelijk maar schijnt per persoon te verschillen,het wachten is op uitdagende games die je leren wat je wil leeren
ik heb het even geprobeerd.. het zal aan mij liggen maar ik vind het maar moeilijk dit te koppellen/herleiden naar python/c#/c++/asm/ruby on rails

wat Ytrog al zei is BlueJ na mijn idee een veel beter tool om concepten uit te leggen..

waar ik tegenwoordig een heel erge voorstander ben is LUA naar mijn idee is die taal het meeste geschikt voor het aan leren van programmeer talen

[Reactie gewijzigd door sonicred op 20 november 2012 10:29]

Inmiddels is Java vervangen door C# in het curriculum. Niet dat dat veel verandert natuurlijk.
Met de introductie van multi-core processoren komt het gebruik van Haskell en Erlang pas tot zijn recht. Voor normale applicaties is er geen reden om je toevlucht tot dit soort talen te nemen.
Pas als je een paar duizend requests op 1 machine wil afhandelen dan merk je dat Haskell en Erlang veel betere alternatieven zijn dan C++ of Java.

Zie het nu als een stukje ervaring wat je later nuttig kan gebruiken.
Ik dacht er 10 jaar geleden ook niets aan te hebben.
Bij veel grote bedrijven zie je nu dat bepaalde highperformance onderelen nu enkel in functionele talen geschreven worden. Niet omdat het zo leuk is maar omdat het alternatief in Java, C of een P-scripttaal gewoon niet meer werkt.
De tool (niet zelf naar gekeken, want ik kan er niet bij) doet me een beetje aan het BlueJ van vroeger denken.

Wil je trouwens snel wat talen leren kan ik je "Seven languages in seven weeks" aanbevelen. Erg leuk boek :)
Op de Universiteit Utrecht leer je drie talen: een imperatieve (Java), een functionele (Haskell) en een logische (Prolog). Het idee is dat je zo kennis maakt met deze fundamenteel verschillende programmeermodellen, en dat als je die drie kent je als academicus je met weinig moeite je de meeste andere talen meester kan maken. Prima systeem.

[Reactie gewijzigd door Grauw op 20 november 2012 01:00]

Ik met het met eens. Ik weet nog wel dat ze op de haagse hoge school toen de programmeertaal B hadden (zelf ontwikkeld, is al heel lang geleden). Had je in de praktijk geen ene r**t aan, want in het bedrijfsleven gebruiken ze geen programmeertaal B.

Zet toch mijn vraagtekens bij zo'n tool. Het is mij niet helemaal duidelijk of er ook programmaatjes mee kunnen worden gemaakt, maar je hebt zo weinig aan omdat het niet overeenkomt met de werkelijkheid. Volgens mij kun je veel beter een taal leren en desnoods eerst een scripttaal zoals bijvoorbeeld javascript. Vanuit daar kun je dan de overstap maken naar C, Java etc. Dit lijkt mij weer zo'n theoretische benadering bij het oplossen van een probleem dat niet bruikbaar is in de praktijk.

Heb ook een keer een cursus Java gehad bij Vijfhart, waardeloze cursus voor mensen uit het bedrijfsleven. Beginnen ze met het afdrukken van priemgetallen. Daar heb je echter niets aan als je interfaces moet bouwen.

Om te ondersteunen wat @SuperDre schrijft, kunnen ze beter leren hoe je aan informatie kan komen wanneer je iets niet weet. Bijvoorbeeld gericht zoeken op internet, dat je voorbeelden kan vinden en deze kan toepassen. Het aanbod in oplossingen is zo groot, dat je moet leren om te kunnen filteren (want niet alles wat je vind hoeft per definitie goed te zijn). Dus dat je een keuze kan maken, de goede keuze. Net als in de supermarkt, het aanbod is enorm, bijvoorbeeld je hebt wel 30 verschillende yoghurt maar welke is voor jou gerecht geschikt.

Je hoeft niet alles te weten (alhoewel is wel handig natuurlijk maar daar gaat een tijd overeen) en is vele malen leerzamer omdat je zelf de oplossing zoekt. Wanneer je niet kunt zoeken in het bedrijfsleven dan heb je pas echt een probleem, dan ben je veel langer met een project bezig omdat je het zelf gaat maken (Of dat je alleen maar gaat zoeken op Nederlandse sites, je vind niet wat je zoekt, zie ik ook nog regelmatig). Dat is niet altijd nodig want er is misschien al iemand die het wiel al een keer bekeken heeft. Als je dan alleen maar kunt werken met die tool, die heb je in het bedrijfsleven niet, zou ook een beetje knullig overkomen.

Het is net als met een zakjapanner, gebruik deze altijd kun je vaak niet meer goed hoofdrekenen, kortom: Je word lui en je bent dan heel afhankelijk van dat ene 'ding'. Dan heb je om een afstand in pixels te berekenen zelfs een zakjapanner nodig :+

[Reactie gewijzigd door Erwines op 20 november 2012 00:37]

Hangt van het doel af: ik zou Java of C# nou geen schoolvoorbeelden van talen noemen die proberen concepten helder te maken. Eerder talen om dingen gedaan te krijgen. Als je naar een muziekschool gaat geven ze je eerst een blokfluit om de concepten over de buhne te krijgen voordat je op een saxofoon mag blazen. Zo zie ik dit ook meer: Haskell om concepten (zaken als recursie, complexiteit van algoritmes e.d.) te leren voordat je jezelf in je voet gaat schieten met andere (complexere) omgevingen.
was voor mij even wennen dat ik de definitie zelf niet moest geven. Was nogal raar. Voor de rest wel een redelijk tool
Aah dus de tijd van twee dikke boeken kopen die de taal uitleggen en gewoon lezen en code stampen is voorbij :)
tja, zal ik dan wel weer zijn, maar ik vindt dit eigenlijk helemaal niet positief, want het is juist goed als mensen zelf moeten zoeken naar een oplossing en niet zomaar simpel iets wordt aangedragen..
Ja, want van al die mensen die niet zo goed zijn in abstact denken, daar willen we natuurlijk graag programmeurs van maken !
Heel awesome, jammer genoeg moet je op de UU het tentamen Functioneel Programmeren nog steeds lekker op papier doen. Staat wel bekend als een van de, zo niet het, moeilijkste bachelorvak bij informatica. Wel echt een prachtige taal, jammer dat het tentamen zo absurd moeilijk is... :).

Wat mij betreft mag het leren programmeren sowieso wel meer deze kant op, in de praktijk werk je toch altijd in een suite als Eclipse met alle tools die daarbij komen. Kennis opdoen in dezelfde omgeving als waarin je die zult moeten toepassen lijkt me niet meer dan logisch. Helaas denken ze daar op de UU nog steeds anders over...

Op dit item kan niet meer gereageerd worden.



LG G4 Battlefield Hardline Samsung Galaxy S6 Edge Microsoft Windows 10 Samsung Galaxy S6 HTC One (M9) Grand Theft Auto V Apple iPad Air 2

© 1998 - 2015 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True