Hi,

In the pre-Cologne mailing, Christopher Di-Bella published a new paper targeted sg20.
The paper is p1725r0 - Modular Topic Design (https://wg21.link/p1725r0).
This paper follows previous discussions (that I missed somehow) that suggested changing the model used to create our teaching guidelines.

First, nicely done! I agree with this direction myself and think this will improve the produced guidelines quality and usability.

I'd like to share some thought and comments about it, especially as I can't attend the telecons and have no plans to attend the committee meetings in the near future.

1. List of modules/units (module units? :) )
I'm missing modules that are designed around a programming paradigm. I think more (academic) courses are designed around a paradigm than around a technical topic.
The two obvious examples are Object-Oriented programming and Generic programming. Maybe Functional programming should be there too? (Probably about using STL and vocabulary types like std::optional, std::variant and std::function)

2. Having a common basic module
As the target students including students that are new to programming, we need a basic module which is prerequisite to every other module. This basic module teaches the basics of programming (using C++), including:
- the basic concept of variable/object
- a few basic types (probably those that were suggested in p1389r0 [types.basic.primary] (<shameless plug>but see p1747 about `char8_t` and `u8string`</shameless plug>)
- flow control
- basic understand of functions (just the very basic of few of the topics currently suggested for Functions module)

3. Maybe a separated basic module for programmers coming from other languages? Just to adapt what they already know to C++ way.

4. Functions module
I think it should include also recursion (see my #4)


Thanks
Yehezkel