FUNDAMENTOS DE PROGRAMACIÓN
GRADO EN INGENIERÍA INFORMÁTICA EN SISTEMAS DE INFORMACIÓN
Curso 2023/2024
1. Datos de la asignatura
(Fecha última modificación: 05-07-23 10:06)- Código
- 105903
- Plan
- ECTS
- 6.00
- Carácter
- BÁSICA
- Curso
- 1
- Periodicidad
- Primer Semestre
- Idioma
- ESPAÑOL
- Área
- LENGUAJES Y SISTEMAS INFORMÁTICOS
- Departamento
- Informática y Automática
- Plataforma Virtual
Datos del profesorado
- Profesor/Profesora
- María Luisa Pérez Delgado
- Grupo/s
- 1
- Centro
- E. Politécnica Superior de Zamora
- Departamento
- Informática y Automática
- Área
- Lenguajes y Sistemas Informáticos
- Despacho
- Despacho 216. Edificio Administrativo
- Horario de tutorías
- Ver en : https://politecnicazamora.usal.es/estudiantes/#informacion-academica
- URL Web
- https://cimet.usal.es/investigadores/mlpd.html
- mlperez@usal.es
- Teléfono
- 923294500 Ext.3696
- Profesor/Profesora
- David Gómez García
- Grupo/s
- 1
- Centro
- E. Politécnica Superior de Zamora
- Departamento
- Informática y Automática
- Área
- Lenguajes y Sistemas Informáticos
- Despacho
- Despacho 224. Edificio Administrativo
- Horario de tutorías
- Ver en : https://politecnicazamora.usal.es/estudiantes/#informacion-academica
- URL Web
- -
- dgomez75@usal.es
- Teléfono
- -
2. Sentido de la materia en el plan de estudios
Bloque formativo al que pertenece la materia.
Es una materia básica/obligatoria.
Papel de la asignatura.
Esta asignatura forma parte de la materia Programación. Su objetivo es presentar los fundamentos de la programación estructurada y aprender a utilizar un lenguaje de programación concreto.
Perfil profesional.
La asignatura está orientada a estudiantes de la rama de Ingeniería y Arquitectura, para que conozcan los elementos básicos de un lenguaje de programación y aprendan a manejar un lenguaje concreto.
3. Recomendaciones previas
4. Objetivo de la asignatura
• Establecer los fundamentos de diseño de programas basados en la descomposición modular y la programación estructurada, introduciendo de forma sistemática y progresiva una correcta metodología para la programación de computadoras.
• Describir las etapas del ciclo de vida del software, ubicando y haciendo especial énfasis en la descripción de las etapas de diseño de algoritmos, codificación y prueba.
• Analizar el concepto de algoritmo y su utilidad en la resolución de problemas, presentando técnicas de diseño y representación de algoritmos.
• Describir la documentación básica que debe acompañar a un programa.
• Introducir al alumno en el conocimiento del lenguaje de programación C, como herramienta para la codificación, depuración y prueba de programas, de manera que sea capaz de implementar en dicho lenguaje los algoritmos diseñados previamente y de este modo completar adecuadamente el proceso de desarrollo de programas.
• Dotar al alumno de los fundamentos lógicos necesarios para analizar, diseñar, codificar, depurar, probar y documentar un programa.
5. Contenidos
Teoría.
Bloque I. Introducción.
Tema 1: Descripción general de un ordenador.
Tema 2: Lenguajes de programación.
Bloque II. Algoritmos y programas en el proceso de resolución de problemas.
Tema 3: Algoritmos: objetivo y representación.
Tema 4: Programas.
Bloque III. Elementos de programación estructurada.
Tema 5: Tipos de datos, operadores y expresiones.
Tema 6: Estructuras de control.
Tema 7: Subprogramas.
Tema 8: Estructuras de datos simples.
Tema 9: Ficheros.
Tema 10: Punteros y variables dinámicas.
Práctica.
Bloque I: Lenguaje C
Tema 1- Introducción al lenguaje C
Tema 2- Fases del desarrollo de un programa escrito en C
Tema 3- Tipos de datos básicos, constantes y variables
Tema 4- Operadores y expresiones
Tema 5- Estructuras de control
Tema 6- Funciones
Tema 7- Tipos de datos compuestos
Tema 8- Trabajo con ficheros
Tema 9- Punteros y memoria dinámica
Bloque II: Representación de algoritmos
Se realizarán ejercicios de representación de algoritmos a medida que se vaya avanzando en los temas de teoría.
6. Competencias a adquirir
Básicas / Generales.
CB 04. Conocimientos básicos sobre el uso y programación de los ordenadores.
CB 05. Conocimiento de los fundamentos de la programación de los sistemas informáticos y su aplicación para la resolución de problemas propios de la ingeniería.
Específicas.
• CE001: Conocimientos básicos sobre la programación de los ordenadores.
• CE002: Conocimiento de los fundamentos de la programación de los sistemas informáticos, y su aplicación para la resolución de problemas propios de la ingeniería.
Transversales.
CT 01. Capacidad de organización, gestión y planificación del trabajo.
CT 02. Capacidad de análisis, crítica y síntesis.
CT 04. Capacidad para comprender y elaborar modelos abstractos a partir de aspectos particulares.
CT 05. Capacidad de toma de decisiones.
CT 09. Capacidad de comunicación, tanto oral como escrita, de conocimientos, ideas, procedimientos, y resultados, en lengua nativa.
CT 10. Capacidad de integración en grupos de trabajo unidisciplinares o multidisciplinares.
CT 11. Aprendizaje autónomo.
7. Metodologías
• Clases magistrales para describir los aspectos fundamentales de los contenidos teóricos y prácticos de la asignatura.
• Clases de problemas para aplicar los conceptos teóricos a ejemplos concretos.
• Aula virtual, que pone a disposición del alumnado recursos y actividades relacionados con la asignatura.
• Trabajos individuales para que el alumnado pueda ejercitarse en la aplicación práctica de los contenidos tratados en la asignatura.
• Trabajos en equipo.
8. Previsión de Técnicas (Estrategias) Docentes
9. Recursos
Libros de consulta para el alumno.
• ANTONAKOS, J.L., MANSFIELD, K.C. (2002), Programación estructurada en C. Prentice Hall.
• CASTRO, J., CUCKER, F., MESEGUER, X., RUBIO, A., SOLANO, A. VALLES, B. (1993), Curso de programación. McGraw Hill.
• CEBALLOS, F.J. (2001), Curso de programación C/C++. RA-MA.
• GARCÍA, F., CALDERÓN, A., CARRETERO, J., FERNÁNDEZ, J., PÉREZ, J.M. (2002), Problemas resueltos de programación en C. Paraninfo.
• GARCÍA, F., CARRETERO, J., FERNÁNDEZ, J., CALDERÓN, A. (2002), El lenguaje de programación C. Diseño e implementación de programas. Prentice Hall.
• GOTTFRIED, B. (1997), Programación en C. McGraw Hill.
• JOYANES AGUILAR, L. (2003), Fundamentos de programación. Algoritmos, estructuras de datos y objetos. McGraw Hill.
• JOYANES AGUILAR, L., RODRÍGUEZ BAENA, L., FERNÁNDEZ AZUELA, M. (2003), Fundamentos de programación. Algoritmos y estructuras de datos. Libro de problemas. McGraw Hill.
• KERNIGHAN, B.W., PIKE, R. (2000), La práctica de la programación. Prentice Hall.
• KERNIGHAN, B.W., RITCHIE, D.M. (1991), El lenguaje de programación C. Prentice Hall.
• LLANOS FERRARIS, D.R. (2001), Curso de C bajo Unix. Paraninfo.
• PÉREZ DELGADO, M.L. (2004), Programación en lenguaje C. Ediciones Universidad de Salamanca.
• PRESSMAN, R.S. (2001), Ingeniería del software. Un enfoque práctico. McGraw Hill.
• QUERO CATALINAS, E. (2003), Fundamentos de programación. Paraninfo.
• SCHILDT, H. (2001), C, manual de referencia. McGraw Hill.
Otras referencias bibliográficas, electrónicas o cualquier otro tipo de recurso.
Dentro de la plataforma Studium se incluirán enlaces actualizados a contenidos.
10. Evaluación
Criterios de evaluación.
Se utilizará el sistema de calificaciones vigente (RD 1125/2003) artículo 5º. Los resultados obtenidos por el alumno o alumna en cada una de las materias del plan de estudios se calificarán en función de la siguiente escala numérica de 0 a 10, con expresión de un decimal, a la que podrá añadirse su correspondiente calificación cualitativa: 0 - 4,9: Suspenso (SS), 5,0 - 6,9: Aprobado (AP), 7,0 - 8,9: Notable (NT), 9,0 - 10: Sobresaliente (SB).
La mención de Matrícula de Honor podrá ser otorgada a alumnos o alumnas que hayan obtenido una calificación igual o superior a 9,0. Su número no podrá exceder del 5% del alumnado matriculado en una asignatura en el correspondiente curso académico, salvo que el número de alumnos y alumnas matriculados sea inferior a 20, en cuyo caso se podrá conceder una sola Matrícula de Honor.
Se tendrá en cuenta el Reglamento de Evaluación de la Universidad de Salamanca.
Instrumentos de evaluación.
El alumnado dispone de dos convocatorias para superar la asignatura.
PRIMERA CONVOCATORIA:
La evaluación se realizará teniendo en cuenta:
A— Exámenes escritos teórico-prácticos.
- Se realizarán durante las horas de clase, en fechas que tendrán en cuenta la opinión de los alumnos y la disponibilidad de aulas para realizar las pruebas correspondientes.
- Cada examen se centrará en un bloque de la materia, que dependerá de los temas tratados hasta el momento de la prueba.
B— Examen final.
- Se realizará en la fecha fijada en la guía académica para el examen de primera convocatoria (que el alumnado puede conocer cuando se matricula).
- Incluirá una parte sobre los contenidos teóricos de la asignatura y otra sobre los prácticos.
- La prueba se realizará en papel.
- La prueba teórica incluirá preguntas cortas o tipo test sobre los contenidos fundamentales tratados en la materia.
- La prueba práctica incluirá ejercicios que el alumnado debe resolver, según se proponga, utilizando el lenguaje de programación C y las técnicas de representación de algoritmos analizadas en clase.
- La nota final del examen se calcula como media de las notas de ambas partes. Sin embargo, es necesario alcanzar un mínimo de 3.25 puntos sobre 10 en cada parte para poder hacer media. De no alcanzarse dicho mínimo, la nota asignada a la persona en el examen será la correspondiente a la parte que no ha llegado a los 3.25 puntos (valorando dicha parte sobre 10).
Nota de la asignatura en primera convocatoria: se calcula como media ponderada de las notas obtenidas en las actividades A y B, considerando los siguientes pesos: 35% el apartado A y 65% el B.
SEGUNDA CONVOCATORIA:
Se realizarán pruebas escritas de recuperación para los alumnos que no superen la asignatura.
- Se realizará en la fecha fijada en la guía académica para el examen de segunda convocatoria (que el alumnado puede conocer cuando se matricula).
- Incluirá una parte sobre los contenidos teóricos de la asignatura y otra sobre los prácticos.
- La prueba se realizará en papel.
- La prueba teórica incluirá preguntas cortas o tipo test sobre los contenidos fundamentales tratados en la materia.
- La prueba práctica incluirá ejercicios que el alumnado debe resolver, según se proponga, utilizando el lenguaje de programación C y las técnicas de representación de algoritmos analizadas en clase.
- La nota final del examen se calcula como media de las notas de ambas partes. Sin embargo, es necesario alcanzar un mínimo de 3.25 puntos sobre 10 en cada parte para poder hacer media. De no alcanzarse dicho mínimo, la nota asignada a la persona en el examen será la correspondiente a la parte que no ha llegado a los 3.25 puntos (valorando dicha parte sobre 10).
Nota de la asignatura en segunda convocatoria: La obtenida en el examen.
Se considera No presentado al alumno que no ha realizado ningún examen ni prueba propuesta para evaluar la asignatura.
Se considera Suspenso al alumno que, habiendo realizado algún examen o presentado algún trabajo, no llega a la nota mínima para superar la asignatura.
Recomendaciones para la evaluación.
Se recomienda al alumno realizar un trabajo continuado sobre la materia, lo que garantizará los mejores resultados.
Recomendaciones para la recuperación.
Se recomendará al alumno incidir en los aspectos que ha trabajado menos durante el curso.