Temario del curso
Introducción
- Descripción general de las características y aplicaciones de C
- Elegir un IDE
- Configurar el compilador
- Definir el problema
- Codificar según los requisitos
- Comprender el ámbito, la visibilidad y la duración
- Trabajar con clases de almacenamiento: auto, extern, register, static
- Más allá de los tipos de datos primitivos
- Trabajar con tipos de datos avanzados: estructuras, listas enlazadas, etc.
- Almacenar diferentes tipos de datos en la misma ubicación de memoria
- Más allá de los modificadores de tipo
- Trabajar con calificadores de tipo: constant, volatile, etc.
- Trabajar con datos más pequeños que un byte
- Trabajar con operadores de manipulación de bits
- Más allá del secuenciamiento
- Usar la declaración goto
- Revisión de las funciones de entrada/salida
- Mejorar la legibilidad de la salida
- Comprender las directivas del compilador
- Compilar código condicionalmente
- Macros vs funciones
- Definir macros para ejecutar fragmentos de programa
- Ventaja de usar punteros: velocidad de ejecución
- Punteros a funciones
- Acceder y manipular la dirección de memoria
- Técnicas avanzadas para verificar, detectar y corregir errores
- Trabajar con gdb (Gnu Debugger)
- Cómo se enlaza una biblioteca estática en un archivo ejecutable
- Crear una biblioteca estática
- Bibliotecas estáticas vs bibliotecas compartidas (bibliotecas dinámicas)
- Cómo se enlaza y carga en memoria una biblioteca compartida durante la ejecución
- Crear una biblioteca compartida
- Descripción general de interfaz, especificación e implementación
- Crear un tipo de datos abstracto
- Prueba de regresión de un tipo de datos abstracto
- Buscar en arreglos usando búsqueda lineal, binaria, etc.
- Ordenar arreglos usando ordenamiento por selección, inserción, burbuja
- Comprender procesos, sockets y señales
- Implementar IPC usando archivos compartidos, memoria compartida, pipes, colas de mensajes, sockets, semáforos, etc.
- Ejecutar diferentes partes de un programa concurrentemente a través de hilos múltiples (multithreading)
- Escribir un hilo
- Revisión de TCP, UDP, IP y otros protocolos dominantes
- Servir múltiples puertos, sobrevivir a interrupciones de red bruscas, etc.
- Escribir APIs de socket poderosas
- Revisión de código por pares y programación en paralelo
- La importancia de la codificación iterativa (refactoring)
Preparando el Entorno de Desarrollo
Escribiendo un Programa de Ejemplo
Definiendo el Ámbito de Variables y Funciones
Gestionando Datos en un Programa C
Modificando las Propiedades de una Variable
Manipulando Bits en C
Controlando el Flujo de Tu Programa
Leyendo y Escribiendo Datos
Desarrollando Código Multiplataforma
Aumentando el Rendimiento del Programa
Asignando Memoria Dinámicamente
Depurando un Programa en C
Creando una Biblioteca Estática
Creando una Biblioteca Compartida
Abstrayendo Datos en Tu Programa
Buscando y Ordenando Datos
Comunicación entre Procesos y Señales
Haciendo que Tu Programa en C Se Ejecute en Paralelo
Programación Avanzada de Redes
Hacia el Código de Alta Calidad
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