You are here: Foswiki>Main/Cimec Web>CursoProgCPP (29 May 2024, MarioStorti)Edit Attach

Curso de Posgrado: Programación en C++ para Ciencia e Ingeniería

sharethis Short URL to this page: bit.ly/cxxprog

Novedades

[New] NEWS:

  • [2023-12-12] Durante 2024 el curso se dictará en forma virtual.


Grupo de Google

Toda la info del grupo se envía a través de este Grupo. Deben suscribirse al mismo, desde la página o bien escribir un mail a mario.storti at gmail.com. https://groups.google.com/d/forum/curso-fich-prog-cxx

Videos de las clases

Los videos de las clases están disponibles en videos en YouTube

Objetivo

El objetivo del curso es proveer conocimientos de programación en el lenguaje C++ especialmente orientados al Cálculo Científico. Se estudian librerías de especial utilidad como Eigen, HDF5, JsonCPP. Además, los conocimientos de programación brindados son requisitos para otros cursos del doctorado tales como Cálculo Paralelo, Computación de Alto Rendimiento en Mecánica Computacional, Elementos Finitos, Métodos Numéricos en Fenómenos de Transporte.

Programa Analítico

  • Introducción: El C dentro de C++. Abstracción de datos. Programación Orientada a Objetos. Encapsulando la implementación. Control de acceso a las estructuras (public/private). Friends. Inicialización y limpieza. Garantizando la inicialización con el constructor. Garantizando la limpieza con el destructor. Constructores por defecto. Sobrecarga de funciones y argumentos por defecto. Constantes. Punteros. Asignación y chequeo de tipo. Argumentos de funciones y valores de retorno. Const en clases. Funciones inline.
  • Programación en C++ avanzada: Control de nombres. Namespaces. Miembros estáticos. Referencias y el constructor por copia. Punteros y referencias. El constructor por copia. Punteros a miembros de una clase. Sobrecarga de operadores. Creación de objetos, los operadores, new, delete, new[], delete[]. Agotamiento de la memoria. Sobrecargando new y delete. Composición y herencia. Lista de inicialización. Combinando composición y herencia. Orden de llamadas a constructores y destructores. Herencia múltiple. Polimorfismo y funciones virtuales. Plantillas (templates). Contenedores. Sintaxis. Programación genérica. Excepciones.
  • La biblioteca estándar de C++: strings, plantillas, algoritmos genéricos, contenedores genéricos.
  • Biblioteca Eigen: biblioteca de templates para álgebra lineal incluyendo matrices, vectores, solvers numéricos y algoritmos relacionados. Resolución de sistemas lineales. Descomposición LU. Factorización de Cholesky. Descomposición QR. Problemas de autovalores.
  • Bibliotecas utilitarias: JsonCpp y HDF5.
  • Utilidades: CMake, Git, Valgrind, unique_ptr

Docentes

  • Docente responsable: Dr. Mario Storti Investigador Principal CONICET, Profesor Asociado UNL. Áreas de Especialización: Mecánica Computacional; Mecánica de Fluidos; Cálculo Paralelo
  • Dra. Laura Battaglia. Investigador Adjunto CONICET. Profesor Adjunto UTN-FRSF. Áreas de Especialización: Mecánica Computacional; Flujos con Superficie Libre
  • Dr. Jorge D'Elía. Investigador Independiente CONICET, Profesor Asociado UN Litoral. Áreas de Especialización: Mecánica Computacional; Mecánica de Fluidos; Cálculo Paralelo

Horarios

  • Comienza: (Tentativo) Miércoles 2024-04-03 1300hs
  • Horario: (Tentativo) Miércoles 1300-1600hs
  • Lugar: El dictado durante 2024 será en forma virtual

Exámenes tomados previamente

Bibliografía

* Thinking in C++: Introduction to Standard C++, Volume One (2nd Edition) (Vol 1). por Bruce Eckel. Prentice Hall; 2 edition (March 25, 2000) ISBN: 978-0139798092. Disponible en http://bit.ly/2HEFFN9. Online HTML: http://bit.ly/2ZN0EC
  • The C++ Programming Language. Bjarne Stroustrup, Addison-Wesley Professional; 3 edition ISBN: 978-0201889543 (ver en Amazon)
  • The Boost C++ library, http://www.boost.org
  • C++ template metaprogramming: concepts, tools, and techniques from Boost and beyond. Abrahams, David, and Aleksey Gurtovoy. Pearson Education, 2004. ISBN: 0321623916, 9780321623911 (en Google Books)
  • Eigen, a C++ template library for linear algebra. http://eigen.tuxfamily.org
  • C++ for Engineers and Scientists. Bronson, Gary. Cengage Learning, 2012. ISBN: 978-1133187844 (Google Books)
  • Transparencias del curso Estos slides no cubren todo el material que se va a dar durante el curso. No incluyen STL, Eigen y Boost. A medida que se vaya generando el material lo iremos actualizando,
Topic attachments
I Attachment Action Size Date Who Comment
cpp.zipzip cpp.zip manage 43 K 16 Apr 2015 - 15:24 MarioStorti Fuentes que aparecen en los slides
ver1.hpphpp ver1.hpp manage 3 K 12 Aug 2015 - 17:20 MarioStorti  
Topic revision: r61 - 29 May 2024, MarioStorti
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback