El carnisser i el cirurgià, II

Des del meu punt de vista, hi ha dos factors clau en tot això: la visió perifèrica i la precisió. Diu en Paul Graham (www.paulgraham.com/gh.html) que en Bill Bradley, un jugador de bàsquet (que pel que es veu deuria ser molt bo) tenia una visió perifèrica de 70 graus, quan la majoria de la gent en té menys de 50. Aquesta extraordinària visió li permetia veure la cistella fins i tot quan mirava a terra.

En programació hauria de passar quelcom de similar. Quan l’alumne està escrivint una funció, un bucle o una línia, està mirant a una petita part del codi font, però no pot perdre de vista el conjunt del que està dissenyant, programant. D’alguna manera, és el que en Fred Brooks en deia conceptual integrity, però a una escala més petita. Aquesta visió perifèrica, en programació, la veig molt relacionada amb la capacitat d’abstracció i la de síntesi, que crec que són competències clau en tot enginyer, incloent sens dubte l’enginyer informàtic. M’agradaria saber quants alumnes, quan es troben davant l’editor escrivint línies en C, tenen al seu cap (davant dels seus ulls) la totalitat del que estan fent. Si són capaços d’imaginar-se el codi en execució, com es van fent les crides, etcètera.

Relacionat amb el punt anterior hi ha la precisió. Resulta que les pràctiques s’han d’escriure en el llenguatge C. Qualsevol programador que tingui certa experiència amb aquest llenguatge sabrà de sobra la seva potència i l’enorme perill que comporta. Dóna molta llibertat al programador, però també molta responsabilitat, i convindria preguntar-nos si, quan ensenyem C, preparem els alumnes per a ser-ne conscients i saber emprar amb seguretat els recursos que el llenguatge els posa a la seva disposició. Els arrays i els punters, un punt molt important del llenguatge C, és sovint poc entès pels alumnes, amb les conseqüències que això comporta. El fet que la pràctica 1 de SO impliqui la programació amb diversos processos, aumenta la gravetat i la importància de tots aquests aspectes.

Deixa un comentari

Fill in your details below or click an icon to log in:

WordPress.com Logo

Esteu comentant fent servir el compte WordPress.com. Log Out / Canvia )

Twitter picture

Esteu comentant fent servir el compte Twitter. Log Out / Canvia )

Facebook photo

Esteu comentant fent servir el compte Facebook. Log Out / Canvia )

Google+ photo

Esteu comentant fent servir el compte Google+. Log Out / Canvia )

Connecting to %s