Temario del curso
Introducción
- Resumen de las características y aplicaciones de C
Preparación del entorno de desarrollo
- Elección de un entorno de desarrollo integrado (IDE)
- Configuración del compilador
Escribiendo un programa de ejemplo
- Definición del problema
- Desarrollo del código según los requisitos
Definición del alcance de las variables y funciones
- Comprensión del alcance, la visibilidad y el ciclo de vida
- Trabajo con clases de almacenamiento: auto, extern, register, static
Gestión de datos en un programa C
- Más allá de los tipos de datos primitivos
- Trabajo con tipos de datos avanzados: estructuras, listas enlazadas, etc.
- Almacenamiento de diferentes tipos de datos en la misma ubicación de memoria
Modificación de las propiedades de una variable
- Más allá de los modificadores de tipo
- Trabajo con calificadores de tipo: constant, volatile, etc.
Manipulación de bits en C
- Trabajo con datos menores que un byte
- Uso de operadores de manipulación de bits
Control del flujo del programa
- Más allá de la secuenciación
- Uso de la instrucción goto
Lectura y escritura de datos
- Repaso de las funciones de entrada y salida
- Mejora de la legibilidad de la salida
Desarrollo de código multiplataforma
- Comprensión de las directivas del compilador
- Compilación condicional del código
Mejora del rendimiento del programa
- Macros frente a funciones
- Definición de macros para ejecutar fragmentos de programa
Asignación dinámica de memoria
- Ventaja del uso de punteros: velocidad de ejecución
- Punteros a funciones
- Acceso a la memoria y manipulación de direcciones
Depuración de un programa C
- Técnicas avanzadas para verificar, detectar y corregir errores
- Trabajo con gdb (Gnu Debugger)
Creación de una biblioteca estática
- Cómo se enlaza una biblioteca estática en un archivo ejecutable
- Creación de una biblioteca estática
Creación de una biblioteca compartida
- Bibliotecas estáticas frente a bibliotecas compartidas (dinámicas)
- Cómo se enlaza y carga una biblioteca compartida en la memoria en tiempo de ejecución
- Creación de una biblioteca compartida
Abstracción de datos en su programa
- Resumen de interfaz, especificación e implementación
- Creación de un tipo de dato abstracto
- Pruebas de regresión de un tipo de dato abstracto
Búsqueda y ordenación de datos
- Búsqueda de arreglos usando búsqueda lineal, búsqueda binaria, etc.
- Ordenación de arreglos usando selección, inserción, burbuja
Comunicación interprocesos y señales
- Comprensión de procesos, sockets y señales
- Implementación de IPC mediante archivos compartidos, memoria compartida, tuberías, colas de mensajes, sockets, semáforos, etc.
Ejecución paralela de su programa C
- Ejecución concurrente de diferentes partes de un programa mediante multihilo
- Escritura de un hilo
Programación avanzada de redes
- Repaso de TCP, UDP, IP y otros protocolos dominantes
- Atención de múltiples puertos, supervivencia ante interrupciones abruptas de la red, etc.
- Escritura de APIs de sockets potentes
Hacia un código de alta calidad
- Revisión de código entre pares y programación paralela
- La importancia de la codificación iterativa (refactorización)
Resumen y conclusión
Requerimientos
- Experiencia en programación en C
Público objetivo
- Programadores
- Desarrolladores
Testimonios (2)
los ejercicios y la metodología
Javier MIllan Rios - si
Curso - Advanced C Programming
Traducción Automática
Un alcance interesante y amplio
Maciej Perkowski - Nordic Semiconductor
Curso - Advanced C Programming
Traducción Automática