From 976a769636bc0da329239e899ac67bac63d9a52e Mon Sep 17 00:00:00 2001 From: Samarth Date: Wed, 2 Sep 2020 14:47:03 -0400 Subject: [PATCH 1/4] added readme to swirlypy folder --- .DS_Store | Bin 0 -> 6148 bytes swirlypy/.DS_Store | Bin 0 -> 6148 bytes swirlypy/README.md | 145 ++++++++++++++++++++++++++++++++++ swirlypy/img/.DS_Store | Bin 0 -> 6148 bytes swirlypy/img/swirlypy_run.png | Bin 0 -> 42997 bytes 5 files changed, 145 insertions(+) create mode 100644 .DS_Store create mode 100644 swirlypy/.DS_Store create mode 100644 swirlypy/README.md create mode 100644 swirlypy/img/.DS_Store create mode 100644 swirlypy/img/swirlypy_run.png diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3fd86dd7b004d78126d847df51e156c4d45bb9a3 GIT binary patch literal 6148 zcmeHK%Wl&^6upxgI!Og&QK?;egTx{rr-em@klc_ixf(4+~#u2q}JyGn`O4A^3 z_z3s|K7}vfL-+tV^C%)tQCFb0nj6iWJ9FpEJZB8{sm9=#OGychFt-T} zX;K^E$3^XsvHTlf3Y}@2s)p+_<^Sd5gDhwcZAYq6~_#80Wok^jemlhs9xJ z{5>Jk-+maqOa|qCd-bWviZICrBSlW)0h+vdm1MCfdt#i$x#}m-0nVGex!+!&PVaAY z+|7quvyMCMdK+HHedKM2?_o*iY+YEKJZoK~10-p( oU8PY`keTCHIr1o8M^c8ED;=P3u+oScnEen?GT6*2@Lv`91)gjqKAT7yN(h|jyFmiA_%Gc z8gT22^w3+MfX9KE-DzoBTB#Q#svT+eo89?w_M6D-1pv{RByE5O07z8Aii5*ng#4t} zq{1uY6jVbU#+iz7M&+#h4-8Q6s*u6}dfVAT|4z^o{nDa0!cp;bJmfB)#ltKe7oPW1 zRI0TH4Phnq8!y+ms<4!c%quJZ2=*MioS1P-(qxeJGo$fcDY^uD7(!4v; z$!XHXkdM1*o~UU@P4Z-{>x9N3r6ZmFMsqe>S#7y%FJI4F?yT*tdM)>rw>F`C z@ecbpRs9@}@=WDDtVF-gfp@S48xX(_;tOm`a-}Wn81?*8TX1T{GGH074BV9gejUoC zyC&Lr%YbFz-ZMb&2N#vlXDkisR|gLI3V>L{Wi4pykAFm$77%^L(jcy&2$PCvQUzZz z1m7KmNk_lW@ufkN4njW}>+q8W-%tc!J%p>nLHGvkXc@2!EHY3v(*~XYTQ}eT7nAJF zGGH0FR}6?+5C$FG5}&QtHb-Zzi+X@cLUE Swirlypy Documentation + +This document outlines running Swirlypy, creating a course and testing the course in development. + +--- + +## _Swirlypy for Learners_ + +### Installation + +To install Swirlypy, open the command line/terminal (after installing Python3), run the following command: + + +`pip install swirlypy` + +You can also run/install through the console through Spyder if you have installed Anaconda. + + +### Running Swirlypy + +To start Swirlypy, follow the following steps: + +Start Python console on Cmd Line (or Python console on Spyder) by typing python3 and then enter the following commands: + +`from swirlypy import run_swirlypy` + +`run_swirlypy.swirl()` + +If successful, you should see the prompt below: + +

+ +

+ + +Follow the instructions through the application and select a course to learn from by following the prompts. + +### Reporting Issues + +If you come across issues/bugs while using Swirlypy, submit an issue to this repository: https://github.com/Samarth2506/swirlypy. If you would like to get involved or have suggestions to improve Swirlypy, refer to the section below. + +--- + +
+ + +## _Contributing to Swirlypy_ + +If you want to create a course/edit an existing course/contribute to the source code of Swirlypy: fork, clone and submit a pull request to: https://github.com/Samarth2506/swirlypy. + + +Packaging a course is currently under development and the following steps must be followed to create/edit a course **for now**: + +### To run/edit an existing course: + +* `cd to swirlypy_cloned_folder` + +* Set Pythonpath with: `export PYTHONPATH: /path_to_swirlypy_folder` + +Run the following commands to run swirypy: + +* Start Python console on Cmd Line by typing python3 and run the following commands + +``` +from swirlypy import run_swirlypy +run_swirlypy.swirl() +``` + +You can make changes to an existing course by navigating to the _courses_ folder in the root folder. The lesson yaml file (structure described below) can be edited. Save and re-run the application to reflect changes in the lesson. + +### Creating/Testing a course + + +* The directory structure is as follows: _swirlypy/swirlypy/all_scripts_needed_ + +* The course directory is at: _swirlypy/courses/some_course/course.yaml_ + +In the _courses_ folder, create a new_course folder. The following structure should be followed for any new course created: + +``` +new_course + |- course.yaml + |- lessons + |- first_lesson_content.yaml + |- second_lesson_content.yaml + |- initialize_lessons.py + |- scripts + +``` + +* You can choose from the text, command or multiple choice type questions. The course will then show up when you run Swirlypy. + +* _Initialize_lesson.py_ should contain any variables/data you want to use in your lesson. For example, the Data Analysis course needs iris_data. The dataset is added in the script as a key to the data dictionary which then becomes available to the learner/creator to use in any lesson. + + +### Types of Questions + +Lesson creators can choose from a variety of questions to create content on Swirlypy: + +### Text Question + +A Text question displays a string to the user. Swirlypy will move on to the next question after the user presses enter. The following fields are needed for the text question: + + Category: text + Output: string to be displayed to user + +### Command Question + +A command question prompts the user for a response. For the response to be graded as correct, general syntax differences like spaces and single versus double quotes do not matter. + + + Category: command + Output: prompt/question to be displayed for the user + Answer: correct answer to the prompt/question + Hint: hint to be displayed if the user get's the question wrong + + +### Multiple Choice Question + +A multiple choice question, like the name indicates, prompts the user with a question with choices. The user needs to make a choice as the answer to the question. Following are the required fields for a multiple choice question: + + + Category: command + Output: prompt/question to be displayed for the user + Choices: + - choice_1 + - choice_2 + + Answer: correct choice that is the answer to the question + Hint: hint to be displayed if the user get's the choice wrong + +### Script Question + +A script question opens up an editor for students to answer complicated questions that cannot be scripted in a few lines. Swirlypy matches the output of the user's script to the output of a pre-defined correct script by the lesson creator. Following are the fields required for a script question: + + Category: script + Output: prompt/question to be displayed for the user + user_script: name of the user script; must be present in the scripts folder of the course + correct_script: name of the correct script; must be present in the scripts folder of the course + test_cases: name of list with cases to the script must be tested with; list should be in custom_tests.py + hint: hint to be displayed if the user get's the script wrong + + +Thanks for reading and happy learning/creating! + diff --git a/swirlypy/img/.DS_Store b/swirlypy/img/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..71f38de9da4cd0463963471b49baae90aa1488f8 GIT binary patch literal 6148 zcmeHKJxc>Y5PhpD0ybA#?k^Di2TO=WYOz+LAi|MIB#7O0`PusBLrJ)#wU9S3^KNJ7 z?Q*ZUxdBjS+vgjg12ClU#e{7_}3fE17dQa}nwfs+bY@1;#I0u`lz6p#YH3fT9d z(hXbU5a^!{1|I>46Q$R2s sNdGa`dO3r)VxqTVF02(_?$uR$=6*{Y0-esh(~0^KFkNI);4c*T2LFT|?EnA( literal 0 HcmV?d00001 diff --git a/swirlypy/img/swirlypy_run.png b/swirlypy/img/swirlypy_run.png new file mode 100644 index 0000000000000000000000000000000000000000..b09452f542787fa515004dcbe8b2282b59114398 GIT binary patch literal 42997 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 Bad-d# literal 0 HcmV?d00001 From 39d1e272c16cdeebd20f49ada055a8a37a59cb9c Mon Sep 17 00:00:00 2001 From: Samarth Date: Wed, 2 Sep 2020 14:50:16 -0400 Subject: [PATCH 2/4] removed .DS_Store --- .DS_Store | Bin 6148 -> 0 bytes .gitignore | 1 + swirlypy/.DS_Store | Bin 6148 -> 0 bytes swirlypy/img/.DS_Store | Bin 6148 -> 0 bytes 4 files changed, 1 insertion(+) delete mode 100644 .DS_Store create mode 100644 .gitignore delete mode 100644 swirlypy/.DS_Store delete mode 100644 swirlypy/img/.DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 3fd86dd7b004d78126d847df51e156c4d45bb9a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%Wl&^6upxgI!Og&QK?;egTx{rr-em@klc_ixf(4+~#u2q}JyGn`O4A^3 z_z3s|K7}vfL-+tV^C%)tQCFb0nj6iWJ9FpEJZB8{sm9=#OGychFt-T} zX;K^E$3^XsvHTlf3Y}@2s)p+_<^Sd5gDhwcZAYq6~_#80Wok^jemlhs9xJ z{5>Jk-+maqOa|qCd-bWviZICrBSlW)0h+vdm1MCfdt#i$x#}m-0nVGex!+!&PVaAY z+|7quvyMCMdK+HHedKM2?_o*iY+YEKJZoK~10-p( oU8PY`keTCHIr1o8M^c8ED;=P3u+oScnEen?GT6*2@Lv`91)gjqKAT7yN(h|jyFmiA_%Gc z8gT22^w3+MfX9KE-DzoBTB#Q#svT+eo89?w_M6D-1pv{RByE5O07z8Aii5*ng#4t} zq{1uY6jVbU#+iz7M&+#h4-8Q6s*u6}dfVAT|4z^o{nDa0!cp;bJmfB)#ltKe7oPW1 zRI0TH4Phnq8!y+ms<4!c%quJZ2=*MioS1P-(qxeJGo$fcDY^uD7(!4v; z$!XHXkdM1*o~UU@P4Z-{>x9N3r6ZmFMsqe>S#7y%FJI4F?yT*tdM)>rw>F`C z@ecbpRs9@}@=WDDtVF-gfp@S48xX(_;tOm`a-}Wn81?*8TX1T{GGH074BV9gejUoC zyC&Lr%YbFz-ZMb&2N#vlXDkisR|gLI3V>L{Wi4pykAFm$77%^L(jcy&2$PCvQUzZz z1m7KmNk_lW@ufkN4njW}>+q8W-%tc!J%p>nLHGvkXc@2!EHY3v(*~XYTQ}eT7nAJF zGGH0FR}6?+5C$FG5}&QtHb-Zzi+X@cLUEY5PhpD0ybA#?k^Di2TO=WYOz+LAi|MIB#7O0`PusBLrJ)#wU9S3^KNJ7 z?Q*ZUxdBjS+vgjg12ClU#e{7_}3fE17dQa}nwfs+bY@1;#I0u`lz6p#YH3fT9d z(hXbU5a^!{1|I>46Q$R2s sNdGa`dO3r)VxqTVF02(_?$uR$=6*{Y0-esh(~0^KFkNI);4c*T2LFT|?EnA( From d1667f2ddc16c6b40628416da01f8e289e8d405e Mon Sep 17 00:00:00 2001 From: Samarth Date: Wed, 2 Sep 2020 14:51:21 -0400 Subject: [PATCH 3/4] fixed image size on swirlypy markdown --- swirlypy/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swirlypy/README.md b/swirlypy/README.md index 7d6fed6..3cacd28 100644 --- a/swirlypy/README.md +++ b/swirlypy/README.md @@ -29,7 +29,7 @@ Start Python console on Cmd Line (or Python console on Spyder) by typing python3 If successful, you should see the prompt below:

- +

From 11d2fb45b06fd469bc6b03e3964077812640aa3f Mon Sep 17 00:00:00 2001 From: Samarth Date: Wed, 2 Sep 2020 14:52:16 -0400 Subject: [PATCH 4/4] fixed image size on swirlypy markdown 2 --- swirlypy/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swirlypy/README.md b/swirlypy/README.md index 3cacd28..ad9b651 100644 --- a/swirlypy/README.md +++ b/swirlypy/README.md @@ -29,7 +29,7 @@ Start Python console on Cmd Line (or Python console on Spyder) by typing python3 If successful, you should see the prompt below:

- +