[bcn-pm] Curs Perl I: Primer esborrany temari i estructura

Jordi Delgado jdelgado a lsi.upc.edu
dim oct 18 16:21:16 PDT 2011


Hola,

Aquesta es la primera proposta del temari del curs.
Es un *ESBORRANY*, subjecte a discussio, ok?
No hi ha res tancat.

Partim de la seguent base:
- 8 hores.
- L'estudiant ha de saber programar amb fluidesa.
- Cada estudiant disposa d'un portatil amb perl instal.lat

A grans trets caldria que el curs, tingues en compte:
- Dades escalars, hashos, llistes i arrays
- Operadors diversos
- Estructures de control
- Referencies
- Subrutines
- Expressions regulars
- Fitxers i directoris
- Objectes 

pero tambe
- filosofia perl
- comunitat perl
- una mica de hands-on

Com veieu, la tasca d'encabir tot aixo en 8 hores
es una mica feixuga. No oblidem que estem deixant
fora un munt d'aspectes importants: tests, debugging,
profiling, unicode, moduls i un llarg etc.

Concretant (suposem que comencem al voltant de les 9am):

- Presentacio (15' max)

- <1> 60 minuts: 9:15-10-15

La idea seria presentar les peculiaritats de perl relacionades amb
allo mes basic del llenguatge:

[per iniciar les peculiaritats de perl, el curs 
pot parlar de dades i variables, aixo dona lloc a
poder comentar els sigils]
Nombres (reals i enters) i strings (interpolacio), coercio --> dades escalars
Llistes, Arrays i hashos. Usos comuns i sintaxi (chromatic pl.35-46)
Operadors mes habituals
Variables i notacio (sigils $ @ %), assignacio, undef, scope: use strict, my

[Estructures de control per poder escriure una mica de codi]
I/O (<>, print)
if/unless/for/foreach/while/until/do 

[mes particularitats de perl]
Contextos i implicits a la manera de chromatic, (pl.3-8) ampliat
seguint Schwartz et al. (caps. 2 i 3 diversos llocs)
pero tambe al voltant de l'entrada/sortida i les estructures
de control (foreach)
Coercio (chromatic pl.47)

- <2> 30 minuts: 10:15-10:45
  resoldre algun problema elemental 
  (podriem agafar algun dels de PRO1?, a la FIB)
  Aixi agafen soltura amb el codi i els errors
  Important: Tenir a ma una solucio a la perl expert,
  per a que la comparin amb la seva

Aquest bloc d'explicacio i problema es pot ajustar i utilitzar part
dels 30 minuts per a la primera explicacio si cal, fent el problema
a resoldre mes senzill. <1>+<2> pot ser 60+30, 75+15, etc.

<<<<< break 15' >>>>> 10:45-11:00

- <3> 60 minuts: 11:00-12:00

Estructures de dades aniuades: Mencionar, no invertir-hi gaire temps.

Subrutines: essencialment cap. 4 de Schwartz et al. (menys la darrera seccio)
jo posaria emfasi en el pas de parres (ara ja els hauria de sonar
aixo dels implicits, per tant no hauria de ser gaire dificil de pair),
Lexicals, recursivitat (rec. final)

Referencies: chromatic pl.50-55, el que sigui pertinent per a allo basic
i capitols 4, 5 i 7 de Schwartz et al. (Intermediate) pels detalls. Jo posaria
emfasi en dades estructurades anonimes, autovivificacio i sobre tot
en referencies a subrutines.

Manipulacio de subrutines com a objectes de primera classe:
subrutines anonimes, callbacks, closures, etc. 
Aixo seria part del cap. 7 de Schwartz et al. (Intermediate) i potser
alguna cosa del cap.9 de foy (Mastering)

- <4> 60 minuts: 12:00-13:00

  Resoldre algun problema una mica complicat on
  si cal els donem el pseudo-codi de la solucio, ja que no interessa 
  si el saben resoldre, nomes si el saben resoldre en perl.

Altre cop, podem considerar <3>+<4> com un bloc amb dues parts que es poden
moure en funcio de les necessitats del ponent: 60+60, 80+40, etc.

<<<<< dinar >>>>> 13:00-14:30

- <5> 60 minuts: 14:30-15:30

  Exercici practic d'alguna mena: Estrategic!! Si ens posem a xerrar
  despres de dinar se'ns adormen garantit. Pensar-hi!!

- <6> 60 minuts: 15:30-16:30

Fitxers i directoris: cap. 5, 12 i 13 Schwartz et al.
(penso que amb aixo omplim una hora sense problemes)

<<<<< break 15'>>>>> 16:30-16:45

- <7> 45 minuts: 16:45-17:30

Expressions regulars: cap.7, 8 i 9 Schwartz et al. (el que es pugui!)
	    	      tambe pl.89-99 chromatic

- <8> 30 minuts: 17:30-18:00

Exercicis practics d'expressions regulars

Altre cop <7>+<8> formen un bloc de 75'que es pot ajustar com vulgui
el ponent.

- <9> 60 minuts: 18:00-19:00

Objectes: chromatic pl.100-114 (no cal reflexio).
	  caps. 11-14 Scwartz et al. (intermediate)
Pero crec que caldria sustituir el que es pugui de la manera
tradicional de gestionar l'OO de perl (blessed refs.) per una bona
explicacio de Moose. Qui ho faci ja ho pensara...

Cloenda: 15'

Presentacio: Alex
<1> ?
<2> Entre tots.
<3> Jordi D. (m'ofereixo a impartir aquesta hora del curs)
<4> Entre tots
<5> Entre tots
<6> ?
<7> ?
<8> Entre tots
<9> ?
Cloenda: Alex

Al final el curs es de 9:15h - 19:15h amb dos breaks de 15' i 90' per dinar.
Total: 8 hores de curs
(jo comptaria en acabar cap a les 20h, per retards acumulats)

Queden fora coses que jo crec que son molt importants, com els moduls. La
seva utilitzacio es transversal, i es pot comentar de passada on calgui.
Sobre la comunitat perl l'Alex pot dir quatre coses a la cloenda, i sobre
la filosofia perl... hauria de transpirar del mateix curs, perque jo no
veig manera humana d'encabir-la...

En fi, espero opinions, aixo nomes es un primer esborrany...
(ja imagino els comentaris "aquest tio esta boig", "com es nota que es de LSI",
pero si els fem pencar molt sortiran del curs mes contents que si no ho fem).

Salut!

Jordi



Més informació sobre la llista de correu Barcelona-pm