Diferencia entre revisiones de «II Curso de programación en C moderno»

De Wiki del curso de C
Saltar a: navegación, buscar
m
(contenido y más info)
Línea 32: Línea 32:
 
** 06/05/16 de 16:00 a 18:30
 
** 06/05/16 de 16:00 a 18:30
 
** 13/05/16 de 16:00 a 18:30
 
** 13/05/16 de 16:00 a 18:30
 +
 +
 +
= Contenido del curso =
 +
 +
'''MÓDULO 1'''
 +
# 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.
 +
# 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.
 +
# 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.
 +
# 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.
 +
# Ejemplo 4: arrays
 +
#* Declaración, acceso y usos.
 +
# 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 (&).
 +
# Ejemplo 6: paso de argumentos al programa y tratamiento
 +
#* Los parámetros argc y argv y la función getopt_long.
 +
# 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'''
 +
# 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.
 +
# Libjansson (JSON): Biblioteca para exporta e importar datos en formato JSON.
 +
#* Introducción: Historia, tipos de objetos y software necesario.
 +
#* Estructura estándar 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 árbol.
 +
#* Impresión del contenido del árbol.
 +
#* 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.
 +
# Libev: Biblioteca para manejar eventos
 +
#* Introducción.
 +
#* Manejo de eventos y sockets
 +
#* Ejemplo: Servidor que acepte y reciba conexiones a partir de eventos.
 +
# 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.
 +
 +
= Más información =
 +
Para más información puedes consultar la [http://www.cfp.us.es/cursos/fc/programacion-en-c-moderno/2729/ web del Centro de Formación Permanente] o contactar por email: '''carlosfg <AT> riseup <DOT> com'''
  
 
= Ediciones anteriores =
 
= Ediciones anteriores =
  
 
* [[I Curso de programación en C moderno]]
 
* [[I Curso de programación en C moderno]]

Revisión del 19:30 19 ene 2016

Bienvenid@ al wiki del II Curso de programación en C.

Este curso ofrecerá una visión moderna de la programación en C, partiendo de los estándares de C99 y C11. Se realizará siempre un enfoque práctico. Es por ello que el curso introducirá al estudiante en el uso de las bibliotecas nativas en C de referencia para el desarrollo de software en entornos gráficos, red, importación/exportación de datos de ficheros y bases de datos.

Matrícula y preinscripción

  • Preinscripción: Si estás interesado debes realizar la preinscripción cuanto antes para reservar tu plaza.
  • Matrícula: El periodo de matrícula está comprendido entre los días 11 y 20 de Febrero y tiene un coste total de 180€

Puedes realizar tanto la matrícula como la preinscripción a través de esta web: http://www.cfp.us.es/cursos/fc/programacion-en-c-moderno/2729/

Aulas y horario

El curso se impartirá en el edificio CRAI Antonio de Ulloa, Avenida Reina Mercedes, s/n 41012 Sevilla. (ver en mapa). Se utilizarán las aulas TIC 1 (en la 2ª planta del edificio) TIC 6 (en la 3ª planta). Las clases serán los martes (TIC 1) y viernes (TIC 6) de 16:00 a 18:30 (a excepción de los días 1 y 5 de Marzo que serán de 18:00 a 20:30)

Horario desglosado:

  • TIC 1 los Martes:
    • 29/03/16 de 16:00 a 18:30
    • 05/04/16 de 18:00 a 20:30
    • 19/04/16 de 16:00 a 18:30
    • 26/04/16 de 16:00 a 18:30
    • 03/05/16 de 16:00 a 18:30
    • 10/05/16 de 16:00 a 18:30
  • TIC 6 los Viernes:
    • 18/03/16 de 16:00 a 18:30
    • 01/04/16 de 18:00 a 20:30
    • 08/04/16 de 16:00 a 18:30
    • 22/04/16 de 16:00 a 18:30
    • 29/04/16 de 16:00 a 18:30
    • 06/05/16 de 16:00 a 18:30
    • 13/05/16 de 16:00 a 18:30


Contenido del curso

MÓDULO 1

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Ejemplo 4: arrays
    • Declaración, acceso y usos.
  6. 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 (&).
  7. Ejemplo 6: paso de argumentos al programa y tratamiento
    • Los parámetros argc y argv y la función getopt_long.
  8. 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

  1. 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.
  2. Libjansson (JSON): Biblioteca para exporta e importar datos en formato JSON.
    • Introducción: Historia, tipos de objetos y software necesario.
    • Estructura estándar 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 árbol.
    • Impresión del contenido del árbol.
    • 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.
  3. Libev: Biblioteca para manejar eventos
    • Introducción.
    • Manejo de eventos y sockets
    • Ejemplo: Servidor que acepte y reciba conexiones a partir de eventos.
  4. 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.

Más información

Para más información puedes consultar la web del Centro de Formación Permanente o contactar por email: carlosfg <AT> riseup <DOT> com

Ediciones anteriores