README improvements

This commit is contained in:
FedericoUnivr 2020-03-01 13:09:56 +01:00
parent c8109cef95
commit e0cb6d764f

View File

@ -1,8 +1,6 @@
# Modern C++ Programming #
## C++11/C++14/C++17 ##
Open access C++ course, University of Verona (UNIVR), Italy
### Essential Tool ###
Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
@ -11,7 +9,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
## TOPICS ##
**1. Introduction**
**[1. Introduction](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/01.Introduction.pdf)**
* A Little History of C/C++ Programming Languages
* C++ Philosophy
@ -19,7 +17,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Course Overview and References
* Who I Am
**2. Basic Concepts I**
**[2. Basic Concepts I](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/02.Basic_Concepts_I.pdf)**
* Prerequirements: Compiler, editor, etc.
* Hello World
@ -28,7 +26,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Floating-point Arithmetic
* Floating-point Issues
**3. Basic Concepts II**
**[3. Basic Concepts II](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/03.Basic_Concepts_II.pdf)**
* Enumerators
* `union` and Bitfield
@ -36,7 +34,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Math Operators
* Statements and Control Flow
**4. Basic Concepts III**
**[4. Basic Concepts III](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/04.Basic_Concepts_III.pdf)**
* Memory Management: Heap and Stack
* Initialization
@ -45,13 +43,13 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* `const` and `constexpr`
* Explicit Type Conversion
**5. Basic Concepts IV**
**[5. Basic Concepts IV](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/05.Basic_Concepts_IV.pdf)**
* Declaration and Definition
* Functions
* Preprocessing
**6. Utilities**
**[6. Utilities](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/06.Utilities.pdf)**
* I/O Stream
* Filesystem Library
@ -61,7 +59,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Random Numbers
* Time Measuring
**7. C++ Object Oriented Programming I**
**[7. C++ Object Oriented Programming I](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/07.Object_Oriented_I.pdf)**
* C++ Classes
* Class Constructor
@ -70,20 +68,20 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Initialization and Defaulted Members
* Class Keywords
**8. C++ Object Oriented Programming II**
**[8. C++ Object Oriented Programming II](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/08.Object_Oriented_II.pdf)**
* Polymorphism
* Operator overloading
** Special Objects
* Special Objects
**9. C++ Templates and Meta-programming I**
**[9. C++ Templates and Meta-programming I](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/09.Templates_I.pdf)**
* Function Templates
* Compile-Time Utilities
* Type Traits
* Template Parameters
**10. C++ Templates and Meta-programming II**
**[10. C++ Templates and Meta-programming II](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/10.Templates_II.pdf)**
* Class Templates
* Template Meta-Programming
@ -91,7 +89,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Variadic Template
* STD Template Utility
**11. Containers, Iterators, and Algorithms**
**[11. Containers, Iterators, and Algorithms](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/11.Iterators_Containers_Alg.pdf)**
* Containers and Iterators
* Sequence Containers: `array`, `vector`, `list`, `deque`, `forward_list`
@ -102,7 +100,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Algorithms Library
* Lambda Expressions
**12. Translation Units**
**[12. Translation Units](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/12.Translation_Units.pdf)**
* Basic Concepts
* Linkage
@ -114,7 +112,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Namespace
* How to Compile: static and dynamic libraries
**13. Code Conventions**
**[13. Code Conventions](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/13.Code_Convention.pdf)**
* C++ Project Organization
* Coding Styles and Conventions
@ -125,7 +123,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Control Flow
* Naming and Formatting
**14. Ecosystem**
**[14. Ecosystem](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/14.Ecosystem.pdf)**
* Execution Debugging: `gdb` and `assert`
* Memory Debugging: `valgrind`
@ -139,7 +137,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Code Statistics: `lines count`, `cyclomatic complexity`
* Other Tools: code `formating`, `exploring`, `benchmarking`
**15. Advanced Topics**
**[15. Advanced Topics](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/15.Advanced_Topics.pdf)**
* Move Semantic
* Copy Elision and RVO
@ -148,7 +146,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Smart Pointers
* Concurrency: `std::thread`
**16. Optimization I**
**[16. Optimization I](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/16.Optimization_I.pdf)**
* General Concepts: asymptotic complexity, optimization cycle, Ahmdal Law, etc.
* I/O Operations
@ -158,7 +156,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
* Functions
* C++ Objects
**17. Optimization II**
**[17. Optimization II](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/17.Optimization_II.pdf)**
* Compiler Optimizations
* Libraries and Data Structures
@ -167,13 +165,13 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
### Reporting bugs and contributing ###
If you find any typos please report them by using the repository
(**issues** panel).
If you find any typos, conceptual errors, or sections to improve, please report them by writing directly to me or by using the `issue` panel
## Author ##
* `Federico Busato`, Dept. of Computer Science, University of Verona (Italy) [federico.busato@univr.it](mailto:federico.busato@univr.it),
now Nvidia Corporation ([fbusato@nvidia.com](mailto:fbusato@nvidia.com))
* `Federico Busato`,
Nvidia Corporation ([fbusato@nvidia.com](mailto:fbusato@nvidia.com))
Dept. of Computer Science, University of Verona (Italy) [federico.busato@univr.it](mailto:federico.busato@univr.it)
## License ##