Última actualización: 13/03/2024


Curso Académico: 2024/2025

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


Coordinador/a: ALARIO HOYOS, CARLOS

Departamento asignado a la asignatura: Departamento de Ingeniería Telemática

Tipo: Obligatoria
Créditos: 6.0 ECTS

Curso:
Cuatrimestre:




Requisitos (Asignaturas o materias cuyo conocimiento se presupone)
Programación (1er curso, 1er cuatrimestre)
Objetivos
El objetivo de este curso es que el estudiante profundice en técnicas de programación, incluyendo orientación a objetos avanzada (POO), así como algunas de las estructuras de datos y algoritmos de uso habitual. El lenguaje de programación en que se desarrollará el curso es Java, si bien las habilidades fundamentales adquiridas serán de carácter genérico de modo que puedan ser aplicadas a otros lenguajes de uso habitual. Esta asignatura se imparte de forma coordinada entre diferentes titulaciones. En el caso de los grados que habilitan para el ejercicio de profesiones reguladas aplica la orden CIN/352/2009, de 9 de febrero, BOE de 20 febrero de 2009 https://www.boe.es/diario_boe/txt.php?id=BOE-A-2009-2894. En cualquier caso, esta asignatura permite desarrollar la competencia de formación básica que se menciona en dicha orden: "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". 1.Diseño y desarrollo de aplicaciones en el lenguaje de programación Java a.Conocimientos. Interpretar, explicar y ejemplificar: i.los mecanismos de la POO ii.el concepto de recursión iii.los fundamentos de las estructuras de datos más habituales lineales (ej. listas) y no lineales (ej. árboles) iv.los distintos algoritmos de trabajo sobre estructuras de datos b.Capacidades: i.Programar aplicaciones orientadas a objetos ii.Representar, diseñar e implementar algoritmos recursivos iii.Implementar algoritmos y usar algunas estructuras de datos importantes (listas enlazadas, pilas, colas, árboles) iv.Decidir qué estructuras de datos se adaptan a determinados problemas, y reutilizar o diseñar algoritmos adecuados para resolver problemas concretos c.Actitudes. Actitud crítica respecto a: i. la idoneidad de distintas estructuras de datos y algoritmos para problemas concretos. ii.el uso de la bibliografía y otros recursos de información para temas relacionados con la materia. 2.Utilizar con destreza las herramientas para el desarrollo de aplicaciones a.Ser capaz de crear, compilar y ejecutar un programa en java b.Interpretar correctamente y eliminar los mensajes de error y advertencia que muestre el compilador
Competencias y resultados del aprendizaje
Descripción de contenidos: Programa
El programa de este curso se divide en cuatro módulos: 1. Programación basada en objetos 1.1. Concepto de clase y objeto 1.2. Composición de clases 1.3. Constructores 1.4. Ocultación de la información 1.5. Modificadores de acceso 2. Programación orientada a objetos 2.1. Herencia 2.2. Sobreescritura y sobrecarga 2.3. Casting 2.4. Clases abstractas e interfaces 2.5. Herencia múltiple y polimorfismo. 3. Recursión 3.1. Concepto de recursión 3.2. Tipos de recursión (lineal, no lineal, mútua) 3.3. Recursión vs. iteración 3.4. Ejemplos de algoritmos recursivos 4. Estructuras de datos, algoritmos y ejemplos de implementación 4.1. Listas enlazadas y doblemente enlazadas 4.2. Pilas 4.3. Colas (simples, dobles con prioridad) 4.4. Árboles (n-arios, binarios, binarios de búsqueda)
Actividades formativas, metodología a utilizar y régimen de tutorías
La metodología docente de esta asignatura está basada en la integración activa del estudiante en la actividad docente y en la aplicación de los principios de la evaluación continua. La asignatura está dividida en unidades, y cada unidad consiste en sesiones magistrales en aula grande y sesiones de prácticas en grupo pequeño. Toda la información y material necesarios para seguir las unidades están disponibles en la página web de la asignatura. Se valorará positivamente la participación del alumno en las actividades en el aula (preguntas, resolución de problemas en grupos, etc). Asimismo, el alumno también tiene disponible con antelación los enunciados de los ejercicios o programas a resolver durante las clases de prácticas, que se realizarán en parejas. Adicionalmente a las clases presenciales, tanto magistrales como de prácticas, se propone al alumno una serie de actividades para realizar en casa. 1.Sesiones magistrales (teoría, ejercicios y preguntas en el aula). En estas sesiones se presentarán los conocimientos que los alumnos deben adquirir para facilitar su desarrollo los alumnos recibirán las notas de clase y tendrán textos básicos de referencia que les permita completar y profundizar en aquellos temas en los cuales estén más interesados 2.Sesiones de laboratorio (resolución de problemas). En estas clases los alumnos analizarán y desarrollarán programas que hacen uso de los distintos conceptos impartidos en la materia 3.Trabajo personal. Auto-estudio para comprender los conceptos teóricos y cómo aplicarlos 4.Exámenes. Ejercicios a resolver por los estudiantes que les permitirán demostrar los conocimientos y habilidades adquiridas a lo largo del curso. a) Pruebas de evaluación parciales b) Examen final 5. Tutorías según normativa vigente.
Sistema de evaluación
  • Peso porcentual del Examen Final 50
  • Peso porcentual del resto de la evaluación 50

Calendario de Evaluación Continua


Convocatoria extraordinaria: normativa
Bibliografía básica
  • Mark A. Weiss. Data Structures and Problem Solving Using Java. Addison-Wesley.
  • Mark.A. Weiss. . Estructuras de datos en Java.. Pearson.
  • Michael T. Goodrich and Roberto Tamassia. Data Structures and Algorithms in Java. John Wiley & Sons, Inc..
  • Michael T. Goodrich y Roberto Tamassia. . Estructuras de datos y Algoritmos. . Cecsa.
Recursos electrónicosRecursos Electrónicos *
Bibliografía complementaria
  • Cutajar, J. Beginning Java Data Structures and Algorithms. Packt Publishing.
  • Deitel, P. J., Deitel, H. M.. Java: cómo programar. Pearson Educación.
  • Parsons, D.. Foundational Java: Key Elements and Practical Programming. Springer Science & Business Media.
  • Weisfeld, M. The object-oriented thought process. Pearson Education.
Recursos electrónicosRecursos Electrónicos *
Contenido detallado de la asignatura o información adicional para TFM
(*) 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.