DESCRIPCIÓN DE LA ASIGNATURA
- Grado en:
- Ingeniería Informática
- Asignatura:
- Fundamentos de la programación
- Asignatura en inglés:
- Fundamentals of Programming
- Curso y cuatrimestre:
- 1º (1er Cuatrimestre)
- ECTS:
- 6
- Tipología:
- Básica
- Idioma de impartición:
- Español
- Módulo:
- Materias básicas
- Materia:
- Informática
- Departamentos:
- Ingeniería del Software e Inteligencia Artificial, Sistemas Informáticos y Computación
- Coordinador:
- Pendiente de asignación
CONTENIDOS MÍNIMOS
- Tipos simples
- Instrucciones (asignación, condicional, bucles)
- Abstracción procedimental
- Tipos estructurados (arrays de una o más dimensiones, registros)
- Ficheros
PROGRAMA DETALLADO
- Computadoras y programación: Introducción a la Informática. Repaso histórico. La programación como resolución de problemas. Concepto de algoritmo. Lenguajes de programación. Sintaxis de los lenguajes. Introducción a la ingeniería del software. Entornos de desarrollo.
- Tipos e instrucciones I: Elementos del programa. Edición, compilación y enlace. Errores. Datos de los programas. Entrada/salida por consola. Valores literales y variables. Identificadores. Tipos de datos básicos. Constantes. La asignación. Datos y memoria. Operadores y expresiones. Funciones predefinidas. Instrucciones. Bloques de instrucciones. Selección e iteración. Funciones definidas por el programador.
- Tipos e instrucciones II: Más sobre los tipos de datos básicos. Tipos enumerados. Conversiones de tipos. Entrada/salida con archivos de texto. Instrucciones de selección. Más sobre condiciones. Instrucciones de iteración: bucles con número de iteraciones predeterminado; bucles condicionados. Secuencias. Esquemas de recorrido y búsqueda. Arrays de datos simples.
- La abstracción procedimental: Diseño descendente. Forma general de una función. Parámetros. Tipos de parámetros. Paso por valor/referencia. Argumentos. Declaración de la función. Prototipos. Modelo de ejecución. Resultado de la función.
- Tipos de datos estructurados: Colecciones homogéneas. Arrays unidimensionales y cadenas de caracteres. Colecciones heterogéneas. Composición de arrays y estructuras.
PROGRAMA DETALLADO EN INGLÉS
- Computers and Programming: Introduction to Computer Science. A little history. Programming as a problem-solving task. The concept of algorithm. Programming languages. Language syntax. Introduction to software engineering. Development environments.
- Types and Instructions I: Program elements. Editing, compiling and linking. Errors. Program data. Console in-put/output. Literal values and variables. Identifiers. Basic data types. Constants. Assign-ment. Data and memory. Operators and expressions. Predefined functions. Instructions. Code blocks. Selection and iteration. User-defined functions.
- Types and Instructions II: More about basic data types. Enumerated types. Type conversions. Input/output with text files. Selection instructions. More about conditions. Iteration instructions: loops with a fixed number of iterations; conditional loops. Sequences. Traversal and search schemes. Simple data arrays.
- Procedural Abstraction: Descendent design. General form of a subprogram. Parameters. Parameter types. Pass by value/reference. Arguments. Subprogram declaration. Prototypes. Execution model. The functions return a result.
- Structured Data Types: Homogeneous collections. One-dimensional arrays and character strings. Heterogeneous collections. Composition. Variable length lists.
RESULTADOS DE APRENDIZAJE
Conocimientos
- Al finalizar el aprendizaje, el o la estudiante será capaz de demostrar conocimiento básico de las diferentes subdisciplinas de la ingeniería informática y de las técnicas básicas y conocimientos de estas para la integración en equipos multidisciplinares como profesional generalista en ingeniería informática.
- Al finalizar el aprendizaje, el o la estudiante será capaz de identificar los algoritmos, estructuras de datos, paradigmas de la programación, lenguajes y las prácticas de ingeniería del software más adecuados para asegurar la fiabilidad, seguridad y calidad de aplicaciones en problemas que requieran una solución informática.
- Al finalizar el aprendizaje, el o la estudiante será capaz de analizar las necesidades en algorítmica, complejidad computacional, programación, sistemas operativos, bases de datos, estructura, arquitectura e interconexión de sistemas informáticos necesarios para la resolución de problemas de ciencias e ingeniería, de acuerdo con los principios de calidad, fiabilidad y seguridad necesarios y dentro del marco institucional y jurídico de la empresa.
No tiene
ACTIVIDADES FORMATIVAS
Presenciales
Actividad
Horas
CTM - Clases teóricas magistrales
30
AEV - Actividades de evaluación
5
CL - Clases de laboratorio
30
Totales
65
No Presenciales
Actividad
Horas
TPN - Trabajo personal no dirigido
90
Totales
90
EVALUACIÓN DETALLADA
La calificación se compondrá de varias calificaciones parciales de las distintas tareas llevadas a cabo por el estudiante. A continuación se indican los porcentajes del peso de cada actividad en la calificación final en ambas convocatorias (ordinaria y extraordinaria):
- Examen final (ordinario/extraordinario): 70%
- Actividades y pruebas prácticas: 30% (a determinar por cada profesor) Para poder aprobar en cualquier convocatoria se requerirá al menos una calificación de 5 sobre 10 en el examen final. Dado que las actividades y pruebas prácticas se realizan a lo largo del cuatrimestre, su calificación es usada en ambas convocatorias, sin que haya posibilidad de recuperarlas en convocatoria extraordinaria.
BIBLIOGRAFÍA
- Recomendada
- R.P. Grimaldi; Matemáticas discreta y Combinatoria. Una introducción con aplicaciones. Pearson Educación, 3ª edición,1998
- Abad Cardiel, I., Cerrada Somolinos, J. A., Collado Machuca, M. E., & Heradio Gil, Rubén. (2011). Prácticas de programación en C±. Editorial Universitaria Ramón Areces.
- C++: An Introduction to Computing. 2ª edición. J. Adams, S. Leestma, L. Nyhoff. Prentice Hall, 1998.
- Xhafa, F. (2006). Programacion en C++ para ingenieros. Thomson.
- Complementaria
No tiene