Topic outline

  • General

    Programación

  • Programación en Python (2020)

    Programación en Python (2020)

     

    Profesores

    Michael González Harbour
    José Javier Gutiérrez García
    José Carlos Palencia Gutiérrez
    José Ignacio Espeso Martínez
    Adolfo Garandal Martín

    Departamento 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.

    • Programa


      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 expresiones

      Números. Operaciones y expresiones. Variables. Booleanos. Strings. Uso de funciones matemáticas. Variables y paso de parámetros. Listas y tuplas.


      3. Clases

      Concepto 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ítmicas

      Instrucción condicional. Instrucción condicional múltiple. Instrucciones de bucle. Recursión. Descripción de algoritmos mediante pseudocódigo.


      5. Estructuras de datos

      Tablas. Algoritmos de recorrido. Algoritmos de búsqueda. Conjuntos. Tablas multidimensionales. El paquete NumPy. Diccionarios. Tipos enumerados.


      6. Tratamiento de errores

      Excepciones. 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.

    • Bibliografía

       

       Básica 

       


        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

    • Materiales de Clase

       

       

    • Prácticas

       

       

    • Ejercicios

       

       

      • 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

    • Pruebas de Evaluación

       

      • 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

    • Guía de Aprendizaje

       

       

      Aquí puede descargarse la Guía de Aprendizaje en formato pdf .

    • Sobre el Profesor

       

       

      logo_UC 

      Michael González Harbour

       

      Departamento de Ingeniería Informática y Electrónica

      UNIVERSIDAD DE CANTABRIA
       
      Más información

      logo_UC 

      José Javier Gutiérrez García

       

      Departamento de Ingeniería Informática y Electrónica

      UNIVERSIDAD DE CANTABRIA
       
      Más información

       

      logo_UC 

      José Carlos Palencia Gutiérrez

       

      Departamento de Ingeniería Informática y Electrónica

      UNIVERSIDAD DE CANTABRIA
       
      Más información

      logo_UC 

      José Ignacio Espeso Martínez

       

      Departamento de Ingeniería Informática y Electrónica

      UNIVERSIDAD DE CANTABRIA
       
      Más información

       

      logo_UC 

      Adolfo Garandal Martín

       

      Departamento de Ingeniería Informática y Electrónica

      UNIVERSIDAD DE CANTABRIA
       
      Más información