- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 1.4k
[Python Track Syllabus]: Track Re-Ordering #3057
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
      
        
              This comment was marked as resolved.
        
        
      
    
  This comment was marked as resolved.
| Wow! That's a lotta work! It's kind of late for me now. I'd like to review this tomorrow when my mind is fresh, if that's okay. | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggested changes center on difficulty levels, prerequisites, and what is being practiced for exercises with which I'm familiar from having solved and mentored them. However, they are somewhat subjective, so if none of them are accepted I won't take offense.
| "slug": "triangle", | ||
| "name": "Triangle", | ||
| "uuid": "f0bc144f-3226-4e53-93ee-e60316b29e31", | ||
| "practices": ["bools"], | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a great exercise to introduce a decorator for validating triangle validity, but if it only can practice one concept, then booleans would be it. Although sets could also be a practiced concept here, as many solutions use the len of a set of the three sides. Not sure why the restriction to practicing only one concept.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The "restriction" is around how unlocking logic works.  If I have this exercise practice "bools", it will show up in the tree under "bools", and be unlocked by it.  Most students will then take on the exercise once they finish the "bools" concept exercise.  By the time they get to doing sets, this exercise will have already been "practiced", and so be redundant for them...and vice-versa.  If I have it practice sets, it will not be locked until the prerequisite is satisfied.  But that closes off the exercise from students who've only completed "bools".
....But maybe this is an an opportunity to create a similar problem or extended problem, purpose-built for a set-wise solution?  Analogous to "Resistor Color Duo" - only in this case, comparing triangles??   Same for decorators -- doing maybe a transform decorator that changes a triangle from one category to another??......
I don't know. But the upshot (at least for the early exercises) is that we need to pick a "main" concept that an exercise practices.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am going to leave this "unresolved", just to have the convo open.  I think for now I will leave this as-is, with the thought we'd make extended or variant exercises to triangle.
| Alrighty. I've pushed the suggested changes. I think we can put a pin in this for now. Maybe revisit it in a bit. 😄 Thank you for your (very) thoughtful review! 🌟 | 
| @bobahop - do we merge these changes thus far, or would you like to look at / discuss further? I am happy either way. 😄 | 
| Sorry it took me so long to notice this. I have nothing I feel strongly about to change, so I've approved it. This is truly a massive amount of dedication and work! | 
| eeek. Pushing the big, green button. Let's hope this doesn't make things explode. 😬 If it is a total and complete disaster, I suppose we can always revert and try again. 😉 | 
| Nah. I am 🐔 ...I will wait to merge until EU morning or tomm US time. | 
| Yeah, probably best to do it when it's earlier and the mind is fresher to deal with possible unintended consequences. | 
Marked as massive, due to the amount of re-reviewing, visualization, and re-ordering.
These are changes to address issue #2714 & #3023, and include:
Syllabus Tree Before (aka "current" tree on website)
flowchart TD %%{init: {"theme": "base", "themeVariables": { "fontFamily": "Victor Mono, San Francisco, Roboto", "fontSize" : "18px", "primaryColor": "#D9D7FF", "nodeBorder": "#9F80DF", "lineColor": "#AFAC6A", "clusterBorder" : "#585B5D"}}}%% classDef TBD fill:#D9D7FF,stroke:#9F80DF,stroke-width:4px,stroke-dasharray: 5 5, color: #734CC4; classDef Beta fill:#F5DE90,stroke:#F6B303,stroke-width:2px, color:#525952; classDef WIP fill:#DEE8BB,stroke:#AFAC6A,stroke-width:4px,stroke-dasharray: 5 5, #908D49; classDef TBD-f fill:#C4D7FF,stroke:#97AFFF,stroke-width:4px,stroke-dasharray: 5 5, #7388CB; classDef Practice fill:#C4D7FF,stroke:#97AFFF,stroke-width:2px, color:#525952; %%concepts & exercise names (node labels) Basics((<b>Guidos Gorgeous Lasagna</b><br><i>Basics</i>)):::Beta bools((<b>Ghost Gobble <br> Arcade Game</b><br><i>bools</i>)):::Beta classes((<b>Ellen's Alien Game</b><br><i>Classes</i>)):::Beta conditionals((<b>Meltdown Mitigation</b><br><i>Conditionals</i>)):::Beta comparisons((<b>Black Jack</b><br><i>comparisons</i>)):::Beta dicts((Inventory <br> Management<br><i>dicts</i>)):::Beta enums((<b>Log Levels</b> <br> <i>Enums</i>)):::WIP functions((<b>TBD</b><br><i>Functions</i>)):::WIP lists((<b>Card Games</b><br><i>lists</i>)):::Beta list-methods((<b>Chaitana's <br> Colossal Coaster</b><br><i>list-methods</i>)):::Beta loops((<b>Making the Grade</b><br><i>loops</i>)):::Beta none((<b>Restaurant Rozalynn</b><br><i>none</i>)):::WIP numbers(("<b>Currency Exchange</b><br><i>(ints & floats)</i>")):::Beta sets((<b>Cater-Waiter</b><br><i>sets</i>)):::Beta strings((<b>Little Sister's <br> Vocab</b> <br><i>strings</i>)):::Beta string-formatting((<b>Pretty Leaflet</b> <br><i>String Formatting</i>)):::WIP string-methods((<b>Little Sister's <br> Essay</b><br><i>String Methods</i>)):::Beta tuples((<b>Tisbury <br> Treasure Hunt</b><br><i>tuples</i>)):::Beta generators((<b>Plane Tickets</b> <br><i>Generators</i>)):::WIP %%Practice Exercises triangle("Triangle (D1)"):::Practice grains("Grains (D1)"):::Practice sublist("Sublist (D2)"):::Practice yacht("Yacht(D2)"):::Practice luhn("Luhn (D2)"):::Practice collatz-conjecture("Collatz Conjecture (D1)"):::Practice palindrome-products("Palindrome Products (D4)"):::Practice prime-factors("Prime Factors (D2)"):::Practice affine-cipher("Affine Cipher (D6)"):::Practice darts("Darts (D2)"):::Practice two-bucket("Two Bucket (D6)"):::Practice bowling("Bowling (D5)"):::Practice rest-api("Rest Api (D8)"):::Practice leap("Leap (D1)"):::Practice book-store("Book Store (D7)"):::Practice bob("Bob (D1)"):::Practice connect("Connect (D3)"):::Practice rectangles("Rectangles (D3)"):::Practice change("Change (D4)"):::Practice forth("Forth (D5)"):::Practice food-chain("Food Chain (D4)"):::Practice dominoes("Dominoes (D7)"):::Practice pig-latin("Pig Latin (D2)"):::Practice zebra-puzzle("Zebra Puzzle (D5)"):::Practice raindrops("Raindrops (D1)"):::Practice isogram("Isogram (D1)"):::Practice acronym("Acronym (D2)"):::Practice phone-number("Phone Number (D2)"):::Practice wordy("Wordy (D1)"):::Practice rotational-cipher("Rotational Cipher (D1)"):::Practice grep("Grep (D4)"):::Practice word-search("Word Search (D6)"):::Practice binary-search("Binary Search (D1)"):::Practice saddle-points("Saddle Points (D3)"):::Practice robot-simulator("Robot Simulator (D3)"):::Practice all-your-base("All Your Base (D4)"):::Practice satellite("Satellite (D7)"):::Practice resistor-color("Resistor Color (D1)"):::Practice say("Say (D2)"):::Practice high-scores("High Scores (D3)"):::Practice minesweeper("Minesweeper (D4)"):::Practice spiral-matrix("Spiral Matrix (D4)"):::Practice dot-dsl("Dot Dsl (D5)"):::Practice rna-transcription("Rna Transcription (D1)"):::Practice word-count("Word Count (D2)"):::Practice hangman("Hangman (D4)"):::Practice diamond("Diamond (D2)"):::Practice scale-generator("Scale Generator (D4)"):::Practice variable-length-quantity("Variable Length Quantity (D4)"):::Practice rail-fence-cipher("Rail Fence Cipher (D4)"):::Practice flatten-array("Flatten Array (D1)"):::Practice protein-translation("Protein Translation (D2)"):::Practice pythagorean-triplet("Pythagorean Triplet (D3)"):::Practice complex-numbers("Complex Numbers (D4)"):::Practice tournament("Tournament (D4)"):::Practice go-counting("Go Counting (D4)"):::Practice alphametics("Alphametics (D6)"):::Practice etl("Etl (D1)"):::Practice space-age("Space Age (D1)"):::Practice scrabble-score("Scrabble Score (D2)"):::Practice kindergarten-garden("Kindergarten Garden (D3)"):::Practice sum-of-multiples("Sum Of Multiples (D1)"):::Practice pangram("Pangram (D1)"):::Practice sieve("Sieve (D3)"):::Practice matrix("Matrix (D4)"):::Practice linked-list("Linked List (D4)"):::Practice ledger("Ledger (D4)"):::Practice binary-search-tree("Binary Search Tree (D5)"):::Practice %%Practice Exercise Subgraphs subgraph Sub-basics[Basics exercises] direction LR style Sub-basics fill: none, stroke-width:2px, stroke-width:2px, stroke-dasharray: 5 5; triangle -.- grains & sublist -.- yacht end subgraph Sub-numbers[Numbers exercises] direction LR style Sub-numbers fill: none, stroke-width:2px, color: none, stroke-width:2px, stroke-dasharray: 5 5; collatz-conjecture -.- darts & prime-factors & luhn -.- palindrome-products -.- affine-cipher end subgraph Sub-bools[Bools exercises] direction LR style Sub-bools fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; leap -.- bowling & two-bucket -.- rest-api end subgraph Sub-conditionals[Conditionals exercises] direction LR style Sub-conditionals fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; bob -.- pig-latin -.- rectangles -.- connect -.- food-chain pig-latin -.- change -.- forth -.- zebra-puzzle -.- dominoes food-chain -.- book-store end subgraph Sub-strings[Strings exercises] direction LR style Sub-strings fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; raindrops -.- isogram & wordy -.- rotational-cipher rotational-cipher -.- acronym -.- phone-number & grep -.- word-search end subgraph Sub-string-methods[Strings exercises] direction LR style Sub-string-methods fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; rna-transcription -.- word-count -.- hangman end subgraph Sub-comparisons[Comparisons exercises] direction LR style Sub-comparisons fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; binary-search -.- saddle-points & robot-simulator -.- all-your-base -.- satellite end subgraph Sub-lists[List exercises] direction LR style Sub-lists fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; resistor-color -.- say -.- high-scores -.- minesweeper & spiral-matrix -.- dot-dsl end subgraph Sub-list-methods[List Method exercises] direction LR style Sub-list-methods fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; diamond -.- scale-generator & variable-length-quantity & rail-fence-cipher end subgraph Sub-loops[Loop exercises] direction LR style Sub-loops fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; flatten-array -.- protein-translation end subgraph Sub-tuples[Tuple exercises] direction LR style Sub-tuples fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; pythagorean-triplet -.- complex-numbers & tournament & go-counting -.- alphametics end subgraph Sub-dicts[Dict exercises] direction LR style Sub-dicts fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; etl & space-age -.- scrabble-score -.- kindergarten-garden end subgraph Sub-sets[Set exercises] direction LR style Sub-sets fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; pangram & sum-of-multiples -.- sieve end subgraph Sub-classes[Class exercises] direction LR style Sub-classes fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; matrix -.- linked-list & binary-search-tree -.- ledger end %%exercise prerequisites and associated practice exercises (node relations) Basics -.-o Sub-basics numbers -.-o Sub-numbers bools -.-o Sub-bools conditionals -.-o Sub-conditionals comparisons -.-o Sub-comparisons strings -.-o Sub-strings string-methods -.-o Sub-string-methods lists -.-o Sub-lists list-methods -.-o Sub-list-methods loops -.-o Sub-loops tuples -.-o Sub-tuples dicts -.-o Sub-dicts sets -.-o Sub-sets classes -.-o Sub-classes Basics ==> strings & numbers & bools bools ==> conditionals conditionals ==> strings conditionals ===> comparisons lists ==> list-methods & loops lists ===> generators loops ==> tuples & functions functions ===> generators dicts ==> sets sets ==> classes strings ==> string-formatting & string-methods strings ===>lists tuples ==> dicts classes ===> enums & none & generators %%Links to concept exercises click Basics "https://exercism.org/tracks/python/exercises/guidos-gorgeous-lasagna" "basics" click bools "https://exercism.org/tracks/python/exercises/ghost-gobble-arcade-game" "bools" click classes "https://exercism.org/tracks/python/exercises/ellens-alien-game" "classes" click conditionals "https://exercism.org/tracks/python/exercises/meltdown-mitigation" "conditionals" click comparisons "https://exercism.org/tracks/python/exercises/black-jack" "comparisons" click conditionals "https://exercism.org/tracks/python/exercises/meltdown-mitigation" "conditionals" click dicts "https://exercism.org/tracks/python/exercises/inventory-management" "dicts" click dict-methods "https://github.com/exercism/python/issues/2348" "dict-methods" click enums "https://github.com/exercism/python/tree/main/exercises/concept/restaurant-rozalynn" "enums" click functions "https://github.com/exercism/python/issues/2353" "functions" click generators "https://github.com/exercism/python/issues/2293" "generators" click lists "https://exercism.org/tracks/python/exercises/card-games" "lists" click list-methods "https://exercism.org/tracks/python/exercises/chaitanas-colossal-coaster" "list-methods" click loops "https://exercism.org/tracks/python/exercises/making-the-grade" "loops" click none "https://github.com/exercism/python/tree/main/exercises/concept/restaurant-rozalynn" "none" click numbers "https://exercism.org/tracks/python/exercises/currency-exchange" "numbers" click sets "https://exercism.org/tracks/python/exercises/cater-waiter" "sets" click strings "https://exercism.org/tracks/python/exercises/little-sisters-vocab" "strings" click string-formatting "https://github.com/exercism/python/tree/main/exercises/concept/pretty-leaflet" "string-formatting" click string-methods "https://exercism.org/tracks/python/exercises/little-sisters-essay" "string-methods" click tuples "https://exercism.org/tracks/python/exercises/tisbury-treasure-hunt" "tuples" %%links to practice exercises click triangle "https://exercism.org/tracks/python/exercises/triangle" "triangle" click grains "https://exercism.org/tracks/python/exercises/grains" "grains" click sublist "https://exercism.org/tracks/python/exercises/sublist" "sublist" click yacht "https://exercism.org/tracks/python/exercises/yacht" "yacht" click luhn "https://exercism.org/tracks/python/exercises/luhn" "luhn" click collatz-conjecture "https://exercism.org/tracks/python/exercises/collatz-conjecture" "collatz-conjecture" click palindrome-products "https://exercism.org/tracks/python/exercises/palindrome-products" "palindrome-products" click prime-factors "https://exercism.org/tracks/python/exercises/prime-factors" "prime-factors" click affine-cipher "https://exercism.org/tracks/python/exercises/affine-cipher" "affine-cipher" click darts "https://exercism.org/tracks/python/exercises/darts" "darts" click two-bucket "https://exercism.org/tracks/python/exercises/two-bucket" "two-bucket" click bowling "https://exercism.org/tracks/python/exercises/bowling" "bowling" click rest-api "https://exercism.org/tracks/python/exercises/rest-api" "rest-api" click leap "https://exercism.org/tracks/python/exercises/leap" "leap" click book-store "https://exercism.org/tracks/python/exercises/book-store" "book-store" click bob "https://exercism.org/tracks/python/exercises/bob" "bob" click connect "https://exercism.org/tracks/python/exercises/connect" "connect" click rectangles "https://exercism.org/tracks/python/exercises/rectangles" "rectangles" click change "https://exercism.org/tracks/python/exercises/change" "change" click forth "https://exercism.org/tracks/python/exercises/forth" "forth" click food-chain "https://exercism.org/tracks/python/exercises/food-chain" "food-chain" click dominoes "https://exercism.org/tracks/python/exercises/dominoes" "dominoes" click pig-latin "https://exercism.org/tracks/python/exercises/pig-latin" "pig-latin" click zebra-puzzle "https://exercism.org/tracks/python/exercises/zebra-puzzle" "zebra-puzzle" click raindrops "https://exercism.org/tracks/python/exercises/raindrops" "raindrops" click isogram "https://exercism.org/tracks/python/exercises/isogram" "isogram" click acronym "https://exercism.org/tracks/python/exercises/acronym" "acronym" click phone-number "https://exercism.org/tracks/python/exercises/phone-number" "phone-number" click wordy "https://exercism.org/tracks/python/exercises/wordy" "wordy" click rotational-cipher "https://exercism.org/tracks/python/exercises/rotational-cipher" "rotational-cipher" click grep "https://exercism.org/tracks/python/exercises/grep" "grep" click word-search "https://exercism.org/tracks/python/exercises/word-search" "word-search" click binary-search "https://exercism.org/tracks/python/exercises/binary-search" "binary-search" click saddle-points "https://exercism.org/tracks/python/exercises/saddle-points" "saddle-points" click robot-simulator "https://exercism.org/tracks/python/exercises/robot-simulator" "robot-simulator" click all-your-base "https://exercism.org/tracks/python/exercises/all-your-base" "all-your-base" click satellite "https://exercism.org/tracks/python/exercises/satellite" "satellite" click resistor-color "https://exercism.org/tracks/python/exercises/resistor-color" "resistor-color" click say "https://exercism.org/tracks/python/exercises/say" "say" click high-scores "https://exercism.org/tracks/python/exercises/high-scores" "high-scores" click minesweeper "https://exercism.org/tracks/python/exercises/minesweeper" "minesweeper" click spiral-matrix "https://exercism.org/tracks/python/exercises/spiral-matrix" "spiral-matrix" click dot-dsl "https://exercism.org/tracks/python/exercises/dot-dsl" "dot-dsl" click rna-transcription "https://exercism.org/tracks/python/exercises/rna-transcription" "rna-transcription" click word-count "https://exercism.org/tracks/python/exercises/word-count" "word-count" click hangman "https://exercism.org/tracks/python/exercises/hangman" "hangman" click diamond "https://exercism.org/tracks/python/exercises/diamond" "diamond" click scale-generator "https://exercism.org/tracks/python/exercises/scale-generator" "scale-generator" click variable-length-quantity "https://exercism.org/tracks/python/exercises/variable-length-quantity" "variable-length-quantity" click rail-fence-cipher "https://exercism.org/tracks/python/exercises/rail-fence-cipher" "rail-fence-cipher" click flatten-array "https://exercism.org/tracks/python/exercises/flatten-array" "flatten-array" click protein-translation "https://exercism.org/tracks/python/exercises/protein-translation" "protein-translation" click pythagorean-triplet "https://exercism.org/tracks/python/exercises/pythagorean-triplet" "pythagorean-triplet" click complex-numbers "https://exercism.org/tracks/python/exercises/complex-numbers" "complex-numbers" click tournament "https://exercism.org/tracks/python/exercises/tournament" "tournament" click go-counting "https://exercism.org/tracks/python/exercises/go-counting" "go-counting" click alphametics "https://exercism.org/tracks/python/exercises/alphametics" "alphametics" click etl "https://exercism.org/tracks/python/exercises/etl" "etl" click space-age "https://exercism.org/tracks/python/exercises/space-age" "space-age" click scrabble-score "https://exercism.org/tracks/python/exercises/scrabble-score" "scrabble-score" click kindergarten-garden "https://exercism.org/tracks/python/exercises/kindergarten-garden" "kindergarten-garden" click sum-of-multiples "https://exercism.org/tracks/python/exercises/sum-of-multiples" "sum-of-multiples" click pangram "https://exercism.org/tracks/python/exercises/pangram" "pangram" click sieve "https://exercism.org/tracks/python/exercises/sieve" "sieve" click matrix "https://exercism.org/tracks/python/exercises/matrix" "matrix" click linked-list "https://exercism.org/tracks/python/exercises/linked-list" "linked-list" click ledger "https://exercism.org/tracks/python/exercises/ledger" "ledger" click binary-search-tree "https://exercism.org/tracks/python/exercises/binary-search-tree" "binary-search-tree"Syllabus Tree After (aka "new" tree)
flowchart TD %%{init: {"theme": "base", "themeVariables": { "fontFamily": "Victor Mono, San Francisco, Roboto", "fontSize" : "18px", "primaryColor": "#D9D7FF", "nodeBorder": "#9F80DF", "lineColor": "#AFAC6A", "clusterBorder" : "#585B5D"}}}%% classDef TBD fill:#D9D7FF,stroke:#9F80DF,stroke-width:4px,stroke-dasharray: 5 5, color: #734CC4; classDef Beta fill:#F5DE90,stroke:#F6B303,stroke-width:2px, color:#525952; classDef WIP fill:#DEE8BB,stroke:#AFAC6A,stroke-width:4px,stroke-dasharray: 5 5, #908D49; classDef TBD-f fill:#C4D7FF,stroke:#97AFFF,stroke-width:4px,stroke-dasharray: 5 5, #7388CB; classDef Practice fill:#C4D7FF,stroke:#97AFFF,stroke-width:2px, color:#525952; %%concepts & exercise names (node labels) Basics((<b>Guidos Gorgeous Lasagna</b><br><i>Basics</i>)):::Beta bools((<b>Ghost Gobble <br> Arcade Game</b><br><i>bools</i>)):::Beta classes((<b>Ellen's Alien Game</b><br><i>Classes</i>)):::Beta conditionals((<b>Meltdown Mitigation</b><br><i>Conditionals</i>)):::Beta comparisons((<b>Black Jack</b><br><i>comparisons</i>)):::Beta dicts((Inventory <br> Management<br><i>dicts</i>)):::Beta enums((<b>Log Levels</b> <br> <i>Enums</i>)):::WIP functions((<b>TBD</b><br><i>Functions</i>)):::WIP lists((<b>Card Games</b><br><i>lists</i>)):::Beta list-methods((<b>Chaitana's <br> Colossal Coaster</b><br><i>list-methods</i>)):::Beta loops((<b>Making the Grade</b><br><i>loops</i>)):::Beta none((<b>Restaurant Rozalynn</b><br><i>none</i>)):::WIP numbers(("<b>Currency Exchange</b><br><i>(ints & floats)</i>")):::Beta sets((<b>Cater-Waiter</b><br><i>sets</i>)):::Beta strings((<b>Little Sister's <br> Vocab</b> <br><i>strings</i>)):::Beta string-formatting((<b>Pretty Leaflet</b> <br><i>String Formatting</i>)):::WIP string-methods((<b>Little Sister's <br> Essay</b><br><i>String Methods</i>)):::Beta tuples((<b>Tisbury <br> Treasure Hunt</b><br><i>tuples</i>)):::Beta generators((<b>Plane Tickets</b> <br><i>Generators</i>)):::WIP %%Practice Exercise Subgraphs subgraph Sub-numbers[Numbers exercises] direction LR style Sub-numbers fill: none, stroke-width:2px, color: none, stroke-width:2px, stroke-dasharray: 5 5; %%practice exercises grains("Grains (D1)"):::Practice collatz-conjecture("Collatz Conjecture (D1)"):::Practice armstrong-numbers("Armstrong Numbers (D1)"):::Practice difference-of-squares("Difference of Squares (D1)"):::Practice diffie-hellman("Diffie Hellman (D3)"):::Practice click grains "https://exercism.org/tracks/python/exercises/grains" "grains" click collatz-conjecture "https://exercism.org/tracks/python/exercises/collatz-conjecture" "collatz-conjecture" click armstrong-numbers "https://exercism.org/tracks/python/exercises/armstrong-numbers" "armstrong-numbers" click difference-of-squares "https://exercism.org/tracks/python/exercises/difference-of-squares" "difference-of-squares" click diffie-hellman "https://exercism.org/tracks/python/exercises/diffie-hellman" "diffie-hellman" collatz-conjecture -.- grains & armstrong-numbers -.- difference-of-squares -.- diffie-hellman end subgraph Sub-bools[Bools exercises] direction LR style Sub-bools fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; %%practice exericses leap("Leap (D1)"):::Practice triangle("Triangle (D1)"):::Practice yacht("Yacht(D2)"):::Practice click leap "https://exercism.org/tracks/python/exercises/leap" "leap" click triangle "https://exercism.org/tracks/python/exercises/triangle" "triangle" click yacht "https://exercism.org/tracks/python/exercises/yacht" "yacht" leap -.- triangle -.- yacht end subgraph Sub-conditionals[Conditionals exercises] direction LR style Sub-conditionals fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; %%practice exercises bob("Bob (D1)"):::Practice pangram("Pangram (D1)"):::Practice pig-latin("Pig Latin (D2)"):::Practice matching-brackets("Matching Brackets (D4)"):::Practice click bob "https://exercism.org/tracks/python/exercises/bob" "bob" click pangram "https://exercism.org/tracks/python/exercises/pangram" "pangram" click pig-latin "https://exercism.org/tracks/python/exercises/pig-latin" "pig-latin" click matching-brackets "https://exercism.org/tracks/python/exercises/matching-brackets" "matching-brackets" bob & pangram -.- pig-latin -.- matching-brackets end subgraph Sub-comparisons[Comparisons exercises] direction LR style Sub-comparisons fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; %%practice exercises perfect-numbers("Perfect Numbers (D1)"):::Practice darts("Darts (D2)"):::Practice sublist("Sublist (D2)"):::Practice all-your-base("All Your Base (D4)"):::Practice click darts "https://exercism.org/tracks/python/exercises/darts" "darts" click perfect-numbers "https://exercism.org/tracks/python/exercises/perfect-numbers" "perfect-numbers" click sublist "https://exercism.org/tracks/python/exercises/sublist" "sublist" click all-your-base "https://exercism.org/tracks/python/exercises/all-your-base" "all-your-base" perfect-numbers -.- darts -.- sublist -.- all-your-base end subgraph Sub-strings[Strings exercises] direction LR style Sub-strings fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; %%practice exercises isogram("Isogram (D1)"):::Practice isbn-verifier("ISBN Verifier (D1)"):::Practice raindrops("Raindrops (D1)"):::Practice rotational-cipher("Rotational Cipher (D1)"):::Practice click isogram "https://exercism.org/tracks/python/exercises/isogram" "sublist" click isbn-verifier "https://exercism.org/tracks/python/exercises/isbn-verifier" "isbn-verifier" click raindrops "https://exercism.org/tracks/python/exercises/raindrops" "raindrops" click rotational-cipher "https://exercism.org/tracks/python/exercises/rotational-cipher" "rotational-cipher" raindrops -.- isogram & isbn-verifier -.- rotational-cipher end subgraph Sub-string-methods[String Method exercises] direction LR style Sub-string-methods fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; %%practice exercises rna-transcription("Rna Transcription (D1)"):::Practice wordy("Wordy (D1)"):::Practice acronym("Acronym (D2)"):::Practice atbash-cipher("Atbash Cipher (D2)"):::Practice click rna-transcription "https://exercism.org/tracks/python/exercises/rna-transcription" "rna-transcription" click wordy "https://exercism.org/tracks/python/exercises/wordy" "wordy" click acronym "https://exercism.org/tracks/python/exercises/acronym" "acronym" click atbash-cipher "https://exercism.org/tracks/python/exercises/atbash-cipher" "atbash-cipher" rna-transcription & wordy -.- acronym -.- atbash-cipher end subgraph Sub-lists[List exercises] direction LR style Sub-lists fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; resistor-color("Resistor Color (D1)"):::Practice flatten-array("Flatten Array (D1)"):::Practice diamond("Diamond (D2)"):::Practice say("Say (D2)"):::Practice minesweeper("Minesweeper (D4)"):::Practice spiral-matrix("Spiral Matrix (D4)"):::Practice click resistor-color "https://exercism.org/tracks/python/exercises/resistor-color" "resistor-color" click flatten-array "https://exercism.org/tracks/python/exercises/flatten-array" "flatten-array" click diamond "https://exercism.org/tracks/python/exercises/diamond" "diamond" click say "https://exercism.org/tracks/python/exercises/say" "say" click minesweeper "https://exercism.org/tracks/python/exercises/minesweeper" "minesweeper" click spiral-matrix "https://exercism.org/tracks/python/exercises/spiral-matrix" "spiral-matrix" resistor-color -.- flatten-array -.- say & diamond -.- minesweeper -.- spiral-matrix end subgraph Sub-list-methods[List Method exercises] direction LR style Sub-list-methods fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; resistor-color-duo("Resistor Color Duo (D1)"):::Practice secret-handshake("Secret Handshake (D1)"):::Practice list-ops("List Ops (D1)"):::Practice transpose("Transpose (D2)"):::Practice rail-fence-cipher("Rail Fence Cipher (D4)"):::Practice variable-length-quantity("Variable Length Quantity (D4)"):::Practice click resistor-color-duo "https://exercism.org/tracks/python/exercises/resistor-color-duo" "resistor-color-duo" click secret-handshake "https://exercism.org/tracks/python/exercises/secret-handshake" "secret-handshake" click list-ops "https://exercism.org/tracks/python/exercises/list-ops" "list-ops" click transpose "https://exercism.org/tracks/python/exercises/transpose" "transpose" click rail-fence-cipher "https://exercism.org/tracks/python/exercises/rail-fence-cipher" "rail-fence-cipher" click variable-length-quantity "https://exercism.org/tracks/python/exercises/variable-length-quantity" "variable-length-quantity" resistor-color-duo & secret-handshake & list-ops -.- transpose -.- rail-fence-cipher & variable-length-quantity end subgraph Sub-loops[Loop exercises] direction LR style Sub-loops fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; binary-search("Binary Search (D1)"):::Practice house("House (D1)"):::Practice protein-translation("Protein Translation (D2)"):::Practice saddle-points("Saddle Points (D3)"):::Practice ocr-numbers("OCR Numbers (D3)"):::Practice change("Change (D4)"):::Practice click binary-search "https://exercism.org/tracks/python/exercises/binary-search" "binary-search" click house "https://exercism.org/tracks/python/exercises/house" "house" click protein-translation "https://exercism.org/tracks/python/exercises/protein-translation" "protein-translation" click saddle-points "https://exercism.org/tracks/python/exercises/saddle-points" "saddle-points" click ocr-numbers "https://exercism.org/tracks/python/exercises/ocr-numbers" "ocr-numbers" click change "https://exercism.org/tracks/python/exercises/change" "change" binary-search & house -.- protein-translation -.- saddle-points & ocr-numbers -.- change end subgraph Sub-tuples[Tuple exercises] direction LR style Sub-tuples fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; twelve-days("Twelve Days (D2)"):::Practice roman-numerals("Roman Numerals (D2)"):::Practice tournament("Tournament (D4)"):::Practice food-chain("Food Chain (D4)"):::Practice dominoes("Dominoes (D7)"):::Practice click twelve-days "https://exercism.org/tracks/python/exercises/twelve-days" "twelve-days" click roman-numerals "https://exercism.org/tracks/python/exercises/roman-numerals" "roman-numerals" click tournament "https://exercism.org/tracks/python/exercises/tournament" "tournament" click food-chain "https://exercism.org/tracks/python/exercises/food-chain" "food-chain" click dominoes "https://exercism.org/tracks/python/exercises/dominoes" "dominoes" twelve-days -.- roman-numerals & tournament -.- food-chain -.- dominoes end subgraph Sub-dicts[Dict exercises] direction LR style Sub-dicts fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; etl("Etl (D1)"):::Practice space-age("Space Age (D1)"):::Practice word-count("Word Count (D2)"):::Practice scrabble-score("Scrabble Score (D2)"):::Practice forth("Forth (D5)"):::Practice click etl "https://exercism.org/tracks/python/exercises/etl" "etl" click space-age "https://exercism.org/tracks/python/exercises/space-age" "space-age" click word-count "https://exercism.org/tracks/python/exercises/word-count" "word-count" click scrabble-score "https://exercism.org/tracks/python/exercises/scrabble-score" "scrabble-score" click forth "https://exercism.org/tracks/python/exercises/forth" "forth" etl -.- space-age & word-count -.- scrabble-score -.- forth end subgraph Sub-sets[Set exercises] direction LR style Sub-sets fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; sum-of-multiples("Sum Of Multiples (D1)"):::Practice pythagorean-triplet("Pythagorean Triplet (D3)"):::Practice sieve("Sieve (D3)"):::Practice click sum-of-multiples "https://exercism.org/tracks/python/exercises/sum-of-multiples" "sum-of-multiples" click pythagorean-triplet "https://exercism.org/tracks/python/exercises/pythagorean-triplet" "pythagorean-triplet" click sieve "https://exercism.org/tracks/python/exercises/sieve" "sieve" sum-of-multiples -.- pythagorean-triplet -.- sieve end subgraph Sub-classes[Class exercises] direction LR style Sub-classes fill: none, stroke-width:2px, color: none, stroke-width:2px,stroke-dasharray: 5 5; luhn("Luhn (D2)"):::Practice dnd-character("DnD Character (D2)"):::Practice high-scores("High Scores (D3)"):::Practice matrix("Matrix (D3)"):::Practice kindergarten-garden("Kindergarten Garden (D3)"):::Practice binary-search-tree("Binary Search Tree (D5)"):::Practice click luhn "https://exercism.org/tracks/python/exercises/luhn" "luhn" click dnd-character "https://exercism.org/tracks/python/exercises/dnd-character" "dnd-character" click high-scores "https://exercism.org/tracks/python/exercises/high-scores" "high-scores " click matrix "https://exercism.org/tracks/python/exercises/sieve" "sieve" click kindergarten-garden "https://exercism.org/tracks/python/exercises/kindergarten-garden" "kindergarten-garden " click binary-search-tree "https://exercism.org/tracks/python/exercises/binary-search-tree" "binary-search-tree" luhn -.- dnd-character & high-scores -.- matrix -.- kindergarten-garden & binary-search-tree end %%exercise prerequisites and associated practice exercises (node relations) numbers -.-o Sub-numbers bools -.-o Sub-bools conditionals -.-o Sub-conditionals comparisons -.-o Sub-comparisons strings -.-o Sub-strings string-methods -.-o Sub-string-methods lists -.-o Sub-lists list-methods -.-o Sub-list-methods loops -.-o Sub-loops tuples -.-o Sub-tuples dicts -.-o Sub-dicts sets -.-o Sub-sets classes -.-o Sub-classes Basics ==> strings & numbers & bools bools ==> conditionals conditionals ==> strings conditionals ===> comparisons lists ==> list-methods & loops lists ===> generators loops ==> tuples & functions functions ===> generators dicts ==> sets sets ==> classes strings ==> string-formatting & string-methods strings ===>lists tuples ==> dicts classes ===> enums & none & generators %%Links to concept exercises click Basics "https://exercism.org/tracks/python/exercises/guidos-gorgeous-lasagna" "basics" click bools "https://exercism.org/tracks/python/exercises/ghost-gobble-arcade-game" "bools" click classes "https://exercism.org/tracks/python/exercises/ellens-alien-game" "classes" click conditionals "https://exercism.org/tracks/python/exercises/meltdown-mitigation" "conditionals" click comparisons "https://exercism.org/tracks/python/exercises/black-jack" "comparisons" click conditionals "https://exercism.org/tracks/python/exercises/meltdown-mitigation" "conditionals" click dicts "https://exercism.org/tracks/python/exercises/inventory-management" "dicts" click dict-methods "https://github.com/exercism/python/issues/2348" "dict-methods" click enums "https://github.com/exercism/python/tree/main/exercises/concept/restaurant-rozalynn" "enums" click functions "https://github.com/exercism/python/issues/2353" "functions" click generators "https://github.com/exercism/python/issues/2293" "generators" click lists "https://exercism.org/tracks/python/exercises/card-games" "lists" click list-methods "https://exercism.org/tracks/python/exercises/chaitanas-colossal-coaster" "list-methods" click loops "https://exercism.org/tracks/python/exercises/making-the-grade" "loops" click none "https://github.com/exercism/python/tree/main/exercises/concept/restaurant-rozalynn" "none" click numbers "https://exercism.org/tracks/python/exercises/currency-exchange" "numbers" click sets "https://exercism.org/tracks/python/exercises/cater-waiter" "sets" click strings "https://exercism.org/tracks/python/exercises/little-sisters-vocab" "strings" click string-formatting "https://github.com/exercism/python/tree/main/exercises/concept/pretty-leaflet" "string-formatting" click string-methods "https://exercism.org/tracks/python/exercises/little-sisters-essay" "string-methods" click tuples "https://exercism.org/tracks/python/exercises/tisbury-treasure-hunt" "tuples" %%links to practice exercisesTable Representation of New Syllabus (Beta Exercises Only)