Última actualización: 10/05/2018


Curso Académico: 2018/2019

Programación
(13868)
Grado en Ingeniería Informática (Plan 2011) (Plan: 256 - Estudio: 218)


Coordinador/a: GARCIA OLAYA, ANGEL

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
Competencias generales del título cubiertas: - CGB4: 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. - CGB5: Conocimiento de la estructura, organización, funcionamiento e interconexión de los sistemas informáticos, los fundamentos de su programación, y su aplicación para la resolución de problemas propios de la ingeniería. Competencias comunes a la rama de informática del título cubiertas: - CECRI6: Conocimiento y aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos. - CECRI7: Conocimiento, diseño y utilización de forma eficiente de los tipos y estructuras de datos más adecuados a la resolución de un problema. Competencias específicas de la asignatura: - Conocimiento de los conceptos básicos de la programación imperativa desde un enfoque orientado a objetos (PO a,k). - Conocimientos básicos de la sintaxis de un lenguaje de programación orientado a objetos (PO k). - Capacidad para descomponer un problema real según una metodología orientada a objetos para su posterior codificación en un programa (PO a,c,e,k). - Conocimiento de estructuras sencillas para el manejo de información (PO a). - Capacidad para comprender documentación técnica y reutilizar código desarrollado por terceras partes (PO a,k). - Conocimientos básicos del concepto de complejidad computacional (PO a,k) Competencias generales: - Capacidad para la autoorganización y planificación del trabajo individual y del proceso de aprendizaje (PO k). - Capacidad para el trabajo en grupo (PO d). - Comunicación oral y escrita (PO g). - Capacidad de análisis y síntesis (PO a). - Capacidad para la toma de decisiones (PO e). - Motivación por la calidad (PO k).
Descripción de contenidos: Programa
1. Introducción a la asignatura y a la programación a. Elementos de un programa: datos y algoritmos b. Arquitectura básica de un ordenador c. Codificación de la información en memoria d. Breve introducción histórica a la programación: desde el código binario hasta la programación orientada a componentes e. Compilación vs. interpretación de programas f. Paradigmas de programación: imperativa, lógica y funcional 2. Diagramas de flujo 3. Introducción a Java a. La JVM b. Tipos de datos básicos c. Creación de programas en Java d. Variables y constantes e. Operadores f. Conversiones entre tipos g. Entrada y números aleatorios h. Comentarios i. Depuración de programas: tipos de errores 4. Control de flujo: condicionales y bucles a. Condicionales (if, if-else, encadenamiento de condiciones, switch) b. Ámbito de variables y bloques de código c. Bucles (while, do-while, for, for-each, bucles anidados) d. Break y continue 5. Estructuras de datos sencillas a. Arrays y matrices b. Registros c. Objetos y constructores 6. Métodos y funciones a. Descomposición b. Reutilización de código c. Ocultación de la implementación d. Encapsulación: ocultación de la información e. Encapsulación: modularidad f. Métodos sobrecargados g. Paso por valor y referencia h. Funciones (métodos estáticos) i. Introducción a la recursividad 7. Clases de utilidad: Scanner, String y Math 8. Introducción a la Programación Orientada a Objetos a. Introducción a la herencia b. Clases abstractas c. Introducción al polimorfismo 9. Algoritmos sobre arrays a. Introducción a la complejidad computacional b. Búsqueda (lineal y binaria) c. Ordenación (métodos directos: burbuja, inserción directa y selección directa)
Actividades formativas, metodología a utilizar y régimen de tutorías
Actividades formativas 1. Clases magistrales (1 crédito ECTS) (PO a,k) - Orientadas a la enseñanza de las competencias específicas de la asignatura, especialmente las relacionadas con los conocimientos básicos y las técnicas de programación imperativa 2. Trabajo individual en clase y en casa (3 créditos ECTS) (PO a,c,e,g,k) - Orientado al aprendizaje autónomo de las competencias específicas de la asignatura, asegurando una base de conocimientos mínima que poder utilizar en el trabajo en grupo. Se seguirá un enfoque de aprendizaje basado en problemas (PBL). - También servirá como base para la adquisición de las competencias genéricas siguientes: Comunicación oral y escrita, Capacidad de análisis y síntesis, Capacidad para la toma de decisiones, Motivación por la calidad y Capacidad para la autoorganización y planificación del trabajo individual y del proceso de aprendizaje. 3. Prácticas en grupo (2 créditos ECTS) (PO a,c,d,e,g,k) - Completa las actividades anteriores fijando las competencias específicas y generales y haciendo hincapié en las competencias generales siguientes: Capacidad para el trabajo en grupo y Comunicación oral y escrita. Se seguirá también un enfoque basado en PBL. METODOLOGÍA Las clases se dividirán en sesiones magistrales y sesiones de prácticas en laboratorios informáticos. Las clases presenciales se complementarán con el trabajo autónomo del alumno en casa. - Clases teóricas (grupo magistral): se presentarán los conceptos básicos de programación, utilizando Java como lenguaje para facilitar su explicación y programas de ejemplo en el entorno de desarrollo Eclipse. Al final de la clase se podrán plantear preguntas cortas o tipo test sobre la materia explicada en esa sesión. Estas preguntas se pondrán posteriormente a disposición de los alumnos en forma de test de Aula Global para que las respondan las veces que consideren necesario. Al menos una de las clases magistrales se dedicará a hacer un examen parcial (ver cronograma). - Clases prácticas (grupo pequeño): constarán de tres partes. En la primera algunos alumnos, elegidos al azar, explicarán las soluciones a los problemas propuestos la semana anterior. A continuación, el profesor planteará un problema y lo resolverá con la ayuda de los alumnos. Por último, en cada sesión se propondrán una serie de problemas que los alumnos empezarán a resolver durante el resto de la clase de prácticas y que se deben entregar, generalmente en parejas, al final de esa semana. Se propondrá una práctica final de la asignatura que los alumnos deberán realizar en grupos de dos y que podrá tener entregas parciales (ver cronograma). La práctica final y los ejercicios semanales se desarrollarán en Java usando el entorno de desarrollo Eclipse. - Trabajo autónomo del alumno: durante la semana los alumnos deberán terminar los ejercicios propuestos en las clases de prácticas y entregarlos a través de Aula Global. Algunas semanas además de los ejercicios el alumno tendrá que responder de forma individual a un cuestionario tipo test o respuesta corta que se planteará en Aula Global. Régimen de tutorías De acuerdo a la normativa de la universidad se establecerá un horario preferente de tutorías presenciales para cada profesor de teoría o práctica. Este horario estará disponible en Aula Global. No obstante se anima a los alumnos a contactar con el profesor mediante correo electrónico para establecer tutorías fuera de esos horarios. Se utilizará el correo electrónico para resolver dudas puntuales que no requieren de tutoría presencial. Existe también un foro de la asignatura en Aula Global para que los alumnos puedan exponer dudas genéricas sobre la asignatura, que pueden ser contestadas por el profesor o por sus propios compañeros. Durante la práctica final se establecerán tutorías individuales con cada uno de los grupos.
Sistema de evaluación
  • Peso porcentual del Examen Final 50
  • Peso porcentual del resto de la evaluación 50

Bibliografía básica
  • Alfonso Jiménez Marín, Francisco Manuel Pérez Montes. Aprende a Programar con Java (Un enfoque práctico partiendo de cero). Paraninfo. 2016
  • BRUCE ECKEL. "Piensa en Java / Thinking in Java". Pearson Educación. Versión española: 2002 - 2ª Edición. Versión inglesa: 2006 - 4ª Edición.
  • 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..
Recursos electrónicosRecursos Electrónicos *
Bibliografía complementaria
  • Francisco Durán, Francisco Gutiérrez, Ernesto Pimentel. Programación orientada a objetos con Java. Thomson. 2007
  • Thierry Groussard. Java 6: Los fundamentos del lenguaje Java. Eni Ediciones. 2009
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.


Dirección web para más información: http://