TSU “Programación” | Instituto FOC - FP Informática Online
¡Más de 30 años formando profesionales TIC!

Presentación:

Establecer las estructuras de datos necesarias para almacenar la información que luego será tratada por los diferentes algoritmos.

Explicar los conocimientos teóricos necesario para cualquier tipo de programación informática. Se estudian algoritmos de recorrido de estructuras de datos lineales y no lineales, algoritmos de clasificación y búsqueda, junto con técnicas de backtracking y hashing.

Introduce al alumno en programación paralela. Veremos los distintos modelos tradicionales de programación paralela, así como los últimos desarrollos de arquitecturas masivamente paralelas.

Destinatarios:
  • Alumnos que estén cursando 1º o 2º del Ciclo Superior de Administración de Sistemas Informáticos en Red.
  • Alumnos que hayan finalizado sus estudios del Ciclo Superior de Administración de Sistemas Informáticos en Red.
  • Profesionales que quieran ampliar sus conocimientos en el campo de la Informática.
  • Universitarios de cualquier grado.
Salidas Profesionales:
  • Programador de aplicaciones multiplataforma / web.
  • Diseñador de sitios web.
  • Administrador de bases de datos.
  • Técnico de soporte.
  • Experto en usabilidad.
  • Consultor informático.
  • Especialista SEO
Plan de Estudios (Distribución de módulos por Créditos ECTS):
Asignatura Créditos
Fundamentos de programación I 4.5 ECTS
Fundamentos de programación II 4.5 ECTS
Algoritmia 4.5 ECTS
Breve descripción de la asignatura:

Esta asignatura establece los principios básicos de la programación. Permite al alumno familiarizarse con conceptos como algoritmos, lenguajes de programación, variables, programación estructurada y a construir programas básicos con funcionalidades muy concretas. Establece las bases en las que se sustentarán el resto de asignaturas de esta área de conocimiento.

Objetivos de la asignatura:
  • Adquirir los conocimientos básicos sobre programación.
  • Desarrollar programas aplicando técnicas de programación estructurada y usando los  elementos que los entornos de desarrollo proporcionan.
  • Elaborar  interfaces de usuario que cumplan los requisitos dados.
  • Conocer el lenguaje de programación C como lenguaje de programación estructurada.
  • Usar  las librerías más importantes de C y saber desarrollar librerías nuevas.
  • Evaluar y desarrollar escenarios de prueba para comprobar el correcto funcionamiento de los programas.
Temario:

Tema 1. Introducción a la Programación.

  • Programa.
  • Lenguaje de Programación.
  • Compilador.
  • Algoritmo.
  • Pseudocódigo.

Tema 2. Conceptos básicos de C.

  • Estructura de un programa en C.
  • Elementos de un programa en C.
  • Comentarios.
  • Concepto de variable e inicialización de variables.
  • Concepto de constante e inicialización de constantes.
  • Identificadores y palabras reservadas.

Tema 3. Entrada/Salida Formateada.

  • La función Printf.
  • La función Scanf.

Tema 4. Tipos de Datos.

  • Variables:
    • Enteros.
    • Coma flotante (reales).
    • Caracteres.
    • Booleanos.
  • Constantes

Tema 5. Conversión de Tipos de Datos.

  • Conversiones de tipos:
    • Implícitas (Reglas).
    • Explícitas (Casting).
  • Definiciones de tipos: typedef.
  • El operados sizeof

Tema 6. Operadores y expresiones.

  • Expresiones.
  • Operadores aritméticos.
  • Precedencia de operadores. Asociatividad.
  • Asignación. Asignación compuesta.
  • Operadores de incremento y decremento.
  • Evaluación de expresiones. Orden.
  • Expresiones como sentencias.

Tema 7. Control de flujo: Selección.

  • Estructuras de control.
  • Expresiones lógicas.
  • Operadores relacionales.
  • Operadores lógicos.
  • Evaluación de expresiones.
  • La sentencia if.
  • Expresiones condicionales.
  • Tipo de datos booleano.
  • La sentencia switch.

Tema 8. Control de flujo: Iteración.

  • La sentencia while.
  • La sentencia do.
  • La sentencia for.
  • Saliendo de un bucle: break y continue.
  • Saliendo de un bucle: goto.
  • La sentencia Null (nula).

Tema 9. Funciones.

  • Definiendo una función.
  • Llamadas a funciones.
  • Argumentos y parámetros.
  • Declaración de funciones.
  • Paso de parámetros por valor y por referencia.
  • Conversión de argumentos.
  • La sentencia return.
  • Terminación del programa.

Tema 10. Recursividad.

  • Definición de recursividad.
  • Condiciones en la recursividad.
  • Ventajas e inconvenientes.
  • Ejemplos y ejecución.

Tema 11. Arrays.

  • Arrays unidimensionales.
  • Indexación de elementos.
  • Inicialización de arrays.
  • Arrays y el operador sizeof.
  • Arrays multidimensionales.
  • Arrays constantes.
  • Arrays de tamaño variable .
  • Arrays como argumentos.

Tema 12. Cadenas.

  • Cadenas literales o constantes.
  • Almacenamiento de cadenas.
  • Inicialización.
  • Arrays de caracteres. Punteros.
  • Leer y escribir cadenas.
  • La librería estándar string.h.
  • Arrays de cadenas.
  • Argumentos en la línea de comandos.

Tema 13. Estructuras.

  • Estructuras.
    • Operaciones sobre estructuras.
    • Tipos estructura.
    • Estructuras y funciones.
    • Estructuras y punteros.
    • Combinando arrays y estructuras.
  • Enumeraciones.
  • Typedef.
Breve descripción de la asignatura:

Esta asignatura es la continuación de Fundamentos de programación I. Se centra en establecer las estructuras dinámicas de datos necesarias para almacenar la información que luego será tratada por los diferentes algoritmos.

Objetivos de la asignatura:
  • Conocer e identificar las principales estructuras de datos, tanto lineales como no lineales, incluidas aquellas que se establecen en memoria secundaria.
  • Realizar programas avanzados con tipos abstractos de datos.
  • Calcular la complejidad algorítmica de un determinado código.
Temario:

Tema 1. Ficheros.

  • Librería estándar de C.
  • Operaciones básicas con ficheros: Apertura, lectura, escritura, renombrado, borrado y cierre.
  • Ficheros de texto.
  • Ficheros binarios. Posicionamiento.

 Tema 2. Punteros.

  • Definición.
  •  Declaración de punteros.
  •  Operadores.
    • El operador referencia: &
    • El operador indirección: *
  •  Asignación de punteros.
  •  Punteros como argumentos.
  •  Proteger argumentos.
  • Devolver punteros.

Tema 3. Punteros y arrays.

  • Aritmética de punteros.
  • Uso de punteros para el procesamiento de arrays.
  • Uso del nombre de array como puntero.
  • Arrays como argumentos.
  • Punteros y arrays multidimensionales.

Tema 4. Programación modular y documentación de código fuente

  • Programación modular en C
    • Archivos de cabecera
    • Archivos de implementación
    • Variables globales
  • Documentación de código en C
    • Introducción a Doxygen
    • Añadir comentarios al código
    • Generación automática de documentación

Tema 5. Listas.

  • Listas versión estática
  • Lista versión cursor.
  • Listas dinámicas
    • Lista simple con cabecera
    • Lista simple sin cabecera
    • Lista circular
    • Lista doblemente enlazada
    • Lista circular doblemente enlazada

Tema 6. Pilas.

  • Versión estática.
  • Versión dinámica.

Tema 7. Colas.

  • Versión estática.
  • Versión dinámica.

Tema 8. Árboles.

  • Estructuras dinámica.
  •  Recorrido.
    • Previo.
    • Simétrico
    • Posterior.
  • Operaciones básicas:
    • Insertar
    • Pertenece
    • Encontrar
    • Padre de
    • Borrar

Tema 9. Grafos.

  • Versión estática.
  • Versión dinámica.
  • Algoritmos sobre grafos:
    • Dijkstra.
    • Floyd.
    • Warshall.

Tema 10. Complejidad.

  • Conceptos básicos.
  • Notaciones asintóticas.
  • Ecuaciones de recurrencia.
Breve descripción de la asignatura:

La asignatura de Algoritmia se basa fundamentalmente en explicar los conocimientos teóricos  necesarios para cualquier tipo de programación informática. Con estos conocimientos, el alumno tendrá las herramientas necesarias para encontrar soluciones a diferentes tipos de problemas mediante programación software. En particular, se estudiarán algoritmos de recorrido de estructura de datos lineales y no lineales, algoritmos de clasificación y búsqueda, y técnicas de backtracking y hashing.

Objetivos de la asignatura:
  • Que el alumno comprenda el esquema de funcionamiento de los algoritmos más importantes de clasificación, búsqueda, backtracking y hashing.
  • Que el alumno sea capaz de aplicar soluciones óptimas para la resolución de problemas utilizando algoritmos adecuados
  • Que el alumno sepa desarrollar aplicaciones informáticas aplicando el algoritmo correcto para un problema, es decir, que sea capaz de seleccionar un algoritmo de búsqueda, clasificación, backtracking o hashing, dependiendo del problema a resolver
  • Que el alumno sea capaz de detectar las importantes diferencias que se pueden obtener, en términos de rendimiento temporal, entre algoritmos aparentemente equivalentes en cuanto a su resultado.
Temario:

Tema 1. Algoritmos de búsqueda.

  • Búsqueda lineal
  • Búsqueda binaria
  • Búsqueda en árboles binarios balanceados (AVL)
  • Búsqueda de patrones (Fuerza bruta, KMP, BM)

Tema 2. Algoritmos de clasificación y ordenación.

  • Algoritmo de la burbuja
  • Algoritmo de inserción
  • Algoritmo de selección
  • Algoritmo Shell Short
  • Algoritmo Bucket Sort
  • Algoritmo Quick Sort
  • Algoritmo de mezcla directa
  • Algoritmo de mezcla natural

Tema 3. Backtracking: Algoritmos de vuelta atrás.

  • Concepto de backtracking
  • Programación con backtracking
  • Ejemplos de algoritmos de backtracking
  • Optimización: Branch and bound

Tema 4. Métodos de almacenamiento y búsqueda mediante cálculo de dirección basado en clave (hashing).

  • Introducción
  • Colisiones y alternativas para su solución
  • Borrado de elementos en tablas hash
  • Reordenamiento en tablas hash
  • Eficiencia de algoritmos hash

 Infórmate

¿Necesitas ayuda?