1 of 20

On the Current State of SG20

Study Group on Education: Past, Present, and Future

JC van Winkel

Florian

Sattler

Wednesday, June 14

Room: Nota

14:00 - 15:30 In session

15:30 - 15:45 afternoon break

15:45 - 17:30 In session

2 of 20

Agenda - Varna

  • We follow WG21 P&P and ISO CoC
    • Who can participate? See here
  • Find a Scribe
  • Recap: What happened in the last year(s)
  • The SG20 Workflow
    • Overview: How does our workflow currently work
    • How to contribute
    • How to get more buy-in from people?
    • How to link topics and other material?
  • Integrating Education (SG20) better into the overall committee process
    • We did suggest sending proposals via SG20 for teachability
    • Audience Tables (https://wg21.link/p1700)
  • Practical: Let’s work on some new topics

3 of 20

Recap

  • Standing online document
  • 33 topics in 9 modules
  • Multiple focus groups (EU, NA, …)

4 of 20

The SG20 Workflow

WG21

Provide the distilled information through an online document

Collect wisdom from teachers and committee members.

Distill wisdom and information into guidelines for teachers.

5 of 20

Structure

Raw Document

sources

├── ...

├── modules

│ ├── compilation-model

│ │ ├── linkage.md

│ │ └── translation-units.md

│ ├── compile-time-programming

│ │ ├── concepts.md

│ │ ├──

│ │ └── requires-expressions.md

│ ├── error-handling

│ ├── functions

│ ├──

│ ├── type-system

│ └── user-defined-types

├── ...

Teaching Module:

A group of topics that are related.

Teaching Topic:

Collects and groups together important teaching information about a specific topic, subdividing the information into fundamental/main/advanced.

6 of 20

How topics are structured

All topics follow the same structure, laid out in P2193 and implemented as our topic skeleton (a template really, but ehhh, confusion)

Each topic is sub-divided into 3 levels:

  • Foundational
    • This level shows the learner the idea and the basic ways of using it.
  • Main
    • This level shows mainstream uses and techniques.
  • Advanced
    • This level points to further information suitable for an expert.

Foundational and Main then each list:

  • Required knowledge (what is necessary to start with this topic/level)
  • Learning objectives (per level objectives allow us to create a graph of topics)
  • Caveats (potential problems or sharp corners)
  • Points that should be covered (important things that should not be overlooked)

7 of 20

Overview: How does our SG20 workflow currently work

Online Document

Pull Request

Changes

Tentative Ready

SG20 Meeting

Raw Document

SG20 approved

feedback

external feedback

8 of 20

How to contribute?

Contributor roles:

  • Specialized contributor who wants to have a specific topic in the guidelines
  • Experienced instructors with an opinion to participate in a discussion group for some topic.
  • A Polisher who has used the guidelines (or has opinions from other experiences) and adds small improvements to varying topics.

Note: All roles facilitate doing "snack sized" contributions, where a single "work item" takes 1 to 2 hours of work

If you’re interested, reach out ot JC van Winkel or Florian Sattler

9 of 20

How to get more buy-in from people?

  • Having sub-group discussions has already helped a bit to get people going.
  • Post a simplified workflow guide online?

Problem: Currently, the are only a few active people in SG20 that work on new teaching topics or extend existing ones. Far to few, to get a good coverage of C++. How can be integrate more people into the process and enable them to develop and extend teaching topics?

10 of 20

How to link topics and other material?

Potential types of links:

  • is required to understand
  • would be good to know
  • external reference
  • …?

Problem: We need to link to other topics and external sources. What should the different semantics behind the links be? Meaning, what do we want/need to communicated to a curriculum designer. Does this link indicate a hard knowledge requirement, a good ordering, or just a hint?

11 of 20

Integrating Education (SG20) better into the overall committee process

12 of 20

Integrating Education better into the committee process

Problem: Currently, education is not a first class citizen and potential negative impacts of papers on the teachability are treated as an afterthought in the committee process. This is understandable to a degree, as the standard process and language design require a very high technical focus.

WG21

Committee Member (Language Expert)

C++ Standard

13 of 20

Integrating Education better into the committee process

Problem: Currently, education is not a first class citizen and potential negative impacts of papers on the teachability are treated as an afterthought in the committee process. This is understandable to a degree, as the standard process and language design require a very high technical focus.

WG21

Committee Member (Language Expert)

C++ Standard

Experts

14 of 20

Integrating Education better into the committee process

Problem: Currently, education is not a first class citizen and potential negative impacts of papers on the teachability are treated as an afterthought in the committee process. This is understandable to a degree, as the standard process and language design require a very high technical focus.

WG21

Committee Member (Language Expert)

C++ Standard

Experts

Advanced Users

15 of 20

Integrating Education better into the committee process

Problem: Currently, education is not a first class citizen and potential negative impacts of papers on the teachability are treated as an afterthought in the committee process. This is understandable to a degree, as the standard process and language design require a very high technical focus.

WG21

Committee Member (Language Expert)

C++ Standard

Experts

Users

Advanced Users

WG21

16 of 20

Integrating Education better into the committee process

Problem: Currently, education is not a first class citizen and potential negative impacts of papers on the teachability are treated as an afterthought in the committee process. This is understandable to a degree, as the standard process and language design require a very high technical focus.

WG21

Committee Member (Language Expert)

C++ Standard

Experts

Users

Advanced Users

WG21

"log"-scale

17 of 20

Integrating Education better into the committee process

  • Audience tables (P1700)
    • Who uses → What of the proposed feature?
    • What levels do we want?
    • Integrate in "how to write a proposal" ?
  • How should we connect SG20 with other SGs/LEWG/EWG?
    • When should SG20 be involved?
    • How should SG20 be involved?

Problem: Currently, education is not a first class citizen and potential negative impacts of papers on the teachability are treated as an afterthought in the committee process. This is understandable to a degree, as the standard process and language design require a very high technical focus.

18 of 20

Let’s work on some new topics

19 of 20

Let’s work on some new topics

  • We split into small groups, about 4-5 people.
  • Each group picks a topic and prepares a drafts.
  • In the end, we discuss the topics together and propose them on github.

Open Topics: (module name: topic name)

  • C++ compilation model: Name Mangling
  • C++ compilation model: Phases of Translation
  • Program design: Resource Handling
  • Program design: Algorithms
  • Tooling: Compiler
  • User defined types: Member Functions

Timeline:

15:45 – 16:00 Intro

16:00 – 16:45 Group work

16:45 – 17:30 Discussion

20 of 20

Level Definitions

Foundational: This level gives the learner the idea that a facility exists, what benefits it offers, and the basic ways of using it.

E.g., Using user-defined literals

Main: This level shows mainstream uses and techniques. For abstraction and organizational mechanisms it also demonstrates how to build them. This level should also give the learner a basic (but not detailed) understanding of how a facility might be implemented so that the learner can have a first-order understanding of any costs involved.

E.g., Implementing custom user-defined literals

Advanced: This level gives information suitable for an expert. For most topics there is an expert level of knowledge that most programmers rarely need and techniques that require detailed understanding of language rules or library implementation.

E.g., Special user-defined literal syntax

Timeline:

15:45 – 16:00 Intro

16:00 – 16:45 Group work

16:45 – 17:30 Discussion