Guía Docente 2023-24
FUNDAMENTOS DE PROGRAMACIÓN

DATOS BÁSICOS DE LA GUÍA DOCENTE:

Materia: FUNDAMENTOS DE PROGRAMACIÓN
Identificador: 33280
Titulación: GRADUADO EN BIOINFORMÁTICA. PLAN 2019 (BOE 06/02/2019)
Módulo: INFORMÁTICA
Tipo: MATERIA BASICA
Curso: 1 Periodo lectivo: Primer Cuatrimestre
Créditos: 6 Horas totales: 150
Actividades Presenciales: 64 Trabajo Autónomo: 86
Idioma Principal: Castellano Idioma Secundario: Inglés
Profesor: Correo electrónico:

PRESENTACIÓN:

La asignatura supone la primera toma de contacto con la programación informática en la universidad. Se trata de un pilar fundamental para el buen desarrollo académico y profesional en el ambito de la titulación. En el mundo profesional, se trata de uno de los campos de la informática de mayor dimensión tanto social como económicamente.
 
En esta asignatura se aprenderá a analizar y resolver problemas de tratamiento de información de complejidad baja o media y a construir algoritmos que los resuelvan. Para ello se deberá aprender a representar la información asociada a cada problema y se deberá ser capaz de diseñar y documentar las acciones algorítmicas que los resuelvan de forma eficaz y eficiente. En este aspecto, la asignatura se plantea en torno al lenguaje de programación Python, uno de los lenguajes más demandados de la industria y de mayor crecimiento y uso. Además, la sencillez y elegancia sintáctica de Python le confieren un gran potencial didáctico como primer lenguaje de programación para enfocar el aprendizaje efectivo y desarrollar las comptencias necesarias.
 
Eventualmente se podrán hacer referencia a otros lenguajes como C para explicar y ejemplificar algunos conceptos relevantes.

COMPETENCIAS PROFESIONALES A DESARROLLAR EN LA MATERIA:

Competencias Generales de la titulación G01 Utilizar estrategias de aprendizaje de forma autónoma para su aplicación en la mejora continua del ejercicio profesional.
G02 Realizar el análisis y la síntesis de problemas propios de su actividad profesional y aplicarlos en entornos similares.
G05 Comunicar en lengua castellana y/ o inglesa temas profesionales en forma oral y escrita.
G09 Aplicar las tecnologías de la información y comunicación en el ámbito profesional.
G10 Aplicar la creatividad, independencia de pensamiento, autocrítica y autonomía en el ejercicio profesional.
Competencias Específicas de la titulación E02 Desarrollar el uso y la programación de ordenadores, bases de datos y programas informáticos y su aplicación en la bioinformática.
E03 Aplicar los conceptos fundamentales de matemáticas, lógica, algorítmica y complejidad computacional para la resolución de problemas propios de la bioinformática.
E04 Programar aplicaciones de forma robusta, correcta, y eficiente, eligiendo el paradigma y los lenguajes de programación más adecuados, aplicando los conocimientos sobre procedimientos algorítmicos básicos y usando los tipos y estructuras de datos más apropiados.
E09 Elaborar y mantener documentación descriptiva de la génesis, producción y operatividad de los sistemas informáticos.
Resultados de Aprendizaje R01 Identificar los diferentes tipos de variables y los operadores asociados.
R02 Construir expresiones y realizar asignaciones de valores de forma correcta.
R03 Aplicar las diferentes estructuras de control (if/ else, while, for, etc.).
R04 Diseñar algoritmos que cumplan las necesidades establecidas.
R05 Programar de manera eficiente algoritmos.
R06 Emplear las estructuras de memoria (vectores, matrices) adecuados para problemas multidimensionales.
R07 Utilizar la entrada/ salida de teclado/ pantalla o ficheros para la ejecución de programas.
R08 Presentar documentación sobre trabajos de programación.
R09 Utilizar el lenguaje técnico escrito.
R10 Identificar errores de implementación en un lenguaje de programación.
R11 Manejar un entorno de desarrollo de programación.

REQUISITOS PREVIOS:

No es necesario poseer ningún requisito previo. Es recomendable tener un buen conocimiento de los contenidos matemáticos elementales.

PROGRAMACIÓN DE LA MATERIA:

Contenidos de la materia:

1 - Introducción
    1.1 - ¿Que es un ordenador?
    1.2 - Codificación de la información
    1.3 - Programas y lenguajes de programación
    1.4 - Concepto de algoritmo
2 - Operaciones y Tipos Básicos
    2.1 - Instalación de Anaconda y Python interactivo
    2.2 - Tipos de datos y operaciones
    2.3 - Variables y asignaciones
    2.4 - Conversión de tipos de datos
    2.5 - Módulos e importación
    2.6 - Funciones y Métodos para manipular cadenas
3 - Python scripts
    3.1 - Instalación de Visual Studio Code
    3.2 - Ficheros Python
    3.3 - Entrada y salida (estándar) de datos
    3.4 - Legibilidad y usabilidad de los programas
4 - Control de Flujo
    4.1 - Introducción
    4.2 - Sentencias condicionales
    4.3 - Sentencias iterativas
    4.4 - Captura y tratamiento de excepciones
5 - Tipos de Datos Estructurados
    5.1 - Introducción
    5.2 - Cadenas
    5.3 - Listas
    5.4 - Matrices
    5.5 - Tuplas y Conjuntos
    5.6 - Diccionarios
6 - Funciones y Módulos personalizados
    6.1 - Uso de funciones
    6.2 - Definición de funciones
    6.3 - Ámbito de las variables y llamadas a funciones
    6.4 - Paso de argumentos
    6.5 - Recursión
    6.6 - Módulos personalizados
7 - Ficheros
    7.1 - Generalidades sobre ficheros
    7.2 - Lectura de ficheros de texto en Python
    7.3 - Escritura de ficheros de texto en Python
    7.4 - Lectura/escritura de ficheros con formato
    7.5 - Uso de ficheros desde la línea de comandos

La planificación de la asignatura podrá verse modificada por motivos imprevistos (rendimiento del grupo, disponibilidad de recursos, modificaciones en el calendario académico, etc.) y por tanto no deberá considerarse como definitiva y cerrada.


METODOLOGÍAS Y ACTIVIDADES DE ENSEÑANZA Y APRENDIZAJE:

Metodologías de enseñanza-aprendizaje a desarrollar:

La programación es una actividad intelectual novedosa para el alumno de primer curso, por lo tanto, esta asignatura requiere de un seguimiento continuo de los conceptos teóricos expuestos y de la realización de ejercicios para desarrollar las competencias necesarias. El alumno dispondrá de la relación ejercicios que debe realizar por su cuenta y/ o en grupo para estudiar la materia y presentaciones en las que se intercalan teoría y ejercicios.

Cada semana del curso consta de dos sesiones.

  1. La primera sesión (miercoles) será telepresencial: Esta sesión se podrá seguir en línea a ravés de la plataforma online del curso o presencialmente en el aula. Durante las sesiones telepresenciales se priorizará el trabajo en la resolución de ejercicios, principalmente de manera autónoma, bajo la supervisión y con la ayuda del profesor en sesión sincrona. El video de la sesión estará disponible en la plataforma del curso para su visualización y realización en sesión asíncrona.
  2. La segunda sesión (viernes) se realizará de manera presencial en el aula, es de asistencia obligatoria: Esta sesión se dedicará principalmente a la exposición de contenidos teóricos y ejemplos. Esta sesión se podrá seguir de forma telepresencial sin afectar a la asistencia únicamente en casos justificados (docencia anterior y/ o posterior telepresencial, confinamientos, etc.) pero no se dispondrá de la grabación en vídeo al finalizar la sesión.

Este orden podrá verse modificado por los festivos y/ o la programación de actividades de evaluacion (examenes paciales), que podrán requerir una permuta en la norma de obligatoriedad de la asistencia.

Durante las sesiones se utilizarán las siguientes metodologías de enseñanza-aprendizaje:
 
a) Exposición de contenidos teóricos y ejemplos: El profesor expondrá la mayor parte teórica básica de la asignatura durante las sesiones presenciales en el aula (viernes). El material utilizado en cada sesión estará siempre en la PDU con antelación para que el alumnado pueda realizar una lectura previa. Se recomienda encarecidamente leer con anterioridad los temas a tratar en clase. 
 
b) Aprendizaje basado en resolución de ejercicios y problemas: Los contenidos teóricos se apoyan en la resolución de problemas que serán propuestos por el profesor. Estos problemas serán resueltos, en su mayoría, por el alumnado como parte de su trabajo autónomo en las sesiones de asistencia no obligatoria (miercoles). De forma puntual algunos problemas serán resueltos por el profesor en las clases presenciales previa petición del alumnado.
 
c) Aprendizaje basado la solución de prácticas y proyectos: Una parte muy importante del aprendizaje de la asignatura se conseguirá con la resolución de prácticas de manera individual. Se proporcionarán enunciados de las prácticas con antelación y se establecerá una fecha límite de entrega en la PDU. Cada práctica consistirá en la realización de un pequeño proyecto relacionado con un bloque temático de la asignatura y la Bioinformática. La resolución de estas prácticas y de los problemas citados en el apartado b) se considera indispensable para adquirir las competencias propias de la asignatura.
 
d) Sesiones de tutoría: El alumnado podrá solicitar, mediante cita previa, sesiones de tutoría dentro del horario establecido por el profesor. El objetivo de las tutorías es resolver aquellas dudas que no han podido ser resueltas durante las sesiones presenciales o en línea, o que hayan surgido en el tiempo dedicado al trabajo autónomo. Por lo tanto, las tutorías requieren un trabajo previo por parte del alumnado y no suplen a las sesiones en línea o presenciales. Para las sesiones de tutoría se podrán utilizar los distintos medios tecnológicos disponibles (videoconferencia, foros de la PDU, etc). Debido a las circunstancias excepcionales del curso 2021-2022, las tutorías no se realizarán de manera presencial.

Volumen de trabajo del alumno:

Modalidad organizativa Métodos de enseñanza Horas estimadas
Actividades Presenciales
Clase magistral 22
Otras actividades teóricas 4
Resolución de prácticas, problemas, ejercicios etc. 20
Talleres 8
Prácticas de laboratorio 4
Actividades de evaluación 6
Trabajo Autónomo
Asistencia a tutorías 8
Estudio individual 34
Preparación de trabajos individuales 44
Horas totales: 150

SISTEMA DE EVALUACIÓN:

Obtención de la nota final:

Pruebas escritas: 60 %
Trabajos individuales: 30 %
Test online: 10 %
TOTAL 100 %

*Las observaciones específicas sobre el sistema de evaluación serán comunicadas por escrito a los alumnos al inicio de la materia.

BIBLIOGRAFÍA Y DOCUMENTACIÓN:

Bibliografía básica:

MARZAL Andrés, GRACIA Isabel, GARCIA Pedro. Introducción a la Programación con Python 3. Repositorio Sapientia Universidad Jaume I, 2014, ISBN: 978-84-697-1178-1.

Bibliografía recomendada:

DOWNEY Allen B. Think Python: How to Think Like a Computer Scientist, 2a edición (en Inglés), O’Reilly Media, 2015, ISBN: 1491939362.
SEVERANCE Charles R. Python para todos: Explorando datos en Python 3. Traducción de PEREZ, J.C., DOUGNAC, J., MERINO, D., BERMEO, J. y TARDIO, F. Autopublicado, 2020, ISBN: 979-8633985566.

Páginas web recomendadas:

Documentación oficial de Python https://www.python.org/doc/
Curso: Python for Everybody https://www.py4e.com/


* Guía Docente sujeta a modificaciones