Universidad Pública de Navarra



Año Académico: 2020/2021 | Otros años:  2019/2020  |  2018/2019  |  2017/2018 
Graduado o Graduada en Ingeniería Informática por la Universidad Pública de Navarra (Programa Internacional)
Código: 250205 Asignatura: PROGRAMACIÓN
Créditos: 6 Tipo: Básica Curso: 1 Periodo: 1º S
Departamento: Estadística, Informática y Matemáticas
Profesorado:
GONZALEZ DE MENDIVIL MORENO, JOSE RAMON (Resp)   [Tutorías ] DIAZ NOAIN, MIKEL   [Tutorías ]
EZCURDIA AGUIRRE, IÑIGO FERMIN   [Tutorías ]

Partes de este texto:

 

Módulo/Materia

Módulo: Formación Básica

Materia: Informática

Subir

Descripción/Contenidos

La programación, es decir la construcción de programas, representa el núcleo de la informática. Todos los métodos y herramientas de la informática tienen como objeto o sujeto a los programas y el trabajo de un informático siempre guarda alguna relación con su construcción o manejo. La programación es un proceso complejo ya que envuelve una gran cantidad de tareas con aspectos muy diversos. En esta asignatura se presentan técnicas y herramientas para las fases de la programación de diseño y codificación. En las clases de teoría se presentan diversas técnicas para la construcción de algoritmos iterativos y recursivos, así como la aplicación de técnicas de descomposición funcional. En las clases de prácticas (laboratorio) se aprende y practica con un lenguaje de programación. El objetivo es aprender a construir programas, por ahora sencillos, de calidad, esto es, programas correctos, fáciles de leer y de entender, flexibles y eficientes.

Contenidos de Programación:

Especificación de algoritmos. Estructuras algorítmicas básicas. Acciones y funciones.

Diseño descendente. Diseño de algoritmos iterativos. Diseño de algoritmos recursivos.

Modularidad.

Subir

Competencias genéricas

Competencias Básicas:

CB3- Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética.

CB4- Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado.

Competencias Generales:

G8- Conocimiento de las materias básicas y tecnologías, que capaciten para el aprendizaje y desarrollo de nuevos métodos y tecnologías, así como las que les doten de una gran versatilidad para adaptarse a nuevas situaciones.

G9- Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión.

T1- Capacidad de análisis y síntesis.

T3- Comunicación oral y escrita.

T4- Resolución de problemas.

T8- Aprendizaje autónomo.

T9- Creatividad.

Subir

Competencias específicas

FB3- Capacidad para comprender y dominar los conceptos básicos de matemática discreta, lógica, algorítmica y complejidad computacional, y su aplicación para la resolución de problemas propios de la ingeniería.

FB4- 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.

Subir

Resultados aprendizaje

Los Resultados de Aprendizaje que va a alcanzar con esta asignatura se resumen a continuación:

 

(RA1) Diseñar, realizar, evaluar y verificar programas que realicen tareas básicas de cálculo y entrada/salida, utilizando las construcciones típicas de los lenguajes de programación imperativa.

(RA2) Escribir, compilar, ejecutar y probar programas de pequeño tamaño.

(RA3) Analizar y construir algoritmos utilizando técnicas y métodos adecuados.

(RA4) Evaluar la complejidad de un algoritmo dado.

(RA5) Aplicar las técnicas de descomposición funcional para dividir un programa en pequeñas piezas.

(RA6) Utilizar librerías.

(RA7) Organizar y mantener pequeños programas y sus unidades componentes.

 

Subir

Metodología

Se imparten clases magistrales (MD1-Método expositivo) presenciales en el aula. En estas clases se imparte la teoría de la asignatura utilizando el proyector y la pizarra. Se presentan ejemplos de aplicación de la teoría mediante problemas concretos. Se propondrán al estudiante colecciones de problemas que pueden resolver de forma autónoma y cuya realización es fundamental para asimilar los conceptos de la asignatura. Se imparten clases prácticas presenciales en el aula. En estas clases se resuelven ejercicios propuestos (MD2-Resolución de ejercicios y problemas, se codifican en un lenguaje de programación y se realizan pruebas sobre los programas. A lo largo del semestre se realizarán las siguientes pruebas de evaluación (MD3-Evaluación de competencias): 2 pruebas de evaluación de teoría/problemas, 1 prueba de evaluación de prácticas, 1 prueba de evaluación para la recuperación de teoría/problemas, 1 prueba de evaluación para la recuperación de  prácticas.

La evaluación de las prácticas de laboratorio también tiene una parte de evaluación continua a lo largo del semestre que consiste en cuatro entregas de prácticas. En la evaluación continua de prácticas se tiene en cuenta la asistencia. Para completar las prácticas, se propondrá la elaboración de trabajos que consisten en la realización de unas prácticas preparatorias para la prueba práctica final, y que sirva de autoevaluación al estudiante.

En todo momento se anima a los estudiantes a asistir a las tutorías en grupos muy reducidos para que reciban orientación en la realización de los ejercicios y las prácticas (MD4-Orientación)

 

 

 

Actividad formativa Presencial No Presencial
A1- Clases magistrales 20 0
A2- Preparación de presentaciones de trabajos, proyectos, etc. 0 10
A3- Aprendizaje basado en problemas y/o casos en grupos reducidos. 14 0
A4- Sesiones prácticas en grupos reducidos. 20 0
A5- Tutorías en grupos muy reducidos. 2 0
A6- Actividades de evaluación. 4 0
A7- Estudio autónomo. 0 30
A8- Elaboración de trabajos y/o proyectos y escritura de memorias. 0 11
A9- Programación / experimentación u otros trabajos en ordenador de laboratorio. 0 25
A10- Resolución de problemas, ejercicios y otras actividades de aplicación. 0 14
Total 150  

 


 

Subir

Idiomas


Castellano

Subir

Evaluación

 

Resultados de aprendizaje Criterios Actividad de evaluación Peso Rec.
Contenidos Teórico/Prácticos RA1 RA3 RA4 RA5 Comprensión de los conocimientos teóricos y su aplicación a la resolución de problemas algorítmicos correctos. Capacidad de análisis y síntesis. Respuesta en tiempo, forma y adecuación de contenidos. Aplicación de los conocimientos en casos prácticos. Capacidad de comunicación correcta y precisa Exámenes a lo largo del semestre.    
    Examen 1 (4/10) 50% Si
    Examen 2 (6/10) 50% Si
         
         
Contenidos Prácticos RA2 RA3 RA5 RA6 RA7 Aplicación de los conocimientos de teoría al desarrollo de programas correctos con criterios de calidad exigidos a este nivel. Aplicación de los conocimientos en la práctica. Creatividad, capacidad de análisis y síntesis. Respuesta en tiempo, forma y adecuación de contenidos. Capacidad de comunicación correcta y precisa. Asistencia Participación activa en clase de prácticas y pruebas durante las prácticas. Entregas de informes de prácticas. Control de firmas de asistencia    
    Entrega 1 (1/10) 50% No
    Entrega 2 (1/10) 50% No
    Entrega 3 (1/10) 50% No
    Entrega 4 (1/10) 50% No
    Prueba práctica (6/10) 50% Si

Cada parte N1: contenidos teórico/prácticos y N2: contenidos prácticos tendrá una nota entre 0 y 10 puntos. La nota final de la asignatura N se obtiene atendiendo al siguiente procedimiento:

N= minimo (N1, N2) si N1 < 4,5 o N2 < 4,5

N= (N1+N2)/2  si N1 >= 4,5 y N2 >= 4,5

Superarán la asignatura los estudiantes cuya nota final N sea mayor o igual que 5,0.

En la recuperación, se puede recuperar hasta el 80% : N1 hasta 10 puntos y N2 hasta 6 puntos. En el cálculo de la nota de prácticas final, se mantienen las notas de prácticas de la evaluación continua que no tienen carácter recuperable.

La nota final N se obtiene atendiendo al procedimiento anterior.

Subir

Temario

Programa de Teoría.

Tema 1. Especificación de algoritmos. 1.1. Variables: declaración y tipos. 1.2. Introducción a la especificación. 1.3. Lógica de predicados. 1.4. Cuantificadores y sustituciones. 1.5. Elementos de una especificación. 1.6. Reglas de consecuencia.

Tema 2. Estructuras algorítmicas básicas. 2.1. Instrucción continuar. 2.2. Instrucción de asignación. 2.3. Composición secuencial de instrucciones. 2.4. Composición alternativa de instrucciones. 2.5. Composición iterativa de instrucciones. 2.6. Introducción a la eficiencia de algoritmos.

Tema 3. Derivación formal de algoritmos. 3.1. Derivación de instrucciones simples. 3.2. Derivación de bucles a partir de invariantes. 3.3. Deducción de invariantes: elección de una conjunción. 3.4. Deducción de invariantes: sustitución de expresiones. 3.5. Deducción de invariantes: reforzamiento de invariantes. 3.6. Deducción de invariantes: invariantes para la recursividad. Ejercicios del Tema 3.

Tema 4. Acciones y funciones. 4.1. Acciones y funciones. 4.2. Llamadas a acciones. 4.3. Clases de parámetros. 4.4. Declaración de acciones. 4.5. Declaración de funciones. 4.6. Diseño descendente.

Tema 5. Diseño de algoritmos iterativos. 5.1. Acceso directo: tablas. 5.2. Esquema de recorrido en tablas. 5.3. La instrucción para-hasta-hacer. 5.4. Esquema de búsqueda en tablas. 5.5. Búsqueda con centinela. 5.6. Búsqueda dicotómica. 5.7. Ordenación por inserción. 5.8. Ordenación por selección. 5.9. Eficiencia de algoritmos iterativos. 5.10. Diseño descendente. Ejercicios del Tema 5.

Tema 6. Diseño de algoritmos recursivos. 6.1. Introducción a la recursividad. 6.2. Funciones recursivas. 6.3. Método de diseño. 6.4. Evaluación de complejidad. 6.5. Inmersión de especificaciones. Ejercicios del Tema 6.

Tema 7. Modularidad. 7.1. Motivación. 7.2. Criterios. 7.3. Declaración de módulos. 7.4. Ejemplos.

Programa de prácticas.

Sesión  1. Codificación de algoritmos en C.

Sesión 2. Derivación de algoritmos I.

Sesión 3. Derivación de algoritmos II.

Sesión 4. Acciones y funciones.

Sesión 5. Derivación de algoritmos III.

Sesión 6. Derivación de algoritmos IV.

Sesión 7. Diseño de algoritmos iterativos I: Tablas.

Sesión 8. Diseño de algoritmos iterativos II: Búsquedas y recorridos.

Sesión 9. Diseño de algoritmos iterativos III: Ordenación.

Sesión 10. Funciones recursivas I.

Sesión 11. Funciones recursivas II.

Sesión 12. Autoevaluación de prácticas.

Sesión 13. Prueba Práctica.

Subir

Bibliografía

Acceda a la bibliografía que el profesorado de la asignatura ha solicitado a la Biblioteca.


Bibliografía básica

Castro, Cucker, y otros. Curso de programación. McGraw-Hill, 1993.

R. Peña. Diseño de programas. Formalismo y abstracción. 3ª Ed. Prentice-Hall, 2004.

M. Kaldewaij. Programming: the derivation of algorithms. Prentice-Hall , 1990.

Bibliografía (prácticas)

A. Marzal, I. Gracia. Introducción a la programación con C. Universidad Jaume I. ISBN: 978-84-693-0143-2. 2017.

Kernihan & Ritchie. El lenguaje de programación C. Prentice-Hall. 1991.

Subir

Lugar de impartición

Campus de Arrosadía, Pamplona

Subir