Última actualización: 04/06/2021


Curso Académico: 2021/2022

Programación de Sistemas
(13409)
Titulación: Grado en Ingeniería Telemática (215)


Coordinador/a: FERNANDEZ PANADERO, MARIA CARMEN

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.¿ Además, esta asignatura permite desarrollar las siguientes competencias 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 (denominada CG2 en el Grado de Ciencia e Ingeniería de Datos) 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 (no incluida en el Grado de Ciencia de Ingeniería de Datos aunque se abordará igualmente en la asignatura) ECRT7 - Conocimiento y utilización de los fundamentos de la programación en redes, sistemas y servicios de telecomunicación (no incluida en el Grado de Ciencia de Ingeniería de Datos aunque se abordará igualmente en la asignatura) CE7 - Capacidad para asimilar los conceptos básicos de la programación y capacidad de realización de programas orientados al análisis de datos (competencia específica en el Grado de Ciencia e Ingeniería de Datos aunque se abordará igualmente en el resto de grados) Para abordar estas competencias generales se han definido las siguientes competencias específicas. 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
Bibliografía básica
  • Mark A. Weiss. Data Structures and Problem Solving Using Java. Addison-Wesley.
  • Michael T. Goodrich and Roberto Tamassia. Data Structures and Algorithms in Java. John Wiley & Sons, Inc..
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 y la planificación semanal podrían sufrir alguna variación por causa de fuerza mayor debidamente justificada o por eventos académicos comunicados con antelación.