DESCRIPCIÓN DE LA ASIGNATURA
Doble Grado en:
Matemáticas e 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:
Luis Hernández Yañez
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
  • Introducción a la programación
    • Concepto de algoritmo
    • Conceptos básicos de sintaxis
    • Entornos de desarrollo
    • Edición, compilación y enlace
  • Tipos simples
    • Tipos de datos básicos
    • Tipo string
    • Variables, constantes, operadores y expresiones
    • Tipos enumerados
    • Conversiones de tipos
    • Entrada/salida por consola
  • Instrucciones
    • Asignación
    • Bloques de instrucciones
    • Condicional
    • Bucles
  • Ficheros
    • Entrada/salida con archivos de texto
  • Abstracción procedimental
    • Funciones predefinidas
    • Implementación de subprogramas. Prototipos
    • Parámetros y argumentos. Distinción de parámetros de salida y entrada/salida
    • Paso por valor/referencia (paso de parámetros de string). Referencias constantes
  • Tipos estructurados
    • Arrays unidimensionales de tipos simples
    • Esquemas de recorrido y búsqueda
    • Estructuras
    • Composición de arrays y estructuras
    • Arrays multidimensionales
PROGRAMA DETALLADO EN INGLÉS
  • Introduction to Programming
    • The concept of algorithm
    • Basic syntax concepts
    • Development environments
    • Editing, compiling, and linking
  • Simple Types
    • Basic data types
    • The string type
    • Variables, constants, operators, and expressions
    • Enumerated types
    • Type conversions
    • Console input/output
  • Statements
    • Assignment
    • Code blocks
    • Conditional statements
    • Loops
  • Files
    • Input/output with text files
  • Procedural Abstraction
    • Predefined functions
    • Implementing subprograms. Prototypes
    • Parameters and arguments. Distinguishing between output and input/output parameters
    • Passing by value/reference (passing string parameters). Constant references
  • Structured Types
    • One-dimensional arrays of simple types
    • Iteration and search schemes
    • Structures
    • Composition of arrays and structures
    • Multidimensional arrays
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.
Habilidades
  • 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.
  • 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.
Competencias

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%
  • Examen parcial: 15%
  • Actividades y pruebas prácticas: 15% (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 el parcial, 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
  • Beginning Programming with C++ for Dummies, S. R. Davis. John Wiley & Sons, 2014. (Disponible online).
  • Programming: Principles and Practice Using C++, B. Stroustrup. Pearson Education, 2009.
  • Programming with C++, B. L. Juneja, A. Seth. New Age International, 2009. (Disponible online).
  • C++: An Introduction to Computing (2nd Edition), J. Adams, S. Leestma, L. Nyhoff. Prentice Hall, 1998.
  • Programación y resolución de problemas con C++, N. Dale, C. Weems. Jones and Bartlett Publishers, 2010.
    Complementaria
  • Programación en C++ para ingenieros, F. Xhafa et al. Thomson, 2006.
  • El lenguaje de programación C++, B. Stroustrup, Addison Wesley, 2002.