Extending the learning syllabus: a tentative plan

Open
#1,247 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
18/100
Issue type
Documentation
Clarity
Needs clarification
Activity status
Stale
Tech stack
fsharp

Research direction

Start with the Mermaid concept trees in this issue and the linked tracking sheet to understand the proposed F# syllabus and its gaps. No source files, tests, or entry points are named. The work is complete only after the syllabus scope and outstanding concepts are agreed and the plan is updated accordingly.

Written by the indexing model from the issue text.

Description

Concept tree for F# learning mode

Live exercises and concepts

Solid green means both are merged and the exercise is available to students.

Some that are already in progress or planned

This is a very fluid plan and will doubtless continue to change frequently!

Boxes with green borders have the exercise + concept PRs submitted.

Progress tracking

For anyone interested in the boring details, there is a tracking sheet.

graph TD
    
start(("Start")) --basics--> basics["lasagna"]
style basics fill:#0f0

basics --booleans--> booleans["annalyns-infiltration"]
style booleans fill:#0f0

booleans --if-then-else--> if-then-else["cars-assemble"]
style if-then-else fill:#0f0

strings --numbers--> numbers["cars-assemble"]
style numbers fill:#0f0

strings -.chars.-> chars["squeaky-clean"]
style chars fill:#0f0

if-then-else -.chars.-> chars["squeaky-clean"]
style chars fill:#0f0

 if-then-else -..- numbers

if-then-else --pattern-matching--> pattern-matching["guessing-game"]
style pattern-matching fill:#0f0

numbers --pattern-matching--> pattern-matching["guessing-game"]
style pattern-matching stroke:#f00

numbers --datetimes--> datetimes["booking-up-for-beauty"]
style datetimes fill:#0f0

numbers --floating-point-numbers--> floating-point-numbers["interest-is-interesting"]
style floating-point-numbers fill:#0f0

numbers -.integral-numbers.-> integral-numbers["hyper-optimized-telemetry"]
style integral-numbers stroke:#f00

pattern-matching -.expressions.-> expressions["??"]
style expressions stroke:#f00

basics --strings--> strings["log-levels"]
style strings fill:#0f0

basics -.modules??.-> modules["??"]
style modules stroke:#f00

pattern-matching --tuples--> tuples["tisbury-treasure-hunt"]
style tuples fill:#0f0

pattern-matching --arrays--> arrays["bird-watcher"]
style arrays fill:#0f0

pattern-matching --recursion--> recursion["pizza-pricing"]
style recursion fill:#0f0

pattern-matching --lists--> lists["tracks-on-tracks-on-tracks"]
style lists fill:#0f0

lists -.higher-order-functions.-> higher-order-functions["secret-agent ?"]
style higher-order-functions stroke:#f00

higher-order-functions -.function-composition.-> function-composition["??"]
style function-composition stroke:#f00

pattern-matching --records--> records["bandwagoner"]
style records fill:#0f0

records -.generic-types.-> generic-types["??"]
style generic-types stroke:#f00

generic-types -.maps.-> maps["international-calling-connoisseur ?"]
style maps stroke:#f00

generic-types -.sets.-> sets["face-id2"]
style sets stroke:#f00

generic-types -.mutation.-> mutation["??"]
style mutation stroke:#f00

mutation -.fields.-> fields["??"]
style fields stroke:#f00

records -.classes.-> classes["elons-toys"]
style classes stroke:#f00

pattern-matching -.exceptions.-> exceptions["calculator-conundrum"]
style exceptions stroke:#f00

exceptions -.overflows.-> overflows["hyperinflation-hits-hyperia"]
style overflows stroke:#f00

options -..-> error-handling["??"]
style error-handling stroke:#f00

exceptions -.error-handling.-> error-handling["??"]
style error-handling stroke:#f00

classes -..-> inheritance["wizard-and-warriors"]
style inheritance stroke:#f00

basics --discriminated-unions--> discriminated-unions["valentines-day"]
style discriminated-unions fill:#0f0

discriminated-unions -.inheritance.-> inheritance["wizards-and-warriors"]
style inheritance stroke:#f00

inheritance -.string-formatting.-> string-formatting["high-school-sweethearts"]
style string-formatting stroke:#f00

discriminated-unions -.options.-> options["??"]
style options stroke:#f00

options -.results.-> results["??"]
style results stroke:#f00

classes -.method-overloading.-> method-overloading["wizards-and-warriors-2"]
style method-overloading stroke:#f00

method-overloading -.constructors.-> constructors["need-for-speed"]
style constructors stroke:#f00

inheritance -.attributes.-> attributes["attack-of-the-trolls"]
style attributes stroke:#f00

classes -.properties.-> properties["weighing-machine"]
style properties stroke:#f00

properties -.static-members.-> static-members["??"]
style static-members stroke:#f00

static-members -.operator-overloading.-> operator-overloading["??"]
style operator-overloading stroke:#f00



Other stuff to add:

graph TD
    
TODO -.memory-allocation.-> memory-allocation["??"]
style memory-allocation stroke:#f00

TODO -.type-inference.-> type-inference["??"]
style type-inference stroke:#f00

TODO -.continuations.-> continuations["??"]
style continuations stroke:#f00

TODO -.structs.-> structs["land-grab-in-space ?"]
style structs stroke:#f00



What do we do about these?

  • LINQ
  • Regex
Dominant language
F#
Stars
118
Forks
113
Avg merge
2d 12h
Merged PRs (30d)
2

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from exercism/fsharp

All issues in exercism/fsharp

Similar issues

More Content issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.