Fundamentos de Programación

Unidad Didáctica I


TEMA 1. INTRODUCCIÓN

  • Máquinas y programas.
  • Programación e ingeniería de software.
  • Lenguajes de programación.
  • Compiladores e Intérpretes.
  • Modelos abstractos de cómputo.
  • Elementos de la programación imperativa.
  • Evolución de la programación.


TEMA 2. ELEMENTOS BÁSICOS DE LA PROGRAMACIÓN          Resumen

  • Lenguaje C±.
  • Notación BNF.
  • Valores y tipos.
  • Representación de valores constantes.
  • Tipos predefinidos.
  • Expresiones aritméticas.
  • Operaciones de escritura simple.
  • Estructura de un programa completo.


TEMA 3. CONSTANTES Y VARIABLES          Resumen

  • El vocabulario de C±.
  • Identificadores.
  • Constantes.
  • Variables.
  • Operaciones de lectura simple.
  • Estructura de un programa con constantes y variables.


TEMA 4. METODOLOGÍA DE DESARROLLO DE PROGRAMAS (I)

  • La Programación como resolución de problemas.
  • Descomposición de un problema en subproblemas.
  • Desarrollo de programas por refinamientos sucesivos.
  • Aspectos de estilo.


TEMA 5. ESTRUCTURAS BÁSICAS DE LA PROGRAMACIÓN IMPERATIVA          Resumen

  • Programación estructurada.
  • Expresiones condicionales.
  • Estructuras básicas en C±.


TEMA 6. METODOLOGÍA DE DESARROLLO DE PROGRAMAS (II)          Resumen

  • Desarrollo con esquemas de selección e iteración.
  • Ejemplos de desarrollo con esquemas.
  • Verificación de programas.
  • Eficiencia de programas. Complejidad algorítmica.



Unidad Didáctica II


TEMA 7. FUNCIONES Y PROCEDIMIENTOS

  • Concepto de subprograma.
  • Funciones.
  • Procedimientos.
  • Paso de argumentos.
  • Visibilidad. estructura de bloques.
  • Recursividad de subprogramas.
  • Problemas en el uso de subprogramas.


TEMA 8. METODOLOGÍA DE DESARROLLO DE PROGRAMAS (III)          Resumen

  • Operaciones abstractas.
  • Desarrollo por refinamiento usando abstracciones.
  • Programas robustos.


TEMA 9. DEFINICIÓN DE TIPOS          Resumen

  • Tipos definidos.
  • Tipos enumerados.
  • Tipo predefinido bool.
  • Tipos estructurados.
  • Tipo formación y su necesidad.
  • Tipo vector.
  • Vector de caracteres: Cadena (String).
  • Tipo tupla y su necesidad.
  • Tipo registro (struct).


TEMA 10. AMPLIACIÓN DE ESTRUCTURAS DE CONTROL

  • Estructuras complementarias de iteración.
  • Estructuras complementarias de selección.
  • Equivalencia entre estructuras.


TEMA 11. ESTRUCTURAS DE DATOS

  • Argumentos de tipo vector abierto.
  • Formaciones anidadas. Matrices.
  • El esquema unión.
  • Esquemas de datos y esquemas de acciones.
  • Estructuras combinadas.



Unidad Didáctica III


TEMA 12. ESQUEMAS TÍPICOS DE OPERACIÓN CON FORMACIONES

  • Esquema de recorrido.
  • Búsqueda secuencial.
  • Inserción.
  • Ordenación por inserción directa.
  • Búsqueda por dicotomía.
  • Simplificación de las condiciones de contorno.


TEMA 13. PUNTEROS Y VARIABLES DINÁMICAS

  • Estructuras de datos no acotadas.
  • La estructura secuencia.
  • Variables dinámicas.
  • Realización de secuencias mediante punteros.
  • Punteros y paso de argumentos.
  • Punteros y vectores en C y C++.


TEMA 14. TIPOS ABSTRACTOS DE DATOS

  • Concepto de tipo abstracto de datos (TAD).
  • Realización de tipos abstractos en C±.
  • Metodología de desarrollo basada en abstracciones.


TEMA 15. MÓDULOS

  • Concepto de módulo.
  • Módulos en C±.
  • Desarrollo modular basado en abstracciones.