Diferència entre revisions de la pàgina «Programació»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
(afegir etiquetes #fpinfor)
 
(Hi ha 16 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
En aquest curs treballarem amb les llenguatges C++ i Python.
+
<nowiki>#FpInfor #AsixMp03 #DawMp03 #DamMp03
*El llenguatge C/C++ continua sent la opció més generalitzada de programació de sistema i té la capacitat de poder treballar a molt baix nivell, mantenint així un rendiment molt alt.
+
#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 AppEngine. És un llenguatge orientat a objectes nadiu i de més alt nivell que el C++, el que permet una manipulació més elegant però amb menys rendiment.
+
#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 prompt]]: per millorar la consola Python amb autocompletion.
 
 
* [[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.
Línia 18: Línia 22:
 
** [http://www.saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/ Keyword args article 1]
 
** [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)].
 
** [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 26: 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 35: Línia 43:
 
** Bàsiques: nombre (sencer, flotant), caràcter, booleà
 
** Bàsiques: nombre (sencer, flotant), caràcter, booleà
 
** Avançades: vector, llista, matriu, cua (queue), pila (stack), hash table, arbres (binaris, multicamí), grafs
 
** Avançades: vector, llista, matriu, cua (queue), pila (stack), hash table, arbres (binaris, multicamí), grafs
* [[Templates]]
+
* [[Python: variables estàtiques o de classe]]
 
* [[Excepcions]] (amb algun exemple):
 
* [[Excepcions]] (amb algun exemple):
 
** Wikipedia: http://es.wikipedia.org/wiki/Manejo_de_excepciones
 
** Wikipedia: http://es.wikipedia.org/wiki/Manejo_de_excepciones
 
** [http://docs.python.org/2/tutorial/errors.html Tutorial sobre excepcions a python.org]
 
** [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
 
** Llistat d'excepcions en Python: http://docs.python.org/2/library/exceptions.html
* [[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)
 
 
* [[Python: GUI]] (referències). Tutorial:
 
* [[Python: GUI]] (referències). Tutorial:
 
*# [[Python: GUI#Qt pas a pas...|PyQt: introducció]]: Aplicació, layouts, signals/slots i widgets
 
*# [[Python: GUI#Qt pas a pas...|PyQt: introducció]]: Aplicació, layouts, signals/slots i widgets
 
*# [[PyQt: pintar dintre d'un widget]]
 
*# [[PyQt: pintar dintre d'un widget]]
 
*# [[PyQt: Timers i pilotes rebotant]]
 
*# [[PyQt: Timers i pilotes rebotant]]
 +
*# [[PyQt: Imatges i sprites]]
 
*# [[PyQt: joc del mur]]
 
*# [[PyQt: joc del mur]]
 
*# [[PyQt4: utilitzant Qt Designer]]
 
*# [[PyQt4: utilitzant Qt Designer]]
Línia 59: Línia 59:
 
** [[PyQt: connectant signals amb slots]]
 
** [[PyQt: connectant signals amb slots]]
 
** [[PyQt: Events de teclat]]
 
** [[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)
 +
 
<br>
 
<br>
  
 
== UF6: POO. Introducció a la persistència en BD ==
 
== UF6: POO. Introducció a la persistència en BD ==
Per gestionar la persistència d'objectes en Python disposem de diverses eines:
+
 
 +
=== 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/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ó.
 
* [http://docs.python.org/2/library/shelve.html Shelve]: utilitza ''pickle'' com a base, però simplifica la utilització.
Línia 68: Línia 85:
 
** Zope Object Database: versió ''data storage'' (1 fitxer)
 
** Zope Object Database: versió ''data storage'' (1 fitxer)
 
** ZEO (ZODB per socket, permet múltiples connexions simultànies)
 
** ZEO (ZODB per socket, permet múltiples connexions simultànies)
 +
*** [[Xat amb ZEO]]: programa de xat amb el servidor ZODB per xarxa.
  
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.
+
Pràctiques 2015:
 +
# [[QtreGimp]]: crearem formes geomètriques i les enregistrarem en arxius amb ''shelve''.
 +
# [[Web Services]]
 +
# [[Web Services: exemple Escacs]]
  
  
=== Exercicis ===
+
=== Altres ===
# [[QtreGimp]]: crearem formes geomètriques i les enregistrarem en arxius amb ''shelve''.
+
Treballant amb Java:
# [[Chat amb ZEO]]
+
* [[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.


UF4: Programació Orientada a Objectes. Fonaments[modifica]

Llenguatges compilats i interpretats. Diferències i implicacions.

Referències:

Llenguatge Python[modifica]

POO[modifica]

Exercicis: POO Exercicis


UF5: POO. Llibreries de classes fonamentals[modifica]

Altres temes[modifica]

Més coses:


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:

  1. QtreGimp: crearem formes geomètriques i les enregistrarem en arxius amb shelve.
  2. Web Services
  3. Web Services: exemple Escacs


Altres[modifica]

Treballant amb Java: