BEGIN:VCALENDAR
VERSION:2.0
PRODID:icalendar-ruby
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP:20260711T021831Z
UID:f94ce7d4-67a0-487c-bf85-5f12be90840e
DTSTART:20220124T083000Z
DTEND:20220207T160000Z
DESCRIPTION:The cours will be held online January the 24th\, the 31st and F
 ebruary the 7th. The cours is restricted to 30 participants.\n\nIn recent 
 years\, the C ++ language has evolved. To stick to the 1998/2003 standard 
 is to miss many new features that make modern C ++ more robust\, more powe
 rful\, and often more readable.\n\nThrough this training\, it is proposed 
 to become familiar with syntactic novelties that facilitate the writing of
  code\, modernized best practices to avoid the language traps\, and a prog
 ramming way that is easier to parallelize.\n\nThis training is for scienti
 fic programmers who want to discover "modern" C ++ (2011 to 2020 standards
 )\, and adapt their programming practices accordingly.\n\nDetailed Program
  :\n\nGenerale feature\n\n\n	Review of some basic C++ concepts\, overview 
 of C++ as a software development environment\, with two major software eng
 ineering strategies: object oriented programming and generic programming.\
 n	Object oriented programming: the virtual function mechanism enabling lat
 e binding at execution time\, (software modules calling newly written rout
 ines without recompilation).\n	Examples of the power and relevance of virt
 ual functions\n	Function objects as extended pointers to functions\, examp
 les\n	Introduction to generic programming: function templates\, examples\n
 	Generic programming: class templates\, examples\n\n\n\n	The core of gener
 ic programming: using function and class templates to parameterize behavio
 r rather than just object types\n	Overview of the Standard Template Librar
 y (STL): strategies\, containers\, iterators\, algorithms\n	Concurrency in
  the standard C++ library: overview of the thread class\, discussion of th
 e new threading interfaces (futures\, promises) enabling easy synchronizat
 ion of simple concurrency patterns.\n\n\nModern C++ syntax\n\n\n	Basic fea
 tures: type inference\, stronger typing\, user-defined literals\, uniform 
 initialization\, rvalue references\, move semantics.\n	Object features: me
 mber variables initialization\, delegated and inherited constructors\, exp
 licit deletion and overriding of member functions.\n	Generic features: sta
 tic assertions\, template variables and type aliasing\, constant expressio
 ns\, variadic templates\, perfect forwarding.\n	 Functional features: lam
 bda functions.\n\n\nModern C++ library\n\n\n	Basic tools: smart pointers (
 unique_ptr\, shared_ptr)\, new collections (array\, unordered maps)\, view
 s (span\, string_array)\, wrapper types (function\, ref).\n	Generic tools:
  type traits\, sfinae\, concepts.\n	Functional tools: algebraic types (tup
 le\, variant)\, monadic types (optional\, future)\, ranges.\n	Optimization
  and parallelization: beyond double\, random numbers\, chrono\, execution 
 policies\, structures of arrays\, co-routines.\n\n\nPrerequisites :\n\nKno
 wledge of classical (pre-11) C++ syntax\, and basic experience in programm
 ing with C++ objects. Participants should be familiar with the following c
 oncepts:\n\n\n	namespaces\n	references\, difference with pointers\n	basic 
 memory allocation (new and delete)\n	Properties of C++ functions (default 
 values\, overloading)\n	Basic understanding of error handling (exceptions)
 \n	C++ classes\, programming with objects\, public derivation of classes\n
 	Basic knowledge of templates\n\n\nLecturers :\n\n\n	David Chamont\n	Olga 
 Abramkina (Assistant)\n	Karim Hasnaoui (Assistant)\n\nhttps://events.prace
 -ri.eu/event/1285/
SUMMARY:[ONLINE]  Modern Scientific C++ @ MdlS/IJCLab/Idris
URL;VALUE=URI:https://events.prace-ri.eu/event/1285/
END:VEVENT
END:VCALENDAR
