csharp
csharp copied to clipboard
add explanation of concepts to various design.md documents
There is a mismatch (see tables, below) between the concepts attributed to an exercise in csharp/reference/README.md which reflects the original concept-scraping task performed by the track's maintainers and what is shown for each exercise in csharp/config.json which is the official catalog of completed exercises.
The task, here, is to align the concepts associated in an exercise in csharp/config.json with those in csharp/reference/exercises.json (from which csharp/reference/README.md is generated).
For each concept found in config.json, not in exercises.json
- check if the concept is fully illustrated or described in the exercise to which it is attributed
- if the concept is fully illustrated or described then:
- add the concept's name and a brief description to the exercise's design.md document
- add the concept to the exercise in csharp/reference/exercises.json.
- if the concept is not fully illustrated or described in the exercise but it is an appropriate concept for the exercise then:
- amend the exercise's introduction.md, after.md and/or the code files and instructions to reflect the concept
- add the concept's name and a brief description to the exercise's design.md document
- add the concept to the exercise in csharp/reference/exercises.json.
- if the concept is not fully illustrated or described in the exercise and it is not an appropriate concept for the exercise then:
- add the concept to the unallocated-concepts exercise at the end of exercises.json where it can be picked up for further review
For each concept found in exercises.json, not in config.json
- check if the concept is fully illustrated or described in the exercise to which it is attributed
- if the concept if fully illustrated or described then:
- add the concept to the exercise in csharp/config.json.
- if the concept is not fully illustrated or described in the exercise but it is an appropriate concept for the exercise then:
- amend the exercise's introduction.md, after.md and/or the code files and instructions to reflect the concept
- add the concept to the exercise in csharp/config.json.
- if the concept is not fully illustrated or described in the exercise and it is not an appropriate concept for the exercise then:
- take the concept from the exercise in exercises.json and move it to the unallocated-concepts exercise in exercises.json where it can be picked up for further review
Concepts in csharp/config.json not in csharp/reference/exercises.json
Exercise | Concept |
---|---|
flag-enums | compound-assignment |
integral-numbers | casting |
method-overloading | named-arguments |
Concepts in csharp/reference/exercises.json not in csharp/config.json
Exercise | Concept |
---|---|
classes | encapsulation |
classes | fields |
classes | objects |
classes | state |
classes | visibility |
classes | default-value |
inheritance | polymorphism |
basics | return-values |
basics | mutation |
basics | functions |
basics | type-inference |
basics | comments |
basics | scoping |
basics | variables |
nullability | null-coalescing |
nullability | null-conditional |
nullability | null-forgiving |
nullability | nullable-values |
numbers | math-operators |
numbers | assignment |
dictionaries | base-class-library |
equality | marker-interfaces |
parameters | named-arguments |
parameters | out-parameters |
parameters | optional-arguments |
time | cross-platform |
interfaces | explicit-interfaces |
integral-numbers | unsigned-integers |
lists | collections |
namespaces | imports |
string-formatting | interpolation |
casting | implicit-casting |
Concepts in csharp/config.json not in csharp/reference/exercises.json addressed in PR exercism/v3#2260.
The missing concepts related to classes
are discussed here
The missing concepts related to classes
are addressed with PR exercism/v3#2822.
Included polymorphism
as part of the inheritance
concept - PR exercism/v3#2887
The issues related to the basics
exercise/concept have been resolved in PR exercism/v3#3059. All the missing concepts are treated as sub-concepts of the basics
concept.