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. Je kunt ook een cookievrije versie van de website bezoeken met minder functionaliteit. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , reacties: 39, views: 19.844 •

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)

Mooi! Haskell is toch vrij lastig om in te stappen, ik had dit zeker behulpzaam gevonden om te kunnen gebruiken in mijn eerste dagen.
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 :)
Jammer dat hij dit niet online zet, zodat ook niet studenten ermee kunnen lummelen.

Over pogrameerleeromgeving gesproken, bij codecademy.com dan worden je tags (bv <a href>) automatisch afgesloten ( </a>, dat zou vaker gebruikt moeten worden in editors. Maarja bij codecademy.com kun je weer niet exporteren, maarja dat is iets heel anders.

Hmmm dit is online Leuk :P

[Reactie gewijzigd door eddyjohn op 19 november 2012 19:51]

In een leeromgeving zou een <a> tag juist niet afgesloten moeten worden. Wat heeft dat met leren te maken? Dat is geen feedback, maar hulp :)

Daartegenover staat dat de meeste IDE's en serieuze editors dat wel gewoon doen, maar hun doel is dan ook niet om een leeromgeving te zijn. Overigens geven veel IDE's wel aan of er sommige dingen aan je code beter kunnen.
Ik lees net je reactie en ik zag codecademy.com. Ik zat zo die website te verkennen en ik ben helemaal verkocht. Geweldig om zo javascript te leren.

Is dit er ook voor java of c++?
Ook vrij voor de hand liggend om mee te beginnen: http://tryhaskell.org/

Ik heb nog nooit een vacature voorbij zien komen voor een Haskell programmeur, maar goed ik kijk ook niet bij de wetenschapsafdeling in de vacaturekrant ;) TU's staan ook niet bekend om het opleiden van praktijkgerichte programmeurs, daarvoor zit je beter bij een HBO.

Het lijkt me wel een grappig taaltje, heeft veel weg van functioneel proggen in javascript en ook delegates etc. in C# etc. Maar dan nog wat lastiger.

Ik heb wel medelijden met de persoon die de eerste review moet doen van java of c# code geschreven door iemand die bedreven is in Haskell.. lijkt nu niet bepaald gericht op het produceren van overdraag- en vooral leesbare code ..
Haskel, Scala en Erlang zijn functionele talen en dat heeft verder weinig te maken met leesbare code. Het is maar wat je gewend bent om te lezen. Verder is het geen kunst om brakke code in welke taal dan ook te schrijven,

Functionele talen benaderen problemen op een andere manier waardoor ze sommige problemen veel efficienter kunnen afhandelen.
Bijvoorbeeld de chat applicatie binnen Facebook draait op een kern van Erlang.
Bijvoorbeeld met Erlang is het geen probleem om een miljoen processen te spawnen terwijl je dat met C niet hoeft te proberen.
Erlang kan een draaiend systeem gewoon van een nieuwe versie voorzien zonder het systeem down te halen. Met Haskell kan je eenvoudig je code parallel laaten werken over meerderdere cores of nodes.
Allemaal specifieke voordelen die een aantal specifieke problemen effectief kunnen oplossen die je met Java of C een stuk lastiger kunt oplossen.
Duidelijke taal! ik had gelijk wat vragen bedacht om te stellen maar je beantwoord ze al :)
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.
Ziet er mooi uit, het begin van het aanleren van een programmeertaal is zeker niet makkelijk. Ik denk dat dit een stap in de goeie richting is om beginners minder snel vast te laten lopen. Iedereen weet hoe frustrerend/afremmend een dom foutje kan zijn...
Ik moest gelijk aan dit artikel over "Learnable Programming" van Brett Victor denken. Leren te programmeren door direct feedback te geven en uit te nodigen om te experimenteren. Anders blijft leren programmeren toch vaak heel abstract.
Ja, want van al die mensen die niet zo goed zijn in abstact denken, daar willen we natuurlijk graag programmeurs van maken !
Deze omgeving is voor de taal Haskell, niet voor Pascal/Delphi :9
Jouw code ziet er ook niet echt uit als Haskell.
Ik had moeite met de definitie van compress, omdat de online omgeving een aantal redelijk standaardfuncties mist. :+

Mijn eerste poging:
compress = map head . group

Mijn tweede poging:
compress [] = []
compress (x:xs) = x : compress (dropWhile (==x) xs)

Success _/-\o_
was voor mij even wennen dat ik de definitie zelf niet moest geven. Was nogal raar. Voor de rest wel een redelijk tool
Hier is de Universiteit Utrecht voor zover ik weet al jaren mee bezig, en wordt ook al beperkt ingezet. Verder is er nog Helium (dacht ik) die probeert betere foutmeldingen te geven dan de standaard GHC compiler doet, dus zie niet echt wat er hier nieuw aan is?

Daarbij vind ik Haskell echt een vervelende taal en onbegrijpelijk waarom het op de UU verplicht is.
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.
ik, als student aan de UU waar 'Ask-Elle' naar mijn weten ontwikkeld is heb de gelegenheid gehad om hier mee te werken.
echter was ik zelf niet erg enthousiast over deze tool, de tool zou zeker gebruikt kunnen worden om de syntax in meer of mindere maten onder de knie te kunnen krijgen maar erg fijn werkte de verzie waar ik mee gewerkt heb nog niet. je kunt controleren of je types goed zijn en of je je gards goed plaatst, maar erg veel verder gaat de tool niet.
er is zeker vraag naar een tool als 'Ask-Elle' een functionele taal als Haskell is maar voor weinig mensen weg gelegd. en ik hoop dus ook dat de ontwikkelaars nog verder gaan met 'Ask-Elle', het zal veel mensen helpen!.

overigens staat de tool naar mijn idee gewoon online, voor de mensen die hem willen proberen hij staat naar mijn idee ergens op deze wiki: http://www.cs.uu.nl/wiki/FP/WebHome
Ik vind het een zeer mooi initiatief, maar Haskell als taal om te leren programmeren?
Is een feedback IDE voor Java of C# dan niet logischer?
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.
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]

Inmiddels is Java vervangen door C# in het curriculum. Niet dat dat veel verandert natuurlijk.
Mijn dochter is net begonnen aan CKI aan de UU, maar die heeft nog Java (http://www.phil.uu.nl/java/).
Doet me erg denken aan codeschool.com. Ontzettend goed concept.
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
Klinkt ook erg naar DeduceIt dat gebruikt wordt op Stanford. Alleen is dat systeem niet specifiek gericht op 1 programmeertaal, maar veel breder inzetbaar. Zo wordt DeduceIt naast programmeren ook gebruikt voor wiskunde, kunstmatige intelligentie, linguistische studies en nog vele andere zaken.

Helaas is DeduceIt niet publiekelijk beschikbaar (alleen via Stanford of Coursera, waar de Compilers course ook met DeduceIt werkt). In de Compilers course wordt DeduceIt bijvoorbeeld gebruikt voor het leren van ASM op MIPS, maar ook voor het leren werken met CFGs, ASTs en dergelijke.

Op dit item kan niet meer gereageerd worden.



Populair:Apple iPhone 6Samsung Galaxy Note 4Apple iPad Air 2FIFA 15Motorola Nexus 6Call of Duty: Advanced WarfareApple WatchWorld of Warcraft: Warlords of Draenor, PC (Windows)Microsoft Xbox One 500GBDesktops

© 1998 - 2014 Tweakers.net B.V. Tweakers is onderdeel van De Persgroep en partner van Computable, Autotrack en Carsom.nl Hosting door True

Beste nieuwssite en prijsvergelijker van het jaar 2013