diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..a1bc1e5 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,13 @@ +# MIT License + +Copyright (c) 2025 Landon Taylor. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# Use of AI + +This work contains adaptations on AI-generated material which are not copyrighted. This material is found entirely in the `data` directory. \ No newline at end of file diff --git a/README.md b/README.md index 83f67da..faf2c61 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,59 @@ # fable -FABLE: Fallacy Awareness and Bias Learning Environment. Created for AI Applications in Education course at Utah State University. \ No newline at end of file +FABLE: Fallacy Awareness and Bias Learning Environment. Created for AI Applications in Education course taught by Seth Poulsen at Utah State University. + +## Compatibility + +FABLE has been tested to work on a machine with these specs. + +- **Operating System**: Ubuntu 24.10 +- **Rust Version**: rustc 1.82.0 (or later) +- **Cargo Version**: cargo 1.82.0 (or later) + + +## Installation + +Because this project is written in Rust, installation and execution should be super simple. + +1. Get the source code for this repository, using ONE of the following methods: + 1. Clone using Git: + ```bash + git clone https://gitmoss.fyi/mossbiscuits/fable.git + ``` + 2. Download and extract a ZIP or TAR.GZ archive + +2. Navigate to the project folder, likely with the following command: + ```bash + cd fable + ``` + +3. Install Rust (if not already installed) + 1. Install Rust using `rustup` (recommended): + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + ``` + 2. Follow the on-screen instructions to complete the installation. + 3. Ensure Rust is installed correctly: + ```bash + rustc --version + ``` + +4. Build and run FABLE + ```bash + cargo run + ``` + For best results, run FABLE in a maximized (or fullscreen) terminal. + +## Contributing + +Contributions are welcome! Please follow the steps at https://gitmoss.fyi/GitMoss/meta/src/branch/main/contribute.md to start contributing. + +## License + +This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. + +## Acknowledgments + +- Inspired by the need for critical thinking in AI education. +- Special thanks to the AI Applications in Education course team at Utah State University. +- Open-source contributors and the developer community. \ No newline at end of file diff --git a/report/FABLE_FinalReport.pdf b/report/FABLE_FinalReport.pdf new file mode 100644 index 0000000..86466bb Binary files /dev/null and b/report/FABLE_FinalReport.pdf differ diff --git a/report/FABLE_Slides.pdf b/report/FABLE_Slides.pdf new file mode 100644 index 0000000..ed031df Binary files /dev/null and b/report/FABLE_Slides.pdf differ diff --git a/saves/.placeholder b/saves/.placeholder new file mode 100644 index 0000000..0519ecb --- /dev/null +++ b/saves/.placeholder @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/saves/tasouva.json b/saves/tasouva.json deleted file mode 100644 index 9f490e8..0000000 --- a/saves/tasouva.json +++ /dev/null @@ -1,495 +0,0 @@ -{ - "name": "Tasouva", - "filename": "saves/tasouva.json", - "progress": { - "{\"Fallacy\":{\"FormalFallacy\":\"SyllogisticFallacy\"}}": { - "unit": { - "Fallacy": { - "FormalFallacy": "SyllogisticFallacy" - } - }, - "questions_answered": 8, - "questions_correct": 3, - "probability_known": 1.0, - "results": [ - false, - true, - false, - true, - false, - false, - true, - false - ], - "milestones": 3, - "milestones_completed": 1 - }, - "\"Introduction\"": { - "unit": "Introduction", - "questions_answered": 3, - "questions_correct": 3, - "probability_known": 1.0, - "results": [ - true, - true, - true - ], - "milestones": 3, - "milestones_completed": 3 - }, - "{\"Bias\":\"BarnumEffect\"}": { - "unit": { - "Bias": "BarnumEffect" - }, - "questions_answered": 3, - "questions_correct": 2, - "probability_known": 1.0, - "results": [ - true, - false, - true - ], - "milestones": 3, - "milestones_completed": 2 - }, - "{\"Fallacy\":{\"FormalFallacy\":\"PropositionalFallacy\"}}": { - "unit": { - "Fallacy": { - "FormalFallacy": "PropositionalFallacy" - } - }, - "questions_answered": 8, - "questions_correct": 6, - "probability_known": 1.0, - "results": [ - true, - true, - false, - true, - true, - true, - false, - true - ], - "milestones": 4, - "milestones_completed": 4 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"HastyGeneralization\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "HastyGeneralization" - } - }, - "questions_answered": 3, - "questions_correct": 2, - "probability_known": 1.0, - "results": [ - true, - false, - true - ], - "milestones": 3, - "milestones_completed": 2 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"QuotingOutOfContext\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "QuotingOutOfContext" - } - }, - "questions_answered": 3, - "questions_correct": 2, - "probability_known": 1.0, - "results": [ - true, - false, - true - ], - "milestones": 3, - "milestones_completed": 2 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"PostHocErgoPropterHoc\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "PostHocErgoPropterHoc" - } - }, - "questions_answered": 3, - "questions_correct": 2, - "probability_known": 1.0, - "results": [ - true, - false, - true - ], - "milestones": 3, - "milestones_completed": 2 - }, - "{\"Bias\":\"TheHaloEffect\"}": { - "unit": { - "Bias": "TheHaloEffect" - }, - "questions_answered": 3, - "questions_correct": 2, - "probability_known": 1.0, - "results": [ - true, - false, - true - ], - "milestones": 3, - "milestones_completed": 2 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"SpecialPleading\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "SpecialPleading" - } - }, - "questions_answered": 2, - "questions_correct": 1, - "probability_known": 0.9234167893961708, - "results": [ - true, - false - ], - "milestones": 2, - "milestones_completed": 1 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"AdIgnorantiam\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "AdIgnorantiam" - } - }, - "questions_answered": 2, - "questions_correct": 2, - "probability_known": 1.0, - "results": [ - true, - true - ], - "milestones": 2, - "milestones_completed": 2 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"BeggingTheQuestion\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "BeggingTheQuestion" - } - }, - "questions_answered": 2, - "questions_correct": 1, - "probability_known": 0.9234167893961708, - "results": [ - true, - false - ], - "milestones": 2, - "milestones_completed": 1 - }, - "{\"Fallacy\":{\"FormalFallacy\":\"QuantificationalFallacy\"}}": { - "unit": { - "Fallacy": { - "FormalFallacy": "QuantificationalFallacy" - } - }, - "questions_answered": 3, - "questions_correct": 2, - "probability_known": 1.0, - "results": [ - true, - true, - false - ], - "milestones": 3, - "milestones_completed": 2 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"TexasSharpshooter\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "TexasSharpshooter" - } - }, - "questions_answered": 3, - "questions_correct": 2, - "probability_known": 1.0, - "results": [ - true, - false, - true - ], - "milestones": 3, - "milestones_completed": 2 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"TuQuoque\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "TuQuoque" - } - }, - "questions_answered": 3, - "questions_correct": 2, - "probability_known": 1.0, - "results": [ - true, - false, - true - ], - "milestones": 3, - "milestones_completed": 2 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"AdHominem\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "AdHominem" - } - }, - "questions_answered": 2, - "questions_correct": 1, - "probability_known": 0.9234167893961708, - "results": [ - true, - false - ], - "milestones": 2, - "milestones_completed": 1 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"OverGeneralization\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "OverGeneralization" - } - }, - "questions_answered": 3, - "questions_correct": 2, - "probability_known": 1.0, - "results": [ - true, - false, - true - ], - "milestones": 3, - "milestones_completed": 2 - }, - "{\"Bias\":\"FundamentalAttributionError\"}": { - "unit": { - "Bias": "FundamentalAttributionError" - }, - "questions_answered": 3, - "questions_correct": 1, - "probability_known": 0.7508982035928139, - "results": [ - true, - false, - false - ], - "milestones": 3, - "milestones_completed": 1 - }, - "{\"Appraisal\":\"CounterArgument\"}": { - "unit": { - "Appraisal": "CounterArgument" - }, - "questions_answered": 3, - "questions_correct": 2, - "probability_known": 1.0, - "results": [ - true, - true, - false - ], - "milestones": 3, - "milestones_completed": 2 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"StrawMan\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "StrawMan" - } - }, - "questions_answered": 3, - "questions_correct": 2, - "probability_known": 1.0, - "results": [ - true, - false, - true - ], - "milestones": 3, - "milestones_completed": 2 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"SlipperySlope\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "SlipperySlope" - } - }, - "questions_answered": 3, - "questions_correct": 2, - "probability_known": 1.0, - "results": [ - true, - false, - true - ], - "milestones": 3, - "milestones_completed": 2 - }, - "{\"Appraisal\":\"ConversionToPropositional\"}": { - "unit": { - "Appraisal": "ConversionToPropositional" - }, - "questions_answered": 12, - "questions_correct": 3, - "probability_known": 0.004850875121986713, - "results": [ - false, - false, - false, - false, - false, - false, - false, - false, - true, - true, - false, - true - ], - "milestones": 4, - "milestones_completed": 3 - }, - "{\"Bias\":\"InGroupBias\"}": { - "unit": { - "Bias": "InGroupBias" - }, - "questions_answered": 3, - "questions_correct": 2, - "probability_known": 1.0, - "results": [ - true, - true, - false - ], - "milestones": 3, - "milestones_completed": 2 - }, - "{\"Fallacy\":{\"FormalFallacy\":\"ProbabilisticFallacy\"}}": { - "unit": { - "Fallacy": { - "FormalFallacy": "ProbabilisticFallacy" - } - }, - "questions_answered": 3, - "questions_correct": 2, - "probability_known": 1.0, - "results": [ - true, - true, - false - ], - "milestones": 3, - "milestones_completed": 3 - }, - "{\"Bias\":\"ConfirmationBias\"}": { - "unit": { - "Bias": "ConfirmationBias" - }, - "questions_answered": 3, - "questions_correct": 1, - "probability_known": 0.7508982035928139, - "results": [ - true, - false, - false - ], - "milestones": 3, - "milestones_completed": 1 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"NoTrueScotsman\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "NoTrueScotsman" - } - }, - "questions_answered": 2, - "questions_correct": 1, - "probability_known": 0.9234167893961708, - "results": [ - true, - false - ], - "milestones": 2, - "milestones_completed": 1 - }, - "{\"Logic\":\"LogicalOperations\"}": { - "unit": { - "Logic": "LogicalOperations" - }, - "questions_answered": 8, - "questions_correct": 7, - "probability_known": 1.0, - "results": [ - true, - false, - true, - true, - true, - true, - true, - true - ], - "milestones": 7, - "milestones_completed": 7 - }, - "{\"Bias\":\"DunningKrugerEffect\"}": { - "unit": { - "Bias": "DunningKrugerEffect" - }, - "questions_answered": 3, - "questions_correct": 1, - "probability_known": 0.7508982035928139, - "results": [ - true, - false, - false - ], - "milestones": 3, - "milestones_completed": 1 - }, - "{\"Logic\":\"BooleanAlgebra\"}": { - "unit": { - "Logic": "BooleanAlgebra" - }, - "questions_answered": 5, - "questions_correct": 5, - "probability_known": 1.0, - "results": [ - true, - true, - true, - true, - true - ], - "milestones": 5, - "milestones_completed": 5 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"Bandwagon\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "Bandwagon" - } - }, - "questions_answered": 2, - "questions_correct": 1, - "probability_known": 0.9234167893961708, - "results": [ - true, - false - ], - "milestones": 2, - "milestones_completed": 1 - } - } -} \ No newline at end of file diff --git a/saves/user1.json b/saves/user1.json deleted file mode 100644 index cc13ffc..0000000 --- a/saves/user1.json +++ /dev/null @@ -1,363 +0,0 @@ -{ - "name": "User1", - "filename": "saves/user1.json", - "progress": { - "{\"Fallacy\":{\"FormalFallacy\":\"ProbabilisticFallacy\"}}": { - "unit": { - "Fallacy": { - "FormalFallacy": "ProbabilisticFallacy" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"QuotingOutOfContext\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "QuotingOutOfContext" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Bias\":\"TheHaloEffect\"}": { - "unit": { - "Bias": "TheHaloEffect" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Bias\":\"FundamentalAttributionError\"}": { - "unit": { - "Bias": "FundamentalAttributionError" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"TexasSharpshooter\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "TexasSharpshooter" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Bias\":\"DunningKrugerEffect\"}": { - "unit": { - "Bias": "DunningKrugerEffect" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Appraisal\":\"ConversionToPropositional\"}": { - "unit": { - "Appraisal": "ConversionToPropositional" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "\"Introduction\"": { - "unit": "Introduction", - "questions_answered": 3, - "questions_correct": 1, - "probability_known": 0.7508982035928139, - "results": [ - true, - false, - false - ], - "milestones": 3, - "milestones_completed": 1 - }, - "{\"Bias\":\"InGroupBias\"}": { - "unit": { - "Bias": "InGroupBias" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"NoTrueScotsman\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "NoTrueScotsman" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Appraisal\":\"CounterArgument\"}": { - "unit": { - "Appraisal": "CounterArgument" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"StrawMan\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "StrawMan" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"FormalFallacy\":\"SyllogisticFallacy\"}}": { - "unit": { - "Fallacy": { - "FormalFallacy": "SyllogisticFallacy" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"SpecialPleading\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "SpecialPleading" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"TuQuoque\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "TuQuoque" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"PostHocErgoPropterHoc\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "PostHocErgoPropterHoc" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"AdIgnorantiam\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "AdIgnorantiam" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Logic\":\"LogicalOperations\"}": { - "unit": { - "Logic": "LogicalOperations" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"FormalFallacy\":\"QuantificationalFallacy\"}}": { - "unit": { - "Fallacy": { - "FormalFallacy": "QuantificationalFallacy" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"HastyGeneralization\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "HastyGeneralization" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"OverGeneralization\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "OverGeneralization" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"Bandwagon\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "Bandwagon" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Bias\":\"ConfirmationBias\"}": { - "unit": { - "Bias": "ConfirmationBias" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"FormalFallacy\":\"PropositionalFallacy\"}}": { - "unit": { - "Fallacy": { - "FormalFallacy": "PropositionalFallacy" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"AdHominem\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "AdHominem" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Bias\":\"BarnumEffect\"}": { - "unit": { - "Bias": "BarnumEffect" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Logic\":\"BooleanAlgebra\"}": { - "unit": { - "Logic": "BooleanAlgebra" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"SlipperySlope\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "SlipperySlope" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"BeggingTheQuestion\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "BeggingTheQuestion" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - } - } -} \ No newline at end of file diff --git a/saves/yocirei.json b/saves/yocirei.json deleted file mode 100644 index 8ca5050..0000000 --- a/saves/yocirei.json +++ /dev/null @@ -1,364 +0,0 @@ -{ - "name": "Yocirei", - "filename": "saves/yocirei.json", - "progress": { - "{\"Logic\":\"BooleanAlgebra\"}": { - "unit": { - "Logic": "BooleanAlgebra" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Bias\":\"BarnumEffect\"}": { - "unit": { - "Bias": "BarnumEffect" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"PostHocErgoPropterHoc\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "PostHocErgoPropterHoc" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"AdIgnorantiam\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "AdIgnorantiam" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"QuotingOutOfContext\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "QuotingOutOfContext" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Logic\":\"LogicalOperations\"}": { - "unit": { - "Logic": "LogicalOperations" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"FormalFallacy\":\"PropositionalFallacy\"}}": { - "unit": { - "Fallacy": { - "FormalFallacy": "PropositionalFallacy" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Appraisal\":\"CounterArgument\"}": { - "unit": { - "Appraisal": "CounterArgument" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Bias\":\"DunningKrugerEffect\"}": { - "unit": { - "Bias": "DunningKrugerEffect" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"SlipperySlope\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "SlipperySlope" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"NoTrueScotsman\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "NoTrueScotsman" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"FormalFallacy\":\"ProbabilisticFallacy\"}}": { - "unit": { - "Fallacy": { - "FormalFallacy": "ProbabilisticFallacy" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"Bandwagon\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "Bandwagon" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Bias\":\"TheHaloEffect\"}": { - "unit": { - "Bias": "TheHaloEffect" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"OverGeneralization\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "OverGeneralization" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Appraisal\":\"ConversionToPropositional\"}": { - "unit": { - "Appraisal": "ConversionToPropositional" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"StrawMan\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "StrawMan" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"BeggingTheQuestion\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "BeggingTheQuestion" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Bias\":\"InGroupBias\"}": { - "unit": { - "Bias": "InGroupBias" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"TexasSharpshooter\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "TexasSharpshooter" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"FormalFallacy\":\"QuantificationalFallacy\"}}": { - "unit": { - "Fallacy": { - "FormalFallacy": "QuantificationalFallacy" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Bias\":\"ConfirmationBias\"}": { - "unit": { - "Bias": "ConfirmationBias" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"FormalFallacy\":\"SyllogisticFallacy\"}}": { - "unit": { - "Fallacy": { - "FormalFallacy": "SyllogisticFallacy" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "\"Introduction\"": { - "unit": "Introduction", - "questions_answered": 4, - "questions_correct": 3, - "probability_known": 1.0, - "results": [ - true, - true, - false, - true - ], - "milestones": 3, - "milestones_completed": 3 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"AdHominem\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "AdHominem" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"TuQuoque\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "TuQuoque" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"SpecialPleading\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "SpecialPleading" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Bias\":\"FundamentalAttributionError\"}": { - "unit": { - "Bias": "FundamentalAttributionError" - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - }, - "{\"Fallacy\":{\"InformalFallacy\":\"HastyGeneralization\"}}": { - "unit": { - "Fallacy": { - "InformalFallacy": "HastyGeneralization" - } - }, - "questions_answered": 0, - "questions_correct": 0, - "probability_known": 0.3, - "results": [], - "milestones": 0, - "milestones_completed": 0 - } - } -} \ No newline at end of file diff --git a/src/course/story.rs b/src/course/story.rs index fe4aa73..09b521a 100644 --- a/src/course/story.rs +++ b/src/course/story.rs @@ -197,8 +197,8 @@ pub fn inner_loop(unit: Module, learner: &mut profile::Learner) { } pub fn select_next_unit(learner: &profile::Learner) -> Option { - let mut modules = units::Module::iter(); - if learner.progress.get(&Module::Introduction).map_or(true, |p| p.get_probability() == 0.0) { + let modules = units::Module::iter(); + if learner.progress.get(&Module::Introduction).map_or(true, |p| p.get_probability() < 0.5) { return Some(crate::Module::Introduction); } for module in modules {