Skip to content

Extending the learning syllabus: a tentative plan #1247

@colinleach

Description

@colinleach

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



Loading

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



Loading

What do we do about these?

  • LINQ
  • Regex

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions