1
Sintaxis del lenguaje Python
- Identificadores y referencias. Convenciones de codificación y reglas de denominación.
- Bloques, comentarios.
- Tipos de datos disponibles.
- Variables, visualización con formato, ámbito local y global.
- Manejo de tipos numéricos, manejo de cadenas de caracteres.
- Manejo de cuadros dinámicos (lista), cuadros estáticos (tupla) y diccionarios.
- El uso de archivos.
- La estructura condicional if/elif/else.
- Operadores lógicos y operadores de comparación.
- Los bucles de iteración while y for. Interrupción de iteraciones break/continue.
- La función de range.
- Escritura y documentación de funciones.
- Expresiones lambda.
- Generadores.
- La estructuración del código en módulos.
Trabajo práctico
Instalación y manejo del intérprete de Python.
2
Enfoque orientado a objetos
- Los principios del paradigma Objeto.
- La definición de un objeto (estado, comportamiento, identidad).
- El concepto de clase, atributos y métodos.
- Encapsulación de datos.
- Comunicación entre los objetos.
- Herencia, transmisión de las características de una clase.
- El concepto de polimorfismo.
- Asociación entre clases.
- Interfaces.
- Presentación de UML.
- Diagramas de clases, de secuencias, de actividad…
- Concepto de patrón de diseño (Design Pattern).
Trabajo práctico
Modelización de un caso práctico sencillo en UML.
3
Programación de objetos en Python
- Las particularidades del modelo de objetos de Python.
- La escritura de clases y su instanciación.
- Constructores y destructores.
- Protección del acceso a atributos y métodos.
- La necesidad del parámetro Self.
- Herencia simple, herencia múltiple, polimorfismo.
- Los conceptos de visibilidad.
- Métodos especiales.
- Introspección.
- Implementación de interfaces.
- Buenas prácticas y patrones de diseño comunes.
- El uso del mecanismo de excepción para la gestión de errores.
Trabajo práctico
Práctica de los diferentes conceptos de Objeto a través de la aplicación del caso de estudio.
4
Uso de StdLib
- Los argumentos pasados a la línea de comandos.
- Uso del motor de expresiones regulares Python con el módulo «re», caracteres especiales, cardinalidades.
- Manejo del sistema de archivos.
- Presentación de algunos módulos importantes de la biblioteca estándar: módulo «sys», «os», «os.path».
- Empaquetado e instalación de una biblioteca de Python.
- El acceso a bases de datos relacionales, el funcionamiento de la DB API.
Trabajo práctico
Implementación de módulos Python: expresiones regulares, acceso a una base de datos,
5
Herramientas de control de calidad
- Herramientas de análisis estático de código (Pylint, Pychecker).
- Estudio de los informes de análisis (tipos de mensajes, advertencias, errores).
- Extracción automática de documentación.
- Depurador de Python (ejecución paso a paso y análisis post-mortem).
- Desarrollo basado en pruebas.
- Módulos de pruebas unitarias de Python (Unittest...).
- Automatización de pruebas, agregación de pruebas.
- Pruebas de cobertura de código y elaboración de perfiles.
Trabajo práctico
Uso de herramientas pylint y pychecker para verificar un código Python. Realización de pruebas unitarias.
6
Creación de la GUI TkInter
- Principios de programación de las interfaces gráficas.
- Presentación de la biblioteca TkInter.
- Los contenedores principales.
- Presentación de los widgets disponibles (Button, Radiobutton, Entry, Label, Listbox, Canvas, Menu, Scrollbar, Text...).
- El administrador de ventanas.
- La colocación de los componentes, las diferentes disposiciones.
- Gestión de eventos, el objeto de eventos.
- Aplicaciones multiventana.
Trabajo práctico
Diseño de una interfaz gráfica con la biblioteca Tkinter.
7
Interfaz Python/C
- Presentación del módulo Ctypes.
- Carga de una biblioteca C.
- Llamada a una función.
- Reescribir una función de Python en C con la API de Python/C.
- Creación de módulos C para Python.
- El intérprete de Python en C.
- Uso del perfilador de código.
Trabajo práctico
Llamada a funciones escritas en C desde Python. Creación de módulos C para Python con Pyrex.
8
Conclusión
- Análisis crítico de Python.
- La evolución del lenguaje.
- Elementos webográficos y bibliográficos.