Programació Orientada a Objectes amb Smalltalk (POOS)

POOS és una assignatura de lliure elecció que es va impartir a la Facultat d'Informàtica de Barcelona (FIB) de la UPC i al Citilab.

De moment aquí teniu les imatges d'Squeak que fem servir per fer les classes (cal tenir instal·lat Squeak per fer-les servir). La gran majoria del material està traduït de les lliçons del curs open-source impartit pel professor Oscar Nierstrasz de l'Universitat de Berna, encara que hi ha afegits personals que, esperem, siguin cada cop més nombrosos.

El curs s'estructura en 14 sessions de dues hores cadascuna, la qual cosa omple un quatrimestre sencer si fem una sessió per setmana. Això ens permet fer el curs dos cops l'any: de setembre a desembre, i de febrer a juny. Finalment, s'espera a totes les sessions que cada estudiant disposi d'un ordinador. El llibre recomanat per fer l'assignatura és Squeak by Example.

Lliçó 1: Introducció
El curs comença amb una introducció a la història d'Smalltalk i als seus trets més característics. Barreja de lliçó i marketing, s'espera que l'estudiant surti amb la idea de que continuar assistint al curs no serà una pèrdua de temps.

Lliçó 2: Conceptes Bàsics
Introduïm els conceptes bàsics d'Smalltalk i construïm un primer exemple d'aplicació. Aprofitem també per introduir els tests i el lloc on es comparteix el codi Squeak: SqueakSource.

Lliçó 3: Classes Estàndard
Continuem amb conceptes bàsics estudiant una mica amb detall l'ús de les classes que l'entorn Smalltalk ens proporciona. Entre aquesta lliçó i l'anterior invertim tres sessions. Acabem amb l'exemple de l'endevinador de nombres.

Lliçó 4: Modismes
Conèixer el llenguatge no és suficient per programar en aquest llenguatge. En aquesta lliçó introduïm algunes de les maneres de fer típiques d'Smalltalk. I és que quan un llenguatge és orientat a objectes i dinàmic, sovint la nostra intuïció procedural ens enganya.

Lliçó 5: Exercici Xarxa
Prou de xerrar! Ja és hora de programar seriosament. Aquest exemple és d'una mida respectable, si tot just s'acaba d'aprendre Smalltalk. És un exercici guiat que acaba implementant una LAN de joguina. Aquesta lliçó acostuma a durar tres sessions senceres.

Lliçó 6: Seaside
Seaside és un framework per fer aplicacions web només utilitzant Smalltalk. En aquesta lliçó introduïm Seaside tot instal·lant-lo en una imatge neta d'Squeak. És molt senzill! Posem cert èmfasi en els aspectes del control dels components, un dels punts forts de Seaside.

Lliçó 7: Exemples Seaside
Per posar en pràctica el que hem après a la lliçó anterior, escrivim uns exemples petitons per ser executats en un browser. Altre cop, emfatitzem l'aspecte del control, deixant de banda altres coses també molt interessants de Seaside. Però tenim el temps que tenim...

Lliçó 8: Debugging
Catàleg més o menys exhaustiu d'errors típics en programes Smalltalk, i com solucionar-los.

Lliçó 9: Metaclasses
Les dues darreres lliçons (aquesta i la propera) expliquen amb detall les entranyes d'Smalltalk. Aquesta lliçó vol explicar com és que Smalltalk gaudeix d'una uniformitat tan radical en la qüestió dels objectes: Tot és un objecte! Fins i tot les classes! Aquí veurem com de llestos van ser la colla del Xerox PARC quan van pensar l'Smalltalk

Lliçó 10: Reflexió
Continuem amb un dels aspectes més desconeguts de Smalltalk. De fet, la reflexió és un dels trets diferencials de Smalltalk dins del zoo de llenguatges de programació. Podem utilitzar tècniques que són senzillament impensables en altres llenguatges, però de ben segur que ens les vendran com a grans novetats tecnològiques quan les incorporin! Nosaltres, com ja sabrem Smalltalk, somriurem amb certa suficiència...

Nota: Si heu instal.lat Squeak 4 per utilitzar les imatges del curs, haurieu d'afegir el fitxer SqueakV39.sources (aquí) dins del directori on està la màquina virtual d'Squeak.


Novetats

  • ESUG 2012, 9th Innovation Technology Awards
    23 March 20129:44:41 am by Jordi Delgado
    ESUG 2012, 9th Innovation Technology Awards Have you written innovative Smalltalk? The developers of any Smalltalk-based software can enter by submitting a 3-5min video of their software. Entrants de...
  • Scaena
    13 October 201112:13 pm by Jordi Delgado
    New software developed by Bernat Romagosa, member of the Smalltalk.cat group. Scaena is a technical rider designer for musicians, sound engineers or anyone involved in the process of organizing a musi...
  • Ludus... and more!
    20 September 20114:09:01 pm by admin
    Ludus, a new html5 game framework on top of amber, try it! http://asmalltalkbytheseaside.com Besides, someone run Scat on CogDroid (cog VM for Android). Announced here, translation here. Awesome. A...
  • New deadline for ESUG 2011 innovation Technology Awards
    18 July 20115:32:16 pm by Jordi Delgado
    New deadline for ESUG 2011 8th Innovation Technology Awards August 15, 2011 Visit ESUG 2011 8th Innovation Technology Awards web site for complete information...