Estructura del curso

De Wiki del curso de C
Saltar a: navegación, buscar

El curso viene estructurado en dos módulos.

Módulo 1. Fundamentos

a) Introducción al lenguaje C

  • Un poco de historia: Desde 1972 hasta hoy día.
  • Proyectos de referencia: el núcleo de Linux, el navegador web Firefox, el servidor web Apache, la interfaz web cgit, el toolkit gráfico GTK, en NDK de Android y el juego Doom.
  • Por qué y para qué el lenguaje C.
  • Características de C.
  • Bibliografía recomendada.

b) Ejemplo 1: ¡Hola mundo!

  • El compilador GNU cc.
  • Los #includes.
  • La biblioteca estándar de C (libc)
  • Introducción a las funciones en C.
  • Definición y uso de funciones.
  • Compilando y configurando un proyecto a través de scripts. (autoconf/automake).
  • Introducción al gestor de versiones GIT y el editor de texto vim.

c) Ejemplo 2: clase "gestor de tareas".

  • Creación de objeto con malloc.
  • Liberación de objetos con free.
  • Impresión por pantalla.
  • Acceso a campos de las estructuras.

d) Ejemplo 3: errores clásicos y depurando con Valgrind.

  • Segfaults.
  • Acceso a punteros inválidos.
  • Fugas de memoria.
  • Corrupciones de memoria.
  • Valgrind: En qué puede ayudarnos.

e) Ejemplo 4: arrays.

  • Declaración, acceso y usos.

f) Ejemplo 5: listas.

  • Estructura list_head.
  • Añadir elementos a la lista con list_add.
  • Eliminar elementos de la lista con list_del.
  • Referencias a elementos de una lista (&).

g) Ejemplo 6: paso de argumentos al programa y tratamiento.

  • Los parámetros argc y argv y la función getopt_long.

h) Ejemplo 7: E/S por ficheros.

  • Abrir y cerrar ficheros.
  • Lectura y escritura de caracteres en fichero.
  • Lectura y escritura de cadenas en un fichero.
  • Las funciones fprintf(), fwrite() y fread().

Módulo 2. Usando bibliotecas libres

a) GTK: Biblioteca para crear la interfaz gráfica de una aplicación.

  • Introducción: Historia y software necesario.
  • Ejemplo 1: Creación de widgets, ventanas, botones, etiquetas y contenedores.
  • Ejemplo 2: Creación de widget con uso de menús. Uso de menus. Uso de Toolbars.

b) Libjansson (JSON): Biblioteca para exporta e importar datos en formato JSON.

  • Introducción: Historia, tipos de objetos y software necesario.
  • Estructura estandar de JSON.
  • Ejemplo 1: Procesado, recorrido e impresión de un arbol sencillo.
    • Uso de funciones para procesar cadenas.
    • Uso de funciones para recorrer el arbol.
  • Impresión del contenido del arbol.
  • Ejemplo 2: Procesado, recorrido e impresión de arboles con listas.
  • Ejemplo 3: Lectura y escritura de ficheros en formato JSON.
  • Ejemplo 4: Herramientas para validar la estructura de JSON.

c) Libev: Biblioteca para manejar eventos

  • Introducción.
  • Manejo de eventos y sockets
  • Ejemplo: Servidor que acepte y reciba conexiones a partir de eventos.

d) Libsqlite: Biblioteca para uso de bases de datos sqlite.

  • Introducción.
  • Ejemplo 1: Conexión con una base de datos y creación de una tabla.
  • Ejemplo 2: Añadir, borrar y actualizar datos en una base datos.