Programación en Python (2020)
Topic outline
-
Profesores
Michael González Harbour
José Javier Gutiérrez García
José Carlos Palencia GutiérrezJosé Ignacio Espeso MartínezAdolfo Garandal MartínDepartamento de Ingeniería Informática y Electrónica
La asignatura trata de que alumnos sin experiencia previa en la programación de computadores sean capaces de diseñar y escribir aplicaciones sencillas en el lenguaje de programación Python. Para ello será importante ser capaz de diseñar algoritmos sencillos y usar estructuras de datos básicas. La asignatura se orienta hacia una visión orientada a objetos de las aplicaciones informáticas y el lenguaje Python. Este lenguaje es uno de los más más populares actualmente.
Palabras Clave de la Asignatura
Programación, Python, Lenguajes de programación, Programación orientada a objetos, Informática.
-
Datos identificativos de la Asignatura
-
Asignatura: Programación
-
Código: G40 / G47
-
Departamento / Área: Departamento de Ingeniería Informática y Electrónica
-
Título: Grado en Física / Grado en Matemáticas
-
Centro: Facultad de Ciencias
-
Créditos ECTS: 6
-
Idioma de impartición: Español
-
Profesores: Michael Gonzáez Harbour / José Javier Gutiérrez García / José Carlos Palencia Gutiérrez / José Igancio Espeso Martínez / Adolfo Garandal Martín
Programa de la asignatura
1. Introducción a los lenguajes de programación
Lenguajes de programación. Compiladores e intérpretes. El lenguaje Python. El ciclo de vida del software. Concepto de algoritmo. Encapsulamiento de datos y algoritmos. Estructura de un programa. Funciones. Estilo de codificación.
2. Datos y expresionesNúmeros. Operaciones y expresiones. Variables. Booleanos. Strings. Uso de funciones matemáticas. Variables y paso de parámetros. Listas y tuplas.
3. ClasesConcepto de clase y objeto. Definición de clases. Creación y uso de objetos. Atributos y métodos de instancia y de clase. Espacios de nombres. Módulos y paquetes.
4. Estructuras algorítmicasInstrucción condicional. Instrucción condicional múltiple. Instrucciones de bucle. Recursión. Descripción de algoritmos mediante pseudocódigo.
5. Estructuras de datosTablas. Algoritmos de recorrido. Algoritmos de búsqueda. Conjuntos. Tablas multidimensionales. El paquete NumPy. Diccionarios. Tipos enumerados.
6. Tratamiento de erroresExcepciones. Tratamiento de excepciones. Patrones de tratamiento de excepciones. Lanzar Excepciones. Usar nuestras propias excepciones. Acciones de limpieza.
7. Entrada/salida
Escritura de texto con formato. Lectura de números con formato. Ficheros. Lectura de ficheros de texto. Escritura de ficheros de texto.
8. Herencia y polimorfismo
Jerarquía de clases. Herencia. Clases abstractas. Polimorfismo.
Apéndice A: uso de un entorno integrado de desarrollo de programas
Entorno de desarrollo de programas spyder. Gestión de proyectos. Analizar, cargar y ejecutar el programa. La depuración. Generación de documentos
Apéndice B: Paquete fundamentos
Lectura de datos desde una ventana. Escritura de resultados en una ventana. Mensaje de texto sencillo en una ventana. Menú que presenta botones en una ventana. Dibujo, para mostrar dibujos e imágenes en una ventana.
-
-
Básica
-
Python 3 tutorial: https://docs.python.org/3/tutorial/
-
Tutorial de Python 3 en castellano: http://docs.python.org.ar/tutorial/3/index.html
-
Andrés Marzal Varó, Isabel Gracia Luengo, Pedro García Sevilla, "Introducción a la programación con Python 3", Universitat Jaume I, 2014. ISBN: 978-84-697-1178-1. http://repositori.uji.es/xmlui/bitstream/handle/10234/102653/s93.pdf
Libros de consulta-
Otro tutorial de Python: https://python-course.eu/python3_course.php
-
Alex Martelli, Anna Ravenscroft, Steve Holden. "Python in a Nutshell: A Desktop Quick Reference" 3rd edition. O'Reilly Media; 3 edition (May 4, 2017), ISBN-10: 144939292X, ISBN-13: 978-1449392925Eric Matthes. "Python Crash Course: A Hands-On, Project-Based Introduction to Programming". No Starch Press. Edición 1 (noviembre 2015), ISBN-10: 1593276036, ISBN-13: 978-1593276034
-
Mark Lutz. "Learning Python", 4th Edition. O'Reilly Media, October 2009, Ebook: September 2009. Print ISBN: 978-0-596-15806-4, ISBN 10: 0-596-15806-8. Ebook ISBN: 978-0-596-80598-2, ISBN 10: 0-596-80598-5
-
Sébastien Chazallet. "Python 3. Los fundamentos del lenguaje - 2ª edición, dic 2016. Eni. ISBN-10: 2409006140, ISBN-13: 978-2409006142
-
Ángel Pablo Hinojosa Gutiérrez. "Python. Paso A Paso", mar 2016, RA-MA S.A. ISBN-10: 8499646115, ISBN-13: 978-8499646114
-
Mike Pirnat. "How to Make Mistakes in Python". O'Reilly, October 2015. ISBN139781491934470. https://www.oreilly.com/programming/free/how-to-make-mistakes-in-python.csp
-
Zed A. Shaw, "Aprenda a programar con Python 3", Anaya Multimedia. Octubre de 2017, ISBN-10: 8441539413, ISBN-13: 978-8441539419
-
-
-
MC-F-001. Capítulo 1. Introducción a los lenguajes de programación
-
MC-F-002. Capítulo 2. Datos y expresiones
-
MC-F-003. Capítulo 3. Clases
-
MC-F-004. Capítulo 4. Estructuras algorítmicas
-
MC-F-005. Capítulo 5. Estructuras de Datos
-
MC-F-006. Capítulo 6. Tratamiento de errores
-
MC-F-007. Capítulo 7. Entrada / Salida
-
MC-F-008. Capítulo 8. Herencia y polimorfismo
-
MC-F-009. Apéndice A. Uso de un entorno integrado de desarrollo de programas
-
MC-F-010. Apéndice B. Paquete fundamentos. Versión 1.1 (enlace a los archivos en formato .zip)
-
-
-
Práctica 1: Piscifactoría. Descripción / Plantilla para informe / Material (.zip)
-
Práctica 2: Cambio en monedas. Descripción / Plantilla para informe
-
Práctica 3: Uso de expresiones. Descripción / Plantilla para informe / Material (.zip)
-
Práctica 4: Creación de objetos. Descripción / Plantilla para informe / Material (.zip)
-
Práctica 5: Cálculo de escapatorias en un circuito de Fórmula 1. Descripción / Plantilla para informe
-
Práctica 6: Ascenso de un cohete. Descripción / Plantilla para informe / Material (.zip)
-
Práctica 7: Movimiento de un robot bidimensional. Descripción / Plantilla para informe / Material (.zip)
-
Práctica 8: Recorridos en listas de números. Descripción / Plantilla para informe / Material (.zip)
-
Práctica 9: Recorridos y búsquedas. Descripción / Plantilla para informe / Material (.zip)
-
Práctica 10: Tratamiento de imágenes. Descripción / Plantilla para informe
-
Práctica 11: Mareógrafo. Descripción / Plantilla para informe / Material (.zip)
-
Práctica 12: Oscilador amortiguado. Descripción / Plantilla para informe / Material (.zip)
-
-
-
EJ-F-001. Hoja 1. Datos en Python; Literales; Sangrados
-
EJ-F-002. Hoja 2. Expresiones y conversiones de tipo
-
EJ-F-003. Hoja 3. Funciones, expresiones, strings y listas
-
EJ-F-004. Hoja 4. Clases y objetos
-
EJ-F-005. Hoja 5. Practicar con strings, instrucciones condicinales y bucles
-
EJ-F-006. Hoja 6. Practicar con tuplas, listas y conjuntos
-
EJ-F-007. Hoja 7. Practicar con tablas multidimensionales y arrays de numpi
-
EJ-F-008. Hoja 8. Excepciones
-
-
-
PE-F-001. Examen de Programación (junio 2019)
-
PE-F-002. Examen de prácticas de Programación (junio 2019)
-
PE-F-003. Materiales para el examen de prácticas (julio 2019). Archivo .zip
-
PE-F-004. Examen de Programación (septiembre 2019)
-
PE-F-005. Examen de prácticas de Programación (septiembre 2019)
-
PE-F-006. Materiales para el examen de prácticas (septiembre 2019). Archivo .zip
-
PE-F-007. Ejercicio de examen de Programación
-
-
-
Michael González Harbour
Departamento de Ingeniería Informática y Electrónica
UNIVERSIDAD DE CANTABRIA
José Javier Gutiérrez García
Departamento de Ingeniería Informática y Electrónica
UNIVERSIDAD DE CANTABRIA
José Carlos Palencia Gutiérrez
Departamento de Ingeniería Informática y Electrónica
UNIVERSIDAD DE CANTABRIA
José Ignacio Espeso Martínez
Departamento de Ingeniería Informática y Electrónica
UNIVERSIDAD DE CANTABRIA
Adolfo Garandal Martín
Departamento de Ingeniería Informática y Electrónica
UNIVERSIDAD DE CANTABRIA