Skip to content

Commit 0317dc8

Browse files
committed
Add concept index and cross-language notes
1 parent 77ea00d commit 0317dc8

42 files changed

Lines changed: 378 additions & 1 deletion

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CONCEPT_INDEX.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Concept Index
2+
3+
Use this page to browse the same concept across every active language track.
4+
5+
- Use [README.md](README.md) to navigate by language.
6+
- Use this index to jump directly to the same concept in C++, C#, Go, Python, and TypeScript.
7+
- Checkpoint links are grouped separately so you can compare level-end projects and assessments side by side.
8+
9+
## Concepts by Level
10+
11+
### 01-foundations
12+
13+
| Concept | C++ | C# | Go | Python | TypeScript |
14+
| --- | --- | --- | --- | --- | --- |
15+
| types-and-io | [C++](languages/cpp/01-foundations/types-and-io/README.md) | [C#](languages/csharp/01-foundations/types-and-io/README.md) | [Go](languages/go/01-foundations/types-and-io/README.md) | [Python](languages/python/01-foundations/types-and-io/README.md) | [TypeScript](languages/typescript/01-foundations/types-and-io/README.md) |
16+
| operators-and-expressions | [C++](languages/cpp/01-foundations/operators-and-expressions/README.md) | [C#](languages/csharp/01-foundations/operators-and-expressions/README.md) | [Go](languages/go/01-foundations/operators-and-expressions/README.md) | [Python](languages/python/01-foundations/operators-and-expressions/README.md) | [TypeScript](languages/typescript/01-foundations/operators-and-expressions/README.md) |
17+
| control-flow | [C++](languages/cpp/01-foundations/control-flow/README.md) | [C#](languages/csharp/01-foundations/control-flow/README.md) | [Go](languages/go/01-foundations/control-flow/README.md) | [Python](languages/python/01-foundations/control-flow/README.md) | [TypeScript](languages/typescript/01-foundations/control-flow/README.md) |
18+
| functions | [C++](languages/cpp/01-foundations/functions/README.md) | [C#](languages/csharp/01-foundations/functions/README.md) | [Go](languages/go/01-foundations/functions/README.md) | [Python](languages/python/01-foundations/functions/README.md) | [TypeScript](languages/typescript/01-foundations/functions/README.md) |
19+
| arrays-and-vectors | [C++](languages/cpp/01-foundations/arrays-and-vectors/README.md) | [C#](languages/csharp/01-foundations/arrays-and-vectors/README.md) | [Go](languages/go/01-foundations/arrays-and-vectors/README.md) | [Python](languages/python/01-foundations/arrays-and-vectors/README.md) | [TypeScript](languages/typescript/01-foundations/arrays-and-vectors/README.md) |
20+
| strings | [C++](languages/cpp/01-foundations/strings/README.md) | [C#](languages/csharp/01-foundations/strings/README.md) | [Go](languages/go/01-foundations/strings/README.md) | [Python](languages/python/01-foundations/strings/README.md) | [TypeScript](languages/typescript/01-foundations/strings/README.md) |
21+
| scope-and-lifetime-basics | [C++](languages/cpp/01-foundations/scope-and-lifetime-basics/README.md) | [C#](languages/csharp/01-foundations/scope-and-lifetime-basics/README.md) | [Go](languages/go/01-foundations/scope-and-lifetime-basics/README.md) | [Python](languages/python/01-foundations/scope-and-lifetime-basics/README.md) | [TypeScript](languages/typescript/01-foundations/scope-and-lifetime-basics/README.md) |
22+
| formatted-output-and-iomanip | [C++](languages/cpp/01-foundations/formatted-output-and-iomanip/README.md) | [C#](languages/csharp/01-foundations/formatted-output-and-iomanip/README.md) | [Go](languages/go/01-foundations/formatted-output-and-iomanip/README.md) | [Python](languages/python/01-foundations/formatted-output-and-iomanip/README.md) | [TypeScript](languages/typescript/01-foundations/formatted-output-and-iomanip/README.md) |
23+
24+
### 02-core
25+
26+
| Concept | C++ | C# | Go | Python | TypeScript |
27+
| --- | --- | --- | --- | --- | --- |
28+
| input-validation | [C++](languages/cpp/02-core/input-validation/README.md) | [C#](languages/csharp/02-core/input-validation/README.md) | [Go](languages/go/02-core/input-validation/README.md) | [Python](languages/python/02-core/input-validation/README.md) | [TypeScript](languages/typescript/02-core/input-validation/README.md) |
29+
| algorithms-basics | [C++](languages/cpp/02-core/algorithms-basics/README.md) | [C#](languages/csharp/02-core/algorithms-basics/README.md) | [Go](languages/go/02-core/algorithms-basics/README.md) | [Python](languages/python/02-core/algorithms-basics/README.md) | [TypeScript](languages/typescript/02-core/algorithms-basics/README.md) |
30+
| file-io-basics | [C++](languages/cpp/02-core/file-io-basics/README.md) | [C#](languages/csharp/02-core/file-io-basics/README.md) | [Go](languages/go/02-core/file-io-basics/README.md) | [Python](languages/python/02-core/file-io-basics/README.md) | [TypeScript](languages/typescript/02-core/file-io-basics/README.md) |
31+
| sorting-and-searching | [C++](languages/cpp/02-core/sorting-and-searching/README.md) | [C#](languages/csharp/02-core/sorting-and-searching/README.md) | [Go](languages/go/02-core/sorting-and-searching/README.md) | [Python](languages/python/02-core/sorting-and-searching/README.md) | [TypeScript](languages/typescript/02-core/sorting-and-searching/README.md) |
32+
| maps-and-frequency-counting | [C++](languages/cpp/02-core/maps-and-frequency-counting/README.md) | [C#](languages/csharp/02-core/maps-and-frequency-counting/README.md) | [Go](languages/go/02-core/maps-and-frequency-counting/README.md) | [Python](languages/python/02-core/maps-and-frequency-counting/README.md) | [TypeScript](languages/typescript/02-core/maps-and-frequency-counting/README.md) |
33+
| error-handling-and-defensive-programming | [C++](languages/cpp/02-core/error-handling-and-defensive-programming/README.md) | [C#](languages/csharp/02-core/error-handling-and-defensive-programming/README.md) | [Go](languages/go/02-core/error-handling-and-defensive-programming/README.md) | [Python](languages/python/02-core/error-handling-and-defensive-programming/README.md) | [TypeScript](languages/typescript/02-core/error-handling-and-defensive-programming/README.md) |
34+
35+
### 03-advanced
36+
37+
| Concept | C++ | C# | Go | Python | TypeScript |
38+
| --- | --- | --- | --- | --- | --- |
39+
| structs-and-classes | [C++](languages/cpp/03-advanced/structs-and-classes/README.md) | [C#](languages/csharp/03-advanced/structs-and-classes/README.md) | [Go](languages/go/03-advanced/structs-and-classes/README.md) | [Python](languages/python/03-advanced/structs-and-classes/README.md) | [TypeScript](languages/typescript/03-advanced/structs-and-classes/README.md) |
40+
| constructors-and-invariants | [C++](languages/cpp/03-advanced/constructors-and-invariants/README.md) | [C#](languages/csharp/03-advanced/constructors-and-invariants/README.md) | [Go](languages/go/03-advanced/constructors-and-invariants/README.md) | [Python](languages/python/03-advanced/constructors-and-invariants/README.md) | [TypeScript](languages/typescript/03-advanced/constructors-and-invariants/README.md) |
41+
| copy-and-move-semantics | [C++](languages/cpp/03-advanced/copy-and-move-semantics/README.md) | [C#](languages/csharp/03-advanced/copy-and-move-semantics/README.md) | [Go](languages/go/03-advanced/copy-and-move-semantics/README.md) | [Python](languages/python/03-advanced/copy-and-move-semantics/README.md) | [TypeScript](languages/typescript/03-advanced/copy-and-move-semantics/README.md) |
42+
| inheritance-and-polymorphism | [C++](languages/cpp/03-advanced/inheritance-and-polymorphism/README.md) | [C#](languages/csharp/03-advanced/inheritance-and-polymorphism/README.md) | [Go](languages/go/03-advanced/inheritance-and-polymorphism/README.md) | [Python](languages/python/03-advanced/inheritance-and-polymorphism/README.md) | [TypeScript](languages/typescript/03-advanced/inheritance-and-polymorphism/README.md) |
43+
| templates-basics | [C++](languages/cpp/03-advanced/templates-basics/README.md) | [C#](languages/csharp/03-advanced/templates-basics/README.md) | [Go](languages/go/03-advanced/templates-basics/README.md) | [Python](languages/python/03-advanced/templates-basics/README.md) | [TypeScript](languages/typescript/03-advanced/templates-basics/README.md) |
44+
45+
### 04-expert
46+
47+
| Concept | C++ | C# | Go | Python | TypeScript |
48+
| --- | --- | --- | --- | --- | --- |
49+
| memory-management-and-raii | [C++](languages/cpp/04-expert/memory-management-and-raii/README.md) | [C#](languages/csharp/04-expert/memory-management-and-raii/README.md) | [Go](languages/go/04-expert/memory-management-and-raii/README.md) | [Python](languages/python/04-expert/memory-management-and-raii/README.md) | [TypeScript](languages/typescript/04-expert/memory-management-and-raii/README.md) |
50+
| smart-pointers-in-depth | [C++](languages/cpp/04-expert/smart-pointers-in-depth/README.md) | [C#](languages/csharp/04-expert/smart-pointers-in-depth/README.md) | [Go](languages/go/04-expert/smart-pointers-in-depth/README.md) | [Python](languages/python/04-expert/smart-pointers-in-depth/README.md) | [TypeScript](languages/typescript/04-expert/smart-pointers-in-depth/README.md) |
51+
| concurrency-basics | [C++](languages/cpp/04-expert/concurrency-basics/README.md) | [C#](languages/csharp/04-expert/concurrency-basics/README.md) | [Go](languages/go/04-expert/concurrency-basics/README.md) | [Python](languages/python/04-expert/concurrency-basics/README.md) | [TypeScript](languages/typescript/04-expert/concurrency-basics/README.md) |
52+
| performance-and-profiling-basics | [C++](languages/cpp/04-expert/performance-and-profiling-basics/README.md) | [C#](languages/csharp/04-expert/performance-and-profiling-basics/README.md) | [Go](languages/go/04-expert/performance-and-profiling-basics/README.md) | [Python](languages/python/04-expert/performance-and-profiling-basics/README.md) | [TypeScript](languages/typescript/04-expert/performance-and-profiling-basics/README.md) |
53+
| modularization-and-build-structure | [C++](languages/cpp/04-expert/modularization-and-build-structure/README.md) | [C#](languages/csharp/04-expert/modularization-and-build-structure/README.md) | [Go](languages/go/04-expert/modularization-and-build-structure/README.md) | [Python](languages/python/04-expert/modularization-and-build-structure/README.md) | [TypeScript](languages/typescript/04-expert/modularization-and-build-structure/README.md) |
54+
55+
## Checkpoints by Level
56+
57+
### Projects
58+
59+
| Level | C++ | C# | Go | Python | TypeScript |
60+
| --- | --- | --- | --- | --- | --- |
61+
| 01-foundations | [C++](languages/cpp/projects/01-foundations/README.md) | [C#](languages/csharp/projects/01-foundations/README.md) | [Go](languages/go/projects/01-foundations/README.md) | [Python](languages/python/projects/01-foundations/README.md) | [TypeScript](languages/typescript/projects/01-foundations/README.md) |
62+
| 02-core | [C++](languages/cpp/projects/02-core/README.md) | [C#](languages/csharp/projects/02-core/README.md) | [Go](languages/go/projects/02-core/README.md) | [Python](languages/python/projects/02-core/README.md) | [TypeScript](languages/typescript/projects/02-core/README.md) |
63+
| 03-advanced | [C++](languages/cpp/projects/03-advanced/README.md) | [C#](languages/csharp/projects/03-advanced/README.md) | [Go](languages/go/projects/03-advanced/README.md) | [Python](languages/python/projects/03-advanced/README.md) | [TypeScript](languages/typescript/projects/03-advanced/README.md) |
64+
| 04-expert | [C++](languages/cpp/projects/04-expert/README.md) | [C#](languages/csharp/projects/04-expert/README.md) | [Go](languages/go/projects/04-expert/README.md) | [Python](languages/python/projects/04-expert/README.md) | [TypeScript](languages/typescript/projects/04-expert/README.md) |
65+
66+
### Assessments
67+
68+
| Level | C++ | C# | Go | Python | TypeScript |
69+
| --- | --- | --- | --- | --- | --- |
70+
| 01-foundations | [C++](languages/cpp/assessments/01-foundations/README.md) | [C#](languages/csharp/assessments/01-foundations/README.md) | [Go](languages/go/assessments/01-foundations/README.md) | [Python](languages/python/assessments/01-foundations/README.md) | [TypeScript](languages/typescript/assessments/01-foundations/README.md) |
71+
| 02-core | [C++](languages/cpp/assessments/02-core/README.md) | [C#](languages/csharp/assessments/02-core/README.md) | [Go](languages/go/assessments/02-core/README.md) | [Python](languages/python/assessments/02-core/README.md) | [TypeScript](languages/typescript/assessments/02-core/README.md) |
72+
| 03-advanced | [C++](languages/cpp/assessments/03-advanced/README.md) | [C#](languages/csharp/assessments/03-advanced/README.md) | [Go](languages/go/assessments/03-advanced/README.md) | [Python](languages/python/assessments/03-advanced/README.md) | [TypeScript](languages/typescript/assessments/03-advanced/README.md) |
73+
| 04-expert | [C++](languages/cpp/assessments/04-expert/README.md) | [C#](languages/csharp/assessments/04-expert/README.md) | [Go](languages/go/assessments/04-expert/README.md) | [Python](languages/python/assessments/04-expert/README.md) | [TypeScript](languages/typescript/assessments/04-expert/README.md) |

CONTRIBUTING.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ The public PowerShell and Bash scripts are thin wrappers over the shared Python
7373
- New concept modules should follow the existing folder layout.
7474
- Every concept README in implemented levels should include:
7575
- required `## Learning Metadata` before `## Quick Run` with `Difficulty`, `Estimated Time`, `Prerequisites`, and `Cross-Language Lens`
76+
- recommended `## Cross-Language Notes` after `## Common Pitfalls` and before `## Exercise Focus`
7677
- `## Quick Run`
7778
- `## Topics Covered`
7879
- `## Common Pitfalls`
@@ -84,6 +85,7 @@ The public PowerShell and Bash scripts are thin wrappers over the shared Python
8485
- runnable entrypoint (`main.cs` + `.csproj`, `main.go`, `main.py`, or `main.ts`)
8586
- the same learner goal, input/output shape, and acceptance expectations as the corresponding C++ checkpoint
8687
- required `## Learning Metadata` before `## Quick Run` with `Difficulty`, `Estimated Time`, `Prerequisites`, and `Learning Focus`
88+
- recommended `## Cross-Language Notes` before `## What To Check`
8789
- Every implemented level README should include required `## Learning Metadata` before `## Module Order` with `Difficulty`, `Estimated Time`, `Prerequisites`, and `Study Strategy`.
8890
- Checkpoint README structure should mirror the matching C++ checkpoint style, not the module README contract.
8991
- Every `example/main.*` file should include intent-first comments for:
@@ -100,6 +102,7 @@ The public PowerShell and Bash scripts are thin wrappers over the shared Python
100102
- Keep documentation in English and keep path names consistent with folder names.
101103
- Keep parity planning updated in `LANGUAGE_PARITY_MATRIX.md` when adding modules or checkpoints to non-C++ tracks.
102104
- Keep root and language README status sections aligned with project and assessment coverage when those directories change.
105+
- Keep [CONCEPT_INDEX.md](CONCEPT_INDEX.md) aligned with any new or renamed module/checkpoint paths.
103106

104107
## Commit Messages
105108

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ If you only want to learn one track, follow that track README first because lang
5757
| TypeScript | 01-foundations, 02-core, 03-advanced, 04-expert | 8/8 foundations modules, 6/6 core modules, 5/5 advanced modules, 5/5 expert modules, 4/4 projects, 4/4 assessments | Module and checkpoint parity complete through expert |
5858

5959
Parity planning reference: [LANGUAGE_PARITY_MATRIX.md](LANGUAGE_PARITY_MATRIX.md)
60+
Browse by concept: [CONCEPT_INDEX.md](CONCEPT_INDEX.md)
6061

6162
## Run One Example Per Language
6263

@@ -127,6 +128,8 @@ A standardized `## Learning Metadata` block is required before `## Quick Run` fo
127128
- checkpoints: difficulty, estimated time, prerequisites, learning focus
128129
- level READMEs: difficulty, estimated time, prerequisites, study strategy
129130

131+
`## Cross-Language Notes` is the recommended comparison section for new or substantially updated modules and checkpoints. Keep it short, concrete, and honest about where concepts do not map one-to-one.
132+
130133
Checkpoint artifacts under `languages/<language>/projects/*` and `languages/<language>/assessments/*` should mirror the corresponding C++ checkpoint style:
131134

132135
- `README.md`
@@ -173,6 +176,8 @@ The public PowerShell and Bash scripts remain the supported entrypoints, but the
173176

174177
The multi-language smoke scripts also compile standalone C# exercises by generating temporary validation projects during the check and compile TypeScript programs before executing their smoke targets.
175178

179+
Documentation sync also validates that [CONCEPT_INDEX.md](CONCEPT_INDEX.md) covers every implemented module and checkpoint path listed in the automation manifest.
180+
176181
## Contributing
177182

178183
See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution workflow and documentation requirements.

languages/cpp/04-expert/concurrency-basics/README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@ On Linux, `-pthread` is required for thread support.
3636
- Forgetting to join threads before program exit.
3737
- Waiting on condition variables without a predicate.
3838

39+
## Cross-Language Notes
40+
41+
- This version is the thread-and-mutex baseline for the repo.
42+
- Other tracks keep the same coordination goals but use very different runtime primitives such as goroutines, tasks, threads under the GIL, or promises.
43+
- Compare the cost of explicit synchronization here with the safer defaults in higher-level runtimes.
44+
3945
## Exercise Focus
4046

4147
- `exercises/01.cpp`: parallel chunk sum with worker threads.
@@ -59,3 +65,4 @@ On Linux, `-pthread` is required for thread support.
5965
- [ ] I can protect critical sections with a mutex.
6066
- [ ] I can coordinate producers and consumers correctly.
6167
- [ ] I completed both exercises.
68+

languages/cpp/04-expert/memory-management-and-raii/README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@ g++ -std=c++17 -Wall -Wextra -pedantic example/main.cpp -o memory_raii_example
3434
- Attempting to copy `unique_ptr`.
3535
- Mixing ownership and non-ownership pointers incorrectly.
3636

37+
## Cross-Language Notes
38+
39+
- This is the canonical RAII version: cleanup is tied to scope exit through destructors.
40+
- Compare this with C#, Python, Go, and TypeScript, where resource cleanup is explicit even when memory is managed.
41+
- The transferable idea is lifetime discipline, not the exact destructor syntax.
42+
3743
## Exercise Focus
3844

3945
- `exercises/01.cpp`: dynamic array with `std::unique_ptr<int[]>`.
@@ -57,3 +63,4 @@ g++ -std=c++17 -Wall -Wextra -pedantic example/main.cpp -o memory_raii_example
5763
- [ ] I can use `unique_ptr` for owned dynamic memory.
5864
- [ ] I can design classes with cleanup in destructors.
5965
- [ ] I completed both exercises.
66+

languages/cpp/04-expert/modularization-and-build-structure/README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@ g++ -std=c++17 -Wall -Wextra -pedantic example/main.cpp -o modularization_exampl
3434
- Circular includes.
3535
- Missing declarations for used symbols.
3636

37+
## Cross-Language Notes
38+
39+
- C++ is the canonical header/source split, so it anchors how the repo thinks about multi-file structure.
40+
- Other tracks keep the same separation goals but express them with imports, packages, projects, or namespaces.
41+
- The comparison to watch is not syntax, but where each language chooses to expose public boundaries.
42+
3743
## Exercise Focus
3844

3945
- `exercises/01.cpp`: refactor procedural code into module-like sections.
@@ -57,3 +63,4 @@ g++ -std=c++17 -Wall -Wextra -pedantic example/main.cpp -o modularization_exampl
5763
- [ ] I can design reusable helper utilities.
5864
- [ ] I can explain how multi-file builds are assembled.
5965
- [ ] I completed both exercises.
66+

languages/cpp/04-expert/performance-and-profiling-basics/README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@ g++ -std=c++17 -Wall -Wextra -pedantic example/main.cpp -o performance_profiling
3434
- Drawing conclusions from one run.
3535
- Ignoring algorithmic complexity.
3636

37+
## Cross-Language Notes
38+
39+
- C++ is the lowest-level performance baseline in the repo, so its examples map most directly to memory layout and native execution costs.
40+
- Other tracks keep the same measurement discipline but add runtime effects such as garbage collection, interpreter overhead, or JIT behavior.
41+
- Use this module as the reference point for what later tracks are abstracting away.
42+
3743
## Exercise Focus
3844

3945
- `exercises/01.cpp`: compare pass-by-value vs const-reference.
@@ -57,3 +63,4 @@ g++ -std=c++17 -Wall -Wextra -pedantic example/main.cpp -o performance_profiling
5763
- [ ] I can compare two implementations fairly.
5864
- [ ] I can justify simple optimization choices.
5965
- [ ] I completed both exercises.
66+

0 commit comments

Comments
 (0)