Programmeren

Programmeren op de iPhone?

Computercode is de language du jour, las ik in de NYT. Iedereen wil leren programmeren en er zijn zelfs iPhone apps voor. Nou vind ik de iPhone handig voor heel veel dingen, maar ik vraag me ernstig af of programmeren (foutloos tekst intypen met veel leestekens) daar ook bij hoort. Dat neemt natuurlijk niet weg dat ik wel nieuwsgierig ben naar wat die apps dan kunnen.

Er blijken inderdaad allerlei apps te bestaan. Het meest intrigerend is deze waarmee je Pythonprogramma’s kan uitvoeren (althans, print "Hallo wereld" werkt). Er zitten ook oefeningen bij (denk ik) maar die zijn in het Chinees. Let ook op de decoratieve achtergrond.

Praktischer is deze app waarmee je quizvragen kan beantwoorden over wat stukjes Pythoncode doen. Leuk tijdverdrijf als je op de trein staat te wachten, heb je toch het gevoel dat je wat nuttigs doet. Maar ik denk dat ik me voorlopig nog maar even op JavaScript moet concentreren.

Summary: 

The NYT called computer code the language du jour, there are even iPhone apps to learn programming. I found one that looks cool but is half in Chinese, and a quizz to test your knowledge of Python. But I think I should focus on JavaScript for now.

De uitvinders van skip logic?

Vroeger had je papieren formulieren met ingewikkelde instructies: als je bij deze vraag “Ja” hebt ingevuld, ga dan verder met vraag 12; heb je “Nee” ingevuld ga dan naar vraag 16 op pagina 3. Tegenwoordig word je automatisch door vragenlijsten heengeloodst met behulp van skip logic (of conditional branching).

Houdt u van korte vragenlijsten?

Ja
Nee

Ik had er nooit bij stilgestaan hoe dat technisch werkt, tot ik in Beautiful Data (2009) een artikel las van Jonathan Follett en Matthew Holm over gebruikersvriendelijke enquêteformulieren. Als illustratie gebruiken ze een enquête waarin vermogende 55-plussers werden ondervraagd over een niet nader genoemd luxeproduct.

Follett en Holm beschrijven een aantal manieren waarop ze rekening probeerden te houden met hun doelgroep: val respondenten niet lastig met eindeloze variaties op dezelfde vraag (sociale wetenschappers hebben daar een handje van); gebruik een sobere, functionele vormgeving; maak duidelijk dat je geïnteresseerd bent in de mening van de respondenten en dat je ze niet iets probeert te verkopen. Allemaal open deuren, maar die kunnen niet vaak genoeg worden ingetrapt.

En daarnaast maakten ze dus gebruik van skip logic - al gebruiken ze zelf die term niet. Ze kwamen op het idee toen ze een portfolio-site maakten voor een ontwerper:

We used JavaScript to hide and reveal details about different projects, making it possible to take in all of the designer’s work at a glance and then dive deeper into areas of interest, all without leaving the home page.

Datzelfde idee gebruikten ze vervolgens ook in de vragenlijst voor rijke 55-plussers:

As programming goes, this is child’s play and hardly worth mentioning. But the impact from the user’s standpoint is subtle and powerful. It meant that we could ‘listen’ and ‘respond’ to the user’s input in a very conversational manner.

Dat het technisch gezien kinderspel is kan ik persoonlijk niet beamen, maar hé, ik ben nog maar net met JavaScript begonnen. Wat ik wel intrigerend vind is dat de auteurs zich in feite opwerpen als de uitvinders van skip logic. Terwijl ik niet anders weet dan dat deze functie standaard aanwezig is in allerlei online enquêteprogramma’s (ik heb het gecheckt, Limesurvey gebruikt ongeveer dezelfde code als Follett en Holm).

Skip logic in online vragenlijsten bestaat al zeker tien jaar en het is dus onwaarschijnlijk dat Follett en Holm dit hebben uitgevonden. In theorie is het wel mogelijk dat zij het script hebben bedacht waarmee vragen zichtbaar worden gemaakt in reactie op eerder gegeven antwoorden. Vroeger werd skip logic op een omslachtigere manier vormgegeven, waarbij respondenten van de ene naar de andere pagina werden gestuurd (zie bijvoorbeeld dit artikel uit 2007 waarin wordt gewaarschuwd dat respondenten kunnen afhaken als je skip logic gebruikt).

9% heeft wel eens een computerprogramma geschreven

Aha. Ik hoor niet alleen bij de 99% maar ook bij de 9%: dat is het aandeel van de Nederlandse bevolking dat wel eens een programma heeft geschreven (‘met gebruik van een gespecialiseerde programmeertaal’). Dat staat in een rapportage die Eurostat naar buiten heeft gebracht omdat het deze week blijkbaar e-skills week is.

Over de cijfers vallen twee dingen te zeggen. 1. Nederland scoort matig, zeker in vergelijking met Scandinavische landen. 2. Enige voorzichtigheid is op zijn plaats, want de cijfers voor Nederland fluctueren nogal. Voor de liefhebbers hier (pdf) de publicatie en hier de achterliggende gegevens.

Summary: 

Percentage of the population who have ever written a computer program.

Pittige wiskundeopdrachten

Van Codeyear ontvang ik elke week een mail met huiswerk om stap voor stap te leren programmeren. Op deze pagina las ik de tip (‘highly recommended’) om je daarnaast in te schrijven bij Euler, waar je in de praktijk kan oefenen met de vaardigheden die je bij Codeyear hebt geleerd. Euler is een website met wiskundeopdrachten, maar de opdrachten zitten vaak zo in elkaar dat je wel moet programmeren om ze op te kunnen lossen. Een voorbeeld:

The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143?

De aanpak bij Euler is een tikkeltje spartaans. Als je bij Codeyear vastloopt kan je op een forum terecht voor aanwijzingen. Bij Euler word je pas op het forum toegelaten nadat je het goede antwoord hebt gegeven. Je hoeft ze ook niet te mailen:

Please do not contact Project Euler if you are unable to solve a particular problem. If you can’t solve it, then you can’t solve it!

De eerste opdrachten zijn te doen, maar wel pittig. Ik heb een voorgevoel dat het niveau steil omhoog zal gaan, dus ik ben benieuwd hoe lang ik dit vol ga houden. Op de site valt te lezen dat ruim 200.000 mensen tenminste één goed antwoord hebben ingediend. Waarschijnlijk is een groot deel daarna al snel afgehaakt: tot nog toe is 18% erin geslaagd om tenminste 25 vragen op te lossen.

Bij het plaatsen van dit bericht had ik 9 problemen opgelost, aan de teller hierboven kan je zien of ik sindsdien verder ben gekomen.

Pages