Skip to content

Commit 82ef7e9

Browse files
committed
Expand cross-language notes and strengthen core smoke
1 parent be4deb8 commit 82ef7e9

27 files changed

Lines changed: 313 additions & 6 deletions

File tree

languages/cpp/01-foundations/arrays-and-vectors/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,12 @@ g++ -std=c++17 -Wall -Wextra -pedantic example/vector-filter.cpp -o arrays_and_v
3838
- Mixing signed and unsigned indexes carelessly.
3939
- Forgetting to validate `n` before reading values.
4040

41+
## Cross-Language Notes
42+
43+
- Compared with the C++ version, each track solves the same sequence problems with a different default dynamic-array model.
44+
- The key comparison is where bounds safety, resizing behavior, and iteration ergonomics come from in each language.
45+
- This module is most useful when you notice how similar tasks feel different under `vector`, `List<T>`, slices, Python lists, and TypeScript arrays.
46+
4147
## Exercise Focus
4248

4349
- `exercises/01.cpp`: print user-provided integers in reverse order.

languages/cpp/01-foundations/strings/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,12 @@ g++ -std=c++17 -Wall -Wextra -pedantic example/string-clean-and-tokenize.cpp -o
3838
- Using string indexes without boundary checks.
3939
- Not checking for `std::string::npos` after `find`.
4040

41+
## Cross-Language Notes
42+
43+
- Compared with C++, the other tracks usually hide more of the low-level string-management cost while keeping the same parsing goals.
44+
- Relative to Python and TypeScript, C# and Go keep more explicit API choices around splitting, trimming, and rebuilding text.
45+
- The main comparison is text-processing convenience versus how visible allocation and mutation remain.
46+
4147
## Exercise Focus
4248

4349
- `exercises/01.cpp`: count words in a sentence.

languages/cpp/02-core/algorithms-basics/README.md

Lines changed: 6 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 algorithms_basics_exa
3434
- Initializing min/max incorrectly.
3535
- Running multiple passes when one pass is enough.
3636

37+
## Cross-Language Notes
38+
39+
- Compared with the C++ baseline, the same traversal and aggregation ideas are expressed with different defaults for loops, collections, and helper functions.
40+
- Relative to Python, the statically typed tracks make intermediate state and accumulator types more explicit.
41+
- The useful comparison is algorithm shape staying constant while the surrounding syntax and safety rails change.
42+
3743
## Exercise Focus
3844

3945
- `exercises/01.cpp`: linear search and first index.

languages/cpp/02-core/sorting-and-searching/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,12 @@ g++ -std=c++17 -Wall -Wextra -pedantic example/stable-vs-unstable-sort.cpp -o so
3838
- Off-by-one index errors.
3939
- Forgetting to return `-1` when target is missing.
4040

41+
## Cross-Language Notes
42+
43+
- Compared with C++, the other tracks keep the same ordering and lookup ideas but differ in how visible comparator design is.
44+
- Relative to Python and TypeScript, Go and C# ask for more explicit decisions around helper functions and ordering rules.
45+
- The key comparison is not the algorithm itself, but how much control each language exposes around sorting behavior.
46+
4147
## Exercise Focus
4248

4349
- `exercises/01.cpp`: implement selection sort.

languages/cpp/03-advanced/templates-basics/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,12 @@ g++ -std=c++17 -Wall -Wextra -pedantic example/generic-print-and-sum.cpp -o temp
3838
- Assuming all types support required operators.
3939
- Confusing template type deduction behavior.
4040

41+
## Cross-Language Notes
42+
43+
- Compared with C++, this concept broadens from templates into each language's own reusable generic abstraction model.
44+
- Relative to Go and C#, TypeScript generics stay expressive without runtime specialization, while Python treats the same idea more informally.
45+
- The useful comparison is how each language generalizes logic without abandoning type clarity.
46+
4147
## Exercise Focus
4248

4349
- `exercises/01.cpp`: template swap function.

languages/csharp/01-foundations/arrays-and-vectors/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ dotnet run --project example/arrays-and-vectors-example.csproj
2828
- Off-by-one errors while reading N elements.
2929
- Not handling empty input in frequency tasks.
3030

31+
## Cross-Language Notes
32+
33+
- Compared with the C++ version, each track solves the same sequence problems with a different default dynamic-array model.
34+
- The key comparison is where bounds safety, resizing behavior, and iteration ergonomics come from in each language.
35+
- This module is most useful when you notice how similar tasks feel different under `vector`, `List<T>`, slices, Python lists, and TypeScript arrays.
36+
3137
## Exercise Focus
3238

3339
- exercises/01.cs: read N integers, store them, and print them in reverse order.

languages/csharp/01-foundations/strings/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ dotnet run --project example/strings-example.csproj
2828
- Comparing palindromes before removing punctuation and case differences.
2929
- Failing to handle inputs without alphabetic characters.
3030

31+
## Cross-Language Notes
32+
33+
- Compared with C++, the other tracks usually hide more of the low-level string-management cost while keeping the same parsing goals.
34+
- Relative to Python and TypeScript, C# and Go keep more explicit API choices around splitting, trimming, and rebuilding text.
35+
- The main comparison is text-processing convenience versus how visible allocation and mutation remain.
36+
3137
## Exercise Focus
3238

3339
- exercises/01.cs: count words in an input line using robust whitespace handling.

languages/csharp/02-core/algorithms-basics/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ dotnet run --project example/algorithms-basics-example.csproj
2828
- Using incorrect initial values for min/max.
2929
- Repeating loops when a single pass can compute all metrics.
3030

31+
## Cross-Language Notes
32+
33+
- Compared with the C++ baseline, the same traversal and aggregation ideas are expressed with different defaults for loops, collections, and helper functions.
34+
- Relative to Python, the statically typed tracks make intermediate state and accumulator types more explicit.
35+
- The useful comparison is algorithm shape staying constant while the surrounding syntax and safety rails change.
36+
3137
## Exercise Focus
3238

3339
- exercises/01.cs: linear search and first index.

languages/csharp/02-core/sorting-and-searching/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ dotnet run --project example/sorting-and-searching-example.csproj
2828
- Off-by-one errors in `left` and `right` boundaries.
2929
- Forgetting to return `-1` when a target is missing.
3030

31+
## Cross-Language Notes
32+
33+
- Compared with C++, the other tracks keep the same ordering and lookup ideas but differ in how visible comparator design is.
34+
- Relative to Python and TypeScript, Go and C# ask for more explicit decisions around helper functions and ordering rules.
35+
- The key comparison is not the algorithm itself, but how much control each language exposes around sorting behavior.
36+
3137
## Exercise Focus
3238

3339
- exercises/01.cs: implement selection sort.

languages/csharp/03-advanced/templates-basics/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ dotnet run --project example/templates-basics-example.csproj
2828
- Using `object` instead of generics and losing type safety.
2929
- Hiding constraints until compile errors become confusing.
3030

31+
## Cross-Language Notes
32+
33+
- Compared with C++, this concept broadens from templates into each language's own reusable generic abstraction model.
34+
- Relative to Go and C#, TypeScript generics stay expressive without runtime specialization, while Python treats the same idea more informally.
35+
- The useful comparison is how each language generalizes logic without abandoning type clarity.
36+
3137
## Exercise Focus
3238

3339
- exercises/01.cs: generic swap function.

0 commit comments

Comments
 (0)