C++ Institute

Programación avanzada en C - Curso oficial C++ Institute - Online

70 horas
475 €
Online
Online

Acerca de este curso

C es uno de los lenguajes de programación más extendidos e implementados. Desde su nacimiento en 1972, ha sido ampliamente utilizado en la programación de sistemas operativos y aplicaciones. De hecho, numerosos dispositivos se basan en C. Este lenguaje, además, puede ser usado para crear programas de bajo nivel muy cercanos a la máquina: sistemas operativos, drivers, y aplicaciones de control de dispositivos, entre algunas de las muchas vertientes. Asimismo, C++ fue diseñado como una extensión de C, y la sintaxis de Java deriva en gran parte de C y C++. Todas estas razones son una perfecta muestra de por qué C es tan importante a día de hoy.

El presente curso oficial del C++ Institute ha sido desarrollado para formar alumnos y mejorar las habilidades de los programadores en C: desarrollar y adquirir un profundo conocimiento de C, proporcionar habilidades en programación de redes y sistemas, presentar e impartir técnicas de programación en C y mejorar adquirir habilidades y efectividad a la hora de programar en C a bajo nivel.

Desarrollado desde una orientación de aprendizaje basado en la práctica, el curso proporcionará al estudiante acceso a herramientas mediante las que llevará a cabo multitud de laboratorios y escenarios reales que se proponen a lo largo de la formación.

Se dará acceso al alumno a la plataforma e-learning por espacio de 6 meses a contar desde la fecha de inscripción al curso. Dichos contenidos están desarrollados en inglés. Se considera, desde PUE y C++ Institute, que el perfil profesional de programador en C++, ha de tener un dominio mínimo de la lengua inglesa a nivel técnico para optar a poder desarrollar profesionalmente las habilidades relativas a dicha especialidad.

Asimismo, el alumno tendrá acceso a tutorización por un espacio de 6 meses a contar desde la fecha de inscripción al curso, tiempo en el que el profesor responderá las dudas surgidas con respecto al curso.

En el curso se incluyen 7 sesiones webinar como complemento a la formación. En ellas, el instructor impartirá los aspectos más importantes de cada capítulo, propondrá diferentes escenarios, y resolverá las dudas planteadas. Las webinars también estarán disponibles en la plataforma e-learning, para que puedan ser visualizadas por aquellos que no puedan asistir en directo.

Sesiones Webinar Conocimientos Previos Recomendados
Sesión 1. Evolución de C. Manejo y gestión de funciones. Capítulos 1 y 2
Sesión 2. Estudio de E/S a bajo nivel. Capítulo 3
Sesión 3. Gestión de memoria y strings. Capítulo 4
Sesión 4. Trabajar con procesos y threads. Capítulo 5
Sesión 5. Uso avanzado de ints y floats. Capítulo 6
Sesión 6. Implementación de sockets de red. Miscellaneous. Capítulos 7 y 8
Sesión 7. Preparación y aspectos relevantes de la certificación CLP – C Certified Professional Programmer Certification.

Destacar, como valor añadido, que el presente curso prepara a los estudiantes hacia la superación de la prestigiosa certificación oficial CLP – C Certified Professional Programmer Certification, examen que incluimos en el precio del curso a todos los miembros del programa PUE Alumni.

Al obtener la certificación CLP, se asegura de que el participante tenga un dominio y comprensión a nivel profesional relativo al lenguaje de programación C.

Valor añadido de PUE

Como valor añadido e incluido en la formación, los alumnos que participen en el presente curso tendrán acceso gratuito en formato self-study al curso online Fundamentos de Programación en C, ofreciendo una formación complementaria a los aspectos que se tratarán en el curso sobre las estructuras de control de flujo, implementación de funciones y uso de streams, entre muchos otros conceptos.

Tiempo de acceso

En el presente curso online se dará al alumno un tiempo de acceso y tutorización a los contenidos del curso, en castellano, en la plataforma e-learning por un espacio de 1 año a contar desde la fecha de inscripción, tiempo en el que el profesor responderá las dudas surgidas con respecto al curso.

A quién va dirigido

El curso está orientado a todos aquellos que tengan una buena base de conocimiento sobre el lenguaje C y que deseen mejorar y adquirir conocimientos avanzados sobre dicho lenguaje de programación.

A pesar de no haber una prerrequisito obligatorio, se recomienda tener un buen dominio de C o haber realizado el curso Fundamentos de programación en C para un mayor aprovechamiento de la formación.

Objetivos del curso

Al finalizar el curso, los asistentes serán capaces de realizar satisfactoriamente las siguientes tareas:

  • Aplicar técnicas avanzadas de programación en C.
  • Utilizar librerías avanzadas y programar mediante el uso de estructuras complejas de datos.
  • Solucionar problemas avanzados mediante el uso de estructuras de datos y algoritmos.
  • Adquirir conceptos acerca programación multiproceso y multi-thread.

Certificación incluida

Este curso es el recomendado por C++ Institute para la preparación del siguiente examen de certificación oficial valorado en 360,00€ (IVA incl.), el cual incluimos en el precio del curso a todos los miembros del programa PUE Alumni:

La superación de este examen es un requisito imprescindible para obtener la certificación CLP | C Certified Professional Programmer Certification.

El alumno podrá llevar a cabo dicho examen en nuestras instalaciones, pues PUE es centro certificador oficial Pearson VUE. En caso de no poder realizarlo en alguna de nuestras sedes, el candidato podrá examinarse en cualquiera de los centros de certificación de la red Pearson VUE que desee, la cual ofrece una cobertura a nivel mundial de entidades certificadoras a disposición de los candidatos, hecho que demuestra el reconocimiento internacional de las certificaciones de C++ Institute.

Contenidos

Evolución de C

  • Descripción de elementos obsoletos en C pero que aún siguen siendo válidos.
  • Explicación acerca del cambio en la declaración de las funciones.
  • Introducción a las palabras claves en C.

Manejo y gestión de funciones con un número variable de parámetros

  • Calling convention: ¿qué es y por qué es necesario?
  • Análisis de cómo pasar parámetros.
  • Implementación de recursividad.
  • Comprensión y funcionamiento de la pila.

Estudio de E/S a bajo nivel

  • Definiciones y conceptos de POSIX, API, ABI y WINAPI.
  • Uso de funciones relacionadas con E/S: access(), open(), close(), lseek(), readlink(), ioctl()…

Gestión y manejo de la memoria y de strings

  • Gestión de bloques de memoria
  • Manipulación avanzada de strings.
  • Descripción y ejemplos de uso de funciones relacionadas con la memoria y los strings: strchr(), qsort(), calloc(), malloc(), memccpy(), bzero(), memset(), memcmp()…

Trabajar con procesos y threads

  • Qué son los procesos y los threads.
  • Por qué y cómo implementar seguridad a la hora de tratar con threads.
  • Descripción de los procesos en Unix y sus funciones: fork(), exit(), execxx(), wait() y waitpid().
  • Explicación de los procesos en MS Windows y sus funciones: CreateProcess() y WaitForSingleObject().
  • Cómo funcionan los threads en POSIX y en MS Windows.
  • Threads en C11.

Uso avanzado de ints y floats

  • Diferencias entre floats y doubles.
  • Anomalías numéricas y precisión.
  • ULP como medida de precisión.
  • Qué es pragma.
  • Uso y gestión de excepciones de tipo floating-point.
  • Multi-precision libraries (GMP, MPFR y MPIR)

Implementación de sockets de red

  • Diferencias entre un socket y un socket de red.
  • Revisión de la pila TCP/IP y UDP.
  • Conceptos de transmisiones orientadas a conexión y a no conexión.
  • Direccionamiento IPv4 e IPv6 en un socket.
  • Funciones necesarias para la implementación de sockets: getaddrinfo(), socket(), connect(), bind(), listen()…
  • Ejemplos de comunicaciones cliente-servidor y P2P.

Miscellaneous

  • Diferencias entre constantes y variables volátiles.
  • Cuándo usar la declaración goto y cuáles son sus ventajas y desventajas.
  • Uso de setjmp() y longjmp().
  • Arrays de tamaño variable y uso de literales.
  • Implementación de las palabras clave restrict y asm.

Convocatorias abiertas