[TCC-040] Programación Avanzada con C++

[TCC-040] Programación Avanzada con C++

Este curso cubre conceptos clave como C++11 y C++14, la Standard Template Library (STL), tipos avanzados, expresiones lambda, punteros inteligentes, multihilos, sincronización y metaprogramación. Se profundiza en el uso de templates, smart pointers, y técnicas de programación paralela como async, future y promise.

Duración:                     20 horas

Perfil:                            Avanzado

Dirigido a

Esta acción formativa va dirigida a programadores C++que quieran utilizar las nuevas características del lenguaje C++ introducidas en las versiones C++11 y C++14.

Requisitos previos 

Los alumnos necesitarán tener experiencia con el lenguaje de programación C++, así como los conceptos de orientación a objetos.  

Objetivos

  • Dominar las características de C++11 y C++14.

  • Utilizar la Standard Template Library (STL) para mejorar la eficiencia y flexibilidad del código.

  • Aplicar técnicas avanzadas de multihilos, sincronización y programación paralela.

  • Gestión de memoria con punteros inteligentes y entender los conceptos de smart pointers.

  • Explorar la metaprogramación y las plantillas en C++.

 

Contenido

  1. Introducción a C++11 y C++14

    1. Características destacadas de C++11 y C++14

    2. Nuevas funcionalidades y mejoras en el lenguaje

  2. Standard Template Library (STL)

    1. Introducción a la STL

    2. Uso de colecciones (vectores, listas, mapas)

    3. Iteradores y su funcionamiento

    4. Algoritmos comunes de la STL

    5. Generación y manejo de números aleatorios

  3. Tipos en C++11 y C++14

    1. Nuevos tipos y mejoras en C++11/14

    2. Conversión de tipos (casting) y tipos numerados (enum)

    3. Uso de typedef y clases enumeradas (enum class)

    4. Introducción y aplicación del tipo auto

    5. Cadenas literales (Raw Strings) y su utilidad

  4. Expresiones Lambda

    1. Sintaxis básica de expresiones lambda

    2. Lambdas anidadas y punteros a funciones lambda

    3. Uso de expresiones lambda para simplificar el código

  5. Programación Concurrente (MultiThreading)

    1. Conceptos de multihilos y programación paralela

    2. Uso de std::thread y sincronización (mutex, lock)

    3. Funciones future, promise y async para manejo de hilos

    4. packaged_task y su relación con hilos

  6. Punteros Inteligentes (Smart Pointers)

    1. Introducción a punteros inteligentes en C++

    2. Diferencias entre auto_ptr, shared_ptr, weak_ptr y unique_ptr

    3. Uso adecuado de punteros inteligentes para gestionar la memoria

  7. Plantillas y Metaprogramación

    1. Funciones y clases con templates

    2. Especialización de templates para casos específicos

    3. Introducción a la metaprogramación en C+

    4. Técnicas de programación avanzada utilizando templates

 

 

Documentación Recomendada

Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14 
Scott Meyer
Diciembre 2014 | 336 páginas 
ISBN: 9781491903995

http://shop.oreilly.com/product/0636920033707.do