diff --git a/docs/assets/images/autograder.png b/docs/assets/images/autograder.png new file mode 100755 index 0000000..638591b Binary files /dev/null and b/docs/assets/images/autograder.png differ diff --git a/docs/assets/notebooks/Hub.ipynb b/docs/assets/notebooks/Lobby.ipynb similarity index 99% rename from docs/assets/notebooks/Hub.ipynb rename to docs/assets/notebooks/Lobby.ipynb index aaf167e..518c4e9 100644 --- a/docs/assets/notebooks/Hub.ipynb +++ b/docs/assets/notebooks/Lobby.ipynb @@ -5,28 +5,16 @@ "id": "a6232bcb", "metadata": {}, "source": [ - "# Hub\n", + "# Lobby\n", "\n", - "Welcome to the hub! This notebook does two main things:\n", + "Welcome to the lobby! This notebook does two main things:\n", "\n", "- Automates the process of setting you up\n", "- Allows you to quickly navigate between notebooks\n", "\n", "You'll also be returning here after you complete each module to get the next one.\n", "\n", - "### Quick Navigation\n", - "\n", - "Once you've unlocked the respective module, you can click on the links in any of the cells of the table below to be brought straight to the associated notebook.\n", - "\n", - "|Module A||Module B||Module C||Module D||\n", - "|:-|:-|:-|:-|:-|:-|:-|:-|\n", - "|[Lesson 1: notebooks](Module_A/Lesson_1_notebooks.ipynb)|[Problem Set 1](Module_A/Problem_Set_1.ipynb)|[Lesson 1: functions](Module_B/Lesson_1_functions.ipynb)|[Problem Set 1](Module_B/Problem_Set_1.ipynb)|[Lesson 1: booleans](Module_C/Lesson_1_booleans.ipynb)|[Problem Set 1A](Module_C/Problem_Set_1A.ipynb)
[Problem Set 1B](Module_C/Problem_Set_1B.ipynb)|[Lesson 1: lists](Module_D/Lesson_1_lists.ipynb)|[Problem Set 1](Module_D/Problem_Set_1.ipynb)|\n", - "|[Lesson 2: operators](Module_A/Lesson_2_operators.ipynb)||||[Lesson 2: conditionals](Module_C/Lesson_2_conditionals.ipynb)|[Problem Set 2A](Module_C/Problem_Set_2A.ipynb)
[Problem Set 2B](Module_C/Problem_Set_2B.ipynb)|[Lesson 2: iteration](Module_D/Lesson_2_iteration.ipynb)|[Problem Set 2](Module_D/Problem_Set_2.ipynb)|\n", - "|[Lesson 3: variables](Module_A/Lesson_3_variables.ipynb)|[Problem Set 2A](Module_A/Problem_Set_2A.ipynb)
[Problem Set 2B](Module_A/Problem_Set_2B.ipynb)
[Problem Set 3A](Module_A/Problem_Set_3A.ipynb)
[Problem Set 3B](Module_A/Problem_Set_3B.ipynb)|||||[Lesson 3: list functions](Module_D/Lesson_3_list_functions.ipynb)|[Problem Set 3](Module_D/Problem_Set_2.ipynb)|\n", - "|[Lesson 4: statements](Module_A/Lesson_4_statements.ipynb)|[Problem Set 4](Module_A/Problem_Set_4.ipynb)|||||||\n", - "|[Test](Module_A/Test.ipynb)|[Additional Exercises](Module_A/Additional_Exercises/AE.ipynb)|[Test](Module_B/Test.ipynb)|[Additional Exercises](Module_B/Additional_Exercises/AE.ipynb)|[Test](Module_C/Test.ipynb)|[Additional Exercises](Module_C/Additional_Exercises/AE.ipynb)|[Test](Module_D/Test.ipynb)|[Additional Exercises](Module_D/Additional_Exercises/AE.ipynb)|\n", - "\n", - "### Automated setup\n", + "### Download the Next Module\n", "\n", "If this is your first time using the notebook, make sure you see the word \"setup\" in the cell below, and then click the button to \"run all cells\". This should be on the bar at the top and look like two right-facing arrows, or the fast-forward button on a TV remote. This will automatically install everything you need to start working through these notebooks." ] @@ -54,6 +42,18 @@ "source": [ "If you've just completed a module test, take the password you got and assign it to `password` above (you should know what that means now!) Now when you run all cells, it should download the next module for you. If you get the password wrong, nothing will happen!\n", "\n", + "### Quick Navigation\n", + "\n", + "Once you've unlocked the respective module, you can click on the links in any of the cells of the table below to be brought straight to the associated notebook.\n", + "\n", + "|Module A||Module B||Module C||Module D||\n", + "|:-|:-|:-|:-|:-|:-|:-|:-|\n", + "|[Lesson 1: notebooks](Module_A/Lesson_1_notebooks.ipynb)|[Problem Set 1](Module_A/Problem_Set_1.ipynb)|[Lesson 1: functions](Module_B/Lesson_1_functions.ipynb)|[Problem Set 1](Module_B/Problem_Set_1.ipynb)|[Lesson 1: booleans](Module_C/Lesson_1_booleans.ipynb)|[Problem Set 1A](Module_C/Problem_Set_1A.ipynb)
[Problem Set 1B](Module_C/Problem_Set_1B.ipynb)|[Lesson 1: lists](Module_D/Lesson_1_lists.ipynb)|[Problem Set 1](Module_D/Problem_Set_1.ipynb)|\n", + "|[Lesson 2: operators](Module_A/Lesson_2_operators.ipynb)||||[Lesson 2: conditionals](Module_C/Lesson_2_conditionals.ipynb)|[Problem Set 2A](Module_C/Problem_Set_2A.ipynb)
[Problem Set 2B](Module_C/Problem_Set_2B.ipynb)|[Lesson 2: iteration](Module_D/Lesson_2_iteration.ipynb)|[Problem Set 2](Module_D/Problem_Set_2.ipynb)|\n", + "|[Lesson 3: variables](Module_A/Lesson_3_variables.ipynb)|[Problem Set 2A](Module_A/Problem_Set_2A.ipynb)
[Problem Set 2B](Module_A/Problem_Set_2B.ipynb)
[Problem Set 3A](Module_A/Problem_Set_3A.ipynb)
[Problem Set 3B](Module_A/Problem_Set_3B.ipynb)|||||[Lesson 3: list functions](Module_D/Lesson_3_list_functions.ipynb)|[Problem Set 3](Module_D/Problem_Set_2.ipynb)|\n", + "|[Lesson 4: statements](Module_A/Lesson_4_statements.ipynb)|[Problem Set 4](Module_A/Problem_Set_4.ipynb)|||||||\n", + "|[Test](Module_A/Test.ipynb)|[Additional Exercises](Module_A/Additional_Exercises/AE.ipynb)|[Test](Module_B/Test.ipynb)|[Additional Exercises](Module_B/Additional_Exercises/AE.ipynb)|[Test](Module_C/Test.ipynb)|[Additional Exercises](Module_C/Additional_Exercises/AE.ipynb)|[Test](Module_D/Test.ipynb)|[Additional Exercises](Module_D/Additional_Exercises/AE.ipynb)|\n", + "\n", "- - -\n", "\n", "
\n", diff --git a/docs/assets/zips/bubblegum.zip b/docs/assets/zips/bubblegum.zip index cc6ad33..3d0cfce 100644 Binary files a/docs/assets/zips/bubblegum.zip and b/docs/assets/zips/bubblegum.zip differ diff --git a/docs/assets/zips/calisson.zip b/docs/assets/zips/calisson.zip index ae23aac..9ffa35d 100644 Binary files a/docs/assets/zips/calisson.zip and b/docs/assets/zips/calisson.zip differ diff --git a/docs/assets/zips/dumle.zip b/docs/assets/zips/dumle.zip index 6e28f90..2f4ece6 100644 Binary files a/docs/assets/zips/dumle.zip and b/docs/assets/zips/dumle.zip differ diff --git a/docs/assets/zips/setup.zip b/docs/assets/zips/setup.zip index 54e112f..ec86b01 100644 Binary files a/docs/assets/zips/setup.zip and b/docs/assets/zips/setup.zip differ diff --git a/docs/getting_started.markdown b/docs/getting_started.markdown old mode 100644 new mode 100755 index 2bbb1d8..f3be438 --- a/docs/getting_started.markdown +++ b/docs/getting_started.markdown @@ -46,7 +46,7 @@ progress as you go. We recommend that you do every problem set. At the end of each module is a test. Autograding the test and getting at least 80% will give you a password that you can use to access the next module. -Modules E and beyond are not yet implemented +Modules E and beyond are not yet implemented. ### Jupyter @@ -58,13 +58,13 @@ If you're a student at the University of Toronto, then you can do everything rig 1. Go to [https://datatools.utoronto.ca/][datatools-url] 2. From the three options you see, choose "JupyterLab" ![image][datatools-img] 3. Log in with your UTORid -4. Download this notebook 5. Click the upload button (from the image below) ![image][upload-img]{:width="50%"} 6. Select the notebook you just downloaded -You should now see the notebook `Hub.ipynb` displayed in the right sidebar +You should now see the notebook `Lobby.ipynb` displayed in the right sidebar (file-browser). Double click on the notebook to open it. Once you've opened it, follow the instructions in the notebook to start on module A. @@ -79,7 +79,7 @@ modules are released, you may want to return here for further instructions. ### Downloading New Modules -(These instructions are repeated in `Hub.ipynb`) +(These instructions are repeated in `Lobby.ipynb`) For your first module, you should be able to simply press the "Restart the kernel and run all cells" button at the top of your screen (see image). @@ -92,17 +92,37 @@ file with `Ctrl+S`, and then run all cells. This will download the next module f ### Autograding -The autograder is a way to check your progess. In any notebook that can be +The autograder is a way to check your progress. In any notebook that can be autograded, you should see a cell with some code and a comment saying "run this -cell to autograde this notebook". Running this cell might take a while, but you +cell to autograde this notebook". +![image][autograder-img]. Running this cell might take a while, but you should see as output below which questions you got wrong, what your final score was, and some hints on what might fix your errors. -**Remember to always save your notebook with `Ctrl+S` before running the -autograder**. +**Remember to always save your notebook with `Ctrl+S` and to restart the kernel before running the autograder**. +[autograder-img]: assets/images/autograder.png [datatools-url]: https://datatools.utoronto.ca/ [datatools-img]: assets/images/datatools.png [upload-img]: assets/images/upload.png [runall-img]: assets/images/runall.png +Throughout these notebooks, you will have **three ways to assess your progress**: +- Practice exercises +- Problem sets +- Tests + +**Practice exercises** will be sprinkled throughout your lessons and will be ungraded. It's meant for you to experiment, try new things, and not worry too much about getting things right. A lot of the time, practice exercises will involve asking you to make mistakes for the sake of seeing what works and what doesn't. + +**Problem sets** are graded. The intended progression is for you to do the problem set associated with each lesson right after finishing reading it. To get feedback, there will be a code cell that you can run. This will tell you which problems you got right and wrong, and sometimes nudge you in the direction of a correct solution. You can skip problem sets if you're already extremely familiar with the material, but we really suggest taking the time to do them! On the other side, **if you're still feeling like you need more practice with the material:** there are extra problem set questions in the folder "Additional_Exercises". Please note that these do not have autograder support. + +**Tests** are the milestones at the end of each module. They will cover material from the entire module, and will be graded using the same autograder as the problem sets. If you get 80% of the questions right, you will receive a **password**, which you can enter into `Lobby.ipynb` to get access to the next module. We'll tell you more about how this works when you finish module A. + +### A note on practicing + +This notebook might form the lecture materials for a course in which it is used, or alternatively, if you're taking the module independently, you will be making your way through it by yourself. Regardless, in order to learn to program, practice is paramount! The exercises in the `exercises` folder that start with 'A1' are the ones that go with Block A, Lesson 1. For Block A, we'd recommend you take lessons 1 and 2 first before starting to practice (you will need the concepts from lesson 2 in order to practice with lessons 1 and beyond). + +### A note on versioning + +There are several different versions of Jupyter. Most of the information here will pertain to all versions, but some small details (colours, UI, keybindings, etc.) will likely be different on your machine. + diff --git a/docs/index.markdown b/docs/index.markdown old mode 100644 new mode 100755 index 0ffcad6..5533895 --- a/docs/index.markdown +++ b/docs/index.markdown @@ -16,3 +16,7 @@ you want to know more about who we are, check out *About*. We're also hosting a workshop in early September! More information will be available here shortly. +### Acknowledgments + +These notebooks are inspired by (and sometimes outright quote from) the textbook _Think Python_. You can find the textbook in HTML, free of charge, here: [https://greenteapress.com/thinkpython2/html/](https://greenteapress.com/thinkpython2/html/). We will refer to the relevant sections of the textbook in the overview -- so TP 1.1 refers to section 1.1 of _Think Python_. While the textbook isn't necessary, it might be helpful for you to have a look at it, especially if you get stuck! + diff --git a/make_zips.sh b/make_zips.sh index d24c596..d0e00e4 100755 --- a/make_zips.sh +++ b/make_zips.sh @@ -11,7 +11,7 @@ custom_zip() { cd updated/ rm ../docs/assets/zips/*.zip -cp ./Hub.ipynb ../docs/assets/notebooks/ +cp ./Lobby.ipynb ../docs/assets/notebooks/ custom_zip setup.zip ./Module_A/ mv setup.zip ../docs/assets/zips/