Estructura del curso
De Wiki del curso de C
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.