Skip to content

Commit a9ceb47

Browse files
committed
October 2023 - Update 1
1 parent 8efcf6d commit a9ceb47

15 files changed

+7
-6
lines changed

02.Basic_Concepts_I.pdf

10.3 KB
Binary file not shown.

03.Basic_Concepts_II.pdf

3.92 KB
Binary file not shown.

04.Basic_Concepts_III.pdf

7.5 KB
Binary file not shown.

05.Basic_Concepts_IV.pdf

3.17 KB
Binary file not shown.

06.Object_Oriented_I.pdf

3.91 KB
Binary file not shown.

07.Object_Oriented_II.pdf

718 Bytes
Binary file not shown.

11.Translation_Units_II.pdf

1 Byte
Binary file not shown.

12.Code_Convention.pdf

27 KB
Binary file not shown.

13.Ecosystem_I.pdf

2.01 KB
Binary file not shown.

17.Advanced_Topics_I.pdf

35.5 KB
Binary file not shown.

18.Advanced_Topics_II.pdf

19.9 KB
Binary file not shown.

19.Optimization_I.pdf

1.67 KB
Binary file not shown.

20.Optimization_II.pdf

1.39 KB
Binary file not shown.

21.Optimization_III.pdf

11.5 KB
Binary file not shown.

README.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ If you enjoy the course or you find it useful, please add a **Star**
8686
* **`auto` declaration**
8787
* **C++ Operators**: Operators precedence, Prefix/Postfix increment/decrement, Assignment, Compound , and Comma operators, Spaceship operator `<=>` , Safe Comparison Operators
8888
* **Integral Data Types**: Fixed width integers, `size_t` and`ptrdiff_t`, When use signed/unsigned integer? Promotion, Truncation, Undefined behavior
89-
* **Floating-point Types and Arithmetic**: Normal/Denormal values, Infinity, Not a Number (`NaN`), Summary, Properties
89+
* **Floating-point Types and Arithmetic**: IEEE Floating-point Standard and Other Representations, Normal/Denormal values, Infinity, Not a Number (`NaN`), Machine Epsilon, Units at the Last Place (ULP), Cheatsheet, Summary, Arithmetic Properties, Detect Floating-point Errors
9090
* **Floating-point Issues**: Catastrophic cancellation, Floating-point comparison
9191

9292
**[3. Basic Concepts II - Entities and Control Flow](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/03.Basic_Concepts_II.pdf)**
@@ -101,6 +101,7 @@ If you enjoy the course or you find it useful, please add a **Star**
101101
* **Initialization**: Variable initialization, Uniform initialization, Fixed-size array initialization, Structure initialization, Dynamic memory initialization
102102
* **Pointers and References**: Pointer Operations, Address-of operator `&`, Reference
103103
* **Constant and Literals, `const`, `constexpr`, `consteval`, `constinit`**, `if constexpr`, `std::is constant evaluated()`, `if consteval`
104+
* **`volatile` keyword**
104105
* **Explicit Type Conversion**: `static_cast`, `const_cast`, `reinterpret_cast`, Type punning
105106
* `sizeof` Operator
106107

@@ -167,7 +168,7 @@ If you enjoy the course or you find it useful, please add a **Star**
167168

168169
**[12. Code Conventions](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/12.Code_Convention.pdf)**
169170

170-
* **C++ Project Organization**: Project directories, Project files, `src/include` directories, Alternative project organization
171+
* **C++ Project Organization**: Project directories, Project files, “Common” Project Organization Notes, Alternative - “Canonical” project organization
171172
* **Coding Styles and Conventions**
172173
* **`#include`**
173174
* **Macro and Preprocessing**
@@ -229,7 +230,7 @@ If you enjoy the course or you find it useful, please add a **Star**
229230
* **Move Semantic**: `lvalues` and `rvalues` references, Move semantic, Compiler implicitly declared, `std::move`
230231
* **Universal Reference and Perfect Forwarding**: Universal reference, Reference collapsing rules, Perfect forwarding
231232
* **Value Categories**
232-
* **`&`, `&&` Overloading - Ref-qualifiers**
233+
* **`&`, `&&` Ref-qualifiers and `volatile` Overloading**
233234
* **Copy Elision and RVO**
234235
* **Type Deduction**: Pass by-reference, Pass by-pointer, Pass by-value, `auto` deduction
235236
* **`const` Correctness**
@@ -244,7 +245,7 @@ If you enjoy the course or you find it useful, please add a **Star**
244245

245246
**[19. Optimization I - Basic Concepts](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/19.Optimization_I.pdf)**
246247

247-
* **Overview**
248+
* **Introduction**: Moore’s Law, Moore’s Law limitations, Reasons for Optimizing
248249
* **Basic Concepts**: Asymptotic complexity, Time-Memory Trade-off, Developing Cycle, Ahmdal's law, Throughput, Bandwidth, Latency, Performance bounds, Arithmetic intensity
249250
* **Basic Architecture Concepts**: Instruction-level parallelism (ILP), Little’s law, Data-level parallelism (SIMD), Thread-level parallelism (TLP), Single Instruction Multiple Threads (SIMT), RISC, CISC Instruction sets
250251
* **Memory Hierarchy**: Memory hierarchy concepts, Memory locality
@@ -261,10 +262,10 @@ If you enjoy the course or you find it useful, please add a **Star**
261262

262263
**[21. Optimization III - Non-Coding Optimizations and Benchmarking](https://github.com/federico-busato/Modern-CPP-Programming/blob/master/21.Optimization_III.pdf)**
263264

264-
* **Compiler Optimizations**: About the compiler, Architecture flags, Optimization flags, Help the Compiler to produce better code, Profile guided optimization (PGO), Post-Processing Binary Optimizer
265+
* **Compiler Optimizations**: About the compiler, Compiler optimization flags, Linker optimization flags, Architecture flags, Help the Compiler to produce better code, Profile guided optimization (PGO), Post-Processing Binary Optimizer
265266
* **Compiler Transformation Techniques**
266267
* **Libraries and Data Structures**: External libraries, Std library
267-
* **Performance Benchmarking**: What to test?, Workload/Dataset quality, Cache behavior, Stable CPU performance, Program memory layout, Measurement overhead and compiler optimizations, Metric evaluation
268+
* **Performance Benchmarking**: What to test?, Workload/Dataset quality, Cache behavior, Stable CPU performance, Program, Multi-threads considerations, Program memory layout, Measurement overhead, Compiler optimizations, Metric evaluation
268269
* **Profiling**: `gprof`, `uftrace`, `callgrind`, `cachegrind`, `perf` Linux profiler
269270
* **Parallel Computing**: Concurrency vs. Parallelism, Performance scaling, Gustafson’s Law, Parallel programming languages
270271

0 commit comments

Comments
 (0)