Guía docente de la asignatura

Metodología de la Programación

Curso 2021 / 2022
Fecha última actualización: 21/06/2021
Fecha de aprobación: 21/06/2021

Grado

Grado en Ingeniería Informática (Ceuta)

Rama

Ingeniería y Arquitectura

Módulo

Formación Básica

Materia

Informática

Curso

1

Semestre

2

Créditos

6

Tipo

Troncal

Profesorado

Teoría

  • Salvador Gutierrez Salcedo. Grupos: A

Tutorías

Salvador Gutierrez Salcedo

salvaguti@ugr.es
  • Primer semestre
    • Lunes de 15:30 a 17:30 (Ceuta)
    • Martes de 10:00 a 14:00 (Ceuta)
  • Segundo semestre
    • Martes de 10:00 a 13:00 (Ceuta)
    • Miércoles de 10:00 a 13:00 (Ceuta)

Prerrequisitos y/o Recomendaciones

Los estudiantes no necesitan tener asignaturas aprobadas como requisito indispensable para cursar esta asignatura, no obstante, se recomienda la adquisición de los conocimientos y competencias de las materias de formación básica, teniendo especial relevancia los procedentes de la materia de “Fundamentos de Programación”.

Breve descripción de contenidos (Según memoria de verificación del Grado)

  • Tipos de datos del lenguaje de alto nivel y su representación interna.
  • Referencias de memoria y memoria dinámica.
  • Encapsulamiento y ocultamiento de la información.
  • Diseño modular y creación de bibliotecas.
  • Herramientas de depuración, pruebas y validación.
  • Gestión de errores.
  • Mantenimiento del software.
  • E/S, ficheros.
  • Proyecto informático de programación.

Competencias asociadas a materia/asignatura

Competencias específicas

  • CE04 - Conocimientos básicos sobre el uso y programación de los ordenadores, sistemas operativos, bases de datos y programas informáticos con aplicación en ingeniería.
  • CE05 - Conocimiento de la estructura, organización, funcionamiento e interconexión de los sistemas informáticos, los fundamentos de su programación, y su aplicación para la resolución de problemas propios de la ingeniería.

Resultados de aprendizaje (Objetivos)

  • Comprender la relación entre tipos de alto nivel y la representación a bajo nivel de dicha información
  • Distinguir los conceptos de eficiencia en tiempo y espacio, así como su relación cuando se desarrolla un programa.
  • Distinguir y manejar correctamente las referencias y los objetos referenciados.
  • Justificar la importancia de los conceptos de encapsulamiento y ocultamiento de la información.
  • Aprender a desarrollar nuevos tipos de datos, realizando una correcta separación entre interfaz e implementación.
  • Saber enfrentarse a problemas de mayor tamaño considerando una división en subproblemas y una solución basada en la programación modular y la abstracción.
  • Comprender cómo los mecanismos de abstracción soportan la creación de componentes software modulares y reutilizables.
  • Manejar correctamente herramientas de depuración, pruebas y validación.
  • Aprender a desarrollar código con una correcta gestión de condiciones de excepción.
  • Entender la necesidad de un correcto diseño para obtener un software de mayor calidad (mejor preparado para su mantenimiento).
  • Ser capaces de desarrollar la solución de problemas de mayor tamaño, incluyendo una correcta implementación y documentación.
  • Asimilar los principios básicos de la abstracción para facilitar el estudio de la programación orientada a objetos.
  • Aprender a realizar una correcta gestión de la E/S, especialmente motivada por la necesidad de manejar grandes cantidades de información almacenada en ficheros.

 

Programa de contenidos teóricos y prácticos

Teórico

TEMA 1. Punteros y memoria dinámica

  1. El tipo de dato puntero.
  2. Vectores, matrices, cadenas y punteros.
  3. Memoria dinámica.
  4. Ejemplos de estructuras de datos simples.

TEMA 2. Funciones

  1. La función main.
  2. La responsable de que todo funcione: La Pila.
  3. Paso de parámetros y devolución de resultados.
  4. Funciones inline.
  5. Parámetros con valor por defecto.
  6. Punteros a función.

TEMA 3. Tipos de datos abstractos en C++: Clases

  1. Abstracción y diseño de clases: atributos y métodos.
  2. Constructores, destructor y asignación en clases que gestionan memoria dinámica.
  3. Sobrecarga de operadores.

TEMA 4. Gestión de E/S. Ficheros

  1. Flujos de E/S.
  2. Operaciones básicas con flujos.
  3. Flujos asociados a ficheros.
  4. Ficheros de texto y binarios.

Práctico

Práctica 1. Compilación separada y gestión de proyectos.

Práctica 2. Punteros y memoria dinámica.

Práctica 3. Abstracción en C++: clases.

Práctica 4. Proyecto informático de programación.

Seminario 1. Primeros programas con linux

  1. Órdenes básicas: Entorno de desarrollo.
  2. Compilación y enlazado en linux.
  3. Depuración en linux.

Seminario 2. Compilación separada y espacios de nombres

  1. Compilación separada.
  2. El preprocesador.
  3. Bibliotecas.
  4. Espacios de nombres.

Seminario 3. Tipos aritméticos. Representación y conversiones

  1. Tipos integrales y en coma flotante.
  2. Características de los tipos.
  3. Conversiones.
  4. Operadores lógicos a nivel de bit.

Seminario 4. Técnicas de gestión de errores y depuración

  1. Devolución de valores de error.
  2. Aserciones: errores en depuración.
  3. Excepciones.
  4. Herramientas de ayuda a la depuración.

Seminario 5. Documentación de software

  1. Diseño e implementación.
  2. Herramientas automáticas de documentación.

Bibliografía

Bibliografía fundamental

 

  • A. Garrido. "Metodología de la programación: de bits a objetos". Editorial Universidad de Granada, 2016. ISBN 978-84-338-5868-9.
  • T. Gaddis, J. Walters, G. Muganda. “Starting Out with C++: Early Objects (8th Edition)”. Addison Wesley 2013
  • A.Garrido. "Prácticas con C++: metodología de la programación (2ª ed.)". Editorial Universidad de Granada, 2017. Edición electrónica. ISBN 978-84-338-6032-3.
  • Deitel & Deitel. C++: How to Program. Prentice Hall-Pearson, 2013

 

Bibliografía complementaria

  • A. Garrido. "Fundamentos de programación con la STL". Editorial Universidad de Granada, 2016. ISBN 978-84-338-5917-4.
  • A. Garrido y J. Martínez-Baena. "Introducción a la programación con C++: ejercicios". Editorial Universidad de Granada, 2016. Edición electrónica. ISBN 978-84-338-5924-2.
  • Walter Savitch. “Resolución de problemas con C++”. Pearson, 2006.
  • Bjarne Stroustrup. “El Lenguaje de Programación C++. Edición especial”. Addison Wesley, 2002.
  • Bjarne Stroustrup. “The C++ Programming Language, 4th Edition”. Addison Wesley Professional, 2013.
  • Sedgewick. “Algorithms in C++”. Addison-Wesley, 2002.
  • A. Garrido. “Fundamentos de Programación en C++”. Delta Publicaciones, 2005.
  • A. Garrido, J. Fdez-Valdivia. “Abstracción y estructuras de datos en C++”. Delta publicaciones, 2006.

Enlaces recomendados

Páginas para usar como referencia:

Cursos en internet:

Metodología docente

  • MD01 Lección Magistral (Clases Teóricas-Expositivas) 
  • MD02 Actividades Prácticas (Resolución de Problemas, Resolución de Casos Prácticos, Desarrollo de Proyectos, Prácticas en Laboratorio, Taller de Programación, Aula de Informática, Prácticas de Campo). 
  • MD03  Seminarios (Debates, Demos, Exposición de Trabajos Tutelados, Conferencias, Visitas Guiadas, Monografías). 
  • MD04 Actividades no presenciales Individuales. 
  • MD05 Actividades no presenciales Grupales. 
  • MD06 Tutorías Académicas. 

Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final)

Evaluación ordinaria

La nota final del estudiante se calculará a partir de las calificaciones que obtenga en las siguientes partes:

PARTE TEÓRICA: La ponderación de esta parte es del 60%.

Para la parte teórica se realizará un examen escrito multi-pregunta sobre los contenidos de la materia impartida.

Este examen se realizará en su convocatoria oficial ordinaria.

PARTE PRÁCTICA: La ponderación de esta parte es del 40%.

La evaluación del trabajo práctico se realizará, preferentemente, de forma continua y constará de las siguientes pruebas:

  1. Un examen práctico individual que tendrá lugar a mitad del cuatrimestre. (10 %)
  2. La realización de un proyecto informático al final del cuatrimestre (20 %)
  3. La realización de guiones de prácticas a lo largo del cuatrimestre (10 %)

Si la nota de la parte teórica es superior o igual a 3,5 (sobre 10), entonces la nota final será:

Nota final = 0,6 * parte teórica + 0,4 * parte práctica

En otro caso, la nota final será la nota de la parte teórica (sobre 6), pudiendo el estudiante mantener la nota de la parte práctica para la convocatoria extraordinaria.

Evaluación extraordinaria

Los estudiantes podrán optar entre: conservar la nota de cada parte obtenida en la convocatoria ordinaria o volver a ser evaluados.

Se realizarán las siguientes pruebas en un único acto académico:

PARTE TEÓRICA: La ponderación de esta parte es del 60%.

Para la parte teórica se realizará un examen escrito multi-pregunta sobre los contenidos de la materia impartida.

PARTE PRÁCTICA: La ponderación de esta parte es del 40%.

Para la parte práctica se realizará un examen práctico multi-pregunta sobre los contenidos de la materia impartida.

 

Si la nota de la parte teórica es superior o igual a 3,5 (sobre 10), entonces la nota final será:

Nota final = 0,6 *  parte teórica + 0,4 *  parte práctica

 

En otro caso, la nota final será la nota de la parte teórica (sobre 6).

Evaluación única final

Esta modalidad de evaluación se realizará en un único acto académico en la fecha
establecida por el Centro y consistirá en un examen (evaluado de 0 a 10) que incluirá
preguntas que garanticen que el alumno ha adquirido la totalidad de las competencias, tanto
teóricas como prácticas, descritas en esta misma guía docente.

PARTE TEÓRICA: La ponderación de esta parte es del 60%.

PARTE PRÁCTICA: La ponderación de esta parte es del 40%.

Si la nota de la parte teórica es superior o igual a 3,5 (sobre 10), entonces la nota final será:

Nota final = 0,6 * parte teórica + 0,4 * parte práctica

En otro caso, la nota final será la nota de la parte teórica (sobre 6).

Información adicional

ESCENARIO A (ENSEÑANZA-APRENDIZAJE PRESENCIAL Y TELE-PRESENCIAL)

Horario (Según lo establecido en el POD)

Los horarios de tutoría se han ampliado debido a que además de los presenciales y/o online en sus horarios habituales (pueden consultarse en: https://decsai.ugr.es/docencia/profesorado) hay que añadir las respuestas a todos los asíncronos a través de los numerosos cauces habilitados.
 

Herramientas para la atención tutorial (Indicar medios telemáticos para la atención tutorial)

 A través de la plataforma Prado: mensajes, foros y correos internos así como atención a correos. Tutorías online con Google Meet, Skype, Telegram u otros..., tanto en modalidad individual como grupal, previo acuerdo de los interesados mediante correo electrónico. 

Medidas de adaptación de la evaluación (Instrumentos, criterios y porcentajes sobre la calificación)

El profesorado de la asignatura adaptará, total o parcialmente, los contenidos para su impartición online en los horarios establecidos por el centro si ésta modalidad fuera necesaria. Esta adaptación estará sujeta a los condicionantes de infraestructura y medios que existan en el momento de adopción del Escenario A. Se utilizarán las plataformas y herramientas proporcionadas por la Universidad de Granada.

Evaluación ordinaria

Para todas aquellas actividades evaluables que no se puedan realizar de manera presencial, se aplicará lo establecido en el escenario B.

Evaluación extraordinaria

Para todas aquellas actividades evaluables que no se puedan realizar de manera presencial, se aplicará lo establecido en el escenario B.

Evaluación única final

Para todas aquellas actividades evaluables que no se puedan realizar de manera presencial, se aplicará lo establecido en el escenario B.

ESCENARIO B (SUSPENSIÓN DE LA ACTIVIDAD PRESENCIAL)

Horario (Según lo establecido en el POD)

Los horarios de tutoría se han ampliado debido a que además de los síncronos en sus horarios habituales pueden consultarse en: https://decsai.ugr.es/docencia/profesorado) hay que añadir las respuestas a todos los asíncronos a través de los numerosos cauces habilitados.

Herramientas para la atención tutorial (Indicar medios telemáticos para la atención tutorial)

 A través de la plataforma Prado: mensajes, foros y correos internos así como atención a correos. Tutorías online con Google Meet, Skype, Telegram u otros..., tanto en modalidad individual como grupal, previo acuerdo de los interesados, mediante correo electrónico. 

Medidas de adaptación de la evaluación (Instrumentos, criterios y porcentajes sobre la calificación)

  • Se dan las clases online utilizando Google Meet en su horario habitual y/o se está poniendo a disposición de los estudiantes material audiovisual con las grabaciones de las clases o unidades didácticas elaboradas ex profeso para dar soporte a los conceptos de teoría.
  • Se cuelga en Prado, soluciones de relaciones de ejercicios o de pruebas de evaluación como parciales… que forman parte de la evaluación. 

Evaluación ordinaria

PARTE TEÓRICA: La ponderación de esta parte es del 50%.

Para la parte teórica se realizará un examen escrito multi-pregunta sobre los contenidos de la materia impartida.

PARTE PRÁCTICA: Porcentaje sobre calificación final: 50%

Entrega de prácticas y relaciones de ejercicios

Descripción: Entrega de las prácticas programadas para el curso

Criterios de evaluación: Se evalúa el grado de cumplimiento de los objetivos establecidos en cada una de las prácticas.

Se puede solicitar la defensa personal de cualquiera de las prácticas entregadas.

Porcentaje sobre calificación final: 40%

Parcial 1

Descripción: Prueba de resolución de problema a resolver con un entorno de desarrollo, en un escenario sincróno mediante Google Meet y entrega por Prado de un fichero con la solución.

Criterios de evaluación. Se evalúa según el grado de cumplimientos de los objetivos fijados para la prueba.

Porcentaje sobre calificación final: 10%

 

Si la nota de la parte teórica es superior o igual a 1,6 sobre 5 (máximo valor del examen de teoría),

entonces la nota final será:

Nota final = 0,5 * parte teórica + 0,5 * parte práctica

En otro caso, la nota final será la nota de la parte teórica, pudiendo el alumno mantener la nota de

la parte práctica para la convocatoria extraordinaria.

Evaluación extraordinaria

Los estudiantes podrán optar entre: conservar la nota de cada parte obtenida en la convocatoria ordinaria o volver a ser evaluados.

Examen de teoría

Descripción: Prueba de resolución de varios problemas

Criterios de evaluación. Se evalúa según el grado de adecuación a los conocimientos solicitados

Porcentaje sobre calificación final 50%

Parte práctica

Descripción: Prueba de resolución de varios problemas

Criterios de evaluación: Se evalúa el grado de cumplimiento de cada uno de los objetivos establecidos.

Porcentaje sobre calificación final: 50%

 

Si la nota de la parte teórica es superior o igual a 1,6 sobre 5, entonces la nota final será:

Nota final = 0,5 * parte teórica + 0,5 * parte práctica

En otro caso, la nota final será la nota de la parte teórica (sobre 5).

Evaluación única final

Examen de teoría

Descripción: Prueba de resolución de varios problemas

Criterios de evaluación. Se evalúa según una lista de rúbricas

Porcentaje sobre calificación final 50%

 

Parte práctica

Descripción: Prueba de resolución de varios problemas

Criterios de evaluación: Se evalúa el grado de cumplimiento de cada uno de los objetivos

Porcentaje sobre calificación final: 50%