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

De Wiki del curso de C
Saltar a: navegación, buscar
(Criterios de ev, material y lista de correo)
m (Contacto y más información)
Línea 111: Línea 111:
  
 
= Contacto y más información =
 
= Contacto y 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'''
+
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> net'''
  
 
= Ediciones anteriores =
 
= Ediciones anteriores =
  
 
* [[I Curso de programación en C moderno]]
 
* [[I Curso de programación en C moderno]]

Revisión del 19:50 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

Criterios de evaluación

El curso tendrá un enfoque muy práctico, por lo que la evaluación se basará en diversos ejercicios y trabajos realizados individualmente y repartidos a lo largo del curso.

Material

En esta wiki se irá subiendo todo el material (apuntes, ejemplos, ejercicios, etc) a medida que avance el curso. Puedes consultar el material utilizado en la edición anterior.

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.

Lista de correo

Esta lista de correo se utilizará para plantear y resolver dudas.

Puedes apuntarte aquí: https://listas.us.es/mailman/listinfo/programacion-c

Contacto y 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> net

Ediciones anteriores