template-browser-not-supported

Grado en Ciencia e Ingeniería de Datos

Back Back

Metodología de la Programación

Código asignatura
GCINGD01-1-006
Curso
Primero
Temporalidad
Primer Semestre
Carácter
Formación Básica
Créditos
6
Pertenece al itinerario Bilingüe
No
Actividades
  • Docencia On Line (30 Hours)
  • Clases Expositivas (16 Hours)
  • Prácticas de Laboratorio (14 Hours)
Guía docente

La asignatura Metodología de la Programación (MP) forma parte del grupo de asignaturas de la materia Extracción, representación y procesamiento de datos, junto con las asignaturas Estructuras discretas y análisis de algoritmos, Algoritmia, Programación avanzada y Señales y sistemas. Por su carácter de Formación básica, sus contenidos y competencias serán utilizados en la mayor parte del resto de las asignaturas repartidas en los distintos cursos, bien como herramienta o bien como fuente de ejemplos y aplicaciones. El estudio de una metodología de programación y de un lenguaje de programación es imprescindible para la formación en Ciencia e Ingeniería de Datos. En este sentido, a la vez que se enseñan los fundamentos de la programación, éstos se pondrán en práctica desarrollando programas que los alumnos tendrán que diseñar, implementar, probar y depurar.

La asignatura Metodología de la Programación está íntimamente relacionada con las asignaturas Algoritmia y Programación Avanzada. Así, esta asignatura desarrolla la competencia específica CE-10 (Conocer los fundamentos de programación y técnicas algorítmicas básicas y aplicarlas utilizando los lenguajes de programación más relevantes en el ámbito de la ciencia e ingeniería de datos), que será afianzada y complementada en Algoritmia y en Programación Avanzada, que añaden la competencia específica CE-11 (Evaluar la complejidad computacional de un problema e identificar, si existen, estrategias algorítmicas apropiadas para su resolución).

Esta asignatura no requiere unos conocimientos previos específicos más allá de los que aporta la formación en la rama tecnológica de bachillerato. No obstante, es recomendable que el alumnado tenga nociones básicas de lógica y de matemáticas.

Se espera que al cursar esta asignatura el alumnado adquiera las siguientes competencias básicas del Grado en Ciencia e Ingeniería de Datos:

  • CB 1:Que los estudiantes hayan demostrado poseer y comprender conocimientos en un área de estudio que parte de la base de la educación secundaria general, y se suele encontrar a un nivel que, si bien se apoya en libros de texto avanzados, incluye también algunos aspectos que implican conocimientos procedentes de la vanguardia de su campo de estudio.
  • CB 2: Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio.
  • CB 5: Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía.

Además, también se espera que el alumnado adquiera parte de las competencias generales de los estudios del grado, concretamente las siguientes:

  • CG 1: Elegir y aplicar los métodos y técnicas más adecuados para analizar y resolver problemas definidos por datos que representen un reto por su volumen, velocidad, variedad o heterogeneidad, incluidos métodos informáticos, matemáticos, estadísticos y de procesado de la señal.
  • CG 2: Tener las habilidades experimentales y analíticas para trabajar con autonomía siendo capaz de plantear experimentos y de describir, analizar, evaluar e interpretar la información resultante para proponer soluciones alternativas y novedosas frente a problemas conocidos y/o emergentes.
  • CG 3: Crear modelos y tomar decisiones basadas en los datos disponibles combinando los conocimientos adquiridos y siendo capaz de aplicar otros nuevos para la resolución de problemas.
  • CG 4: Capacidad de integrarse en un equipo multidisciplinar en el marco de un proyecto de ciencia de datos.
  • CG 9: Capacidad para expresar de los resultados del procesamiento de datos de manera clara y convincente tanto por escrito como oralmente.

Como es lógico, las competencias antes enumeradas se adquirirán en combinación con otras asignaturas del Grado.
Las competencias específicas que el alumno debe adquirir en esta asignatura, así como los resultados del aprendizaje esperados son los que se indican a continuación:

Competencias específicas

  • CE 10: Conocer los fundamentos de programación y técnicas algorítmicas básicas y aplicarlas utilizando los lenguajes de programación más relevantes en el ámbito de la ciencia e ingeniería de datos.

Resultados de aprendizaje

  • RMP-1: Comprender el concepto de algoritmo y el proceso de abstracción de un problema en la programación.
  • RMP-2: Identificar el proceso de desarrollo de un programa y su ubicación dentro del proceso general de Ingeniería del Software.
  • RMP-3: Conocer las estructuras de datos elementales que proporciona un lenguaje de programación estructurado.
  • RMP-4: Manejar las estructuras de control elementales de un lenguaje de programación estructurado.
  • RMP-5: Abstraer una operación. Diseñar funciones, incluyendo funciones recursivas simples.
  • Introducción a la programación: conceptos básicos y lenguajes.
  • Tipos de datos: variables y constantes.
  • Entrada/salida básica.
  • Estructuras de datos elementales: listas, tuplas, diccionarios.
  • Programación estructurada: condicionales y bucles.
  • Diseño modular: funciones.
  • Introducción a la POO: clases, objetos, métodos.
  • Vectores y matrices.

La asignatura requiere un total 150 horas entre trabajo presencial y no presencial organizadas en:

  • Presenciales (30 horas)
    • Clases expositivas (14 horas)
    • Prácticas de laboratorio (11 horas)
    • Sesiones de evaluación (5 horas)
  • No Presenciales (120 horas)
    • Clases expositivas (14 horas)
    • Prácticas individuales (16 horas)
    • Estudio individual (90 horas)

En la siguiente tabla se muestra, de una forma más detallada, el plan de trabajo para cada uno de los temas que componen el programa de la asignatura:

PRESENCIAL

NO PRESENCIAL

Temas

Horas totales

Clases expositivas

Prácticas de laboratorio

Sesiones de evaluación

Total

Clases expositivas[1]

Practicas individuales

Estudio individual

Total

Conceptos básicos

2,00

1,00

1,00

1,00

1,00

Tipos de datos

6,00

0,50

0,25

0,25

1,00

0,50

1,00

3,50

5,00

Entrada/salida básica

5,00

0,50

0,25

0,25

1,00

1,00

1,00

2,00

4,00

Estructuras de datos elementales

8,00

1,00

0,50

0,50

2,00

1,50

1,00

3,50

6,00

Programación estructurada

46,00

4,00

3,00

1,00

8,00

4,00

4,00

30,00

38,00

Diseño modular: funciones

18,00

2,00

2,00

1,00

5,00

2,00

3,00

8,00

13,00

Introducción a la POO

40,00

3,00

3,00

1,00

7,00

3,00

4,00

26,00

33,00

Vectores y matrices

25,00

2,00

2,00

1,00

5,00

2,00

2,00

16,00

20,00

TOTAL

150,00

14,00

11,00

5,00

30,00

14,00

16,00

90,00

120,00

[1] Las horas indicadas no se corresponden exactamente con la duración de las videolecciones sino que estiman el tiempo necesario para ver y asimilar las mismas.

Una parte esencial de la metodología tiene que ver con la tutoría académica. Los profesores de la asignatura estarán disponibles para resolver las dudas individuales de cualquier alumno, tanto de forma presencial en las horas de tutoría oficiales de cada uno de ellos, como a través del foro de la asignatura en el Campus Virtual o del correo electrónico (las direcciones de correo de los profesores figuran en los datos de la ficha de la asignatura al principio de este documento).

En esta sección se describe en detalle el procedimiento de evaluación de la asignatura en las distintas convocatorias y modalidades. Como se puede leer a continuación, hay ciertas exigencias mínimas que deben cumplirse para poder superar la asignatura. Si un/una estudiante no alcanza dichas notas mínimas requeridas en los apartados de la evaluación que se especifiquen, su calificación final se calculará como el mínimo entre 4 y la nota obtenida aplicando las ponderaciones explicadas a continuación para cada tipo de convocatoria.

Convocatoria ordinaria

La calificación final en la convocatoria ordinaria se obtendrá haciendo la media de ponderada de los mecanismos de evaluación que se enumeran a continuación:

  1. Asistencia (5%): La nota máxima en este apartado se alcanzará con una asistencia a las clases presenciales de prácticas del 80\%, computando dentro de la asistencia las faltas que el alumnado justifique debidamente.
  2. Participación en foros/actividades online (10%): Se contabilizará la participación en actividades a través del campus virtual, como pueden ser cuestionarios o exámenes de test.
  3. Evaluación continua (40%): durante el curso los alumnos realizarán una serie de exámenes en el laboratorio de prácticas, que consistirán en la resolución de ejercicios de programación propuestos por el profesorado, que serán recogidos y evaluados, para formar parte de la nota final con el peso indicado.
  4. Examen final (45%): La asignatura tendrá un examen final (escrito, sin utilizar ordenador) que se celebrará en la convocatoria ordinaria de acuerdo al calendario de exámenes de la Escuela. 

Nota Importante: Para superar la asignatura es necesario sacar una nota igual o superior a 4 puntos sobre 10 en el examen final. Cualquier nota inferior a 4 supondrá suspender la asignatura en su convocatoria ordinaria. Las pruebas de evaluación continua y las actividades on-line no realizadas o no entregadas por inasistencia se contabilizarán como cero.

Evaluación diferenciada

Para aquellos alumnos que opten por la evaluación diferenciada, por no poder acudir con regularidad a las clases teóricas y/o prácticas, su calificación en la convocatoria ordinaria se obtendrá como la nota media ponderada de los siguientes elementos:

  1. Examen teórico final (50%)
  2. Examen práctico final (50%)

El examen práctico se realizará sobre ordenador y en él, el/la estudiante deberá implementar pequeños programas, similares en complejidad a los realizados en las sesiones de prácticas de laboratorio.

Nota Importante: Al igual que en la convocatoria ordinaria, para superar la asignatura por la vía de la evaluación diferenciada es necesario sacar 4 puntos o más en el examen teórico final.

Convocatorias extraordinarias

La forma de obtener la calificación final en las convocatorias extraordinarias dependerá de si el alumno ha participado o no en las actividades correspondientes a la evaluación continua, y si ha superado en un 50% todas ellas excepto el examen final teórico. Así, hay dos posibles situaciones:

  1. Quienes alcancen una calificación igual o superior a 5 puntos sobre 10 en la suma (ponderada según se indica en la sección de la convocatoria ordinaria) de los apartados de asistencia, actividades online y evaluación continua, deberán presentarse únicamente al examen teórico. Si en dicho examen teórico se obtiene una nota mayor o igual que 4 entonces la nota final de la asignatura será la media entre la nota de la evaluación continua y la del examen. Si, por el contrario, en el examen se obtiene una nota inferior a 4, la calificación será Suspenso.
  2. Para el resto de estudiantes, incluso los que opten por una evaluación diferenciada, la nota final de la convocatoria extraordinaria se obtendrá como la media de un examen teórico y un examen práctico, con la condición adicional de que para poder superar la asignatura, en ambas partes debe obtenerse una nota igual o superior a 4 puntos sobre 10. En caso contrario la calificación será Suspenso.

Hall, T., y Stacey, J.-P. (2009). Python 3 for absolute beginners. Apress.

Marzal Varó, A., Gracia Luengo, I., y García Sevilla, P. (2014). Introducción a la programación con Python 3. Universitat Jaume I. Descargado de http://hdl.handle.net/10234/102653

McConnell, S. (2004). Code complete: A practical handbook of software construction (2nd ed.). Microsoft Press.

Meyer, B. (1997). Object-oriented software construction (2nd ed.). Prentice-Hall.

Microsoft Inc. (s.f.). Visual Studio Code. Descargado 10/04/2021, de https://code.visualstudio.com

Phillips, D. (2015). Python 3 object-oriented programming (2nd ed.). Packt Publishing.

Pilgrim, M. (2009). Dive into Python 3. Apress. Descargado de https://diveintopython3.problemsolving.io

Python Software Foundation. (s.f.). Python. Descargado 10/04/2021, de https://www.python.org