Última actualización: 05/05/2025 16:58:22


Curso Académico: 2025/2026

Programación
(15366)
Grado en Ingeniería en Tecnologías de Telecomunicación (Plan 2019) (Plan: 445 - Estudio: 252)


Coordinador/a: BELLUCCI , ANDREA

Departamento asignado a la asignatura: Departamento de Informática

Tipo: Formación Básica
Créditos: 6.0 ECTS

Curso:
Cuatrimestre:

Rama de Conocimiento: Ingeniería y Arquitectura



Objetivos
El objetivo de este curso es introducir al estudiante en las técnicas básicas de programación de modo que aprenda a programar aplicaciones de cierta entidad en el ámbito de las telecomunicaciones. Las habilidades fundamentales adquiridas serán de carácter genérico de modo que puedan ser aplicadas a otros lenguajes de programación. Al finalizar el curso con éxito, el estudiante será capaz de: - Comprender los fundamentos de la programación imperativa - Entender los mecanismos de la programación estructurada - Comprender y manejar los diferentes tipos de datos proporcionados por el lenguaje - Comprender y manejar las estructuras de control de flujo - Conocer la sintaxis del lenguaje de programación - Conocer los principales tipos de pruebas que se suelen aplicar a programas - Analizar y entender programas con código desarrollado - Localizar y solucionar errores de sintaxis y de funcionamiento en un programa, dados unos requisitos - Analizar y entender algoritmos expresados en pseudocódigo y/o mediante diagramas de flujo - Diseñar y desarrollar algoritmos sencillos de acuerdo a unos requisitos prefijados - Desarrollar programas sencillos en lenguaje Java, tanto a partir de algoritmos especificados mediante diagramas de flujo o pseudocódigo, como directamente a partir de sus requisitos de funcionamiento - Adquirir conocimientos de algoritmos básicos de búsqueda y ordenamiento - Diseñar, desarrollar y ejecutar planes de pruebas de programas.
Resultados del proceso de formación y aprendizaje
CB1: 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 CB2: 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 CG3: Conocimiento de materias básicas y tecnologías, que le capacite para el aprendizaje de nuevos métodos y tecnologías, así como que le dote de una gran versatilidad para adaptarse a nuevas situaciones. CG11: 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. RA1: Conocimiento y Comprensión. Conocimiento y comprensión de los fundamentos básicos generales de la ingeniería, los principios científicos y matemáticos, así como los de su rama o especialidad, incluyendo algún conocimiento a la vanguardia de su campo. RA5: Aplicaciones. Los egresados tendrán la capacidad de aplicar su conocimiento y comprensión para poder resolver problemas, dirigir investigaciones y diseñar dispositivos o procesos de ingeniería. Estas habilidades incluyen el conocimiento, uso y limitaciones de materiales, modelos informáticos, ingeniería de procesos, equipos, trabajo práctico, bibliografía técnica y fuentes de información. Deben tener conciencia de todas las implicaciones de la práctica de la ingeniería: éticas, medioambientales, comerciales e industriales.
Descripción de contenidos: Programa
PARTE I: Fundamentos de programación - Arquitectura básica de un ordenador - Lenguajes de programación - Compilación y ejecución de programas - Elementos de un programa: datos y algoritmos PARTE II: Programación estructurada - Tipos de datos primitivos y operadores - Estructuras de control - Condicionales - Bucles PARTE III: Introducción a las pruebas de programa PARTE IV: Conceptos avanzados - Cadenas de caracteres: la clase String - Arrays - Entrada/salida PARTE V: Programación modular - Organización del código en métodos - Intercambio de información entre métodos: paso de parámetros
Actividades formativas, metodología a utilizar y régimen de tutorías
La metodología docente incluirá: 1. Clases magistrales, donde se presentarán los conocimientos que los alumnos deben adquirir. Para facilitar su desarrollo los alumnos tendrán textos básicos de referencia de teoría y de problemas que les permitirán completar y profundizar en aquellos temas en los cuales estén mas interesados. 2. Prácticas en laboratorios informáticos, en donde se analizarán y desarrollarán programas que hacen uso de los distintos conceptos impartidos en la materia. Estas prácticas se desarrollarán en grupo, lo que servirá para fomentar la capacidad de trabajo en equipo de los alumnos. 3. Resolución de ejercicios por parte del alumno, tanto en papel como en el ordenador, que servirán para autoevaluar sus conocimientos y adquirir las capacidades necesarias. 4. Se le planteará al alumno un problema de complejidad similar a los utilizados en las clases de prácticas, que deberá resolver correctamente y en un tiempo razonable en el ordenador. 5. Puesta en común de las respuestas a los ejercicios y corrección conjunta para afianzar conocimientos y desarrollar la capacidad para analizar y comunicar la información relevante para la resolución de problemas. Además la puesta en común favorecerá el intercambio de opiniones críticas tanto entre profesor y alumnos como entre alumnos.
Sistema de evaluación
  • Peso porcentual del Examen/Prueba Final 30
  • Peso porcentual del resto de la evaluación 70

Calendario de Evaluación Continua


Convocatoria extraordinaria: normativa
Bibliografía básica
  • Allen Downey and Chris Mayfield. Think Java. O'Reilly Media, Incorporated . 2019
  • Bruce Eckel. Piensa en Java - Thinking in Java. Grupo Anaya Publicaciones Generales. 2007
  • LUCIANO RAMALHO. Fluent Python: Clear, Concise, and Effective Programming. OReilly. 2022
  • MARK LUTZ. Learning Python: Powerful Object-Oriented Programming. . OReilly. 2013
Recursos electrónicosRecursos Electrónicos *
Bibliografía complementaria
  • Donald E. Knuth. The Art of Computer Programming. Addison-Wesley Educational Publishers Inc. 2011
Recursos electrónicosRecursos Electrónicos *
(*) El acceso a algunos recursos electrónicos puede estar restringido a los miembros de la comunidad universitaria mediante su validación en campus global. Si esta fuera de la Universidad, establezca una VPN


El programa de la asignatura podría sufrir alguna variación por causa de fuerza mayor debidamente justificada o por eventos académicos comunicados con antelación.