Guía docente de la asignatura

Fundamentos de Programación (2961115)

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

Grado

Grado en Ingeniería Informática

Brach

Ingeniería y Arquitectura

Módulo

Formación Básica

Materia

Informática

Curso

1

Semestre

1

Créditos

6

Tipo

Troncal

Profesorado

Teórico

  • Juan Carlos Cubero Talavera. Grupo: A
  • Natalia Ana Díaz Rodríguez. Grupos: A y D
  • Juan Gómez Romero. Grupo: D
  • Manuel Lozano Márquez. Grupo: B
  • Daniel Molina Cabrera. Grupos: C y E

Práctico

  • Juan Carlos Cubero Talavera Grupos: 1, 2 y 3
  • Natalia Ana Díaz Rodríguez Grupos: 1, 10, 11, 13, 2, 3 y 9
  • Antonio Garrido Carrillo Grupo: 8
  • Juan Gómez Romero Grupos: 10, 11, 13 y 9
  • Manuel Lozano Márquez Grupos: 4, 5, 6 y 7
  • Serafín Moral García Grupo: 12
  • María del Carmen Pegalajar Jiménez Grupo: 14

Tutorías

Juan Carlos Cubero Talavera

Ver email
  • Primer semestre
    • Martes
      • 08:30 a 09:30 (D37 Etsiit)
      • 11:30 a 13:30 (D37 Etsiit)
    • Jueves
      • 08:30 a 09:30 (D37 Etsiit)
      • 11:30 a 13:30 (D37 Etsiit)
  • Segundo semestre
    • Lunes de 08:30 a 14:30 (D37 Etsiit)

Natalia Ana Díaz Rodríguez

Ver email
No hay tutorías asignadas para el curso académico.

Juan Gómez Romero

Ver email
  • Primer semestre
    • Martes de 17:30 a 19:00 (Fo17 Etsiit)
    • Miércoles
      • 11:00 a 14:00 (F017 Etsiit)
      • 17:30 a 19:00 (D017 Etsiit)
  • Segundo semestre
    • Viernes de 11:00 a 14:00 (F017 Etsiit)

Manuel Lozano Márquez

Ver email
  • Primer semestre
    • Martes de 09:30 a 13:30 (D19 Etsiit)
    • Jueves de 09:30 a 11:30 (D19 Etsiit)
  • Segundo semestre
    • Lunes de 10:00 a 12:00 (D19 Etsiit)
    • Martes de 10:00 a 12:00 (D19 Etsiit)
    • Jueves de 10:00 a 12:00 (D19 Etsiit)

Daniel Molina Cabrera

Ver email
  • Primer semestre
    • Miércoles de 17:30 a 19:30 (Fo15 Etsiit)
    • Viernes de 11:30 a 13:30 (Fo15 Etsiit)
  • Segundo semestre
    • Viernes de 10:00 a 13:00 (Fo15 Etsiit)
  • Anual
    • Jueves de 10:00 a 12:30 (Fo15 Etsiit)

Antonio Garrido Carrillo

Ver email
  • Primer semestre
    • Miércoles
      • 08:00 a 08:30 (D18 Etsiit)
      • 10:30 a 12:30 (D18 Etsiit)
      • 16:30 a 20:00 (D18 Etsiit)
  • Segundo semestre
    • Lunes de 14:00 a 15:00 (D18 Etsiit)
    • Martes
      • 09:00 a 13:00 (D18 Etsiit)
      • 14:00 a 15:00 (D18 Etsiit)

Serafín Moral García

Ver email
No hay tutorías asignadas para el curso académico.

María del Carmen Pegalajar Jiménez

Ver email
  • Primer semestre
    • Miércoles de 09:00 a 12:00 (D23 Etsiit)
  • Segundo semestre
    • Miércoles
      • 09:00 a 10:00 (D23 Etsiit)
      • 12:00 a 14:00 (D23 Etsiit)
  • Anual
    • Lunes de 09:00 a 12:00 (D23 Etsiit)

Prerrequisitos y/o Recomendaciones

No se necesita ningún prerrequisito.

Breve descripción de contenidos (Según memoria de verificación del Máster)

Tipos de datos básicos. Objetos, operadores y expresiones. Estructuras de control. Funciones y procedimientos. Tipos de datos compuestos: homogéneos (arrays) y heterogéneos (registros). Algoritmos básicos de ordenación y búsqueda. Recursividad.

 

Competencias

Competencias Generales

  • CG08. Conocimiento de las materias básicas y tecnologías, que capaciten para el aprendizaje y desarrollo de nuevos métodos y tecnologías, así como las que les doten de una gran versatilidad para adaptarse a nuevas situaciones.

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.

Competencias Transversales

  • CT06. Motivación por la calidad y la mejora continua, actuando con rigor, responsabilidad y ética profesional. 

Resultados de aprendizaje (Objetivos)

  • Comprender el funcionamiento de un computador, haciendo especial énfasis en la necesidad de desarrollo de software por parte del programador.
  • Presentar la historia de la programación y de los distintos paradigmas de programación, situando en ese contexto el lenguaje de programación que se va a utilizar.
  • Comprender la necesidad de un proceso de traducción de un lenguaje de alto nivel.
  • Conocer y distinguir los conceptos de algoritmo y programa.
  • Mostrar la necesidad de codificar la información que maneja internamente un computador, enfatizando posibilidades y limitaciones cuando se resuelve un problema.
  • Conocer los tipos de datos primitivos y sus operaciones.
  • Distinguir entre tipo de dato y objeto.
  • Conocer las acciones básicas de E/S de datos.
  • Aprender a usar las estructuras de control básicas: secuencial, condicional e iterativa.
  • Comprender la necesidad de dividir la solución creando módulos (funciones o procedimientos) que implementen operaciones no primitivas.
  • Comprender la necesidad de la especificación de una función o procedimiento, como método de abstracción, introduciendo los conceptos de precondición y postcondición.
  • Aprender a resolver problemas aplicando una metodología de diseño modular (top-down/bottom-up).
  • Manejar correctamente los mecanismos de comunicación entre módulos (interfaces), así como las distintas formas de paso de parámetros y devolución de resultados.
  • Entender la gestión de llamadas a funciones mediante la pila.
  • Motivar e introducir los tipos de datos compuestos, arrays y registros, así como sus operaciones.
  • Conocer los algoritmos de ordenación básicos (selección, inserción, burbuja).
  • Conocer los algoritmos de búsqueda básicos (lineal, dicotómica).
  • Motivar y aprender a resolver problemas mediante algoritmos recursivos

Programa de contenidos Teóricos y Prácticos

Teórico

Tema 1. Programación en C++: Fundamentos

  1. El ordenador, algoritmos y programas
  2. Especificación de programas
  3. Datos y tipos de datos
  4. Operadores y Expresiones
  5. Tipos de datos comunes en C++

Tema 2. Estructuras de Control

  1. Estructura Condicional
  2. Estructuras Repetitivas

Tema 3. Funciones y Clases

  1. Funciones
  2. Clases

Tema 4. Vectores y Matrices

  1. Vectores
  2. Matrices

Tema 5. Recursividad

  1. Diseño de algoritmos recursivos
  2. Funciones recursivas

Práctico

Práctica 1. Presentación y uso de un entorno de desarrollo para  programar C++. Resolución de problemas sobre:

  • Expresiones, sentencias y programas.
  • Uso de tipos de datos para representar información.

Práctica 2. Resolución de problemas sobre:

  • Estructuras condicionales.
  • Estructuras repetitivas.

Práctica 3. Resolución de problemas sobre:

  • Definición y uso de funciones que trabajan sobre tipos simples.
  • Definición de clases. Ámbitos privado y público.
  • Acceso de los métodos de una clase a sus variables de instancia.

Práctica 4. Realización de Problemas sobre:

  • Construcción de clases que proporcionen acceso y operaciones sobre conjunto de datos.
  • Otros métodos de búsqueda y ordenación de vectores.
  • Matrices dentro de una clase.

Seminarios

Seminario 1. Test y depuración de programas mediante el uso del entorno de programación.

Seminario 2. Documentación de funciones.

  • Documentación de cabeceras.
  • Descripción de algoritmos.

Bibliografía

Bibliografía fundamental

  • A. Garrido. Fundamentos de Programación en C++. Delta Publicaciones, 2005.
  • R. Mercer. Computing Fundamentals with C++. Object-oriented Programming and Design. 2ª Edición. Palgrave Macmillan, 2000.
  • T. Gaddis, J. Walters, G. Muganda. Starting out with C++: early objects. 8ª Edición. Pearson, 2013.
  • W. Savitch. Resolución de problemas con C++. Pearson, 2006.

Bibliografía complementaria

  • A. Garrido. Fundamentos de programación con la STL. Editorial Universidad de Granada, 2016.
  • A. Garrido. Metodología de la Programación: de bits a objetos. Editorial Universidad de Granada, 2016.
  • R. Martin. Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall, 2008.
  • S. McConnell. Code Complete: A Practical Handbook of Software Construction. 2ª Edición. Microsoft Press, 2004.
  • Object-oriented Programming in C++. Robert Lafore. Sams Publishing, 2001.
  • B. Stroustrup. The C++ Programming Language. 4ª Edición. Addison-Wesley, 2013.

Enlaces recomendados

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

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

Evaluación Ordinaria

Todo lo relativo a la evaluación se regirá por la Normativa de evaluación y calificación de los estudiantes vigente en la Universidad de Granada, que puede consultarse en: https://www.ugr.es/universidad/normativa/texto-consolidado-normativa-evaluacion-calificacion-estudiantes-universidad-granada

La nota final del alumno se calculará a partir de las calificaciones que obtenga en las siguientes partes, y según la ponderación indicada:

  • PARTE TEÓRICA: La ponderación de esta parte es del 60%. Para la parte escrita 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 consta de los siguientes apartados:
    • La parte de la nota de la evaluación continua se obtendrá con distintas pruebas que se realizarán durante el desarrollo de las clases prácticas, además de la asistencia y entrega de los trabajos requeridos. La ponderación de esta parte es del 10%.
    • Se realizarán pruebas de resolución de problemas a lo largo de la asignatura. La ponderación de esta parte es del 30%.

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 alumno mantener la nota de la parte práctica para la convocatoria extraordinaria.

Evaluación Extraordinaria

Los alumnos podrán optar, entre conservar la nota de cada parte obtenida en la convocatoria ordinaria o volver a evaluarse.

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 escrita 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 en el ordenador.

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

De acuerdo a lo establecido en la Normativa de evaluación y de calificación de los estudiantes de la Universidad de Granada, la evaluación será preferentemente continua. No obstante, el estudiante que no pueda acogerse a dicho sistema por motivos laborales, estado de salud, discapacidad o cualquier otra causa debidamente justificada podrá acogerse a la evaluación única final.

Para acogerse a la evaluación única final, el estudiante, en las dos primeras semanas de impartición de la asignatura, o en las dos semanas siguientes a su matriculación si ésta se ha producido con posterioridad al inicio de la asignatura, lo solicitará, a través del procedimiento electrónico, al Director del Departamento o al Coordinador del Máster, alegando y acreditando las razones que le asisten para no poder seguir el sistema de evaluación continua

Aquellos alumnos que opten por acogerse a la "Evaluación Única Final", realizarán un examen en ordenador como evaluación de la parte práctica. La parte teórica se evaluará mediante un examen escrito multi-pregunta sobre los contenidos de la materia impartida. Ambos exámenes se realizarán en un solo acto académico.

El peso de la evaluación de las actividades formativas, se ajustará a lo indicado a continuación:

  • PARTE TEÓRICA: La ponderación de esta parte es del 60%. Para la parte escrita 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%. Para la parte práctica se realizará un examen práctico en el ordenador.

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

Para más información sobre la evaluación única final, véase la Normativa de Evaluación y Calificación de los Estudiantes de la Universidad de Granada: https://www.ugr.es/universidad/normativa/texto-consolidado-normativa-evaluacion-calificacion-estudiantes-universidad-granada

 

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

Horario (Según lo establecido en el POD)

El horario de tutoría se puede consultar en https://decsai.ugr.es/docencia/profesorado

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

La atención tutorial se realizará preferentemente online mediante las plataformas y herramientas que recomiende la Universidad de Granada.

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.
  • 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)

El horario de tutoría se puede consultar en https://decsai.ugr.es/docencia/profesorado

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

La atención tutorial se realizará preferentemente online mediante las plataformas y herramientas que recomiende la Universidad de Granada.

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.
  • Esta adaptación estará sujeta a los condicionantes de infraestructura y medios que existan en el momento de adopción del Escenario B.
  • Se utilizarán las plataformas y herramientas proporcionadas por la Universidad de Granada.

Evaluación ordinaria

La evaluación de la teoría y prácticas se realizará utilizando las herramientas y plataformas provistas por la Universidad de Granada.

El peso de la evaluación de las actividades formativas, se ajustará a lo indicado a continuación:

  • PARTE TEÓRICA: La ponderación de esta parte es del 50%. Para la parte escrita 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 50%. La evaluación se realizará mediante:
    • Entrega de prácticas y relaciones de ejercicios: 30%
    • Pruebas de resolución de problemas: 20%

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,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), pudiendo el alumno mantener la nota de la parte práctica para la convocatoria extraordinaria.

Evaluación extraordinaria

La evaluación de la teoría y prácticas se realizará utilizando las herramientas y plataformas provistas por la Universidad de Granada. sobre los contenidos de la materia impartida.

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

El peso de la evaluación de las actividades formativas, se ajustará a lo indicado a continuación:

  • PARTE TEÓRICA: La ponderación de esta parte es del 50%. 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 50%. Se realizará una prueba de resolución de problemas, con ordenador, en un escenario preferentemente síncrono.

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,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

La evaluación de la teoría y prácticas se realizará utilizando las herramientas y plataformas provistas por la Universidad de Granada.

El peso de la evaluación de las actividades formativas, se ajustará a lo indicado a continuación:

  • PARTE TEÓRICA: La ponderación de esta parte es del 50%. 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 50%. Se realizará una prueba de resolución de problemas, con ordenador, en un escenario preferentemente síncrono.

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,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).