Guía docente de la asignatura

Fundamentos de Programación

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

Grado

Grado en Ingeniería de Tecnologías de Telecomunicación

Rama

Ingeniería y Arquitectura

Módulo

Materias Comunes

Materia

Redes y Servicios de Telecomunicaciones

Curso

2

Semestre

1

Créditos

9

Tipo

Obligatoria

Profesorado

Teoría

  • José Enrique Cano Ocaña. Grupos: A y B

Prácticas

  • Eugenio Aguirre Molina. Grupos: 4
  • José Enrique Cano Ocaña. Grupos: 1 y 3
  • María Del Carmen Pegalajar Jiménez. Grupos: 2

Tutorías

José Enrique Cano Ocaña

eco@ugr.es
  • Segundo semestre
    • Martes de 8:00 a 14:00 (D09 (Etsiit))
  • Primer semestre
    • Martes de 9:30 a 11:30 (Sop (Etsiit))
    • Martes de 12:30 a 14:30 (Sop (Etsiit))
    • Miércoles de 9:30 a 11:30 (Sop (Etsiit))

Eugenio Aguirre Molina

eaguirre@ugr.es
  • Primer semestre
    • Jueves de 11:00 a 14:00 (D30 (Etsiit))
    • Lunes de 10:00 a 11:30 (D30 (Etsiit))
    • Miércoles de 9:30 a 11:00 (Bo (Fcyd))
  • Segundo semestre
    • Martes de 11:00 a 14:00 (D30 (Etsiit))
    • Miércoles de 11:00 a 14:00 (D30 (Etsiit))

María Del Carmen Pegalajar Jiménez

mcarmen@ugr.es
    • Lunes de 9:00 a 12:00 (D23 Etsiit)
  • Segundo semestre
    • Miércoles de 9:00 a 10:00 (D23 Etsiit)
    • Miércoles de 12:00 a 14:00 (D23 Etsiit)
  • Primer semestre
    • Miércoles de 9:00 a 12:00 (D23 Etsiit)

Prerrequisitos y/o Recomendaciones

€Los alumnos no habrán de tener asignaturas, materias o módulos aprobados como requisito indispensable para aprobar la asignatura. No obstante se recomienda la superación de los contenidos y adquisición de competencias de las materias de formación básica.

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

Funciones, Recursividad, Modularización, Gestión de memoria dinámica, Entradas y salidas, Gestión de errores, Introducción a la programación orientada a objetos.

El título de Graduado/a en Ingeniería de Tecnologías de Telecomunicación de la Universidad de Granada ha obtenido, con fecha 24 de mayo de 2019, el Sello Internacional de Calidad EUR-ACE®, otorgado por ANECA y el Instituto de la Ingeniería de España. Esta acreditación garantiza el cumplimiento de criterios y estándares reconocidos por los empleadores españoles y del resto de Europa, de acuerdo con los principios de calidad, relevancia, transparencia, reconocimiento y movilidad contemplados en el Espacio Europeo de Educación Superior.

Competencias asociadas a materia/asignatura

Competencias generales

  • CG01 - Capacidad para aprender de manera autónoma nuevos conocimientos y técnicas adecuados para la concepción, el desarrollo o la explotación de sistemas y servicios de telecomunicación. 
  • CG02 - Capacidad de utilizar aplicaciones de comunicación e informáticas (ofimáticas, bases de datos, cálculo avanzado, gestión de proyectos, visualización, etc.) para apoyar el desarrollo y explotación de redes, servicios y aplicaciones de telecomunicación y electrónica. 
  • CG03 - Capacidad para utilizar herramientas informáticas de búsqueda de recursos bibliográficos o de información relacionada con las telecomunicaciones y la electrónica. 
  • CG07 - Conocimiento y utilización de los fundamentos de la programación en redes, sistemas y servicios de telecomunicación. 

Competencias transversales

  • CT01 - Capacidad de análisis y síntesis: Encontrar, analizar, criticar (razonamiento crítico), relacionar, estructurar y sintetizar información proveniente de diversas fuentes, así como integrar ideas y conocimientos.  
  • CT02 - Capacidad de organización y planificación así como capacidad de gestión de la Información. 
  • CT03 - Capacidad de comunicación oral y escrita en el ámbito académico y profesional con especial énfasis, en la redacción de documentación técnica. 
  • CT04 - Capacidad para la resolución de problemas. 
  • CT05 - Capacidad para tomar decisiones basadas en criterios objetivos (datos experimentales, científicos o de simulación disponibles) así como capacidad de argumentar y justificar lógicamente dichas decisiones, sabiendo aceptar otros puntos de vista. 
  • CT06 - Capacidad para el uso y aplicación de las TIC en el ámbito académico y profesional.  
  • CT07 - Capacidad de comunicación en lengua extranjera, particularmente en inglés. 
  • CT08 - Capacidad de trabajo en equipo. 
  • CT09 - Capacidad para el aprendizaje autónomo así como iniciativa y espíritu emprendedor. 
  • CT10 - Motivación por la calidad y la mejora continua, actuando con rigor, responsabilidad y ética profesional.  
  • CT11 - Capacidad para adaptarse a las tecnologías y a los futuros entornos actualizando las competencias profesionales.  
  • CT12 - Capacidad para innovar y generar nuevas ideas. 
  • CT13 - Sensibilidad hacia temas medioambientales. 
  • CT14 - Respeto a los derechos fundamentales y de igualdad entre hombres y mujeres. 
  • CT15 - Capacidad para proyectar los conocimientos, habilidades y destrezas adquiridos para promover una sociedad basada en los valores de la libertad, la justicia, la igualdad y el pluralismo. 

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

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

  • 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. INTRODUCCIÓN A LA PROGRAMACIÓN EN C.
    Algoritmos y programas. Datos, tipos de datos y expresiones. Operaciones primitivas.

  • TEMA 2. ESTRUCTURAS DE CONTROL.
    Estructura secuencial. Estructuras condicionales. Estructuras repetitivas.

  • TEMA 3. FUNCIONES Y PROCEDIMIENTOS.
    Programación modular y estructurada. Procedimientos. Paso de parámetros. Ocultamiento de información. La pila. Funciones. Modularización de problemas. Documentación de módulo.

  • TEMA 4. VECTORES Y MATRICES.
    Concepto de vector. Operaciones con vectores. Algoritmos de ordenación y búsqueda. Las cadenas estilo C. Concepto de matriz. Operaciones con matrices.

  • TEMA 5. ESTRUCTURAS Y UNIONES.
    Concepto de estructura y unión. Operadores básicos.

  • TEMA 6. PUNTEROS Y GESTIÓN DINÁMICA DE MEMORIA
    Concepto de puntero. Operadores básicos. Relación entre punteros, vectores y matrices La memoria dinámica. Operadores de reserva y liberación de memoria. Aplicaciones usando memoria dinámica.

  • TEMA 7. RECURSIVIDAD.
    Concepto. Diseño de funciones recursivas. Ejemplos de funciones recursivas.

  • TEMA 8. ENTRADAS Y SALIDAS.
    Archivos y flujos. Archivos de acceso secuencial. Archivos de acceso aleatorio.
  • TEMA 9. INTRODUCCIÓN A LA PROGRAMACIÓN DIRIGIDA A OBJETOS
    Introducción. Encapsulamiento. Constructores y destructores. Sobrecarga de operadores.Herencia. Polimorfismo.

Práctico

Seminarios/Talleres

  • Seminario 1: Introducción al laboratorio y al entorno de desarrollo de programas.
  • Seminario 2: Instalación del entorno de desarrollo de programas.
  • Seminario 3: Normas de estilo para la construcción de programas.
  • Seminario 4: Prueba y depuración de programas.
  • Seminario 5: Documentación de programas.

Prácticas de Laboratorio

  • Práctica 1. Construcción básica de programas.
  • Práctica 2. Construcciones de programas iterativos.
  • Práctica 3. Desarrollo de programas modulares.
  • Práctica 4. Programas con vectores y matrices.
  • Práctica 5. Estructuras.
  • Práctica 6. Memoria dinámica.
  • Práctica 7. Programas recursivos.
  • Práctica 8. Programas con ficheros.
  • Práctica 9. Programación dirigida a objetos.

Bibliografía

Bibliografía fundamental

  • Kernigham, N. B., Ritchie, M. D. El lenguaje de programación C. Prentice-Hall. 1989.

  • García F., Carretero J., Fernández J., Calderón A. El lenguaje de Programación C: Diseño e Implementación de Programas. Prentice, 2001.

  • Deitel, P. J., Deitel, H. M., C How to Program. 6ª Edición. Prentice Hall. 2009.

  • Garrido, A., Fundamentos de Programación en C++. Delta Publicaciones, 2006.

 

Bibliografía complementaria

  • Savich, W., Resolución de problemas en C++, 2ª Edición, Prentice, 2000.

  • Deitel, H. M., Deitel, P. J., C++ How to Program. 7ª Edición. Prentice Hall. 2010.

  • Mercer, R., Computing Fundamentals with C++. 2ª Edición. Franklin, Beedle & Associates. 1999.

  • Eckel, B., Thinking in C++. 2ª Edición. Prentice-Hall. 2000. Disponible en versión electrónica en publicaciones, 2006.http://www.bruceeckel.com/Garrido, A., Fdez-Valdivia, J., Abstracción y Estructuras de datos en C++. Delta

  • Sedgewick. R., Algorithms in C++. Addison-Wesley, 2002.

  • Stroustrup, B., El lenguaje de Programación C++, 3ª Edición (Especial), Addison-Wesley, 2001.

Enlaces recomendados

Metodología docente

  • MD01 Lección magistral 
  • MD02 Actividades prácticas 
  • MD03 Seminarios 
  • MD04 Actividades no presenciales 
  • MD05 Tutorías académicas 

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

Evaluación ordinaria

  • Para la parte teórica se realizarán exámenes finales o parciales, que supondrán un 50% de la nota final.
  • Para la parte práctica se realizarán prácticas de laboratorio y resolución de problemas junto con exámenes finales o parciales. La ponderación de este bloque será el 30%.
  • Se tendrá en cuenta la asistencia y participación con una ponderación del 20% de la nota final.

     La calificación global corresponderá por tanto a la puntuación ponderada de los diferentes aspectos y actividades que integran el sistema de evaluación. Por tanto, el resultado de la evaluación será una calificación numérica obtenida mediante la suma ponderada de las calificaciones correspondientes a una parte teórica, una parte práctica y, en su caso, una parte relacionada con el trabajo autónomo de los alumnos, los seminarios impartidos y el aprendizaje basado en proyectos. Será necesario obtener una nota mínima en una de las partes para hacer suma ponderada con las otras partes.

Evaluación extraordinaria

  • Se hará un examen puntuado de 0 a 10 con preguntas de tipo teórico y práctico que garanticen que el alumno ha adquirido la totalidad de las competencias descritas en esta guía docente.
  • Todo lo relativo a la evaluación se regirá por la normativa sobre planificación docente y organización de exámenes vigente en la Universidad de Granada.

     El sistema de calificaciones se expresará mediante calificación numérica de acuerdo con lo establecido en el art. 5 del R. D 1125/2003, de 5 de septiembre, por el que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y validez en el territorio nacional.

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 vigente, la evaluación será preferentemente continua. No obstante, el estudiante que no pueda acogerse a dicho sistema por motivos laborales, estado de salud, discapacidad, programas de movilidad o cualquier otra causa debidamente justificada podrá acogerse a la evaluación única final. Para ello deberá solicitarlo al Director del Departamento o al Coordinador del Máster en las dos primeras semanas de impartición de la asignatura o, excepcionalmente, en las dos primeras semanas tras la matriculación en la asignatura.
  • Esta modalidad de evaluación se realizará en un único acto académico en la fecha establecida por el Centro y consistirá en:
    • Se hará un examen puntuado de 0 a 10 con preguntas de tipo teórico y práctico que garanticen que el alumno ha adquirido la totalidad de las competencias descritas en esta guía docente.

Información adicional

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

Horario (Según lo establecido en el POD)

Los horarios de tutorías del profesor pueden consultarse en la web: http://decsai.ugr.es/index.php?p=profesores

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. También se pasaran tutorías presenciales si así lo prefiere el alumno. En ambos casos previa solicitud de cita.

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

Se mantienen los mismos porcentajes y pruebas que en el escenario presencial. En caso de que el examen de la parte teórica no pueda hacerse de forma presencial, se hará de forma online y síncrona y será entregado a través de Prado.

Evaluación extraordinaria

Se mantienen los mismos porcentajes y pruebas que en el escenario presencial. En caso de que los exámenes de la parte teórica y práctica no puedan hacerse de forma presencial, se harán de forma online y síncrona y serán entregados a través de Prado.

Evaluación única final

Se mantienen los mismos porcentajes y pruebas que en el escenario presencial. En caso de que el examen final de la parte teórica y práctica no pueda hacerse de forma presencial, se hará de forma online y síncrona y será entregado a través de Prado.

ESCENARIO B (SUSPENSIÓN DE LA ACTIVIDAD PRESENCIAL)

Horario (Según lo establecido en el POD)

Los horarios de tutorías del profesor pueden consultarse en la web: http://decsai.ugr.es/index.php?p=profesores

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

Se mantienen los mismos porcentajes y pruebas que en el escenario presencial. En caso de que el examen de la parte teórica y práctica no pueda hacerse de forma presencial, se hará de forma online y síncrona y será entregado a través de Prado.

Evaluación extraordinaria

Se mantienen los mismos porcentajes y pruebas que en el escenario presencial. En caso de que los exámenes de la parte teórica y práctica no puedan hacerse de forma presencial, se harán de forma online y síncrona y serán entregados a través de Prado.

Evaluación única final

Se mantienen los mismos porcentajes y pruebas que en el escenario presencial. En caso de que el examen final de la parte teórica y práctica no pueda hacerse de forma presencial, se hará de forma online y síncrona y será entregado a través de Prado.