Programació
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
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
- Python prompt: per millorar la consola Python amb autocompletion.
- 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:
POO
- 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
- 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: joc del mur
- PyQt4: utilitzant Qt Designer
- PyQt4: utilitzant Qt Designer 2: diàlegs i ListWidget
- PyQt: accés a:
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:
- Signals
- Mutex (locks) i semàfors
- Fluxos (streams)
UF6: POO. Introducció a la persistència en BD
Treballant amb Java:
Persistència en Python:
- 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)
Utilitzarem Shelve i ZODB en el curs. 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 amb ZEO.
Exercicis
- MobiXat: establirem uns serveis web per permetre xat des de dispositius mòbils i una app Android.
- QtreGimp: crearem formes geomètriques i les enregistrarem en arxius amb shelve.
- Xat amb ZEO: programa de xat amb el servidor ZODB per xarxa.