README improvements
This commit is contained in:
parent
c8109cef95
commit
e0cb6d764f
46
README.md
46
README.md
@ -1,8 +1,6 @@
|
|||||||
# Modern C++ Programming #
|
# Modern C++ Programming #
|
||||||
## C++11/C++14/C++17 ##
|
## C++11/C++14/C++17 ##
|
||||||
|
|
||||||
Open access C++ course, University of Verona (UNIVR), Italy
|
|
||||||
|
|
||||||
### Essential Tool ###
|
### Essential Tool ###
|
||||||
|
|
||||||
Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
|
Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
|
||||||
@ -11,7 +9,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
|
|||||||
|
|
||||||
## TOPICS ##
|
## 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
|
* A Little History of C/C++ Programming Languages
|
||||||
* C++ Philosophy
|
* C++ Philosophy
|
||||||
@ -19,7 +17,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
|
|||||||
* Course Overview and References
|
* Course Overview and References
|
||||||
* Who I Am
|
* 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.
|
* Prerequirements: Compiler, editor, etc.
|
||||||
* Hello World
|
* Hello World
|
||||||
@ -28,7 +26,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
|
|||||||
* Floating-point Arithmetic
|
* Floating-point Arithmetic
|
||||||
* Floating-point Issues
|
* 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
|
* Enumerators
|
||||||
* `union` and Bitfield
|
* `union` and Bitfield
|
||||||
@ -36,7 +34,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
|
|||||||
* Math Operators
|
* Math Operators
|
||||||
* Statements and Control Flow
|
* 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
|
* Memory Management: Heap and Stack
|
||||||
* Initialization
|
* Initialization
|
||||||
@ -45,13 +43,13 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
|
|||||||
* `const` and `constexpr`
|
* `const` and `constexpr`
|
||||||
* Explicit Type Conversion
|
* 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
|
* Declaration and Definition
|
||||||
* Functions
|
* Functions
|
||||||
* Preprocessing
|
* Preprocessing
|
||||||
|
|
||||||
**6. Utilities**
|
**[6. Utilities](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/06.Utilities.pdf)**
|
||||||
|
|
||||||
* I/O Stream
|
* I/O Stream
|
||||||
* Filesystem Library
|
* Filesystem Library
|
||||||
@ -61,7 +59,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
|
|||||||
* Random Numbers
|
* Random Numbers
|
||||||
* Time Measuring
|
* 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
|
* C++ Classes
|
||||||
* Class Constructor
|
* Class Constructor
|
||||||
@ -70,20 +68,20 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
|
|||||||
* Initialization and Defaulted Members
|
* Initialization and Defaulted Members
|
||||||
* Class Keywords
|
* 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
|
* Polymorphism
|
||||||
* Operator overloading
|
* 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
|
* Function Templates
|
||||||
* Compile-Time Utilities
|
* Compile-Time Utilities
|
||||||
* Type Traits
|
* Type Traits
|
||||||
* Template Parameters
|
* 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
|
* Class Templates
|
||||||
* Template Meta-Programming
|
* Template Meta-Programming
|
||||||
@ -91,7 +89,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
|
|||||||
* Variadic Template
|
* Variadic Template
|
||||||
* STD Template Utility
|
* 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
|
* Containers and Iterators
|
||||||
* Sequence Containers: `array`, `vector`, `list`, `deque`, `forward_list`
|
* Sequence Containers: `array`, `vector`, `list`, `deque`, `forward_list`
|
||||||
@ -102,7 +100,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
|
|||||||
* Algorithms Library
|
* Algorithms Library
|
||||||
* Lambda Expressions
|
* Lambda Expressions
|
||||||
|
|
||||||
**12. Translation Units**
|
**[12. Translation Units](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/12.Translation_Units.pdf)**
|
||||||
|
|
||||||
* Basic Concepts
|
* Basic Concepts
|
||||||
* Linkage
|
* Linkage
|
||||||
@ -114,7 +112,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
|
|||||||
* Namespace
|
* Namespace
|
||||||
* How to Compile: static and dynamic libraries
|
* 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
|
* C++ Project Organization
|
||||||
* Coding Styles and Conventions
|
* Coding Styles and Conventions
|
||||||
@ -125,7 +123,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
|
|||||||
* Control Flow
|
* Control Flow
|
||||||
* Naming and Formatting
|
* 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`
|
* Execution Debugging: `gdb` and `assert`
|
||||||
* Memory Debugging: `valgrind`
|
* Memory Debugging: `valgrind`
|
||||||
@ -139,7 +137,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
|
|||||||
* Code Statistics: `lines count`, `cyclomatic complexity`
|
* Code Statistics: `lines count`, `cyclomatic complexity`
|
||||||
* Other Tools: code `formating`, `exploring`, `benchmarking`
|
* 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
|
* Move Semantic
|
||||||
* Copy Elision and RVO
|
* Copy Elision and RVO
|
||||||
@ -148,7 +146,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
|
|||||||
* Smart Pointers
|
* Smart Pointers
|
||||||
* Concurrency: `std::thread`
|
* 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.
|
* General Concepts: asymptotic complexity, optimization cycle, Ahmdal Law, etc.
|
||||||
* I/O Operations
|
* I/O Operations
|
||||||
@ -158,7 +156,7 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
|
|||||||
* Functions
|
* Functions
|
||||||
* C++ Objects
|
* C++ Objects
|
||||||
|
|
||||||
**17. Optimization II**
|
**[17. Optimization II](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/17.Optimization_II.pdf)**
|
||||||
|
|
||||||
* Compiler Optimizations
|
* Compiler Optimizations
|
||||||
* Libraries and Data Structures
|
* Libraries and Data Structures
|
||||||
@ -167,13 +165,13 @@ Online compiler and execution: [CompilerExplorer](https://godbolt.org/)
|
|||||||
|
|
||||||
### Reporting bugs and contributing ###
|
### Reporting bugs and contributing ###
|
||||||
|
|
||||||
If you find any typos please report them by using the repository
|
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
|
||||||
(**issues** panel).
|
|
||||||
|
|
||||||
## Author ##
|
## Author ##
|
||||||
|
|
||||||
* `Federico Busato`, Dept. of Computer Science, University of Verona (Italy) [federico.busato@univr.it](mailto:federico.busato@univr.it),
|
* `Federico Busato`,
|
||||||
now Nvidia Corporation ([fbusato@nvidia.com](mailto:fbusato@nvidia.com))
|
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 ##
|
## License ##
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user