Diferència entre revisions de la pàgina «Programació»
(afegir etiquetes #fpinfor) |
|||
(Hi ha 38 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 1: | Línia 1: | ||
− | En aquest curs treballarem amb | + | <nowiki>#FpInfor #AsixMp03 #DawMp03 #DamMp03 |
− | + | #AsixMp03Uf01 #AsixMp03Uf02 #AsixMp03Uf03 | |
− | *El llenguatge Python ha incrementat la seva quota de mercat progressivament, sobretot mercès l'impuls donat per Google amb el seu | + | #DawMp03Uf01 #DawMp03Uf02 #DawMp03Uf03 #DawMp03Uf04 #DawMp03Uf05 #DawMp03Uf06 |
+ | #DamMp03Uf01 #DamMp03Uf02 #DamMp03Uf03 #DamMp03Uf04 #DamMp03Uf05 #DamMp03Uf06 | ||
+ | </nowiki> | ||
+ | |||
+ | En aquest curs treballarem amb el llenguatges Python. | ||
+ | *El llenguatge Python ha incrementat la seva quota de mercat progressivament, sobretot mercès l'impuls donat per Google amb el seu App Engine. És un llenguatge orientat a objectes nadiu i de més alt nivell que el C++, el que permet una manipulació més elegant amb un rendiment raonable. | ||
Línia 12: | Línia 17: | ||
=== Llenguatge Python === | === Llenguatge Python === | ||
− | |||
* [[Python: introducció ràpida]]: per conexiedors del C. Exercicis inclosos al final. | * [[Python: introducció ràpida]]: per conexiedors del C. Exercicis inclosos al final. | ||
* [[Python: tipus bàsics de dades]]: nombres, strings (cadenes), llistes, tuples i diccionaris. Exercicis inclosos al final. | * [[Python: tipus bàsics de dades]]: nombres, strings (cadenes), llistes, tuples i diccionaris. Exercicis inclosos al final. | ||
− | * [[Python: keyworded arguments]] | + | * [[Python: keyworded arguments]]: |
+ | ** [http://www.saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/ Keyword args article 1] | ||
+ | ** [http://docs.python.org/2/tutorial/controlflow.html#keyword-arguments Keyword args (pagina oficial python.org)]. | ||
+ | * Hacks: | ||
+ | ** [[Python prompt]]: per millorar la consola Python amb autocompletion. | ||
=== POO === | === POO === | ||
Línia 24: | Línia 32: | ||
* [[POO Sobrecàrrega]]: la sobrecàrrega s'aplica a mètodes i operadors. En Python no s'utilitza en favor dels ''keyworded arguments''. | * [[POO Sobrecàrrega]]: la sobrecàrrega s'aplica a mètodes i operadors. En Python no s'utilitza en favor dels ''keyworded arguments''. | ||
* [[POO Operadors]]: operacions de comparació entre classes. | * [[POO Operadors]]: operacions de comparació entre classes. | ||
+ | ** [[POO operadors 2]]: més exemples d'operadors amb objectes (clients). | ||
+ | * [[Python: variables estàtiques o de classe]] | ||
Exercicis: [[POO Exercicis]] | Exercicis: [[POO Exercicis]] | ||
Línia 30: | Línia 40: | ||
== UF5: POO. Llibreries de classes fonamentals == | == UF5: POO. Llibreries de classes fonamentals == | ||
− | * Estructures de dades | + | * [[Estructures de dades]]: |
− | * Col·leccions i iteradors | + | ** Bàsiques: nombre (sencer, flotant), caràcter, booleà |
− | ** | + | ** Avançades: vector, llista, matriu, cua (queue), pila (stack), hash table, arbres (binaris, multicamí), grafs |
− | * | + | * [[Python: variables estàtiques o de classe]] |
− | * | + | * [[Excepcions]] (amb algun exemple): |
− | * | + | ** Wikipedia: http://es.wikipedia.org/wiki/Manejo_de_excepciones |
+ | ** [http://docs.python.org/2/tutorial/errors.html Tutorial sobre excepcions a python.org] | ||
+ | ** Llistat d'excepcions en Python: http://docs.python.org/2/library/exceptions.html | ||
+ | * [[Python: GUI]] (referències). Tutorial: | ||
+ | *# [[Python: GUI#Qt pas a pas...|PyQt: introducció]]: Aplicació, layouts, signals/slots i widgets | ||
+ | *# [[PyQt: pintar dintre d'un widget]] | ||
+ | *# [[PyQt: Timers i pilotes rebotant]] | ||
+ | *# [[PyQt: Imatges i sprites]] | ||
+ | *# [[PyQt: joc del mur]] | ||
+ | *# [[PyQt4: utilitzant Qt Designer]] | ||
+ | *# [[PyQt4: utilitzant Qt Designer 2: diàlegs i ListWidget]] | ||
+ | * PyQt: accés a: | ||
+ | ** [[PyQt: connectant signals amb slots]] | ||
+ | ** [[PyQt: Events de teclat]] | ||
+ | |||
+ | === Altres temes === | ||
+ | Més coses: | ||
+ | * [[Templates]] | ||
+ | * [[Col·leccions i iteradors]] | ||
+ | * Concurrència: (llibreria threading) http://docs.python.org/2/library/threading.html | ||
+ | ** Threads (fils d'execució) | ||
+ | ** [[Timers]]: | ||
+ | *** Threading lib: http://docs.python.org/2/library/threading.html#timer-objects | ||
+ | *** Qt: http://doc.qt.digia.com/4.7/qtimer.html | ||
+ | ** Signals | ||
+ | ** Mutex (locks) i semàfors | ||
* Fluxos (streams) | * Fluxos (streams) | ||
− | + | ||
− | + | <br> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== UF6: POO. Introducció a la persistència en BD == | == UF6: POO. Introducció a la persistència en BD == | ||
− | + | ||
− | * | + | === Persistència d'objectes Python === |
− | *... | + | Es poden utilitzar ''Shelve'' i ''ZODB''. S'utilitzen de manera molt similar, disposem d'una arrel (root), que és un diccionari persistent, on poden enregistrar els nostres objectes. La diferència més important és que a ZODB cal fer un commit, i que té la possibilitat de ''multithreading'' mitjançant l'accés per xarxa amb ZEO. |
+ | |||
+ | * [http://docs.python.org/2/library/pickle.html Pickle]: és una eina de serialització de baix nivell. Serà complicat utilitzar-la. | ||
+ | * [http://docs.python.org/2/library/shelve.html Shelve]: utilitza ''pickle'' com a base, però simplifica la utilització. | ||
+ | * [[ZODB]]: | ||
+ | ** Zope Object Database: versió ''data storage'' (1 fitxer) | ||
+ | ** ZEO (ZODB per socket, permet múltiples connexions simultànies) | ||
+ | *** [[Xat amb ZEO]]: programa de xat amb el servidor ZODB per xarxa. | ||
+ | |||
+ | Pràctiques 2015: | ||
+ | # [[QtreGimp]]: crearem formes geomètriques i les enregistrarem en arxius amb ''shelve''. | ||
+ | # [[Web Services]] | ||
+ | # [[Web Services: exemple Escacs]] | ||
+ | |||
+ | |||
+ | === Altres === | ||
+ | Treballant amb Java: | ||
+ | * [[Java: introducció ràpida]] | ||
+ | * [[Android]] | ||
+ | * [[JsonXat]]: establirem uns serveis web per permetre xat des de dispositius mòbils i una app Android. |
Revisió de 08:12, 25 jul 2018
#FpInfor #AsixMp03 #DawMp03 #DamMp03 #AsixMp03Uf01 #AsixMp03Uf02 #AsixMp03Uf03 #DawMp03Uf01 #DawMp03Uf02 #DawMp03Uf03 #DawMp03Uf04 #DawMp03Uf05 #DawMp03Uf06 #DamMp03Uf01 #DamMp03Uf02 #DamMp03Uf03 #DamMp03Uf04 #DamMp03Uf05 #DamMp03Uf06
En aquest curs treballarem amb el llenguatges Python.
- El llenguatge Python ha incrementat la seva quota de mercat progressivament, sobretot mercès l'impuls donat per Google amb el seu App Engine. És un llenguatge orientat a objectes nadiu i de més alt nivell que el C++, el que permet una manipulació més elegant amb un rendiment raonable.
Contingut
UF4: Programació Orientada a Objectes. Fonaments[modifica]
Llenguatges compilats i interpretats. Diferències i implicacions.
Referències:
- Wikipèdia: http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos
- Wikibooks: http://en.wikibooks.org/wiki/Python_Programming/Object-oriented_programming
Llenguatge Python[modifica]
- Python: introducció ràpida: per conexiedors del C. Exercicis inclosos al final.
- Python: tipus bàsics de dades: nombres, strings (cadenes), llistes, tuples i diccionaris. Exercicis inclosos al final.
- Python: keyworded arguments:
- Hacks:
- Python prompt: per millorar la consola Python amb autocompletion.
POO[modifica]
- POO Introducció. Objectes i les característiques (herència, sobrecàrrega, polimorfisme).
- POO Classes. Instanciació, mètodes i atributs, constructors i destructors.
- POO Herència. Una de les principals característiques de la POO.
- POO: Polimorfisme. Una altra característica principal de la POO. En Python no és tan rellevant degut als tipus dinàmics.
- POO Sobrecàrrega: la sobrecàrrega s'aplica a mètodes i operadors. En Python no s'utilitza en favor dels keyworded arguments.
- POO Operadors: operacions de comparació entre classes.
- POO operadors 2: més exemples d'operadors amb objectes (clients).
- Python: variables estàtiques o de classe
Exercicis: POO Exercicis
UF5: POO. Llibreries de classes fonamentals[modifica]
- Estructures de dades:
- Bàsiques: nombre (sencer, flotant), caràcter, booleà
- Avançades: vector, llista, matriu, cua (queue), pila (stack), hash table, arbres (binaris, multicamí), grafs
- Python: variables estàtiques o de classe
- Excepcions (amb algun exemple):
- Wikipedia: http://es.wikipedia.org/wiki/Manejo_de_excepciones
- Tutorial sobre excepcions a python.org
- Llistat d'excepcions en Python: http://docs.python.org/2/library/exceptions.html
- Python: GUI (referències). Tutorial:
- PyQt: introducció: Aplicació, layouts, signals/slots i widgets
- PyQt: pintar dintre d'un widget
- PyQt: Timers i pilotes rebotant
- PyQt: Imatges i sprites
- PyQt: joc del mur
- PyQt4: utilitzant Qt Designer
- PyQt4: utilitzant Qt Designer 2: diàlegs i ListWidget
- PyQt: accés a:
Altres temes[modifica]
Més coses:
- Templates
- Col·leccions i iteradors
- Concurrència: (llibreria threading) http://docs.python.org/2/library/threading.html
- Threads (fils d'execució)
- Timers:
- Signals
- Mutex (locks) i semàfors
- Fluxos (streams)
UF6: POO. Introducció a la persistència en BD[modifica]
Persistència d'objectes Python[modifica]
Es poden utilitzar Shelve i ZODB. S'utilitzen de manera molt similar, disposem d'una arrel (root), que és un diccionari persistent, on poden enregistrar els nostres objectes. La diferència més important és que a ZODB cal fer un commit, i que té la possibilitat de multithreading mitjançant l'accés per xarxa amb ZEO.
- Pickle: és una eina de serialització de baix nivell. Serà complicat utilitzar-la.
- Shelve: utilitza pickle com a base, però simplifica la utilització.
- ZODB:
- Zope Object Database: versió data storage (1 fitxer)
- ZEO (ZODB per socket, permet múltiples connexions simultànies)
- Xat amb ZEO: programa de xat amb el servidor ZODB per xarxa.
Pràctiques 2015:
- QtreGimp: crearem formes geomètriques i les enregistrarem en arxius amb shelve.
- Web Services
- Web Services: exemple Escacs
Altres[modifica]
Treballant amb Java:
- Java: introducció ràpida
- Android
- JsonXat: establirem uns serveis web per permetre xat des de dispositius mòbils i una app Android.