Programa del Curso
Introducción
- Descripción general de las características y aplicaciones de C
Preparación del entorno de desarrollo
- Elección de un IDE
- Configuración del compilador
Escribir un programa de ejemplo
- Definición del problema
- Codificación según requisitos
Definición del alcance de variables y funciones
- Comprender el alcance, la visibilidad y la vida útil
- Trabajar 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
- Trabajar 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
- Trabajar con calificadores de tipo: constantes, volátiles, etc.
Manipulación de bits en C
- Trabajar con datos de menos de un byte
- Trabajar con operadores de manipulación de bits
Controlar el flujo de su programa
- Más allá de la secuenciación
- Uso de la instrucción goto
Lectura y escritura de datos
- Resumen de las funciones de entrada/salida
- Mejora de la legibilidad de los resultados
Desarrollo de código multiplataforma
- Descripción de las directivas del compilador
- Compilación condicional de código
Mejorar el rendimiento del programa
- Macros vs 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
- Accessmemoria y manipulación de la dirección
Depuración de un programa C
- Técnicas avanzadas de comprobación, detección y corrección de errores
- Trabajar con gdb (Gnu Debugger)
Creación de una biblioteca estática
- Cómo se vincula una biblioteca estática a un archivo ejecutable
- Creación de una biblioteca estática
Creación de una biblioteca compartida
- Bibliotecas estáticas frente a bibliotecas compartidas (bibliotecas dinámicas)
- Cómo se vincula una biblioteca compartida y se carga en la memoria en tiempo de ejecución
- Creación de una biblioteca compartida
Abstracción de datos en el programa
- Descripción general de la interfaz, la especificación y la implementación
- Creación de un tipo de datos abstracto
- Prueba de regresión de un tipo de datos abstracto
SearchProcesamiento y clasificación de datos
- Searching de matrices mediante búsqueda lineal, búsqueda binaria, etc.
- Ordenación de matrices mediante ordenación por selección, ordenación por inserción, ordenación por burbujas
Interproceso Communication y señales
- Comprensión de procesos, sockets y señales
- Implementación de IPC utilizando archivos compartidos, memoria compartida, tuberías, colas de mensajes, sockets, semáforos, etc.
Hacer que el programa C se ejecute en paralelo
- Ejecución simultánea de diferentes partes de un programa a través de subprocesos múltiples
- Escribir un hilo
Redes avanzadas Programming
- Resumen de TCP, UDP, IP y otros protocolos dominantes
- Servir a múltiples puertos, sobrevivir a interrupciones abruptas de la red, etc.
- Escritura de potentes API de socket
Hacia un código de alta calidad
- Revisión de código por 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
Audiencia
- Programadores
- Desarrolladores
Testimonios (2)
Los ejercicios y la metodología
Javier MIllan Rios - si
Curso - Advanced C Programming
Traducción Automática
Un interesante y amplio alcance
Maciej Perkowski - Nordic Semiconductor
Curso - Advanced C Programming
Traducción Automática