Última actualización: 18/03/2019


Curso Académico: 2019/2020

Programación
(13490)
Grado en Ingeniería de Comunicaciones Móviles y Espaciales (Plan: 442 - Estudio: 217)


Coordinador/a: FRAGA VAZQUEZ, ANABEL

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



Requisitos (Asignaturas o materias cuyo conocimiento se presupone)
Ninguna
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. El lenguaje de programación elegido 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 programación de uso habitual. Para lograr este objetivo el alumno debe adquirir una serie de conocimientos, capacidades y actitudes. Por lo que se refiere a los conocimientos, al finalizar el curso 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 Java. - Conocer los principales tipos de pruebas que se suelen aplicar a programas. En cuanto a las capacidades, éstas las podemos clasificar en dos grupos: uno de capacidades específicas y otro de capacidades más genéricas o destrezas. En cuanto a las capacidades específicas, al finalizar el curso el alumno será capaz de: - Analizar y entender programas con código desarrollado en Java. - Localizar y solucionar errores de sintaxis y de funcionamiento en un programa, dados unos requisitos. (PO b) - Analizar y entender algoritmos expresados en pseudocódigo y/o mediante diagramas de flujo. (PO a) - Diseñar y desarrollar algoritmos sencillos de acuerdo a unos requisitos prefijados. (PO a,c) - 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. (PO a, c, k) - Adquirir conocimientos de algoritmos básicos de búsqueda y ordenamiento. (PO k) - Diseñar, desarrollar y ejecutar planes de pruebas de programas. (PO b,k) En cuanto a las capacidades generales o destrezas, durante el curso se trabajarán: - La capacidad de resolver problemas complejos descomponiéndolos en partes. (PO e) - La capacidad para trabajar en equipo y distribuir la carga de trabajo para afrontar problemas complejos. (PO d) - La capacidad de planificar el desarrollo de un proyecto de cierta entidad. (PO k) - La capacidad de buscar información utilizando recursos diversos para la solución de un problema. (PO a) - Habilidad para comunicarse de forma efectiva tanto de manera oral, escrita o gráfica a lo largo del desarrollo de las actividades propuestas en la asignatura (ejercicios, debates, prácticas, etc.). (PO g) - 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. (CB1) - 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. (CB2) - 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. (CG3) - 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. (CG11) En cuanto a las actitudes, el alumno tras cursar el curso debería tener: - Una actitud crítica respecto a la idoneidad de distintas soluciones para problemas concretos. - Una actitud de colaboración y trabajo en equipo. - Actitud para utilizar la bibliografía y otros recursos de información para ampliar su conocimiento en otros
Descripción de contenidos: Programa
El objetivo de este curso es introducir al estudiante en las técnicas básicas de programación. El lenguaje de programación en que se desarrollará el curso es Java, si bien las habilidades adquiridas serán de carácter genérico de modo que puedan ser aplicadas a otros lenguajes de programación. PROGRAMA. 1. Fundamentos de programación. Adquirir los fundamentos básicos sobre la programación de ordenadores, haciendo especial hincapié en el concepto de algoritmo. 1.1. Arquitectura básica de un ordenador 1.2. Lenguajes de programación 1.3. Algoritmos y pseudocódigo 2. El lenguaje de programación Java. Sintaxis del lenguaje Java. 2.1. Características del lenguaje Java 2.2. La Maquina Virtual Java (JVM) 2.3. Tipos de datos básicos y operadores 2.4. Control de flujo 2.4.1. Sentencias condicionales 2.4.2. Bucles 2.5. Librería de clases de Java 2.6. Arrays de una y dos dimensiones 2.7. Funciones 3. El entorno de programación. Estudio del conjunto de herramientas y mecanismos que soportan la programación de aplicaciones. 3.1. Configuración del entorno 3.2. El ciclo de programación 3.3. Errores comunes en la programación
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 más interesados. (PO a,c,e) 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. (PO b,c,e,d) 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. (PO a,e) 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. (PO e,g) 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. (PO d,g)
Sistema de evaluación
  • Peso porcentual del Examen Final 40
  • Peso porcentual del resto de la evaluación 60

Bibliografía básica
  • BRUCE ECKEL. "Piensa en Java / Thinking in Java". Pearson Educación. Versión española: 2002 - 2ª Edición. Versión inglesa: 2007 - 4ª Edición.
  • C. T. Wu. Introduction to Object-Oriented Programming with Java 5th edition. McGraw-Hill, 2009.
  • David Camacho, José Mª Valls, Jesús García, José M. Molina, Enrique Bueno. Programación, algoritmos y ejercicios resueltos en Java. Pearson/Prentice Hall, 2003..
  • FRANCISCO DURAN, FRANCISCO GUTIERREZ, ERNESTO PIMENTEL. "Programación orientada a objetos con Java". Thomson, 2007.
  • J. M. Pérez Menor, J. Carretero Pérez, F. García Carballeira, J. M. Pérez Lobato. Problemas resueltos de programación en lenguaje Java. Thomson.
  • RUSSEL WINDER & GRAHAM ROBERTS. "Developing Java software". Wiley. 2006 - 3º Edición.

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.