Universidad Pública de Navarra



Año Académico: 2024/2025 | Otros años:  2023/2024  |  2022/2023  |  2021/2022  |  2020/2021 
Graduado o Graduada en Ingeniería Informática por la Universidad Pública de Navarra
Código: 240205 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 ]
ALAEZ GOMEZ, DANIEL   [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

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.

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

(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. 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 pruebas de evaluación (MD3-Evaluación de competencias), como se indica en la sección de Evaluación de esta ficha. 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).

En la siguiente tabla se indican las horas asignadas a cada actividad formativa y su carácter presencial:

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 60 90

 

Subir

Evaluación

 

Resultados de
aprendizaje
Actividad de
evaluación
Peso (%) Carácter
recuperable
Nota mínima
requerida
RA1, RA3, RA4, RA5 Evaluación mediante un examen de los contenidos teórico/prácticos (problemas) de la asignatura de Programación, siguiendo los métodos sistemáticos de resolución de problemas explicados en la asignatura 50% Si 4,5
RA2, RA3, RA5, RA6, RA7 Evaluación de las prácticas de Programación mediante un exámen práctico de codificación de algoritmos y funciones en lenguaje C siguiendo las metodologías y normas de estilo explicadas en la asignatura 40% Si 4,5
RA2, RA3, RA5, RA6, RA7 Participación activa en las clases de prácticas evaluada mediante la entrega de informes de prácticas y mediante el control de firmas de asistencia 10% No --
         

 

Se realizarán dos exámenes para la evaluación de los contenidos Teórico/prácticos (N1), un examen para la evaluación de los contenidos Prácticos (N2), y se realizarán entregas de prácticas y control de asistencia para la evaluación de la Asistencia y participación activa en clase (N3). Todos los ejercicios de evaluación tendrán una nota entre 0 y 10 puntos. Para realizar la media ponderada de las notas, se exige que se obtenga una nota mínima de 4,5 puntos en N1, y de 4,5 puntos en N2. La nota final N se obtiene atendiendo al siguiente procedimiento

N = 0,5 x N1 + 0,4 x N2 + 0,1 x N3 si N1 >= 4,5 y N2 >= 4,5

N = mínimo (N1, N2) si N1 < 4,5 o N2 < 4,5

Superarán la asignatura, las y los estudiantes cuya nota final N sea mayor o igual a 5 puntos. Todos los exámenes son recuperables (90% de la nota final). La asistencia y participación activa en clase no es recuperable.

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.

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

Idiomas


Castellano

Subir

Lugar de impartición

Campus de Arrosadía

Subir