Tot i estant d'acord amb la proposta del teu missatge, voldria insistir en que jo proposo Java FC a segon malgrat prefereixo molt més com juguen els Python United :P El dia 1 abril de 2014 20.18, J. Moreno <jmorep@xxxxxxxxx> ha escrit: > Aquest fil té tota la pinta de convertir-se en una defensa del que agrada > a cadascú. En temes de llenguatges de programació, molt em temo que passa > com amb la política o el futbol. Si ets d'un equip o partit, la resta no > importa gaire ;-/ > > Personalment, trobaria més interessant discutir sobre la concreció dels > conceptes i procediments que creiem que cal treballar i assolir amb > l'alumnat i després valorar per a cada un d'ells si un o altre llenguatge > s'adiu més perquè l'alumnat aprengui el concepte o el procediment. > > Els arguments de l'Enric són molt interessants, tot i que parteixen d'una > elecció prèvia. Si es tracta d'escollir un llenguatge com a eina per > treballar els conceptes i procediments de la programació de les tres > primeres UF del mòdul M03 (que crec que és el que es planteja), hi ha > alguns comentaris que em semblen molt interessants, sobretot els que fan > referència a l'ús de variables, tipus, classe d'emmagatzemament en memòria, > etc. El fet que estigui de moda o l'utilitzin a la UPC no em semblen tan > rellevants. > > No sé si entra el tema en aquest fil, però trobo més interessant > centrar-se en què volem aconseguir i no en les eines. Segurament > descobrirem que tenim també idees bastant diferents sobre què és més > important treballar ala programació de primer. :) i segur que seria > enriquidor posar-les en comú. > > Salutacions. > > José Moreno > > > 2014-04-01 20:03 GMT+02:00 Moisès Gómez <iesmoises@xxxxxxxxx>: > > Moltes gràcies Enric! >> >> Vaig introduir Python a DFSI (un crèdit de segon de l'antic ASI) i >> l'experiència va ser brutal. Alguns alumnes van reconèixer que gràcies al >> Python havien per fi entés de què anava la programació. Entre ells, uns >> quants van aconseguir aprovar la programació de primer! >> >> El curs passat vaig voler repetir amb programació de primer d'ASIX amb la >> idea de que un administrador de sistemes l'aprofitaria molt més que el C. >> Amb tot, discutint amb el company que fa el crèdit equivalent a DAW, em va >> "convèncer" de que calia C perquè després els seria més fàcil entendre >> altres llenguatges de notació "heretada" com ara el Java. Així que vaig >> intentar tots dos llenguatges i com que allò va ser massa per un >> percentatge important d'alumnes... vaig sacrificar Python. Crec que va ser >> un error i no el tornaré a cometre a menys que al centre m'obliguin >> d'alguna manera. >> >> En resum, la meva opinió al respecte és: >> >> * Python és el llenguatge ideal per primer >> >> * Amb les idees realment clares des de primer (sospita fonamentada en els >> pocs que passen així a segon), no té tanta importància quins llenguatges >> facin servir a segon. Penso que Java és una bona opció al M03 per la seva >> demanda al mercat i perquè els conceptes POO estan molt documentats a >> llibres que per mi són de referència (ex. "Refactoring" del Fowler o "Clean >> Code" de l'Uncle Bob). >> >> Dit això, si haig d'expressar la meva preferència personal, jo faria >> Python a primer i a segon, simplement perquè m'encanta :) >> >> salut >> >> >> El dia 1 abril de 2014 18.25, Enric Mieza <emieza@xxxxxxxx> ha escrit: >> >> Hola a totes! >>> >>> fa un segle que vam deixar penjada la discussió de Python vs Java en el >>> context de POO per DAMP i DAW. Oju, que aquest email és llarg ':-) >>> >>> Vaig al gra: *jo aposto per Python* inicialment. Impartiria Java al >>> final de curs, un cop han madurat els conceptes bàsics. >>> >>> Si algú no ho té per mà podeu endinsar-vos amb aquest >>> article<http://www.cacauet.org/wiki/index.php/Python:_introducci%C3%B3_r%C3%A0pida> >>> . >>> >>> Avantatges de PYTHON: >>> >>> 1. És (molt) més simple >>> 2. Ocupa menys codi >>> 3. El codi és molt més llegible: The Zen Of >>> Python<http://legacy.python.org/dev/peps/pep-0020/> >>> 4. Quasi tot el què proves intuïtivament funciona >>> 5. Té tantes llibreries com Java (o al menys no he trobat a faltar >>> res mai, des de web, json, etc fins a GUI, Qt, GTK, etc.) >>> 6. Té frameworks escalables i super potents com Pyramid, Django, etc. >>> 7. Es pot fer servir com a llenguatge de sistema (scripts, accés a >>> OS, etc.) >>> 8. Educativament és més adequat per començar, ja que és més amigable >>> pel neòfit >>> 9. El fan servir a la UPC com a llenguatge de programació a 1r (Java >>> a 2n) >>> 10. Cada cop està més de moda i es demana més >>> 11. Permet treballar sense objectes (a 1r de CFGS) >>> 12. Fer llistes i altres estructures complexes és més senzill, el >>> que permet avançar molt més en el 1r curs i estalviar-te els punters >>> 13. Pots utilitzar punters, però pots oblidar-te d'ells al principi >>> de l'aprenentatge >>> 14. Existeix l'herència múltiple >>> >>> >>> Desavantatges de Python: >>> >>> 1. Tipatge dinàmic: molt pràctic però no és útil per explicar >>> conceptes com polimorfisme. Tampoc em sembla important al principi de >>> curs, >>> ja tenen prou feina amb l'herència i els conceptes bàsics (classe, >>> instància, estructures de dades). >>> 2. Es podria considerar "menys formal" pel tipatge dinàmic. Alguns >>> podriem considerar això com un desavantatge educatiu (i m'incloc). A la >>> pràctica no m'ho ha semblat. >>> >>> >>> Altres (ni avantatges ni desavantatges): >>> >>> - Tots els atributs i mètodes son publics, política "Adults allowed >>> here". Hi ha la convenció d'utilitzar un _underscore abans de les >>> funcions >>> que considerem privades. >>> >>> >>> Avantatges JAVA: >>> >>> 1. Molt estès i demanat encara per les empreses >>> 2. Estandarització de llibreries >>> 3. Llenguatge oficial d'Android (ja ha aparegut kivy i d'altres per >>> Python per Android, tot i que encara ha de madurar) >>> >>> >>> Porto 2 cursos impartint els mòduls de DAW M3, M5 i M8 i ho he aplicat a >>> fons. >>> >>> Sobre el tipatge dinàmic deixeu-me dir que tot i que als que hem après >>> amb tipus estàtics (és a dir, amb declaració de variables que no canvient >>> de tipus) ens pot semblar que no és bo per aprendre, la realitat és que el >>> resultat és estupendu. Sí que podria ajudar a fixar coses al principi el >>> tenir tipus estàtics, però a la pràctica no ha calgut. >>> >>> Sobre el tema del polimorfisme, el paradigma és un altre. En Python un >>> objecte, si és verd i fa "croac", per a mi és una granota, independement de >>> si és fill d'una granota o no. Per tant, no hi ha polimorfisme, si vull >>> cridar a un mètode, miro si el té, i si el té el crido i punt. Es comenta >>> (i hi estic d'acord) que és més pràctic i àgil que un "enfoc formal" >>> d'herència estricta. >>> >>> Punters, news, mallocs i demés és tema del passat. Avui en dia hem >>> d'emprar llenguatges d'alt nivell com Python, i no perdre el temps amb >>> punters i esborrar de memòria les coses, que per això està el Garbage >>> Collector. Els punters son obsolets com ho és un GOTO d'Assembler. >>> >>> L'experiència docent per mi és clara: fins que no fem GUI (2n trimestre) >>> no maduren realment els conceptes bàsics (que son classe, instància, >>> atributs i mètodes). Quan han aclarit tot això i s'han cansat de programar >>> llistes, arrays i matrius de coses i cosetes compostes, llavors podem >>> entrar en polimorfisme, mètodes estàtics/atributs de classe i altres. >>> Explicar polimorfisme al principi només afegeix complicació innecessària. >>> Sóc contrari a explicar coses que no poden entendre. Sí que es fer pot (i >>> és necessari) a final de curs. >>> >>> Aquest any hem començat a fer servir Python a 1r de DAW/ASIX, però no he >>> estat jo, així que ja us comentaré més endavant què diuen els professors i >>> alumnes. >>> >>> Al 3r trimestre estic impartint amb Java ja que considero que: >>> a) estan madurs per entendre un llenguatge tan "verbose" >>> b) volem i cal fer programació Android >>> >>> En fi, perdoneu tanta extensió ':-) >>> >>> Espero que us sigui d'interés! >>> >>> Salut, >>> >>> Enric >>> >>> >> >