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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy