├── .DS_Store ├── 00_Stage-1-Getting-Started ├── .DS_Store ├── 01-VSCode-Setup │ ├── .jupyter │ │ └── desktop-workspaces │ │ │ └── default-37a8.jupyterlab-workspace │ ├── 02-Jupyter │ │ ├── .DS_Store │ │ └── Jupyter Notebook │ │ │ ├── Exercise notebook.ipynb │ │ │ ├── Improved%20Learning%20Notebook%20for%20VSCode.ipynb │ │ │ ├── Learning notebook.ipynb │ │ │ ├── README.md │ │ │ ├── Updated%20Learning%20Notebook.ipynb │ │ │ └── media │ │ │ ├── jupyter_1.PNG │ │ │ ├── jupyter_10.jpg │ │ │ ├── jupyter_2.PNG │ │ │ ├── jupyter_3.PNG │ │ │ ├── jupyter_4.PNG │ │ │ ├── jupyter_5.PNG │ │ │ ├── jupyter_6.PNG │ │ │ ├── jupyter_7.PNG │ │ │ ├── jupyter_8.PNG │ │ │ └── jupyter_9.PNG │ ├── README.md │ ├── exportjupyter.png │ └── vscode.ipynb ├── 03-30-Days-of-Python │ └── README.md ├── Boss.csv ├── GitHub Fundamentals.md ├── LINUX.md ├── README.html ├── README.md ├── README_files │ └── libs │ │ ├── bootstrap │ │ ├── bootstrap-icons.css │ │ ├── bootstrap-icons.woff │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.js │ │ ├── clipboard │ │ └── clipboard.min.js │ │ └── quarto-html │ │ ├── anchor.min.js │ │ ├── popper.min.js │ │ ├── quarto-syntax-highlighting.css │ │ ├── quarto.js │ │ ├── tippy.css │ │ └── tippy.umd.min.js ├── WINDOWS.md ├── advancedgithub.md ├── attendance.md ├── bayo.csv ├── commandline.md ├── conda.png ├── examples.ipynb ├── github.md ├── guides │ ├── Windows_Subsystem_for_Linux_Installation_Guide_for_Windows_10.md │ ├── assets │ │ ├── UbuntuInstall.png │ │ ├── copy_paste_properties.png │ │ ├── create_repository.png │ │ ├── finder.png │ │ ├── finder_go.png │ │ ├── go_to_folder.png │ │ ├── open_powershell.png │ │ ├── open_ubuntu.png │ │ ├── open_update.png │ │ ├── orange_circle.png │ │ ├── orange_circle_properties.png │ │ ├── os_build.png │ │ ├── paste_powershell.png │ │ ├── start.png │ │ ├── ubuntustore.png │ │ ├── week_0.png │ │ ├── windows_explorer.png │ │ └── windows_update.png │ └── using_os_gui_to_manage_directories.md ├── image.png ├── macOS.md ├── markdown.md ├── media │ ├── commandline.png │ ├── create_repository.png │ ├── createrepo.png │ ├── datasciencevscode.png │ ├── exportjupyter.png │ ├── finder.png │ ├── github.png │ ├── jupyter1.png │ ├── jupyter2.png │ ├── jupyter3.png │ ├── jupyter_clear_and_run.png │ ├── jupyter_error.png │ ├── jupyter_error_red.png │ ├── jupyter_exercise_notebook.png │ ├── jupyter_terminal.png │ ├── jupyter_terminal_link.png │ ├── linux.png │ ├── macOS.png │ ├── mac_terminal.png │ ├── menu_create_repository.png │ ├── name_the_repo.png │ ├── notebook_busy_cell.png │ ├── personal_access_token.PNG │ ├── python-venv.png │ ├── runjupyter.png │ ├── runjupyterall.png │ ├── sample_learning_unit.png │ ├── settings-sidebar-ssh-keys.png │ ├── slack.png │ ├── ssh-add-ssh-key.png │ ├── ssh-key-paste.png │ ├── telegram.jpeg │ ├── terminal_notebook.png │ ├── troubleshooting.png │ ├── ubuntu_windows_explorer.png │ ├── userbar-account-settings.png │ ├── vs-code.jpg │ ├── vscode.png │ ├── vscodeoo.png │ ├── weekly-workflow.png │ └── windows.png ├── python-venv.md ├── python_virtual_enviment.png ├── requirements.txt ├── sampple.ipynb ├── scores.txt ├── sqrt.py ├── telegram.md ├── testing.ipynb ├── troubleshooting.md ├── username_tips.md ├── vscode.md └── weekly-workflow.md ├── 01_Getting-started-Assigment ├── GitHub Fundamentals.md └── Medium_blogpost.md ├── 02_Python-Lessons ├── __pycache__ │ └── car_updated.cpython-37.pyc ├── car.py ├── car_updated.py ├── cars.py ├── chapter1.ipynb ├── chapter10.ipynb ├── chapter2.ipynb ├── chapter3.ipynb ├── chapter4.ipynb ├── chapter5.ipynb ├── chapter6.ipynb ├── chapter7.ipynb ├── chapter8.ipynb ├── chapter9.ipynb ├── exceptions │ ├── alice.txt │ ├── little_women.txt │ ├── moby_dick.txt │ └── siddhartha_temp..txt ├── module │ └── pizza.py ├── numbers.json ├── pi_digits.txt ├── pi_million_digits.txt ├── pizza.py ├── programming.txt ├── programming_02.txt ├── reply.py ├── text_files │ └── pi_digits.txt ├── username.json ├── usernames.json ├── utils │ ├── __pycache__ │ │ └── tick.cpython-312.pyc │ └── tick.py └── weather.txt ├── 04_books ├── Atomic Habits An Easy Proven Way to Build Good Habits Break Bad Ones (James Clear).pdf └── Eric Matthes - Python Crash Course-No Starch Press (2023).pdf ├── ABP-README.md ├── README.md └── assets ├── ArewaDS_Intro.pdf ├── Index_positions_start_at_0_Not_1.png ├── Markdown-Cheat-Sheet.pdf ├── arewadsimage.png ├── break_to_exit_while_loop.PNG ├── carbon_paper.png ├── chapter6-dictionary.PNG ├── chapter6-dictionary1.PNG ├── class_diagram.png ├── copying-a-list.png ├── diagrams_pool temp.pptx ├── diagrams_pool.pptx ├── dog_based_class.PNG ├── dog_class_objects.PNG ├── dog_object.png ├── dog_roll_over.gif ├── dog_sit.gif ├── dog_uml_diagram.jpg ├── ezgif.com-video-to-gif-converter.gif ├── for-loop.png ├── function_definition_and_call.PNG ├── function_syntax.PNG ├── generate-series-of-numbers-with-range.png ├── how-each-item-is-printed.png ├── if-elif-else-chain.png ├── inheritance.PNG ├── insert_function.png ├── list-comprehension.png ├── list-image.jpg ├── list-index.PNG ├── module.png ├── passing_info_to_a_function.PNG ├── range-general-syntax.png ├── range-syntax.png ├── set-of-instructions-under-a-loop2.PNG ├── simple-if-else-statement.png ├── simple-if-else-statement2.png ├── simple-if-statement-update.png ├── slicing-a-list.png ├── title.png ├── waiting_for_user_input.gif └── while_loop_flowchart.PNG /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/.DS_Store -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/.DS_Store -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/.jupyter/desktop-workspaces/default-37a8.jupyterlab-workspace: -------------------------------------------------------------------------------- 1 | {"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":["notebook:Introductory_Session_to_Python_VSCode_Conda.ipynb","console:console-1-f82d1dd1-18a6-4d19-8974-9389f54d9522"]},"current":"notebook:Introductory_Session_to_Python_VSCode_Conda.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":true,"widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.20641447368421054,0.7935855263157895,0]},"notebook:Introductory_Session_to_Python_VSCode_Conda.ipynb":{"data":{"path":"Introductory_Session_to_Python_VSCode_Conda.ipynb","factory":"Notebook"}},"console:console-1-f82d1dd1-18a6-4d19-8974-9389f54d9522":{"data":{"path":"console-1-f82d1dd1-18a6-4d19-8974-9389f54d9522","name":"Console 1","kernelPreference":{"name":"python-notes"}}}},"metadata":{"id":"default"}} -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/.DS_Store -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/Exercise notebook.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": { 6 | "deletable": false, 7 | "editable": false, 8 | "nbgrader": { 9 | "grade": false, 10 | "grade_id": "cell-f6a612f9e4e3134f", 11 | "locked": true, 12 | "schema_version": 3, 13 | "solution": false, 14 | "task": false 15 | } 16 | }, 17 | "source": [ 18 | "# Jupyter Notebook: Exercise notebook\n", 19 | "\n", 20 | "In this notebook you'll train the concepts learned in the Learning notebook. Good luck!" 21 | ] 22 | }, 23 | { 24 | "cell_type": "markdown", 25 | "metadata": { 26 | "deletable": false, 27 | "editable": false, 28 | "nbgrader": { 29 | "grade": false, 30 | "grade_id": "cell-a9b1f2d28b3f41f4", 31 | "locked": true, 32 | "schema_version": 3, 33 | "solution": false, 34 | "task": false 35 | } 36 | }, 37 | "source": [ 38 | "## Exercise 1: Shortcuts\n", 39 | "Run the cell below using two different shortcuts: first, use the shortcut that just runs the cell. Next, use the shortcut that runs the cell and inserts a cell below. " 40 | ] 41 | }, 42 | { 43 | "cell_type": "code", 44 | "execution_count": null, 45 | "metadata": {}, 46 | "outputs": [], 47 | "source": [ 48 | "print(\"I'm a Jupyter Notebook master now\")" 49 | ] 50 | }, 51 | { 52 | "cell_type": "markdown", 53 | "metadata": { 54 | "deletable": false, 55 | "editable": false, 56 | "nbgrader": { 57 | "grade": false, 58 | "grade_id": "cell-0d60f830c3fb93ab", 59 | "locked": true, 60 | "schema_version": 3, 61 | "solution": false, 62 | "task": false 63 | } 64 | }, 65 | "source": [ 66 | "Use a shortcut to merge the 3 cells below this one:" 67 | ] 68 | }, 69 | { 70 | "cell_type": "code", 71 | "execution_count": null, 72 | "metadata": {}, 73 | "outputs": [], 74 | "source": [ 75 | "print(\"Please reunite me with the cell below\")" 76 | ] 77 | }, 78 | { 79 | "cell_type": "code", 80 | "execution_count": null, 81 | "metadata": {}, 82 | "outputs": [], 83 | "source": [ 84 | "print(\"I belong to everyone\")" 85 | ] 86 | }, 87 | { 88 | "cell_type": "code", 89 | "execution_count": null, 90 | "metadata": {}, 91 | "outputs": [], 92 | "source": [ 93 | "print(\"Please reunite me with the cell above\")" 94 | ] 95 | }, 96 | { 97 | "cell_type": "markdown", 98 | "metadata": { 99 | "deletable": false, 100 | "editable": false, 101 | "nbgrader": { 102 | "grade": false, 103 | "grade_id": "cell-91dcdbb6f909dd8c", 104 | "locked": true, 105 | "schema_version": 3, 106 | "solution": false, 107 | "task": false 108 | } 109 | }, 110 | "source": [ 111 | "## Exercise 2: Notebook kernel and memory \n", 112 | "The following cells are meant the illustrate the problem of Jupyter keeping the information in memory even when we delete the cells that were originally run with that information. Complete the steps below:\n", 113 | "1. Run the 4 cells below.\n", 114 | "1. Delete the cell with the statement `b = 0.7` by using the command mode and a shortcut.\n", 115 | "1. Run the 3 remaining cells again.\n", 116 | "1. Create a new cell under the cell with the statement `print(a, b, c)` using the command mode and a shortcut. Inside the cell, print the variable `b` and run the cell.\n", 117 | "1. Restart the kernel.\n", 118 | "1. Run all the cells again. Check that now you have an error when you try to print the variable b.\n", 119 | "1. Now delete the print cells and go on to the next exercise." 120 | ] 121 | }, 122 | { 123 | "cell_type": "code", 124 | "execution_count": null, 125 | "metadata": {}, 126 | "outputs": [], 127 | "source": [ 128 | "a = 7" 129 | ] 130 | }, 131 | { 132 | "cell_type": "code", 133 | "execution_count": null, 134 | "metadata": {}, 135 | "outputs": [], 136 | "source": [ 137 | "b = 0.7" 138 | ] 139 | }, 140 | { 141 | "cell_type": "code", 142 | "execution_count": null, 143 | "metadata": {}, 144 | "outputs": [], 145 | "source": [ 146 | "c = 0.07" 147 | ] 148 | }, 149 | { 150 | "cell_type": "code", 151 | "execution_count": null, 152 | "metadata": {}, 153 | "outputs": [], 154 | "source": [ 155 | "print(a, b, c)" 156 | ] 157 | }, 158 | { 159 | "cell_type": "markdown", 160 | "metadata": { 161 | "deletable": false, 162 | "editable": false, 163 | "nbgrader": { 164 | "grade": false, 165 | "grade_id": "cell-d93866f07727826d", 166 | "locked": true, 167 | "schema_version": 3, 168 | "solution": false, 169 | "task": false 170 | } 171 | }, 172 | "source": [ 173 | "## Exercise 3: Markdown cells\n", 174 | "Create a markdown list in the markdown cell below, with 3 items: mathematics, physics and chemistry." 175 | ] 176 | }, 177 | { 178 | "cell_type": "markdown", 179 | "metadata": {}, 180 | "source": [] 181 | }, 182 | { 183 | "cell_type": "markdown", 184 | "metadata": { 185 | "deletable": false, 186 | "editable": false, 187 | "nbgrader": { 188 | "grade": false, 189 | "grade_id": "cell-8c5ff77d1fce74a8", 190 | "locked": true, 191 | "schema_version": 3, 192 | "solution": false, 193 | "task": false 194 | } 195 | }, 196 | "source": [ 197 | "Create, in the markdown cell below, a quote using markdown notation (tip: Google is your best friend)" 198 | ] 199 | }, 200 | { 201 | "cell_type": "markdown", 202 | "metadata": {}, 203 | "source": [] 204 | }, 205 | { 206 | "cell_type": "markdown", 207 | "metadata": { 208 | "deletable": false, 209 | "editable": false, 210 | "nbgrader": { 211 | "grade": false, 212 | "grade_id": "cell-b68abc102337c17e", 213 | "locked": true, 214 | "schema_version": 3, 215 | "solution": false, 216 | "task": false 217 | } 218 | }, 219 | "source": [ 220 | "Change the cell below to markdown and create a header that says: \"I've finished my first exercise notebook!\"" 221 | ] 222 | }, 223 | { 224 | "cell_type": "markdown", 225 | "metadata": {}, 226 | "source": [] 227 | } 228 | ], 229 | "metadata": { 230 | "kernelspec": { 231 | "display_name": "Python 3 (ipykernel)", 232 | "language": "python", 233 | "name": "python3" 234 | }, 235 | "language_info": { 236 | "codemirror_mode": { 237 | "name": "ipython", 238 | "version": 3 239 | }, 240 | "file_extension": ".py", 241 | "mimetype": "text/x-python", 242 | "name": "python", 243 | "nbconvert_exporter": "python", 244 | "pygments_lexer": "ipython3", 245 | "version": "3.8.10" 246 | } 247 | }, 248 | "nbformat": 4, 249 | "nbformat_minor": 2 250 | } 251 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/Improved%20Learning%20Notebook%20for%20VSCode.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "id": "d4a34113", 6 | "metadata": {}, 7 | "source": [ 8 | "\n", 9 | "# How to Use This Notebook in VSCode\n", 10 | "To run the cells in this notebook within VSCode:\n", 11 | "1. Ensure you have the Python extension installed in VSCode.\n", 12 | "2. Open this notebook file in VSCode.\n", 13 | "3. To execute a cell, click on the 'Run cell' button at the top left corner of the cell or press `CTRL + ENTER`.\n", 14 | "4. The output will be displayed directly below the cell.\n", 15 | "\n", 16 | "This notebook contains examples and exercises designed to teach you the fundamentals of data science. Follow along with the instructions in each cell and execute them as you go.\n" 17 | ] 18 | }, 19 | { 20 | "cell_type": "markdown", 21 | "metadata": {}, 22 | "source": [ 23 | "## 1. How to use Jupyter notebooks\n", 24 | "\n", 25 | "Let's begin by defining 3 sections of the Jupyter interface: in the following image, you can see the Menu bar in blue, the Toolbar in orange and a Code cell in yellow:\n", 26 | "\n", 27 | "\n", 28 | "\n", 29 | "You can see a code cell just below this cell as well:" 30 | ] 31 | }, 32 | { 33 | "cell_type": "code", 34 | "execution_count": null, 35 | "metadata": {}, 36 | "outputs": [], 37 | "source": [] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "execution_count": 1, 42 | "metadata": {}, 43 | "outputs": [], 44 | "source": [ 45 | "# Tip: Just copy and paste the print statement.\n", 46 | "# BTW, this is a code cell, but the lines starting with the hash symbol # are comments - they are ignored.\n", 47 | "# For instance, the code below will not be executed because it is commented.\n", 48 | "#print('just ignore me')" 49 | ] 50 | }, 51 | { 52 | "cell_type": "code", 53 | "execution_count": null, 54 | "metadata": {}, 55 | "outputs": [], 56 | "source": [] 57 | }, 58 | { 59 | "cell_type": "markdown", 60 | "metadata": {}, 61 | "source": [ 62 | "The output should look like this:\n", 63 | "\n", 64 | "\n", 65 | "\n", 66 | "Congratulations! You've just ran your first jupyter notebook cell. Let's hope this is the first of many to come!\n", 67 | "\n", 68 | "If you're wondering what's the [4] in the image, it's the sequential execution number. It means that this was the fourth cell that was run in my notebook. You should have a [1] or [2] in your current notebook. Notice that running the same cell twice will also update the sequential number. Reselect the cell (by clicking on it) and click on \"Run\" in the Toolbar to see it being updated.\n", 69 | "\n", 70 | "Also, you do not have to run each cell one by one. Go ahead and type `print(\"I'm a professional programmer now\")` in the second code cell above and instead of clicking on \"Run\" in the Toolbar, click on \"Cell\" in the Menu bar and then click on \"Run All\". This will run all the cells in the notebook, it doesn't matter how many cells you have.\n", 71 | "\n", 72 | "You can also swap cell positions by clicking on the `up` or `down` arrows in the toolbar. Give it a try and swap the two cells above.\n", 73 | "\n", 74 | "But to be honest, I have never even used the `Run`command while I was in the academy. I would always restart the notebook and then run all cells.\n", 75 | "To understand why, let me introduce you to a new concept: the notebook kernel." 76 | ] 77 | }, 78 | { 79 | "cell_type": "markdown", 80 | "metadata": {}, 81 | "source": [ 82 | "## 2. Notebook kernel\n", 83 | "\n", 84 | "The notebook kernel is the “computational engine” that executes the code contained in the jupyter notebook document. \n", 85 | "Since you chose to create the notebook with Python 3, the kernel executes Python code. There are kernels for other languages but in the prep course and in the academy, we will only be using Python 3.\n", 86 | "When you open a jupyter notebook document, the associated kernel is automatically launched. When the notebook is executed, the kernel performs the computation and produces the results. Depending on the type of computations, the kernel may consume significant CPU and RAM. However, for the prep course and the academy, you should be more than fine with 8GB of RAM." 87 | ] 88 | }, 89 | { 90 | "cell_type": "markdown", 91 | "metadata": {}, 92 | "source": [ 93 | "Now, what does this have to do with restarting the notebook before running all cells? We'll almost there! Look at this example:\n", 94 | "\n", 95 | "\n", 96 | "\n", 97 | "For the purpose of this example, just imagine that I'm storing the value 1 in a variable named `a`, the value 2 in a variable named `b` and the value 3 in a variable named `c`. And in the end, I'm printing them. It's straightforward, right?\n", 98 | "\n", 99 | "(What is a variable you ask? It is like a box to store things. We can store for instance numbers or text and later open the box - call the variable - and see what is inside.)" 100 | ] 101 | }, 102 | { 103 | "cell_type": "markdown", 104 | "metadata": {}, 105 | "source": [ 106 | "Now, imagine that for some reason I later decide that I don't want to store the value 2 in variable `b`, in fact, I don't want to create the variable `b` at all. So, I delete that cell (you can do the same by clicking `Edit` -> `Delete Cells` in the Menu bar). Next to it is an option \"Undo Delete Cells\" in case you delete the wrong cell). I then decide to run all cells again. This is what I get: \n", 107 | "\n", 108 | "" 109 | ] 110 | }, 111 | { 112 | "cell_type": "markdown", 113 | "metadata": {}, 114 | "source": [ 115 | "This looks strange right? There is no `b` defined in my notebook, but it seems that the notebook somehow \"remembers\" that `b` used to store the value 2. Let's go ahead and print only `b`:\n", 116 | "\n", 117 | "" 118 | ] 119 | }, 120 | { 121 | "cell_type": "markdown", 122 | "metadata": {}, 123 | "source": [ 124 | "So, our suspicions are true! The lesson here is that the jupyter kernel stored the information \"b = 2\" in memory and deleting the cell that previously had this instruction **does not** erase this information from memory. So, if we really don't want this information to be stored in memory, what can we do?\n", 125 | "\n", 126 | "As I've told you before, this is why I restart the notebook before running all cells. Restarting the notebook will erase everything from the kernel memory and when you run all cells again **only** the current code cells will be considered. \n", 127 | "Let's try this! On the Menu bar select `Kernel` and then `Restart & Run All`. You should see something like this:\n", 128 | "\n", 129 | "" 130 | ] 131 | }, 132 | { 133 | "cell_type": "markdown", 134 | "metadata": {}, 135 | "source": [ 136 | "So now we have an error saying that `b` is not defined, which sounds about right since `b` is not defined anywhere in our notebook! This may seem like a simple detail and I'm sure some of you are thinking \"this is stupid and I would never do this\" but trust me: along the prep course or the academy this is a very common mistake to do and you can end up spending a lot of time in bugs that will trace back to this issue. \n", 137 | "\n", 138 | "Try this out on your own in the cells below (remember that to delete a cell you need to click `Edit` in the Menu bar and then `Delete Cells`):" 139 | ] 140 | }, 141 | { 142 | "cell_type": "code", 143 | "execution_count": 2, 144 | "metadata": {}, 145 | "outputs": [], 146 | "source": [ 147 | "a = 1" 148 | ] 149 | }, 150 | { 151 | "cell_type": "code", 152 | "execution_count": 3, 153 | "metadata": {}, 154 | "outputs": [], 155 | "source": [ 156 | "b = 2" 157 | ] 158 | }, 159 | { 160 | "cell_type": "code", 161 | "execution_count": 4, 162 | "metadata": {}, 163 | "outputs": [], 164 | "source": [ 165 | "c = 3" 166 | ] 167 | }, 168 | { 169 | "cell_type": "code", 170 | "execution_count": 5, 171 | "metadata": {}, 172 | "outputs": [ 173 | { 174 | "name": "stdout", 175 | "output_type": "stream", 176 | "text": [ 177 | "1 2 3\n" 178 | ] 179 | } 180 | ], 181 | "source": [ 182 | "print(a, b, c)" 183 | ] 184 | }, 185 | { 186 | "cell_type": "markdown", 187 | "metadata": {}, 188 | "source": [ 189 | "### 2.1 Running cells\n", 190 | "When cells with code are running, a star appears next to them. Most of the code in this course will run in the blink of an eye, so you might not notice the star unless you create the programmer's nightmare, the infinite loop (which you can consider something like a rite of passage 😜 ). With more computationally intensive code, such as fitting a data science model, it will become noticeable.\n", 191 | "\n", 192 | "The code cell below was intentionally constructed to run for longer so that you can see the star. Try it out!" 193 | ] 194 | }, 195 | { 196 | "cell_type": "code", 197 | "execution_count": 6, 198 | "metadata": {}, 199 | "outputs": [], 200 | "source": [ 201 | "import time\n", 202 | "time.sleep(5)" 203 | ] 204 | }, 205 | { 206 | "cell_type": "markdown", 207 | "metadata": {}, 208 | "source": [ 209 | "Another indication that something in the notebook is running is the dot in the top right corner that turns black:\n", 210 | "\n", 211 | "\n", 212 | "\n", 213 | "If you ever need to stop a running notebook, use `Kernel` -> `Interrupt`." 214 | ] 215 | }, 216 | { 217 | "cell_type": "markdown", 218 | "metadata": {}, 219 | "source": [ 220 | "## 3. Shortcuts\n", 221 | "\n", 222 | "Last but not least, I'll teach you about some shortcuts that will greatly improve your productivity in jupyter notebooks. Up until now we've been using the edit mode of jupyter notebooks. A cell is in edit mode if it has the little green bar on the left side:\n", 223 | "\n", 224 | "\n", 225 | "\n", 226 | "When you click on a cell or press `Enter` while the cell is selected, it goes into edit mode. However, if you press `Esc` or click outside of the gray area of the cell, you will see that the green bar turns blue - the cell will be in command mode:\n", 227 | "\n", 228 | "\n", 229 | "\n", 230 | "Try it for yourself in the cell below:" 231 | ] 232 | }, 233 | { 234 | "cell_type": "code", 235 | "execution_count": 7, 236 | "metadata": {}, 237 | "outputs": [], 238 | "source": [ 239 | "a = 1" 240 | ] 241 | }, 242 | { 243 | "cell_type": "markdown", 244 | "metadata": {}, 245 | "source": [ 246 | "You have just learned the first two shortcuts - `Enter` and `Esc` - for switching between edit and command mode. While in command mode, you can use many more shortcuts that will make your life easier! \n", 247 | "\n", 248 | "- With the keyboard arrows `up` and `down` you can select different cells in your notebook. \n", 249 | "- Typing `A` will insert a cell above the cell that is selected and typing `B` will insert a cell below the cell that is selected. \n", 250 | "- Typing `D` two times in fast succession will delete the cell that is selected.\n", 251 | "- Using `Shift` and then the keyboard arrows `up` and `down` will select various code cells.\n", 252 | "- You can then type `Shift`+`M` to merge the cells." 253 | ] 254 | }, 255 | { 256 | "cell_type": "markdown", 257 | "metadata": {}, 258 | "source": [ 259 | "### 3.1 Markdown cells\n", 260 | "If you type `M` the cell will change to markdown and typing `Y` will change the cell back to code. (You can see more options for cell types in `Cell` -> `Cell Type`).\n", 261 | "\n", 262 | "Markdown cells are cells that accept text with a specific syntax. They can be used to teach concepts (as I've been doing in this notebook) but during the academy I mostly used them to store information that was too important to go into a comment. Try it for yourself: change the cell below to markdown and copy paste the following text, then run the cell:\n", 263 | "\n", 264 | "\\# This is how you can create a header in markdown\n", 265 | "\n", 266 | "\\## This is a smaller header\n", 267 | "\n", 268 | "And to create a list:\n", 269 | "\n", 270 | "\\- Banana\n", 271 | "\n", 272 | "\\- Papaya\n", 273 | "\n", 274 | "\\- Orange" 275 | ] 276 | }, 277 | { 278 | "cell_type": "code", 279 | "execution_count": null, 280 | "metadata": {}, 281 | "outputs": [], 282 | "source": [] 283 | }, 284 | { 285 | "cell_type": "markdown", 286 | "metadata": {}, 287 | "source": [ 288 | "Now you've learned how to to create a header and a list using markdown cells! Check out this [guide](https://www.markdownguide.org/) to learn more about markdown syntax." 289 | ] 290 | }, 291 | { 292 | "cell_type": "markdown", 293 | "metadata": {}, 294 | "source": [ 295 | "### 3.2 More useful shortcuts\n", 296 | "There are three shortcuts that come in handy for executing your code. The first one is `Ctrl`+`Enter` which will run the current cell. The next one is `Shift`+`Enter` which will run the current cell and move the focus to the cell below. In case you are executing the last cell in the notebook, a new cell will be created. And the last one, `Alt`+`Enter`, executes the current cell and creates a new cell under it so that you can easily continue coding. These will save you a lot of clicks on the Toolbar! \n", 297 | "\n", 298 | "Two other shortcuts that you will be using a lot: `Home` and `End`. They will take you to the top of the notebook (e.g. to see the table of contents) and to the bottom (e.g. to access the last cell of the exercise notebook to check out the information about grading and portal submission). Try it out! Notice that jumping to the top or bottom of the notebook does not affect the currently selected cell - it remains selected. If you'd like to go back to it, press the `up` or `down` arrow. This will select the cell above or below the current cell and move the focus back to where you came from.\n", 299 | "\n", 300 | "If you'd like to see all available shortcuts, press `H`.\n", 301 | "\n", 302 | "Sadly, my most used command `Restart & Run All` doesn't have a shortcut. What I've done, since I was using it so many times, was defining it myself. You can do that as well (and remember that this is just a personal tip) by clicking `Help` in the Menu bar and selecting `Edit Keyboard Shortcuts`. Search for the `restart kernel and run all cells` command and type `Ctrl-R` in the `add shortcut` field. Then click `OK` in the bottom right corner of the window. This way you can just press `Ctrl`+`R` instead of doing it manually.\n", 303 | "\n", 304 | "We've reached the end! Try to practice the shortcuts in this notebook and in the exercise notebook. If you have any doubts, ask on Slack! Good luck." 305 | ] 306 | } 307 | ], 308 | "metadata": { 309 | "kernelspec": { 310 | "display_name": "Python 3 (ipykernel)", 311 | "language": "python", 312 | "name": "python3" 313 | }, 314 | "language_info": { 315 | "codemirror_mode": { 316 | "name": "ipython", 317 | "version": 3 318 | }, 319 | "file_extension": ".py", 320 | "mimetype": "text/x-python", 321 | "name": "python", 322 | "nbconvert_exporter": "python", 323 | "pygments_lexer": "ipython3", 324 | "version": "3.8.15" 325 | } 326 | }, 327 | "nbformat": 4, 328 | "nbformat_minor": 2 329 | } 330 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/README.md: -------------------------------------------------------------------------------- 1 | ## Jupyter Notebook 2 | 3 | Jupyter Notebook is a web-based interactive computational environment for creating jupyter notebook documents. A jupyter notebook document integrates code and its output into a single document that can also have visualizations, narrative text, mathematical equations, and other rich media. This promotes iterative and rapid development, making notebooks an increasingly popular choice for data scientists. For this reason, we will use jupyter notebooks not only in the python prep course but also in the data science academy. 4 | 5 | The purpose of this SLU is for you to become familiar with this tool. 6 | 7 | I will teach you the basics and some tips and tricks that I've used throughout the data science academy. 8 | 9 | However, the biggest takeaway is this: 10 | 11 | Whenever you're using your mouse to work with Jupyter Notebook, try to find a shortcut instead! If you do this enough times, you'll be a Jupyter Notebook pro in no time! Goodluck! -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/Updated%20Learning%20Notebook.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## 1. How to use Jupyter notebooks\n", 8 | "\n", 9 | "Let's begin by defining 3 sections of the Jupyter interface: in the following image, you can see the Menu bar in blue, the Toolbar in orange and a Code cell in yellow:\n", 10 | "\n", 11 | "\n", 12 | "\n", 13 | "You can see a code cell just below this cell as well:" 14 | ] 15 | }, 16 | { 17 | "cell_type": "code", 18 | "execution_count": null, 19 | "metadata": {}, 20 | "outputs": [], 21 | "source": [] 22 | }, 23 | { 24 | "cell_type": "code", 25 | "execution_count": 1, 26 | "metadata": {}, 27 | "outputs": [], 28 | "source": [ 29 | "# Tip: Just copy and paste the print statement.\n", 30 | "# BTW, this is a code cell, but the lines starting with the hash symbol # are comments - they are ignored.\n", 31 | "# For instance, the code below will not be executed because it is commented.\n", 32 | "#print('just ignore me')" 33 | ] 34 | }, 35 | { 36 | "cell_type": "code", 37 | "execution_count": null, 38 | "metadata": {}, 39 | "outputs": [], 40 | "source": [] 41 | }, 42 | { 43 | "cell_type": "markdown", 44 | "metadata": {}, 45 | "source": [ 46 | "The output should look like this:\n", 47 | "\n", 48 | "\n", 49 | "\n", 50 | "Congratulations! You've just ran your first jupyter notebook cell. Let's hope this is the first of many to come!\n", 51 | "\n", 52 | "If you're wondering what's the [4] in the image, it's the sequential execution number. It means that this was the fourth cell that was run in my notebook. You should have a [1] or [2] in your current notebook. Notice that running the same cell twice will also update the sequential number. Reselect the cell (by clicking on it) and click on \"Run\" in the Toolbar to see it being updated.\n", 53 | "\n", 54 | "Also, you do not have to run each cell one by one. Go ahead and type `print(\"I'm a professional programmer now\")` in the second code cell above and instead of clicking on \"Run\" in the Toolbar, click on \"Cell\" in the Menu bar and then click on \"Run All\". This will run all the cells in the notebook, it doesn't matter how many cells you have.\n", 55 | "\n", 56 | "You can also swap cell positions by clicking on the `up` or `down` arrows in the toolbar. Give it a try and swap the two cells above.\n", 57 | "\n", 58 | "But to be honest, I have never even used the `Run`command while I was in the academy. I would always restart the notebook and then run all cells.\n", 59 | "To understand why, let me introduce you to a new concept: the notebook kernel." 60 | ] 61 | }, 62 | { 63 | "cell_type": "markdown", 64 | "metadata": {}, 65 | "source": [ 66 | "## 2. Notebook kernel\n", 67 | "\n", 68 | "The notebook kernel is the “computational engine” that executes the code contained in the jupyter notebook document. \n", 69 | "Since you chose to create the notebook with Python 3, the kernel executes Python code. There are kernels for other languages but in the prep course and in the academy, we will only be using Python 3.\n", 70 | "When you open a jupyter notebook document, the associated kernel is automatically launched. When the notebook is executed, the kernel performs the computation and produces the results. Depending on the type of computations, the kernel may consume significant CPU and RAM. However, for the prep course and the academy, you should be more than fine with 8GB of RAM." 71 | ] 72 | }, 73 | { 74 | "cell_type": "markdown", 75 | "metadata": {}, 76 | "source": [ 77 | "Now, what does this have to do with restarting the notebook before running all cells? We'll almost there! Look at this example:\n", 78 | "\n", 79 | "\n", 80 | "\n", 81 | "For the purpose of this example, just imagine that I'm storing the value 1 in a variable named `a`, the value 2 in a variable named `b` and the value 3 in a variable named `c`. And in the end, I'm printing them. It's straightforward, right?\n", 82 | "\n", 83 | "(What is a variable you ask? It is like a box to store things. We can store for instance numbers or text and later open the box - call the variable - and see what is inside.)" 84 | ] 85 | }, 86 | { 87 | "cell_type": "markdown", 88 | "metadata": {}, 89 | "source": [ 90 | "Now, imagine that for some reason I later decide that I don't want to store the value 2 in variable `b`, in fact, I don't want to create the variable `b` at all. So, I delete that cell (you can do the same by clicking `Edit` -> `Delete Cells` in the Menu bar). Next to it is an option \"Undo Delete Cells\" in case you delete the wrong cell). I then decide to run all cells again. This is what I get: \n", 91 | "\n", 92 | "" 93 | ] 94 | }, 95 | { 96 | "cell_type": "markdown", 97 | "metadata": {}, 98 | "source": [ 99 | "This looks strange right? There is no `b` defined in my notebook, but it seems that the notebook somehow \"remembers\" that `b` used to store the value 2. Let's go ahead and print only `b`:\n", 100 | "\n", 101 | "" 102 | ] 103 | }, 104 | { 105 | "cell_type": "markdown", 106 | "metadata": {}, 107 | "source": [ 108 | "So, our suspicions are true! The lesson here is that the jupyter kernel stored the information \"b = 2\" in memory and deleting the cell that previously had this instruction **does not** erase this information from memory. So, if we really don't want this information to be stored in memory, what can we do?\n", 109 | "\n", 110 | "As I've told you before, this is why I restart the notebook before running all cells. Restarting the notebook will erase everything from the kernel memory and when you run all cells again **only** the current code cells will be considered. \n", 111 | "Let's try this! On the Menu bar select `Kernel` and then `Restart & Run All`. You should see something like this:\n", 112 | "\n", 113 | "" 114 | ] 115 | }, 116 | { 117 | "cell_type": "markdown", 118 | "metadata": {}, 119 | "source": [ 120 | "So now we have an error saying that `b` is not defined, which sounds about right since `b` is not defined anywhere in our notebook! This may seem like a simple detail and I'm sure some of you are thinking \"this is stupid and I would never do this\" but trust me: along the prep course or the academy this is a very common mistake to do and you can end up spending a lot of time in bugs that will trace back to this issue. \n", 121 | "\n", 122 | "Try this out on your own in the cells below (remember that to delete a cell you need to click `Edit` in the Menu bar and then `Delete Cells`):" 123 | ] 124 | }, 125 | { 126 | "cell_type": "code", 127 | "execution_count": 2, 128 | "metadata": {}, 129 | "outputs": [], 130 | "source": [ 131 | "a = 1" 132 | ] 133 | }, 134 | { 135 | "cell_type": "code", 136 | "execution_count": 3, 137 | "metadata": {}, 138 | "outputs": [], 139 | "source": [ 140 | "b = 2" 141 | ] 142 | }, 143 | { 144 | "cell_type": "code", 145 | "execution_count": 4, 146 | "metadata": {}, 147 | "outputs": [], 148 | "source": [ 149 | "c = 3" 150 | ] 151 | }, 152 | { 153 | "cell_type": "code", 154 | "execution_count": 5, 155 | "metadata": {}, 156 | "outputs": [ 157 | { 158 | "name": "stdout", 159 | "output_type": "stream", 160 | "text": [ 161 | "1 2 3\n" 162 | ] 163 | } 164 | ], 165 | "source": [ 166 | "print(a, b, c)" 167 | ] 168 | }, 169 | { 170 | "cell_type": "markdown", 171 | "metadata": {}, 172 | "source": [ 173 | "### 2.1 Running cells\n", 174 | "When cells with code are running, a star appears next to them. Most of the code in this course will run in the blink of an eye, so you might not notice the star unless you create the programmer's nightmare, the infinite loop (which you can consider something like a rite of passage 😜 ). With more computationally intensive code, such as fitting a data science model, it will become noticeable.\n", 175 | "\n", 176 | "The code cell below was intentionally constructed to run for longer so that you can see the star. Try it out!" 177 | ] 178 | }, 179 | { 180 | "cell_type": "code", 181 | "execution_count": 6, 182 | "metadata": {}, 183 | "outputs": [], 184 | "source": [ 185 | "import time\n", 186 | "time.sleep(5)" 187 | ] 188 | }, 189 | { 190 | "cell_type": "markdown", 191 | "metadata": {}, 192 | "source": [ 193 | "Another indication that something in the notebook is running is the dot in the top right corner that turns black:\n", 194 | "\n", 195 | "\n", 196 | "\n", 197 | "If you ever need to stop a running notebook, use `Kernel` -> `Interrupt`." 198 | ] 199 | }, 200 | { 201 | "cell_type": "markdown", 202 | "metadata": {}, 203 | "source": [ 204 | "## 3. Shortcuts\n", 205 | "\n", 206 | "Last but not least, I'll teach you about some shortcuts that will greatly improve your productivity in jupyter notebooks. Up until now we've been using the edit mode of jupyter notebooks. A cell is in edit mode if it has the little green bar on the left side:\n", 207 | "\n", 208 | "\n", 209 | "\n", 210 | "When you click on a cell or press `Enter` while the cell is selected, it goes into edit mode. However, if you press `Esc` or click outside of the gray area of the cell, you will see that the green bar turns blue - the cell will be in command mode:\n", 211 | "\n", 212 | "\n", 213 | "\n", 214 | "Try it for yourself in the cell below:" 215 | ] 216 | }, 217 | { 218 | "cell_type": "code", 219 | "execution_count": 7, 220 | "metadata": {}, 221 | "outputs": [], 222 | "source": [ 223 | "a = 1" 224 | ] 225 | }, 226 | { 227 | "cell_type": "markdown", 228 | "metadata": {}, 229 | "source": [ 230 | "You have just learned the first two shortcuts - `Enter` and `Esc` - for switching between edit and command mode. While in command mode, you can use many more shortcuts that will make your life easier! \n", 231 | "\n", 232 | "- With the keyboard arrows `up` and `down` you can select different cells in your notebook. \n", 233 | "- Typing `A` will insert a cell above the cell that is selected and typing `B` will insert a cell below the cell that is selected. \n", 234 | "- Typing `D` two times in fast succession will delete the cell that is selected.\n", 235 | "- Using `Shift` and then the keyboard arrows `up` and `down` will select various code cells.\n", 236 | "- You can then type `Shift`+`M` to merge the cells." 237 | ] 238 | }, 239 | { 240 | "cell_type": "markdown", 241 | "metadata": {}, 242 | "source": [ 243 | "### 3.1 Markdown cells\n", 244 | "If you type `M` the cell will change to markdown and typing `Y` will change the cell back to code. (You can see more options for cell types in `Cell` -> `Cell Type`).\n", 245 | "\n", 246 | "Markdown cells are cells that accept text with a specific syntax. They can be used to teach concepts (as I've been doing in this notebook) but during the academy I mostly used them to store information that was too important to go into a comment. Try it for yourself: change the cell below to markdown and copy paste the following text, then run the cell:\n", 247 | "\n", 248 | "\\# This is how you can create a header in markdown\n", 249 | "\n", 250 | "\\## This is a smaller header\n", 251 | "\n", 252 | "And to create a list:\n", 253 | "\n", 254 | "\\- Banana\n", 255 | "\n", 256 | "\\- Papaya\n", 257 | "\n", 258 | "\\- Orange" 259 | ] 260 | }, 261 | { 262 | "cell_type": "code", 263 | "execution_count": null, 264 | "metadata": {}, 265 | "outputs": [], 266 | "source": [] 267 | }, 268 | { 269 | "cell_type": "markdown", 270 | "metadata": {}, 271 | "source": [ 272 | "Now you've learned how to to create a header and a list using markdown cells! Check out this [guide](https://www.markdownguide.org/) to learn more about markdown syntax." 273 | ] 274 | }, 275 | { 276 | "cell_type": "markdown", 277 | "metadata": {}, 278 | "source": [ 279 | "### 3.2 More useful shortcuts\n", 280 | "There are three shortcuts that come in handy for executing your code. The first one is `Ctrl`+`Enter` which will run the current cell. The next one is `Shift`+`Enter` which will run the current cell and move the focus to the cell below. In case you are executing the last cell in the notebook, a new cell will be created. And the last one, `Alt`+`Enter`, executes the current cell and creates a new cell under it so that you can easily continue coding. These will save you a lot of clicks on the Toolbar! \n", 281 | "\n", 282 | "Two other shortcuts that you will be using a lot: `Home` and `End`. They will take you to the top of the notebook (e.g. to see the table of contents) and to the bottom (e.g. to access the last cell of the exercise notebook to check out the information about grading and portal submission). Try it out! Notice that jumping to the top or bottom of the notebook does not affect the currently selected cell - it remains selected. If you'd like to go back to it, press the `up` or `down` arrow. This will select the cell above or below the current cell and move the focus back to where you came from.\n", 283 | "\n", 284 | "If you'd like to see all available shortcuts, press `H`.\n", 285 | "\n", 286 | "Sadly, my most used command `Restart & Run All` doesn't have a shortcut. What I've done, since I was using it so many times, was defining it myself. You can do that as well (and remember that this is just a personal tip) by clicking `Help` in the Menu bar and selecting `Edit Keyboard Shortcuts`. Search for the `restart kernel and run all cells` command and type `Ctrl-R` in the `add shortcut` field. Then click `OK` in the bottom right corner of the window. This way you can just press `Ctrl`+`R` instead of doing it manually.\n", 287 | "\n", 288 | "We've reached the end! Try to practice the shortcuts in this notebook and in the exercise notebook. If you have any doubts, ask on Slack! Good luck." 289 | ] 290 | } 291 | ], 292 | "metadata": { 293 | "kernelspec": { 294 | "display_name": "Python 3 (ipykernel)", 295 | "language": "python", 296 | "name": "python3" 297 | }, 298 | "language_info": { 299 | "codemirror_mode": { 300 | "name": "ipython", 301 | "version": 3 302 | }, 303 | "file_extension": ".py", 304 | "mimetype": "text/x-python", 305 | "name": "python", 306 | "nbconvert_exporter": "python", 307 | "pygments_lexer": "ipython3", 308 | "version": "3.8.15" 309 | } 310 | }, 311 | "nbformat": 4, 312 | "nbformat_minor": 2 313 | } 314 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_1.PNG -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_10.jpg -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_2.PNG -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_3.PNG -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_4.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_4.PNG -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_5.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_5.PNG -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_6.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_6.PNG -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_7.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_7.PNG -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_8.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_8.PNG -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_9.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/01-VSCode-Setup/02-Jupyter/Jupyter Notebook/media/jupyter_9.PNG -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/README.md: -------------------------------------------------------------------------------- 1 | # VSCode, Git, and GitHub Setup Guide 2 | 3 | Welcome to the setup guide for Visual Studio Code (VSCode), Git, and GitHub. This folder contains all the necessary resources to help you get started with your development environment and to familiarize you with version control and collaboration for the Arewa Data Science Fellowship. 4 | 5 | ## Table of Contents 6 | 7 | - [VSCode, Git, and GitHub Setup Guide](#vscode-git-and-github-setup-guide) 8 | - [Table of Contents](#table-of-contents) 9 | - [Introduction](#introduction) 10 | - [Visual Studio Code Setup](#visual-studio-code-setup) 11 | - [Git Installation and Configuration](#git-installation-and-configuration) 12 | - [GitHub Account and Repository](#github-account-and-repository) 13 | - [Using Markdown for Documentation](#using-markdown-for-documentation) 14 | - [Additional Resources](#additional-resources) 15 | - [Support](#support) 16 | 17 | ## Introduction 18 | 19 | As a data scientist or machine learning practitioner, having a robust development environment is crucial. This guide will walk you through setting up VSCode, which is a lightweight, powerful source code editor that runs on your desktop. 20 | 21 | Git is a distributed version control system that helps you track changes in your code over time. GitHub is a platform for hosting and collaborating on Git repositories. Together, they form a critical part of modern software development workflows. 22 | 23 | ## Visual Studio Code Setup 24 | 25 | Visual Studio Code (VSCode) is a free, open-source editor that supports a range of programming languages with powerful features like debugging, task running, and version control. 26 | 27 | - [VSCode Setup Guide](VSCode_Setup_Guide.pdf): A step-by-step guide to installing and configuring VSCode. 28 | - [VSCode Shortcuts](VSCode_Shortcuts.pdf): Handy keyboard shortcuts to enhance your productivity. 29 | 30 | ## Git Installation and Configuration 31 | 32 | Git is essential for version control and collaboration. This section will help you install Git, set up your local environment, and start using Git for version control. 33 | 34 | - [Git Guide](Git_Guide.pdf): Comprehensive instructions for installing and using Git. 35 | - [Git Cheat Sheet](Git_Cheat_Sheet.pdf): A quick reference for common Git commands. 36 | 37 | ## GitHub Account and Repository 38 | 39 | GitHub is a web-based interface for Git repositories. It allows for collaboration and is an excellent way to showcase your projects and code. 40 | 41 | - [GitHub Collaboration Guide](GitHub_Collaboration_Guide.pdf): Learn how to create a GitHub account, manage repositories, and collaborate with others. 42 | - [GitHub Issues and Pull Requests](GitHub_Workflow.pdf): Understand how to use issues and pull requests to contribute to projects. 43 | 44 | ## Using Markdown for Documentation 45 | 46 | Markdown is a lightweight markup language with plain-text formatting syntax. It's used to create formatted text using a plain-text editor. 47 | 48 | - [Markdown Guide](Markdown_Guide.pdf): Get started with writing in Markdown for documentation and notes. 49 | - [Markdown Cheat Sheet](Markdown_Cheat_Sheet.pdf): A quick guide to the most commonly used Markdown syntax. 50 | 51 | ## Additional Resources 52 | 53 | For those who want to explore more advanced features or troubleshoot issues, here are some additional resources: 54 | 55 | - [VSCode Extensions for Data Science](VSCode_Extensions.md): Enhance your VSCode setup with extensions tailored for data science work. 56 | - [Troubleshooting Common Issues](Troubleshooting_Guide.pdf): Solutions to common problems you might encounter while setting up your environment. 57 | 58 | ## Support 59 | 60 | If you encounter any issues or have questions, please reach out to the fellowship support team. We're here to help! 61 | 62 | We hope this guide will set you up for success in your journey with the Arewa Data Science Fellowship. Happy coding! 63 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/01-VSCode-Setup/exportjupyter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/01-VSCode-Setup/exportjupyter.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/03-30-Days-of-Python/README.md: -------------------------------------------------------------------------------- 1 | md -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/Boss.csv: -------------------------------------------------------------------------------- 1 | Iteration_0,Iteration_1,Iteration_2 2 | "[[-23.95642915] 3 | [-24.59864808] 4 | [-26.11375496] 5 | [-28.17404299] 6 | [-28.72928225] 7 | [-25.988018 ] 8 | [-22.95986308] 9 | [-20.29356379] 10 | [-19.44504472] 11 | [-17.84106245] 12 | [-17.00185919] 13 | [-16.81291206] 14 | [-17.25910398] 15 | [-18.49284789] 16 | [-19.64700498] 17 | [-22.48329424] 18 | [-26.6505094 ] 19 | [-27.93118484] 20 | [-23.63766838] 21 | [-21.28187594] 22 | [-18.93059765] 23 | [-17.29173989] 24 | [-16.54872904] 25 | [-16.30532856] 26 | [-16.42296005] 27 | [-17.13175616] 28 | [-18.47130421] 29 | [-21.01001367] 30 | [-22.47473499] 31 | [-26.82580643] 32 | [-27.1293721 ] 33 | [-25.90674205] 34 | [-22.48641051] 35 | [-19.7117336 ]]","[[-27.07634674] 36 | [-27.7703664 ] 37 | [-28.85411189] 38 | [-28.76883881] 39 | [-26.0985092 ] 40 | [-23.63919294] 41 | [-20.84962475] 42 | [-19.32709898] 43 | [-18.29868192] 44 | [-17.30649428] 45 | [-17.00925121] 46 | [-16.78293859] 47 | [-17.65815673] 48 | [-18.93833793] 49 | [-20.16038031] 50 | [-23.33786679] 51 | [-27.27480429] 52 | [-27.22578378] 53 | [-23.17958524] 54 | [-21.00419223] 55 | [-18.74934531] 56 | [-17.22671237] 57 | [-16.51489829] 58 | [-16.28967685] 59 | [-16.41939232] 60 | [-17.11249134] 61 | [-18.42776905] 62 | [-20.90613218] 63 | [-22.39730762] 64 | [-26.57492528] 65 | [-27.15099317] 66 | [-26.12184799] 67 | [-22.55396348] 68 | [-19.74684725]]","[[-27.65226319] 69 | [-28.43895758] 70 | [-29.14025736] 71 | [-28.02642569] 72 | [-25.3480753 ] 73 | [-22.85891487] 74 | [-20.39879159] 75 | [-18.73782241] 76 | [-17.88649848] 77 | [-17.02207831] 78 | [-16.96432436] 79 | [-16.92884509] 80 | [-18.08883453] 81 | [-19.67017204] 82 | [-21.19880542] 83 | [-24.43446173] 84 | [-28.06849545] 85 | [-26.00463246] 86 | [-21.95656455] 87 | [-20.10687795] 88 | [-18.11795462] 89 | [-16.91693845] 90 | [-16.31134167] 91 | [-16.33964113] 92 | [-16.54297328] 93 | [-17.42539808] 94 | [-18.86408589] 95 | [-21.49895526] 96 | [-22.99301828] 97 | [-26.99195043] 98 | [-27.1033429 ] 99 | [-25.65384483] 100 | [-22.27681973] 101 | [-19.56926955]]" 102 | Iteration_0,Iteration_1,Iteration_2 103 | "[[-23.95642915] 104 | [-24.59864808] 105 | [-26.11375496] 106 | [-28.17404299] 107 | [-28.72928225] 108 | [-25.988018 ] 109 | [-22.95986308] 110 | [-20.29356379] 111 | [-19.44504472] 112 | [-17.84106245] 113 | [-17.00185919] 114 | [-16.81291206] 115 | [-17.25910398] 116 | [-18.49284789] 117 | [-19.64700498] 118 | [-22.48329424] 119 | [-26.6505094 ] 120 | [-27.93118484] 121 | [-23.63766838] 122 | [-21.28187594] 123 | [-18.93059765] 124 | [-17.29173989] 125 | [-16.54872904] 126 | [-16.30532856] 127 | [-16.42296005] 128 | [-17.13175616] 129 | [-18.47130421] 130 | [-21.01001367] 131 | [-22.47473499] 132 | [-26.82580643] 133 | [-27.1293721 ] 134 | [-25.90674205] 135 | [-22.48641051] 136 | [-19.7117336 ]]","[[-27.07634674] 137 | [-27.7703664 ] 138 | [-28.85411189] 139 | [-28.76883881] 140 | [-26.0985092 ] 141 | [-23.63919294] 142 | [-20.84962475] 143 | [-19.32709898] 144 | [-18.29868192] 145 | [-17.30649428] 146 | [-17.00925121] 147 | [-16.78293859] 148 | [-17.65815673] 149 | [-18.93833793] 150 | [-20.16038031] 151 | [-23.33786679] 152 | [-27.27480429] 153 | [-27.22578378] 154 | [-23.17958524] 155 | [-21.00419223] 156 | [-18.74934531] 157 | [-17.22671237] 158 | [-16.51489829] 159 | [-16.28967685] 160 | [-16.41939232] 161 | [-17.11249134] 162 | [-18.42776905] 163 | [-20.90613218] 164 | [-22.39730762] 165 | [-26.57492528] 166 | [-27.15099317] 167 | [-26.12184799] 168 | [-22.55396348] 169 | [-19.74684725]]","[[-27.65226319] 170 | [-28.43895758] 171 | [-29.14025736] 172 | [-28.02642569] 173 | [-25.3480753 ] 174 | [-22.85891487] 175 | [-20.39879159] 176 | [-18.73782241] 177 | [-17.88649848] 178 | [-17.02207831] 179 | [-16.96432436] 180 | [-16.92884509] 181 | [-18.08883453] 182 | [-19.67017204] 183 | [-21.19880542] 184 | [-24.43446173] 185 | [-28.06849545] 186 | [-26.00463246] 187 | [-21.95656455] 188 | [-20.10687795] 189 | [-18.11795462] 190 | [-16.91693845] 191 | [-16.31134167] 192 | [-16.33964113] 193 | [-16.54297328] 194 | [-17.42539808] 195 | [-18.86408589] 196 | [-21.49895526] 197 | [-22.99301828] 198 | [-26.99195043] 199 | [-27.1033429 ] 200 | [-25.65384483] 201 | [-22.27681973] 202 | [-19.56926955]]" 203 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/GitHub Fundamentals.md: -------------------------------------------------------------------------------- 1 | # Assignment: GitHub Fundamentals 2 | 3 | The goal of this assignment is to get familiar with using GitHub, a powerful platform for version control and collaboration in software development. By the end, you should be comfortable with creating repositories, making commits, using branches, practicing pushes, and collaborating through pull requests. 4 | 5 | --- 6 | 7 | ## Task Overview 8 | 9 | 1. **Create a GitHub Account** 10 | - If you don’t already have one, create an account on [GitHub](https://github.com/). 11 | 12 | 2. **Setup Git on Your Local Machine** 13 | - Install Git on your computer (if not already installed). 14 | - Configure Git with your GitHub account credentials: 15 | ```bash 16 | git config --global user.name "Your Name" 17 | git config --global user.email "your.email@example.com" 18 | ``` 19 | 20 | 3. **Create a New Repository** 21 | - Go to your GitHub profile, create a new repository named **"ArewaDS-Fellowship"**. 22 | - Initialize the repository with a `README.md` file and a `.gitignore` file (choose Python if you’re primarily coding in Python). 23 | 24 | 4. **Clone the Repository to Your Local Machine** 25 | - Copy the repository link and clone it: 26 | ```bash 27 | git clone 28 | ``` 29 | 30 | 5. **Edit the `README.md`** 31 | - Open the `README.md` file in your text editor and add: 32 | - A brief description of what this repository is about. 33 | - Your name and a short bio. 34 | 35 | 6. **Commit and Push Your Changes** 36 | - Save your changes and commit them: 37 | ```bash 38 | git add README.md 39 | git commit -m "Updated README with project description and bio" 40 | ``` 41 | - **Push** your changes to GitHub: 42 | ```bash 43 | git push origin main 44 | ``` 45 | - **Practice Push**: Make another small edit in the `README.md` file (e.g., add the current date) and repeat the commit and push steps to practice using `push` multiple times. 46 | 47 | 7. **Create a Branch** 48 | - Create a new branch named `feature-hello-world`: 49 | ```bash 50 | git checkout -b feature-hello-world 51 | ``` 52 | - Create a Python file named `hello_world.py`, and add a simple script that prints “Hello, Arewa Data Science!” 53 | 54 | 8. **Push the Branch and Open a Pull Request** 55 | - Push the branch to GitHub: 56 | ```bash 57 | git push origin feature-hello-world 58 | ``` 59 | - Go to your GitHub repository and open a pull request from `feature-hello-world` to `main`. 60 | - In the pull request description, briefly explain what you added in `hello_world.py`. 61 | 62 | 9. **Review and Merge the Pull Request** 63 | - Review your own pull request to make sure everything looks good. 64 | - Merge the pull request into the `main` branch. 65 | 66 | 10. **Delete the Branch** 67 | - After merging, delete the branch from GitHub and your local repository. 68 | 69 | --- 70 | 71 | # **Optional Question** 72 | 73 | Research and answer the following: 74 | 75 | 1. **What is a Fork in GitHub?** 76 | - Describe the concept of forking a repository on GitHub. 77 | - How does it differ from simply cloning a repository? 78 | 79 | 2. **When and Why Should You Use a Fork?** 80 | - List scenarios where forking a repository is the preferred approach over other Git/GitHub workflows. 81 | - Explain why forking is useful in open-source projects and collaborative coding. 82 | 83 | 3. **Practical Task: Forking a Repository** 84 | - Choose a public GitHub repository that interests you (e.g., ArewaDS repository: https://github.com/arewadataScience/python-programming-fellowship) 85 | - Fork the repository to your own GitHub account. 86 | - Make a small change (e.g., edit the README or add a new file) and commit it in your forked version. 87 | - Open a **Pull Request** to the original repository if applicable. 88 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/LINUX.md: -------------------------------------------------------------------------------- 1 | # Set-up instructions for Linux 2 | 3 | 4 | ## Objective 5 | 6 | Welcome to the Linux/Ubuntu setup guide for the Arewa Data Science Fellowship. This tutorial aims to equip you with the necessary tools and configurations for a productive data science environment on Linux/Ubuntu. By the end of this guide, you will have: 7 | 8 | - Installed and configured [Python 3.8](https://www.python.org/downloads/release/python-380/), an essential programming language for data science. 9 | - Set up [pip](https://pip.pypa.io/en/stable/installation/), the Python package manager, for managing software packages. 10 | - Configured [venv](https://docs.python.org/3/library/venv.html), a tool for creating isolated Python environments, crucial for project-specific dependencies. 11 | 12 | So you're using Ubuntu, huh? Well, kudos to you. You just need to install a couple of packages. 13 | 14 | **Step 1:** Open a terminal and check what version of Python you have by using the command below. If your version is `Python 3.8.x` (`x` = any number), you can skip to step 2, otherwise continue with steps 1.1 and 1.2 15 | 16 | ```bash 17 | python3.8 --version 18 | ``` 19 | 20 | **Step 1.1:** Run the following commands to setup `Python 3.8`. Add the `deadsnakes repository`: 21 | 22 | ```bash 23 | sudo add-apt-repository ppa:deadsnakes/ppa 24 | ``` 25 | 26 | **Step 1.2:** Run the following commands to install `Python 3.8`: 27 | 28 | ```bash 29 | sudo apt update && sudo apt install python3.8 -y 30 | ``` 31 | 32 | **Step 2** Run the following command to get `pip` and `venv`. `pip` is a python package manager - it will help you easily install python packages. `venv` is a software for creating virtual environments (we will come back to what this means in the next set up step): 33 | 34 | ```bash 35 | sudo apt update && sudo apt upgrade && sudo apt install python3-pip python3.8-venv -y 36 | ``` 37 | 38 | And you're done! Go back to the main menu and continue with setting up Git and GitHub in step 3. 39 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/README.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | readme 11 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 |
38 | 39 |
40 | 41 | 42 | 43 |
44 |

Arewa Data Science Cohort 2.0

45 |

Welcome to the Arewa Data Science Cohort Course repository! 🧑‍💻

46 |

Your first step in this journey is to carefully read the steps in this tutorial. ⚠️ Important: Make sure to complete all the steps during the setup week. If you are struggling with any of the steps, tell us in the #setup channel on Telegram! In this tutorial, you’ll learn:

47 |
    48 |
  • Telegram usage and etiquette specific to ArewaDS;
  • 49 |
  • How to set up your software environment;
  • 50 |
  • The weekly workflow to follow during the Cohort.
  • 51 |
52 |

We have provided detailed instructions, but you might not understand all the details of the setup for now. It will become clearer as you proceed with the course. So don’t despair, put on your patience hat, and ask for help when needed. There’s light at the other end of the tunnel. :star2:

53 |
54 |

1. How to use Telegram and how to ask for help

55 |

First and foremost, we’ll talk about how to use our communication tool, Telegram. You will learn how to use it effectively and how to use it to ask for help. Click on the image to follow the link.

56 | 57 | 58 | 59 | 62 | 63 | 64 |
60 | Slack 61 |
65 |
66 |
67 |

2. Initial Setup

68 |

Please choose your operating system:

69 | 70 | 71 | 72 | 75 | 78 | 81 | 82 | 83 |
73 | MacOS 74 | 76 | Windows 77 | 79 | Linux 80 |
84 |
85 |
86 |

3. Setup Git and GitHub

87 |

Click on the image to follow the link.

88 | 89 | 90 | 91 | 94 | 95 | 96 |
92 | GitHub 93 |
97 |
98 |
99 |

4. Setup for all operating systems - Python virtual environment

100 |

Click on the image to follow the link.

101 | 102 | 103 | 104 | 107 | 108 | 109 |
105 | python-venv 106 |
110 |
111 |
112 |

5. VSCode Setup Guide

113 |

Follow this guide to set up your Visual Studio Code (VSCode) environment for optimal performance and efficiency in your data science projects. Click on the image to access the detailed setup instructions.

114 | 115 | 116 | 117 | 120 | 121 | 122 |
118 | VSCode setup 119 |
123 |
124 |
125 |

6. Weekly workflow

126 |

The workflow that you will follow every week with every new learning unit. Click on the image to follow the link.

127 | 128 | 129 | 130 | 133 | 134 | 135 |
131 | weekly-workflow 132 |
136 |
137 |
138 | 139 |
140 | 141 | 220 |
221 | 222 | 223 | 224 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/README.md: -------------------------------------------------------------------------------- 1 | # Arewa Data Science Cohort 2.0 2 | Welcome to the Arewa Data Science Cohort Course repository! 🧑‍💻 3 | 4 | Your first step in this journey is to **carefully read** the steps in this tutorial. ⚠️ **Important**: Make sure to complete all the steps during the setup week. If you are struggling with any of the steps, tell us in the #setup channel on Telegram! In this tutorial, you'll learn: 5 | 6 | - Telegram usage and etiquette specific to ArewaDS; 7 | - How to set up your software environment; 8 | - The weekly workflow to follow during the Cohort. 9 | 10 | We have provided detailed instructions, but you might not understand all the details of the setup for now. It will become clearer as you proceed with the course. So don't despair, put on your patience hat, and ask for help when needed. There's light at the other end of the tunnel. :star2: 11 | 12 | ## 1. How to use Telegram and how to ask for help 13 | 14 | First and foremost, we'll talk about how to use our communication tool, Telegram. You will learn how to use it effectively and how to use it to ask for help. Click on the image to follow the link. 15 | 16 | 17 | 18 | 23 | 24 |
19 | 20 | Slack 21 | 22 |
25 | 26 | ## 2. Initial Setup 27 | 28 | Please choose your operating system: 29 | 30 | 31 | 32 | 37 | 42 | 47 | 48 |
33 | 34 | MacOS 35 | 36 | 38 | 39 | Windows 40 | 41 | 43 | 44 | Linux 45 | 46 |
49 | 50 | ## 3. Setup _Git_ and _GitHub_ 51 | 52 | Click on the image to follow the link. 53 | 54 | 55 | 56 | 61 | 62 |
57 | 58 | GitHub 59 | 60 |
63 | 64 | ## 4. Setup for all operating systems - Python virtual environment 65 | 66 | Click on the image to follow the link. 67 | 68 | 69 | 70 | 75 | 76 |
71 | 72 | python-venv 73 | 74 |
77 | 78 | 79 | 80 | ## 5. VSCode Setup Guide 81 | 82 | Follow this guide to set up your Visual Studio Code (VSCode) environment for optimal performance and efficiency in your data science projects. Click on the image to access the detailed setup instructions. 83 | 84 | 85 | 86 | 91 | 92 |
87 | 88 | VSCode setup 89 | 90 |
93 | 94 | 95 | ## 6. Weekly workflow 96 | 97 | The workflow that you will follow every week with every new learning unit. Click on the image to follow the link. 98 | 99 | 100 | 101 | 106 | 107 |
102 | 103 | weekly-workflow 104 | 105 |
108 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/README_files/libs/bootstrap/bootstrap-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/README_files/libs/bootstrap/bootstrap-icons.woff -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/README_files/libs/clipboard/clipboard.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * clipboard.js v2.0.11 3 | * https://clipboardjs.com/ 4 | * 5 | * Licensed MIT © Zeno Rocha 6 | */ 7 | !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1.anchorjs-link,.anchorjs-link:focus{opacity:1}",A.sheet.cssRules.length),A.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",A.sheet.cssRules.length),A.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',A.sheet.cssRules.length)),h=document.querySelectorAll("[id]"),t=[].map.call(h,function(A){return A.id}),i=0;i\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}}); 9 | // @license-end -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/README_files/libs/quarto-html/quarto-syntax-highlighting.css: -------------------------------------------------------------------------------- 1 | /* quarto syntax highlight colors */ 2 | :root { 3 | --quarto-hl-ot-color: #003B4F; 4 | --quarto-hl-at-color: #657422; 5 | --quarto-hl-ss-color: #20794D; 6 | --quarto-hl-an-color: #5E5E5E; 7 | --quarto-hl-fu-color: #4758AB; 8 | --quarto-hl-st-color: #20794D; 9 | --quarto-hl-cf-color: #003B4F; 10 | --quarto-hl-op-color: #5E5E5E; 11 | --quarto-hl-er-color: #AD0000; 12 | --quarto-hl-bn-color: #AD0000; 13 | --quarto-hl-al-color: #AD0000; 14 | --quarto-hl-va-color: #111111; 15 | --quarto-hl-bu-color: inherit; 16 | --quarto-hl-ex-color: inherit; 17 | --quarto-hl-pp-color: #AD0000; 18 | --quarto-hl-in-color: #5E5E5E; 19 | --quarto-hl-vs-color: #20794D; 20 | --quarto-hl-wa-color: #5E5E5E; 21 | --quarto-hl-do-color: #5E5E5E; 22 | --quarto-hl-im-color: #00769E; 23 | --quarto-hl-ch-color: #20794D; 24 | --quarto-hl-dt-color: #AD0000; 25 | --quarto-hl-fl-color: #AD0000; 26 | --quarto-hl-co-color: #5E5E5E; 27 | --quarto-hl-cv-color: #5E5E5E; 28 | --quarto-hl-cn-color: #8f5902; 29 | --quarto-hl-sc-color: #5E5E5E; 30 | --quarto-hl-dv-color: #AD0000; 31 | --quarto-hl-kw-color: #003B4F; 32 | } 33 | 34 | /* other quarto variables */ 35 | :root { 36 | --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 37 | } 38 | 39 | code span { 40 | color: #003B4F; 41 | } 42 | 43 | code.sourceCode > span { 44 | color: #003B4F; 45 | } 46 | 47 | div.sourceCode, 48 | div.sourceCode pre.sourceCode { 49 | color: #003B4F; 50 | } 51 | 52 | code span.ot { 53 | color: #003B4F; 54 | } 55 | 56 | code span.at { 57 | color: #657422; 58 | } 59 | 60 | code span.ss { 61 | color: #20794D; 62 | } 63 | 64 | code span.an { 65 | color: #5E5E5E; 66 | } 67 | 68 | code span.fu { 69 | color: #4758AB; 70 | } 71 | 72 | code span.st { 73 | color: #20794D; 74 | } 75 | 76 | code span.cf { 77 | color: #003B4F; 78 | } 79 | 80 | code span.op { 81 | color: #5E5E5E; 82 | } 83 | 84 | code span.er { 85 | color: #AD0000; 86 | } 87 | 88 | code span.bn { 89 | color: #AD0000; 90 | } 91 | 92 | code span.al { 93 | color: #AD0000; 94 | } 95 | 96 | code span.va { 97 | color: #111111; 98 | } 99 | 100 | code span.pp { 101 | color: #AD0000; 102 | } 103 | 104 | code span.in { 105 | color: #5E5E5E; 106 | } 107 | 108 | code span.vs { 109 | color: #20794D; 110 | } 111 | 112 | code span.wa { 113 | color: #5E5E5E; 114 | font-style: italic; 115 | } 116 | 117 | code span.do { 118 | color: #5E5E5E; 119 | font-style: italic; 120 | } 121 | 122 | code span.im { 123 | color: #00769E; 124 | } 125 | 126 | code span.ch { 127 | color: #20794D; 128 | } 129 | 130 | code span.dt { 131 | color: #AD0000; 132 | } 133 | 134 | code span.fl { 135 | color: #AD0000; 136 | } 137 | 138 | code span.co { 139 | color: #5E5E5E; 140 | } 141 | 142 | code span.cv { 143 | color: #5E5E5E; 144 | font-style: italic; 145 | } 146 | 147 | code span.cn { 148 | color: #8f5902; 149 | } 150 | 151 | code span.sc { 152 | color: #5E5E5E; 153 | } 154 | 155 | code span.dv { 156 | color: #AD0000; 157 | } 158 | 159 | code span.kw { 160 | color: #003B4F; 161 | } 162 | 163 | .prevent-inlining { 164 | content: ".tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/WINDOWS.md: -------------------------------------------------------------------------------- 1 | # Set-up instructions for Windows 10/11 2 | 3 | Welcome to the Windows 10/11 setup guide for the Arewa Data Science Fellowship. The primary goal of this tutorial is to equip you with the necessary tools and knowledge to prepare your Windows 10/11 environment for data science activities. By the end of this guide, you will have successfully installed and configured the [Windows Subsystem for Linux (WSL)](https://docs.microsoft.com/en-us/windows/wsl/install), [Git](https://git-scm.com/download/win), and [Python 3.8](https://www.python.org/downloads/release/python-380/), along with essential tools like [pip](https://pip.pypa.io/en/stable/installation/) and [venv](https://docs.python.org/3/library/venv.html). These installations are crucial for your data science journey, as they provide a robust and flexible development environment. This setup will enable you to run Linux command-line tools directly in Windows, facilitating a seamless integration of Linux-based data science tools and workflows. 4 | 5 | `Windows Subsystem for Linux (WSL)` enables you to run Linux command line inside Windows. You can follow a Youtube tutorial [here](https://www.youtube.com/watch?v=bRW5r7TK6KM) 6 | 7 | **Step 1:** Follow **[this guide](guides/Windows_Subsystem_for_Linux_Installation_Guide_for_Windows_10.md)** to setup `WSL` on Windows 10/11. 8 | 9 | **Step 2:** Open a terminal (remember **[this](guides/Windows_Subsystem_for_Linux_Installation_Guide_for_Windows_10.md#Opening-the-WSL-terminal)**!!) and run the following command. It will install `git`. `Git` is a version control software that facilitates collaboration of people working together on the same code and keeps track of the versions as the code changes. You will learn more about `git` in the coming weeks. 10 | 11 | ```bash 12 | sudo apt update && sudo apt upgrade && sudo apt install git 13 | ``` 14 | 15 | **Step 3:** Open a terminal (remember **[this](guides/Windows_Subsystem_for_Linux_Installation_Guide_for_Windows_10.md#Opening-the-WSL-terminal)**!!) and check if you already have `python3.8` by usind the command below. If your version is `Python 3.9.x` (`x` = any number), you can skip to step 4, otherwise continue with step 3.1 and 3.2. 16 | 17 | ```bash 18 | python3.9 --version 19 | ``` 20 | 21 | **Step 3.1:** Run the following commands to set up `Python 3.9` (if you get an error with this command, check [this](troubleshooting.md/#6-when-setting-up-python-38-i-get-an-error)). First, add the `deadsnakes repository` - a place from where you will download `Python 3.9`: 22 | 23 | ```bash 24 | sudo add-apt-repository ppa:deadsnakes/ppa 25 | ``` 26 | 27 | **Step 3.2:** Run the following commands to install `Python 3.9`: 28 | 29 | ```bash 30 | sudo apt update && sudo apt install python3.9 -y 31 | ``` 32 | 33 | **Step 4** Run the following command to get `pip` and `venv`. `pip` is a package manager - it will help you easily install software. `venv` is a software for creating virtual environments (we will come back to what this means in the next set up step): 34 | 35 | ```bash 36 | sudo apt update && sudo apt upgrade && sudo apt install python3-pip python3.9-venv -y 37 | ``` 38 | And you're done! Go back to the main menu and continue with setting up Git and GitHub in step 3. 39 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/advancedgithub.md: -------------------------------------------------------------------------------- 1 | # GitHub for Collaboration 2 | 3 | - Build upon the initial Git and GitHub session by focusing on collaborative features like branching, pull requests, and issue tracking. 4 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/bayo.csv: -------------------------------------------------------------------------------- 1 | Iteration_0,Iteration_1,Iteration_2,Iteration_3,Iteration_4,Iteration_5,Iteration_6,Iteration_7,Iteration_8,Iteration_9 2 | 3279,3581,167,1111,1402.0,4895,730.0,4929,910,696.0 3 | 3261,4851,2090,4870,1949.0,107,1002.0,4169,4617,4390.0 4 | 4474,4987,2604,4718,4439.0,2857,3029.0,2212,1751,1956.0 5 | 3277,666,4455,3250,3491.0,328,1220.0,944,1396,2594.0 6 | 3767,344,4228,4332,3055.0,2443,2048.0,872,3909,1752.0 7 | 1766,4423,4313,2553,644.0,4083,2271.0,552,2214, 8 | 1871,1417,954,649,,2278,,3636,1881, 9 | 1270,442,4966,2172,,202,,4801,2416, 10 | 74,3376,3654,3159,,4546,,3738,3223, 11 | 3594,1453,744,2220,,3852,,2685,188, 12 | 25,1745,1674,4764,,727,,1347,1759, 13 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/commandline.md: -------------------------------------------------------------------------------- 1 | # Basic Command Line Tutorial for Beginners 2 | 3 | Welcome to this beginner-friendly tutorial on using the command line. This guide aims to introduce you to the basics of command line operations. Learning the command line is crucial in data science for enhancing efficiency and handling complex tasks. Key reasons include: 4 | 5 | 1. **Speed**: Command line operations often execute tasks faster than graphical interfaces. 6 | 2. **Automation**: Scripts in the command line allow for automating repetitive tasks. 7 | 3. **Handling Big Data**: The command line is effective for processing large datasets. 8 | 4. **Access to Tools**: Many specialized data science tools are optimized for command line usage. 9 | 5. **Advanced Features**: Certain advanced functions are more accessible or exclusively available through the command line. 10 | 6. **Version Control**: Command line proficiency is essential for using version control systems like Git, which are vital in collaborative data science projects. 11 | 7. **Understanding Systems**: Using the command line offers deeper insights into the workings of computers and software, beneficial for troubleshooting and optimization. 12 | 13 | Overall, command line skills significantly contribute to the efficiency, power, and versatility of data science workflows. 14 | 15 | 16 | 17 | 18 | 23 | 24 |
19 | 20 | VSCode setup 21 | 22 |
25 | 26 | 27 | ## Introduction to the Command Line 28 | 29 | The command line, also known as the terminal or shell, is a text-based interface to the system. You can perform almost all the tasks that you do with a GUI, but using text commands can often be more efficient. 30 | 31 | ## Opening the Terminal 32 | 33 | Before navigating the file system, you need to know how to open the terminal on your operating system: 34 | 35 | ### Windows 36 | - Press `Windows + R`, type `cmd`, and press `Enter`. This opens the Command Prompt. 37 | - Alternatively, you can search for "Command Prompt" in the Start menu. 38 | 39 | ### MacOS 40 | - Open `Finder`, go to `Applications > Utilities`, and double-click on `Terminal`. 41 | - Alternatively, you can use `Spotlight` by pressing `Command + Space`, typing `Terminal`, and pressing `Enter`. 42 | 43 | ### Linux 44 | - Usually, you can open the terminal with a shortcut, typically `Ctrl + Alt + T`. 45 | - Alternatively, you can find it in your applications menu, the location of which varies by distribution. 46 | 47 | 48 | ## Navigating the File System 49 | 50 | ### Displaying the Current Directory 51 | 52 | - **Command:** pwd (Linux/Mac) or cd (Windows, without arguments) 53 | - **Purpose:** To display the path of the current directory. 54 | - **Usage:** 55 | 56 | ```bash 57 | pwd 58 | ``` 59 | 60 | ### Listing Files and Directories 61 | 62 | - **Command**: `ls` (Linux/Mac) or `dir` (Windows) 63 | - **Purpose**: Lists all files and directories in the current directory. 64 | - **Usage**: 65 | 66 | ```bash 67 | ls 68 | ``` 69 | A full list of `ls` command options is available [here](https://www.computerhope.com/unix/uls.htm). 70 | 71 | ### Changing Directories 72 | 73 | - **Command:** cd 74 | - **Purpose:** To change your current directory. 75 | - **Usage:** 76 | 77 | ```bash 78 | cd Documents 79 | 80 | ``` 81 | 82 | ## File Operations 83 | 84 | Managing files is a frequent task in the command line. 85 | 86 | ### Creating a New File 87 | 88 | - **Command:** touch (Linux/Mac) or type nul > (Windows) 89 | - **Purpose:** To create a new, empty file. 90 | - **Usage:** 91 | 92 | ```bash 93 | touch newfile.txt 94 | ``` 95 | 96 | ### Creating a New Directory 97 | 98 | - **Command:** mkdir 99 | - **Purpose:** To create a new directory. 100 | - **Usage:** 101 | 102 | ```bash 103 | mkdir NewFolder 104 | ``` 105 | 106 | ### Deleting Files and Directories 107 | 108 | - **Command:** rm (file) or rm -r (directory, Linux/Mac) and del (file) or rmdir /s (directory, Windows) 109 | - **Purpose:** To delete files or directories. 110 | - **Usage:** 111 | 112 | ```bash 113 | rm unwantedfile.txt 114 | rm -r OldFolder 115 | ``` 116 | 117 | ## Viewing and Editing Files 118 | 119 | - **Command:** cat (Linux/Mac) or type (Windows) 120 | - **Purpose:** To display the content of a file. 121 | - **Usage:** 122 | 123 | ```bash 124 | cat example.txt 125 | ``` 126 | 127 | 128 | This tutorial has covered the basics of using the command line, providing you with the foundational skills necessary for many tasks in software development, data science, and system management. As you gain more comfort with these commands, you'll find the command line to be a powerful tool in your toolkit. 129 | 130 | 131 | ## Resources 132 | 133 | - Youtube: [Command Line Crash Course For Beginners | Terminal Commands](https://www.youtube.com/watch?v=uwAqEzhyjtw) 134 | 135 | - Youtube: [Beginner's Guide to the Bash Terminal](https://www.youtube.com/watch?v=oxuRxtrO2Ag) 136 | - Udemy : [Linux Command Line Basics](https://www.udemy.com/course/linux-command-line-volume1/) This is an introductory course to the Linux command Line. It's great for both Linux beginners and advanced Linux users. It is 5 hours on-demand video. This is not free. 137 | 138 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/conda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/conda.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/examples.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": { 6 | "vscode": { 7 | "languageId": "markdown" 8 | } 9 | }, 10 | "source": [ 11 | "# Python for Beginers" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": null, 17 | "metadata": { 18 | "vscode": { 19 | "languageId": "markdown" 20 | } 21 | }, 22 | "outputs": [], 23 | "source": [] 24 | }, 25 | { 26 | "cell_type": "markdown", 27 | "metadata": {}, 28 | "source": [ 29 | "# List\n", 30 | "\n", 31 | "1. One\n", 32 | "2. two\n", 33 | "3. Three" 34 | ] 35 | }, 36 | { 37 | "cell_type": "markdown", 38 | "metadata": {}, 39 | "source": [ 40 | "# List\n", 41 | "\n", 42 | "I. One\n", 43 | "\n", 44 | "II. Two\n", 45 | "\n", 46 | "III. Three" 47 | ] 48 | } 49 | ], 50 | "metadata": { 51 | "kernelspec": { 52 | "display_name": "datascience", 53 | "language": "python", 54 | "name": "python3" 55 | }, 56 | "language_info": { 57 | "codemirror_mode": { 58 | "name": "ipython", 59 | "version": 3 60 | }, 61 | "file_extension": ".py", 62 | "mimetype": "text/x-python", 63 | "name": "python", 64 | "nbconvert_exporter": "python", 65 | "pygments_lexer": "ipython3", 66 | "version": "3.9.13" 67 | } 68 | }, 69 | "nbformat": 4, 70 | "nbformat_minor": 2 71 | } 72 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/github.md: -------------------------------------------------------------------------------- 1 | # 2. Setup _Git_ and _GitHub_ 2 | 3 | This guide will walk you through the process of setting up Git and GitHub. These tools are essential for managing and tracking changes in your projects and code. Don't worry if you're new to these concepts; we'll guide you step by step. This setup is crucial for your journey in the fellowship, as it lays the foundation for efficient and collaborative work in data science projects. By the end of this session, you will have: 4 | 5 | - A GitHub account set up for hosting and sharing your code. 6 | - A private workspace repository for your personal work and exercises. 7 | - The Arewa Data Science Fellowship repository cloned, providing access to all learning materials. 8 | - Basic knowledge and setup of Git for version control, enabling you to track and manage changes in your projects effectively. 9 | 10 | 11 | ## 1. Understanding Git and GitHub 12 | 13 | - **Git**: `Git` is a distributed version-control system for tracking changes in source code. 14 | - **GitHub**: An online platform that uses Git. It allows you to store your repositories online and collaborate with others. A `repository` is where code lives, and the code from the prep course will live at [`arewa-ds-fewllowship`](https://github.com/arewadataScience/python-programming-fellowship) repository (basically where you are right now, reading this). All the learning materials and exercises will be released (made available) on this repository. You will learn more about `git` in the coming weeks. 15 | 16 | ## 2. Sign Up for GitHub 17 | 18 | ### Step 1: Create a GitHub Account 19 | 20 | 1. Go to [GitHub's signup page](https://github.com/join). 21 | 2. Follow the instructions to create your account. 22 | 3. Follow the following [tips for creating username]() 23 | 24 | ### Step 2: Configure Git 25 | 26 | After signing up for GitHub, you'll need to configure Git on your computer: 27 | 28 | 1. Open your terminal (Command Prompt or PowerShell on Windows, Terminal on macOS and Linux). 29 | 2. Run the following commands to configure Git (replace the email and username with your own): 30 | 31 | ```bash 32 | git config --global user.email "your_email@example.com" 33 | git config --global user.name "YourUsername" 34 | ``` 35 | For example: **replace** `mig.dias.1212@gmail.com` below with the same email you used for github and `buedaswag` with your GitHub username 36 | 37 | ```bash 38 | git config --global user.email "mig.dias.1212@gmail.com" 39 | git config --global user.username "buedaswag" 40 | ``` 41 | 42 | ## 3. Setup Your Workspace Repository 43 | 44 | The workspace directory/repository is where you will place everything you are working on, solve exercises, make changes to files, etc. 45 | 46 | ### Step 1: Log Into GitHub 47 | 48 | - Go to [GitHub](https://github.com) and log in with your credentials. 49 | 50 | ### Step 2: Create a New Repository 51 | 52 | Finder 53 | 54 | 1. Click the "+" button in the upper-right corner of GitHub and select `New repository`. 55 | 2. Create a repository named `arewa-ds-workspace`. 56 | - Choose `Private` - this is your private work environment where nobody else will have access but you. 57 | - Initialize it with a `README`. 58 | - Select a Python `.gitignore` file. This file does exactly what it sounds like - it tells `git` which files to ignore when transfering files between your computer and `GitHub`. 59 | 60 | 61 | Finder 62 | 63 | You can also check [Creating a new repository](https://help.github.com/en/articles/creating-a-new-repository) on GitHub for help. 64 | 65 | ### Step 3: Clone Your Repository 66 | 67 | - Your workspace repository now exists on `GitHub`, but you also need a local copy (clone) on your computer. 68 | 69 | - To work on your projects locally, you need to clone your repository. 70 | 71 | - You will be working in the local repository and then transfer your work to your remote workspace repository on `GitHub`. 72 | 73 | **Step 1:** Open a terminal (or use one you've already opened). 74 | 75 | **Step 2:** Create a folder named `projects` by using the `mkdir` command. `mkdir` essentially stands for **m**a**k**e **dir**ectory. The tilde symbol `~` is a shortcut address for your home directory. 76 | 77 | ```bash 78 | mkdir ~/projects 79 | ``` 80 | 81 | **Step 3:** Enter the folder by using the `cd` command. Did you know that `cd` means **c**hange **d**irectory? So basically changing to a different folder. 82 | 83 | ```bash 84 | cd ~/projects 85 | ``` 86 | 87 | **Step 4:** You can now **clone** (create a local copy of) the `arewa-ds-workspace` repository you created on `GitHub`. 88 | Replace `` below with your `GitHub` username, removing the brackets `< >`, and run the command: 89 | 90 | ```bash 91 | git clone https://github.com//arewa-ds-workspace.git 92 | ``` 93 | 94 | **Note**: if you have had a `GitHub` account since before this course and you are using `ssh keys` instead of `tokens`, first make sure that you have completed the steps starting [here](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys), then clone your repository like this. You can skip step 5 and continue with section 2.4. 95 | 96 | ```bash 97 | git clone git@github.com:/arewa-ds-workspace.git 98 | ``` 99 | 100 | **Step 5:** You'll be asked for your `GitHub` username. Type it and press enter. Then you'll be asked for your git password. Passwords no longer work for `GitHub`, you will need to use `tokens`. 101 | 102 | Go to and click on `Generate new token`. You can give it a name in the note field, such as `ldsa-token`. Then select `repo` in the scopes and click on `Generate token`. You will be shown a `token` you should save - **you will not be able to see it again after leaving that window**. 103 | 104 | Now use the `token` instead of your password and press enter 105 | 106 | You should now have a local copy of your `arewa-ds-workspace` in your `~/projects/arewa-ds-workspace` folder. 107 | 108 | 109 | 110 | ### 2.4 Clone the `Python-Programming-Fellowship` repository 111 | 112 | Let's clone the [`Python-Programming-Fellowship`](https://github.com/arewadataScience/python-programming-fellowship) repository. This is where all of the learning materials will be made available as the course progresses. You will be getting them (pulling) from there. 113 | 114 | **Step 1:** Open a terminal (or use one you've already opened) and enter the `projects` folder: 115 | 116 | ```bash 117 | cd ~/projects 118 | ``` 119 | 120 | **Step 2:** Clone the Python-Programming-Fellowship repository (the repository you're reading right now!): 121 | 122 | ```bash 123 | git clone https://github.com/arewadataScience/python-programming-fellowship 124 | ``` 125 | 126 | If you are using `ssh keys` for `GitHub`, use this command: 127 | 128 | ```bash 129 | git clone git@github.com:arewadataScience/python-programming-fellowship 130 | ``` 131 | 132 | And you're done with setting `Git` and `GitHub`! Go back to the main menu and continue with step. 133 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/Windows_Subsystem_for_Linux_Installation_Guide_for_Windows_10.md: -------------------------------------------------------------------------------- 1 | # Windows Subsystem for Linux Installation Guide for Windows 10 2 | 3 | ## Make sure that Windows is up to date 4 | 5 | 1. Type `update` in your Windows search bar: 6 | 7 | ![start](assets/start.png) 8 | 9 | then click `Check for Updates`: 10 | 11 | ![start](assets/open_update.png) 12 | 13 | then download and install any updates that appear in the Windows Update menu (shown below): 14 | 15 | ![start](assets/windows_update.png) 16 | 17 | After you're done installing those updates, please [check which OS build of Windows 10 you are running](https://support.microsoft.com/en-us/help/13443/windows-which-version-am-i-running), and if your OS build number is smaller that `19041.XXX`, then please keep coming back to Windows Update and installing updates until you have at least OS build `19041.XXX`. Then you may proceed with this guide. 18 | 19 | ![start](assets/os_build.png) 20 | 21 | ## Install the Windows Subsystem for Linux 22 | 23 | Before installing any Linux distributions for WSL, you must ensure that the `Windows Subsystem for Linux` optional feature is enabled: 24 | 25 | 1. Open `PowerShell` as Administrator by typing `PowerShell` in your Windows search bar: 26 | 27 | ![start](assets/start.png) 28 | 29 | and then clicking `Run as Administrator`: 30 | 31 | ![start](assets/open_powershell.png) 32 | 33 | 2. Then paste the following command in `PowerShell`: 34 | 35 | ```powershell 36 | Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux 37 | ``` 38 | 39 | ![start](assets/paste_powershell.png) 40 | 41 | and run it by pressing enter: 42 | 43 | 3. Restart your computer if asked to. 44 | 45 | ## Install Ubuntu 46 | 47 | 1. Open this link to the [Microsoft Store](https://www.microsoft.com/store/apps/9N9TNGVNDL3Q) and select `Get` to install `Ubuntu`. 48 | 49 | ## Launch Ubuntu 50 | To complete the initialization of your newly installed `Ubuntu`, launch a new instance. You can do this by typing `ubuntu` in your Windows search bar: 51 | 52 | ![start](assets/start.png) 53 | 54 | ![start](assets/open_ubuntu.png) 55 | 56 | The first time the newly installed `Ubuntu` runs, a `Console` window will open, and you'll be asked to wait for a minute or two for the installation to complete. 57 | 58 | > During this final stage of installation, `Ubuntu`'s files are de-compressed and stored on your PC, ready for use. This may take around a minute or more depending on the performance of your PC's storage devices. This initial installation phase is only required on the first launch - all future launches should take less than a second. 59 | 60 | ## Setting up a new Linux user account 61 | 62 | Once the installation is complete, you will be prompted to create a new user account (and its password). 63 | 64 | ![Ubuntu unpacking in the Windows console](assets/UbuntuInstall.png) 65 | 66 | This user account is for the normal non-admin user that you'll be logged-in by default when launching `Ubuntu`. 67 | 68 | > You can choose any username and password you wish - they have no bearing on your Windows username. Beware that when you type passwords in the terminal, you will not see what you are typing. This is a normal behaviour in Linux. Just type the password and hit Enter. 69 | 70 | When you open a new `Ubuntu` instance, you won't be prompted for your password, but **if you elevate a process using `sudo`, you will need to enter your password**, so make sure you choose a password you can easily remember! On `Ubuntu`, every user can do admin tasks such as installing software, but they have to use the magic `sudo` word and input the password. This tells `Ubuntu` that you will be acting as admin in the next moments. 71 | 72 | ## Opening the WSL terminal 73 | 74 | >⚠️ **Important**: From now on, every time we ask you to open a terminal, this is what you need to do. We'll refer to it just as `terminal` instead of `WSL terminal` or `Ubuntu terminal`. 75 | 76 | Whenever you want to use WSL, just type `ubuntu` in your Windows search bar. 77 | 78 | ![start](assets/start.png) 79 | 80 | Open it: 81 | 82 | ![start](assets/open_ubuntu.png) 83 | 84 | Then a `terminal` window will open that allows you to interact with `Ubuntu`. 85 | 86 | ![Ubuntu unpacking in the Windows console](assets/orange_circle.png) 87 | 88 | ## Enable copy and paste keyboard shortcuts 89 | 90 | By default, the terminal does not allow the usual shortcuts for copying and pasting - you have to enable them first. In the upper left corner of the WSL terminal, click the orange circle: 91 | 92 | ![Ubuntu unpacking in the Windows console](assets/orange_circle.png) 93 | 94 | then click `Properties`: 95 | 96 | ![Ubuntu unpacking in the Windows console](assets/orange_circle_properties.png) 97 | 98 | Then under the `Options` tab, in the `Edit Options` section, make sure that `Use Ctrl+Shift+C/V as Copy/Paste` in enabled and click `OK`: 99 | 100 | ![Ubuntu unpacking in the Windows console](assets/copy_paste_properties.png) 101 | 102 | ## Update & upgrade Ubuntu's software packages 103 | 104 | Most Linux distributions ship with an empty/minimal software package catalog. We strongly recommend regularly updating your package catalog, and upgrading your installed packages using the appropriate package manager. On `Ubuntu`, you use the `apt` package manager. The following command will check for software updates and install them: 105 | 106 | ```bash 107 | sudo apt update && sudo apt upgrade 108 | ``` 109 | 110 | > Windows does not automatically update or upgrade your Linux distribution. This is a task that the Linux users prefer to control themselves. 111 | 112 | ## How to open Windows File Explorer to manipulate files inside WSL 113 | 114 | If you’d like to use `Windows File Explorer` to manipulate the files in WSL, just type this in the `terminal`. **(Don't forget to include the dot! The dot means "current directory")**: 115 | 116 | ```console 117 | explorer.exe . 118 | ``` 119 | 120 | The `Windows Explorer` should pop up: 121 | 122 | ![start](assets/windows_explorer.png) 123 | 124 | Keep in mind that you should manipulate files and create directories inside your `Ubuntu-18.04/home/` folder. 125 | 126 | You're all set with WSL! Now go back to the initial setup for Windows and continue with step 2. 127 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/UbuntuInstall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/UbuntuInstall.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/copy_paste_properties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/copy_paste_properties.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/create_repository.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/create_repository.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/finder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/finder.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/finder_go.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/finder_go.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/go_to_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/go_to_folder.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/open_powershell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/open_powershell.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/open_ubuntu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/open_ubuntu.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/open_update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/open_update.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/orange_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/orange_circle.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/orange_circle_properties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/orange_circle_properties.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/os_build.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/os_build.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/paste_powershell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/paste_powershell.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/start.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/ubuntustore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/ubuntustore.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/week_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/week_0.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/windows_explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/windows_explorer.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/assets/windows_update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/guides/assets/windows_update.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/guides/using_os_gui_to_manage_directories.md: -------------------------------------------------------------------------------- 1 | # Using the Operating System's Graphical User Interface to access your local repos 2 | 3 | ## On WSL with Ubuntu 4 | Enter the `~/projects/ds-prep-course-2023` directory using the `cd` command, then run `explorer.exe .` **(don't forget to include the dot! the dot means "current directory")** to open the Windows explorer in the current directory: 5 | 6 | ```bash 7 | cd ~/projects/ds-prep-course-2023 8 | explorer.exe . 9 | ``` 10 | 11 | Windows Explorer should pop up now: 12 | 13 | ![Sample learning unit](assets/week_0.png "Sample learning unit") 14 | 15 | ## On Mac: 16 | In Finder Finder, open the `Go` menu, choose the option `Go to folder...` 17 | 18 | Sample learning unit 19 | 20 | Now paste the path to the `ds-prep-course-2023` repository: `~/projects/ds-prep-course-2023`, then click `Go`. 21 | 22 | Sample learning unit 23 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/image.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/macOS.md: -------------------------------------------------------------------------------- 1 | # Set-up instructions for MacOS 2 | 3 | # Objective 4 | 5 | Welcome to the MacOS setup guide for the Arewa Data Science Fellowship. The objective of this tutorial is to guide you through the essential steps to configure your MacOS environment for data science work. By the end of this tutorial, you will have successfully installed and set up key tools including [Homebrew](https://brew.sh/), [Git](https://git-scm.com/), and [Python](https://www.python.org/). These tools are fundamental for your journey in data science and will be used extensively throughout the fellowship. You'll learn how to set up your computer - follow the link to your MacOS type ➡️ 6 | 7 | - [MacOS Intel Setup](#MacOS-Intel-Setup) 8 | - [MacOS M1 Setup](#MacOS-M1-Setup) 9 | 10 | ### MacOS Intel Setup 11 | 12 | Some of the steps in the following sections will require `Homebrew` for MacOS. `Homebrew` is a package manager - it helps you installing software. Installing `Homebrew` will make it easier to install software that we will use later on. 13 | 14 | **Step 1:** Open a terminal in one of the following ways: 15 | * In Finder Finder, open the `/Applications/Utilities` folder, then double-click `Terminal`. 16 | * Press cmd + space then type `terminal` and press enter. 17 | 18 | The terminal should now be open: 19 | 20 | 21 | 22 | **Step 2:** To install `Homebrew` for MacOS, copy and paste the following line in the terminal: 23 | 24 | ```bash 25 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 26 | ``` 27 | 28 | **Step 2.1:** Sometimes it's necessary to install `xcode command line utils`. To do so, execute the following command before installing `Homebrew`: 29 | 30 | ```bash 31 | xcode-select --install 32 | ``` 33 | 34 | You may be prompted to install the `Command Line Developers Tools`. Confirm and once it finishes, continue installing `Homebrew` by pressing enter again. 35 | 36 | **Step 3:** Open a terminal and run the following command to update `Homebrew`. The verbose option means that `Homebrew` will tell you what it's doing - you will see a lot of text output in your terminal: 37 | 38 | ```bash 39 | brew update --verbose 40 | ``` 41 | 42 | **Step 4:** Now run the following command to install `git`. `Git` is a version control software that facilitates collaboration of people working together on the same code and keeps track of the versions as the code changes. You will learn more about `git` in this course. 43 | 44 | ```bash 45 | brew install git 46 | ``` 47 | 48 | **Step 5:** Now run the following command to install `Python 3.9`: 49 | 50 | ```bash 51 | brew install python@3.9 52 | ``` 53 | 54 | **Step 6:** then run the following command to set the default `python3` version to 3.9: 55 | 56 | ```bash 57 | brew link python@3.9 58 | ``` 59 | 60 | And you're done! Go back continue with setting up Git and GitHub in step 3. 61 | 62 | ### MacOS M1 Setup 63 | 64 | So you've got the new M1 and you're super happy with how fast it is. Unfortunately dealing with Apple silicon requires a little detour. But don't worry, we'll be able to get there in the end. 65 | 66 | **Step 1:** Open a terminal in one of the following ways: 67 | * In Finder Finder, open the `/Applications/Utilities` folder, then double-click `Terminal`. 68 | * Press cmd + space then type `terminal` and press enter. 69 | 70 | The terminal should now be open: 71 | 72 | 73 | 74 | **Step 1.1:** To use Intel-based software, you'll need `Rosetta2`. Most of you should already have it installed. If you don't have it yet, simply run the following line in the terminal: 75 | 76 | ```bash 77 | softwareupdate --install-rosetta 78 | ``` 79 | 80 | This will launch the rosetta installer and you’ll have to agree to a license agreement. 81 | 82 | **Step 2:** To install `Homebrew x86` version, aka `ibrew` for MacOS, copy and paste the following line in the terminal. `Homebrew` is a package manager - it helps you installing software. Installing `Homebrew` will make it easier to install software that we will use later on. 83 | 84 | ```bash 85 | arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 86 | ``` 87 | 88 | **Step 2.1:** Sometimes it's necessary to install `xcode command line utils`. To do so, execute the following command before installing `Homebrew`: 89 | 90 | ```bash 91 | xcode-select --install 92 | ``` 93 | 94 | **Step 3:** Add an alias with `ibrew` to your `$PATH` (so that you computer can find `ibrew` when you call it from the terminal): 95 | 96 | ```bash 97 | echo 'alias ibrew="arch -x86_64 /usr/local/bin/brew"' >> ~/.zshrc 98 | ``` 99 | 100 | **Step 4:** Activate the alterations done to the `.zshrc` file: 101 | ```bash 102 | source ~/.zshrc 103 | ``` 104 | 105 | **Step 5:** Install `Python 3.9` with `ibrew`: 106 | 107 | ```bash 108 | ibrew install python@3.9 109 | ``` 110 | 111 | **Step 6:** Add `Python 3.9` to `$PATH`: 112 | 113 | ```bash 114 | export PATH="/usr/local/opt/python@3.9/bin:$PATH" >> ~/.zshrc 115 | ``` 116 | 117 | **Step 7** Re-activate the alterations done to the `.zshrc` file: 118 | ```bash 119 | source ~/.zshrc 120 | ``` 121 | 122 | And you're done! Go back to the main menu and continue with setting up Git and GitHub in step 3. 123 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/markdown.md: -------------------------------------------------------------------------------- 1 | # Markdown Tutorial for Beginners 2 | 3 | Welcome to this beginner-friendly tutorial on Markdown. This guide will introduce you to Markdown, a simple way to format text using plain text syntax. 4 | 5 | Markdown is widely used for writing formatted text on the web and is particularly popular in software development for documentation, README files, and commenting on issues and pull requests. 6 | 7 | ## Introduction to Markdown 8 | 9 | Markdown is a lightweight markup language with plain-text-formatting syntax. 10 | 11 | ## Why Use Markdown? 12 | 13 | - Simplicity: Easy to write and read without needing complex formatting tools. 14 | - Portability: Markdown can be converted to many formats like HTML, PDF, and Word. 15 | - Compatibility: Works on various platforms and integrates seamlessly with many software applications. 16 | 17 | ## Basic Syntax 18 | 19 | Below are some of the most commonly used Markdown syntax elements. 20 | 21 | ### Headings 22 | 23 | Headings are created by adding one or more `#` symbols before your heading text. The number of `#` you use will determine the size of the heading. 24 | 25 | ```markdown 26 | # Heading 1 27 | ## Heading 2 28 | ### Heading 3 29 | #### Heading 4 30 | ##### Heading 5 31 | ###### Heading 6 32 | ``` 33 | 34 | ### Emphasis 35 | 36 | You can emphasize text with bold or italic formatting. 37 | 38 | ```markdown 39 | *This text will be italic* 40 | _This will also be italic_ 41 | 42 | **This text will be bold** 43 | __This will also be bold__ 44 | 45 | _You **can** combine them_ 46 | 47 | ``` 48 | 49 | ### Lists 50 | 51 | Unordered Lists: You can make an unordered list by preceding list items with either a -, *, or +. 52 | 53 | ```markodown 54 | - Item 1 55 | - Item 2 56 | - Item 2a 57 | - Item 2b 58 | 59 | ``` 60 | Ordered Lists: Ordered lists are created using numbers: 61 | 62 | ```markodown 63 | 1. Item 1 64 | 2. Item 2 65 | 3. Item 3 66 | 1. Item 3a 67 | 2. Item 3b 68 | 69 | ``` 70 | 71 | 72 | ### Links 73 | 74 | You can create an inline link by wrapping link text in brackets [ ], and then wrapping the URL in parentheses ( ). 75 | 76 | ```markdown 77 | [GitHub](http://github.com) 78 | 79 | ``` 80 | 81 | 82 | 83 | ### Images 84 | 85 | Images are similar to links, but they require an exclamation point in front, and the text inside the brackets is the alt text. 86 | 87 | 88 | ```markdown 89 | ![GitHub Logo](/images/logo.png) 90 | ``` 91 | 92 | 93 | ### Code and Syntax Highlighting 94 | 95 | - Inline code: Use backticks `code` for inline code. 96 | - Code blocks: Use triple backticks (```) or indent code with four spaces for blocks. 97 | 98 | You can use backticks to create code blocks. For syntax highlighting, specify the language after the first set of backticks. 99 | 100 | ```python 101 | print("Hello, world!") 102 | ``` 103 | 104 | - I love `Arewa Data Science` 105 | 106 | 107 | ### Tables 108 | 109 | Use pipes `|` and dashes `-` to create tables. 110 | 111 | ```markdown 112 | | Name | Role | Department | 113 | |--------------|---------------|------------------| 114 | | John Doe | Instructor | Data Science | 115 | | Jane Smith | Student | Machine Learning | 116 | ``` 117 | 118 | ### Task Lists 119 | 120 | - Use - [ ] for an unchecked box and - [x] for a checked box. 121 | 122 | ```markdown 123 | - [x] Complete Markdown lecture 124 | - [ ] Prepare assignments 125 | - [ ] Review student submissions 126 | 127 | ``` 128 | 129 | 130 | ### Horizontal Rule 131 | 132 | You can create a horizontal rule with three or more hyphens, asterisks, or underscores. 133 | 134 | 135 | ```markdown 136 | --- 137 | 138 | ***** 139 | ___ 140 | 141 | ``` 142 | ### Blockquotes 143 | Quote text with a >: 144 | 145 | 146 | ```markdown 147 | > Markdown is a writer's best friend. 148 | 149 | ``` 150 | 151 | 152 | This tutorial covered the basics of Markdown syntax. With these simple rules, you can format text for documents, websites, and README files on GitHub and other platforms. Markdown is an essential skill in software development and content creation, enabling you to quickly and easily create formatted text. 153 | 154 | For more advanced Markdown formatting, including tables, footnotes, and more, consider exploring additional Markdown resources and guides. 155 | 156 | 157 | # Resources 158 | 159 | 1. [Markdown Cheat Sheet](https://www.markdownguide.org/cheat-sheet/) 160 | 2. [The Only Markdown Cheatsheet You Need](https://github.com/im-luka/markdown-cheatsheet) 161 | 3. [Markdown and Visual Studio Code](https://code.visualstudio.com/Docs/languages/markdown) 162 | 163 | 164 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/commandline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/commandline.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/create_repository.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/create_repository.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/createrepo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/createrepo.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/datasciencevscode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/datasciencevscode.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/exportjupyter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/exportjupyter.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/finder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/finder.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/github.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/jupyter1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/jupyter1.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/jupyter2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/jupyter2.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/jupyter3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/jupyter3.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/jupyter_clear_and_run.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/jupyter_clear_and_run.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/jupyter_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/jupyter_error.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/jupyter_error_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/jupyter_error_red.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/jupyter_exercise_notebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/jupyter_exercise_notebook.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/jupyter_terminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/jupyter_terminal.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/jupyter_terminal_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/jupyter_terminal_link.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/linux.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/macOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/macOS.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/mac_terminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/mac_terminal.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/menu_create_repository.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/menu_create_repository.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/name_the_repo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/name_the_repo.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/notebook_busy_cell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/notebook_busy_cell.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/personal_access_token.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/personal_access_token.PNG -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/python-venv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/python-venv.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/runjupyter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/runjupyter.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/runjupyterall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/runjupyterall.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/sample_learning_unit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/sample_learning_unit.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/settings-sidebar-ssh-keys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/settings-sidebar-ssh-keys.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/slack.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/ssh-add-ssh-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/ssh-add-ssh-key.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/ssh-key-paste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/ssh-key-paste.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/telegram.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/telegram.jpeg -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/terminal_notebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/terminal_notebook.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/troubleshooting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/troubleshooting.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/ubuntu_windows_explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/ubuntu_windows_explorer.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/userbar-account-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/userbar-account-settings.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/vs-code.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/vs-code.jpg -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/vscode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/vscode.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/vscodeoo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/vscodeoo.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/weekly-workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/weekly-workflow.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/media/windows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/media/windows.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/python-venv.md: -------------------------------------------------------------------------------- 1 | # Python virtual environment 2 | 3 | Python virtual environments are like a "room" where you gather all the Python packages that you will need to work on your Python project. You can have many virtual environments on your computer. Every time you work on a project, you activate the corresponding virtual environment with all the necessary software packages. The virtual environments are independent of each other. The advantage is also that your OS Python installation is unaffected - Ubuntu needs Python and if you break your OS Python installation, you can break Ubuntu. Check out more information [here](https://realpython.com/python-virtual-environments-a-primer/#what-is-a-virtual-environment). 4 | 5 | 6 | In this section, you'll learn how to create and manage Python virtual environments for data science projects using conda. This knowledge is vital for maintaining organized, conflict-free, and reproducible data science projects. We will use [Miniconda](https://docs.conda.io/projects/miniconda/en/latest/), a minimal installer for conda, to manage our virtual environments and dependencies. By the end, you will understand: 7 | 8 | - Understanding Virtual Environments: Understanding their role in isolating dependencies for individual projects. 9 | - Conda Environment Setup: creating and maintaining a virtual environment using conda 10 | - Conda Package Management: Using Conda for installing and updating packages. 11 | - Activating Environments: How to activate and work within these environments. 12 | 13 | ![virtual_env](https://github.com/arewadataScience/ArewaDS-Machine-Learning/blob/main/Stage-1-Getting-Started/python_virtual_enviment.png) 14 | 15 | ![virtual_env](https://github.com/arewadataScience/ArewaDS-Machine-Learning/blob/main/virtual_env_issue.png) 16 | 17 | 18 | 19 | ## Python Virtual Environment with Conda 20 | 21 | 22 | We will use the `conda` software package to create the virtual environment. The virtual environment will be just a folder on your computer where all the necessary software packages are installed. We will be using the same environment for the whole course and install all the packages at the beginning. 23 | 24 | ![conda](https://github.com/arewadataScience/ArewaDS-Machine-Learning/blob/main/Stage-1-Getting-Started/conda.png) 25 | 26 | 27 | We can also use pip to install the package if it is not available in the conda. See here on [pip vs conda](https://stackoverflow.com/questions/54834579/specific-reasons-to-favor-pip-vs-conda-when-installing-python-packages). 28 | 29 | 30 | ## Conda Setup and Virtual Environment Management 31 | 32 | **Step 1:** Download and Install Miniconda: 33 | 34 | Visit the Miniconda download page [here](https://docs.conda.io/projects/miniconda/en/latest/) and choose the appropriate installer for your operating system. 35 | 36 | Follow the installation instructions provided on the download page or in the installer to install the Miniconda. 37 | 38 | **Step 2:** Create a Conda environment: 39 | 40 | 41 | ```bash 42 | conda create --name datascience python=3.8 43 | ``` 44 | 45 | This creates an environment named datascience with Python 3.9. 46 | 47 | 48 | **Step 3:** Activate the enviroment 49 | 50 | 51 | ```bash 52 | conda activate datascience 53 | 54 | ``` 55 | 56 | After activation, your command prompt should reflect the active environment: 57 | 58 | You'll see (datascience) in your command prompt, indicating that the environment is active as shown below 59 | 60 | ```bash 61 | (datascience) your_username@your_machine % 62 | 63 | ``` 64 | For example: 65 | 66 | ```bash 67 | `(datascience) mig@macbook-pro %` 68 | ``` 69 | 70 | **Step 4:** It's a good practice to ensure that conda is up-to-date: 71 | 72 | 73 | ```bash 74 | conda update -n base -c defaults conda 75 | 76 | ``` 77 | 78 | **Step 5:** Manage packages with Conda:: 79 | 80 | Install packages as needed. For example, to install NumPy: 81 | 82 | 83 | ```bash 84 | conda install numpy 85 | 86 | ``` 87 | 88 | 89 | If you have a requirements.txt file, you can install the required packages using: 90 | 91 | 92 | ```bash 93 | conda install --file requirements.txt 94 | 95 | ``` 96 | 97 | **Step 4:** Deactivate the environment when finished: 98 | 99 | ```bash 100 | conda deactivate 101 | 102 | ``` 103 | 104 | ## Conda vs Pip 105 | 106 | ### pip 107 | 108 | - **Primary Focus**: pip is the package installer for Python. It is specifically designed to manage Python packages. 109 | - **Package Sources**: It installs packages from the Python Package Index ([PyPI](https://pypi.org)) and other indexes. 110 | - **Package Types**: pip is used for installing and managing Python libraries. 111 | - **Environment Management**: While pip can be used alongside virtual environment managers like `venv` to create isolated Python environments, it does not manage environments by itself. 112 | - **Dependency Resolution**: pip resolves dependencies purely within the Python ecosystem. 113 | 114 | ### conda 115 | 116 | - **Primary Focus**: conda is a package and environment management system. It is designed to handle packages in any language, with a particular focus on Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN. 117 | - **Package Sources**: It installs packages from the [Anaconda repository](https://anaconda.cloud/package-categories) and can also integrate with PyPI. It is often used for data science and machine learning projects, particularly those that require complex dependencies. 118 | - **Package Types**: conda is used for installing both Python and non-Python packages. 119 | - **Environment Management**: conda excels in creating, exporting, listing, removing, and updating environments that have different versions of Python and/or packages installed. 120 | - **Dependency Resolution**: conda resolves dependencies across all the software in an environment, not just Python packages. This makes it more suitable for complex projects where non-Python packages are a requirement. 121 | 122 | 123 | ### Key Differences 124 | 125 | 1. **Scope**: `pip` is Python-specific, while `conda` handles packages in multiple languages. 126 | 2. **Environment Management**: `conda` includes environment management, unlike `pip`. 127 | 3. **Dependency Management**: `conda` offers comprehensive dependency management across Python and non-Python packages. 128 | 4. **Source of Packages**: `pip` primarily uses PyPI, whereas `conda` uses the Anaconda repository and can integrate with PyPI. 129 | 130 | | Task | Conda Command | Pip Command | 131 | |------|---------------|-------------| 132 | | Install a package | `conda install package_name` | `pip install package_name` | 133 | | Uninstall a package | `conda remove package_name` | `pip uninstall package_name` | 134 | | Update a package | `conda update package_name` | `pip install --upgrade package_name` | 135 | | List installed packages | `conda list` | `pip list` | 136 | | Search for a package | `conda search search_term` | `pip search search_term` | 137 | | Create a virtual environment | `conda create --name env_name` | `python -m venv env_name` | 138 | | Activate a virtual environment | `conda activate env_name` | `source env_name/bin/activate` (Linux/Mac), `.\env_name\Scripts\activate` (Windows) | 139 | | Deactivate a virtual environment | `conda deactivate` | `deactivate` | 140 | 141 | 142 | 143 | 144 | ## Resources 145 | 146 | 1. [Conda CheetSheet](https://docs.conda.io/projects/conda/en/4.6.0/_downloads/52a95608c49671267e40c689e0bc00ca/conda-cheatsheet.pdf) 147 | 2. [The definitive guide to Python virtual environments with conda](https://whiteboxml.com/blog/the-definitive-guide-to-python-virtual-environments-with-conda) 148 | 149 | 3. [Python Virtual Environments: A Primer](https://realpython.com/python-virtual-environments-a-primer/) 150 | 4. Youtube: [Python - Setup Visual Studio Code with Anaconda](https://www.youtube.com/watch?v=sts3CFewvkY) 151 | 152 | 153 | 154 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/python_virtual_enviment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/00_Stage-1-Getting-Started/python_virtual_enviment.png -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/requirements.txt: -------------------------------------------------------------------------------- 1 | ipython==8.4.0 # base 2 | jupyter-client==6.1.12 # base 3 | numpy==1.24.2 # used by some units 4 | matplotlib==3.6.3 # used by some units 5 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/sampple.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Sample\n", 8 | "\n", 9 | "- You ca\n", 10 | "- dbdbdbd " 11 | ] 12 | }, 13 | { 14 | "cell_type": "code", 15 | "execution_count": 1, 16 | "metadata": {}, 17 | "outputs": [], 18 | "source": [ 19 | "a = 1 +3 " 20 | ] 21 | } 22 | ], 23 | "metadata": { 24 | "kernelspec": { 25 | "display_name": "datascience", 26 | "language": "python", 27 | "name": "python3" 28 | }, 29 | "language_info": { 30 | "codemirror_mode": { 31 | "name": "ipython", 32 | "version": 3 33 | }, 34 | "file_extension": ".py", 35 | "mimetype": "text/x-python", 36 | "name": "python", 37 | "nbconvert_exporter": "python", 38 | "pygments_lexer": "ipython3", 39 | "version": "3.9.13" 40 | } 41 | }, 42 | "nbformat": 4, 43 | "nbformat_minor": 2 44 | } 45 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/scores.txt: -------------------------------------------------------------------------------- 1 | 23 2 | 23 3 | 45 4 | 56 -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/sqrt.py: -------------------------------------------------------------------------------- 1 | import math 2 | 3 | def find_square_root(number): 4 | return math.sqrt(number) 5 | 6 | print(find_square_root(9)) -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/telegram.md: -------------------------------------------------------------------------------- 1 | # Telegram Usage and How to Ask for Help 2 | 3 | ### New to Telegram? 4 | Telegram is a messaging app designed for fast and secure team communication. If you are new to Telegram, check out this short [intro](https://telegram.org/faq). You can find more tutorials [here](https://telegram.org/faq#q-what-makes-telegram-groups-cool). Here is a Youtube guide on [How to Use Telegram](https://www.youtube.com/watch?v=FQ2rH3KrfcM) 5 | 6 | ### How to Use Telegram Nicely and Effectively 7 | Telegram is our official communication channel. We will announce the release of the weekly learning materials and answer all your questions there. To make it a pleasant and productive experience for everyone, please follow these rules: 8 | 9 | 1. You can install the Telegram app on your phone or computer for convenience. 10 | 2. Update your Notification settings to recieve updates. 11 | 3. Use the specific group chat of the Week (e.g., week 1, week 2, week 3, etc.) you're asking about for questions related to the learning material. 12 | 4. Use the dedicated technical support group for technical questions (Channel call Ask Question). 13 | 5. Check if your question was already asked before posting. 14 | 6. Always reply to a specific message to keep the conversations organized. 15 | 7. Use `Shift`+`Enter` for new lines in your message, as just pressing `Enter` will send the message. 16 | 8. If you want to report bugs in the materials, you can open an issue on the ArewaDS [repo](https://github.com/arewadataScience/ArewaDS-Machine-Learning/issues). 17 | 9. If you want to give feedback, post it in the dedicated feedback channel. 18 | 10. Anything not related to the learning materials should go to the general discussion channel. -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/testing.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Introduction to Jupyter Noteboks\n", 8 | "\n", 9 | "This is an example of makdown" 10 | ] 11 | }, 12 | { 13 | "cell_type": "code", 14 | "execution_count": 1, 15 | "metadata": {}, 16 | "outputs": [ 17 | { 18 | "name": "stdout", 19 | "output_type": "stream", 20 | "text": [ 21 | "2\n" 22 | ] 23 | } 24 | ], 25 | "source": [ 26 | "a = 1+1\n", 27 | "b = 3+5 \n", 28 | "\n", 29 | "print(a)" 30 | ] 31 | }, 32 | { 33 | "cell_type": "markdown", 34 | "metadata": {}, 35 | "source": [ 36 | "## Secnd troduction" 37 | ] 38 | }, 39 | { 40 | "cell_type": "markdown", 41 | "metadata": {}, 42 | "source": [] 43 | } 44 | ], 45 | "metadata": { 46 | "kernelspec": { 47 | "display_name": "arewads-testing", 48 | "language": "python", 49 | "name": "python3" 50 | }, 51 | "language_info": { 52 | "codemirror_mode": { 53 | "name": "ipython", 54 | "version": 3 55 | }, 56 | "file_extension": ".py", 57 | "mimetype": "text/x-python", 58 | "name": "python", 59 | "nbconvert_exporter": "python", 60 | "pygments_lexer": "ipython3", 61 | "version": "3.9.13" 62 | } 63 | }, 64 | "nbformat": 4, 65 | "nbformat_minor": 2 66 | } 67 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/troubleshooting.md: -------------------------------------------------------------------------------- 1 | # Troubleshooting 2 | 3 | [1. When I open Windows Explorer through Ubuntu, it goes to a different folder than in the guide](#1-when-i-open-windows-explorer-through-ubuntu-it-goes-to-a-different-folder-than-in-the-guide) 4 | [2. Ubuntu on Windows 10 high CPU usage, crashes](#2-ubuntu-on-windows-10-high-cpu-usage-crashes) 5 | [3. When I pull from the `ds prep course-2023` repository, I get an error](#3-when-i-pull-from-the-ds-prep-course-2023-repository-i-get-an-error) 6 | [4. When I try to open `jupyter notebook`, I get an error](#4-when-i-try-to-open-the-jupyter-notebook-i-get-an-error) 7 | [5. When I use the `cp` command the `>` sign appears and the command does not execute](#5-when-i-use-the-cp-command-the--sign-appears-and-the-command-does-not-execute) 8 | [6. When setting up python 3.8 I get an error](#6-when-setting-up-python-38-i-get-an-error) 9 | [7. Nothing happens when I type my password](#7-nothing-happens-when-i-type-my-password) 10 | [8. I still have a NotImplemented error](#8-i-still-have-a-notimplemented-error) 11 | [9. Tutorial videos from Prep Course 2020](#9-tutorial-videos-from-prep-course-2020) 12 | 13 | ### 1. When I open Windows Explorer through Ubuntu, it goes to a different folder than in the guide 14 | 15 | Please make sure: 16 | 17 | - you are running the command `explorer.exe .` including the dot at the end. 18 | - you are running Windows 10 version `1909` or newer. 19 | 20 | ### 2. Ubuntu on Windows 10 high CPU usage, crashes 21 | 22 | - Make sure you are running Windows 10 version `1909` or newer. 23 | - Then, try following [these steps](https://teckangaroo.com/enable-windows-10-virtual-machine-platform/) 24 | 25 | 26 | ### 5. When I use the `cp` command the `>` sign appears and the command does not execute 27 | 28 | ```bash 29 | cp -r ~/projects/ds-prep-course-2023/“Week 00" ds-prep-workspace 30 | > 31 | ``` 32 | 33 | Make sure to use this type of quotes `"` and not these ones `“`. 34 | 35 | ### 6. When setting up python 3.8 I get an error 36 | 37 | When I run this command: 38 | 39 | ```bash 40 | sudo add-apt-repository ppa:deadsnakes/ppa 41 | ``` 42 | 43 | I get this error: 44 | 45 | ```bash 46 | W: GPG error: http://apt.postgresql.org/pub/repos/apt focal-pgdg InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7FCC7D46ACCC4CF8 47 | ``` 48 | 49 | Solution: Take the id in front of `NO_PUBKEY` (in my case it's `7FCC7D46ACCC4CF8`) and run the following command: 50 | 51 | ```bash 52 | sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7FCC7D46ACCC4CF8 53 | ``` 54 | 55 | ### 7. Nothing happens when I type my password 56 | 57 | When you type your password in the terminal, it is not visible. This is normal, just type the password and hit enter. 58 | 59 | 60 | ### 9. Tutorial videos from Prep Course 2020 61 | 62 | 🎁🎬 Check the **tutorial videos** if you have any doubts after following this tutorial. 63 | 64 | - [Setup guide for Windows - Part 1](https://www.youtube.com/watch?v=fWi3bYoHW18) 65 | - [Setup guide for Windows - Part 2](https://www.youtube.com/watch?v=bnJOQHh9pJ4) 66 | - [Setup guide for Mac](https://www.youtube.com/watch?v=qs0z4ibMFdU) 67 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/username_tips.md: -------------------------------------------------------------------------------- 1 | # Creating a GitHub Username: Tips for Beginners 2 | 3 | 1. **Keep It Professional** 4 | - Choose a username that is professional and appropriate for potential employers to see. 5 | 6 | 2. **Make It Memorable and Unique** 7 | - Your username should be easy to remember but also unique enough to stand out. 8 | 9 | 3. **Consider Using Your Real Name** 10 | - Using your real name or a variation of it can be a good choice for building a professional portfolio. 11 | 12 | 4. **Avoid Special Characters** 13 | - Stick to letters and numbers to ensure your username is easy to type and remember. 14 | 15 | 5. **Check Availability** 16 | - GitHub usernames are unique. Check availability by visiting `https://github.com/[username]`. 17 | 18 | 6. **Think Long-Term** 19 | - Choose a username you'll be happy with for a long time, as changing it later can be a hassle. 20 | 21 | 7. **Reflect Your Interests or Skills** 22 | - If possible, let your username reflect your area of interest or expertise, like `DataScienceJen` or `MLMike`. 23 | 24 | 8. **Keep It Consistent** 25 | - Consider using the same username as on other professional platforms like LinkedIn or Twitter. 26 | 27 | 9. **Avoid Numbers If Possible** 28 | - Numbers can sometimes make a username feel less professional unless they are meaningful to you. 29 | 30 | 10. **Be Mindful of Impersonation** 31 | - Avoid usernames too similar to well-known figures in tech to prevent any appearance of impersonation. 32 | 33 | --- 34 | 35 | Remember, your GitHub profile is an important part of your professional presence in the tech community. Choose wisely! 36 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/vscode.md: -------------------------------------------------------------------------------- 1 | 2 | # Getting Started with VSCode for Data Science 3 | 4 | Welcome to this beginner's guide on using Visual Studio Code (VSCode) for data science. This guide will walk you through setting up VSCode, using Jupyter notebooks, and getting started with a data science project. 5 | 6 | ## Ways to Run Python Code 7 | 8 | Before exploring Visual Studio Code, let's understand the different ways to execute Python code. Running Python can be achieved through several methods, each tailored to various needs and scenarios. Here are some of the most common approaches: 9 | 10 | ### 1. Python Interpreter (Command Line) 11 | - **Interactive Shell:** Run `python` or `python3` in the command line. 12 | - **Script Execution:** Run scripts using `python filename.py`. 13 | 14 | ### 2. Integrated Development Environments (IDEs) 15 | - **Examples:** PyCharm, Visual Studio Code, Eclipse with PyDev. 16 | - **Features:** Code completion, debugging, project management. 17 | 18 | ### 3. Text Editors with Python Support 19 | - **Examples:** Sublime Text, Atom, Notepad++. 20 | - **Features:** Syntax highlighting, script execution. 21 | 22 | ### 4. Jupyter Notebooks 23 | - **Usage:** Interactive documents with live code, visualizations. 24 | - **Execution:** Run code cells independently. 25 | 26 | ### 5. Online Python Interpreters and IDEs 27 | - **Examples:** Repl.it, Google Colab, PythonAnywhere. 28 | - **Convenience:** Write and execute code in a web browser. 29 | 30 | 31 | ## VSCode 32 | 33 | - VSCode (Visual Studio Code) is a lightweight but powerful source code editor developed by Microsoft for Windows, Linux and macOS. 34 | - VSCode is a free and very popular code editor among developers. It is a very powerful tool for writing code in various programming languages. 35 | 36 | 37 | 38 | 43 | 44 |
39 | 40 | VSCode setup 41 | 42 |
45 | 46 | 47 | ## What is Jupyter Notebook ? 48 | 49 | Jupyter (formerly [IPython Notebook](https://ipython.org/notebook.html)) is an [open-source project](https://jupyter.org) that combines Markdown text and executable Python source code on a canvas called a notebook, widely used in data science, scientific computing, and machine learning. 50 | 51 | ### Key Points: 52 | 53 | - **Open-Source Project**: Combines Markdown and Python code in one notebook. 54 | - **Wide Usage**: Ideal for data science, scientific computing, and machine learning. 55 | - **Interactive Computing**: Execute code in segments with immediate output visualization. 56 | - **Language Support**: Compatible with over 40 languages, including Python and R. 57 | - **Data Visualization Integration**: Works seamlessly with various graphing libraries. 58 | - **Educational Tool**: Facilitates interactive learning in coding and data science. 59 | - **Research and Professional Use**: Aids in reproducible research with rich text support. 60 | - **Visual Studio Code Integration**: Supports Jupyter Notebooks natively. 61 | 62 | 63 | 64 | You can do all of your data science work within VS Code using Jupyter Notebook. 65 | 66 | 67 | 68 | 73 | 74 |
69 | 70 | VSCode setup 71 | 72 |
75 | 76 | ## Setting Up VSCode 77 | 78 | ### Step 1: Install Visual Studio Code 79 | 80 | - Download and install VSCode from [here](https://code.visualstudio.com/). 81 | 82 | ## Extensions 83 | 84 | The VS Code Marketplace offers a family of extensions that provide a first-class data science experience for Python data science. In order to enhance your data science workflow in VSCode, there are several extensions that can significantly boost productivity and ease of use. Below are some highly recommended extensions: 85 | 86 | #### Python 87 | - **Extension Name**: Python 88 | - **Publisher**: Microsoft 89 | - **Description**: Offers rich support for the Python language (including Python 3.8), with features such as IntelliSense, linting, debugging, code navigation, code formatting, Jupyter notebook support, refactoring, variable explorer, test explorer, and more. 90 | - **Installation**: Search for `Python` in the Extensions view and install it. 91 | 92 | #### Jupyter 93 | - **Extension Name**: Jupyter 94 | - **Publisher**: Microsoft 95 | - **Description**: Enables you to work with Jupyter Notebooks directly within VSCode. Features include the ability to execute code cells, view, and modify notebooks, and much more. 96 | - **Installation**: Search for `Jupyter` in the Extensions view and install it. 97 | 98 | #### Pylance 99 | - **Extension Name**: Pylance 100 | - **Publisher**: Microsoft 101 | - **Description**: Pylance is an extension that works alongside Python extension to provide fast and feature-rich language support for Python. It offers type information, auto-imports, type-checking, and much more. 102 | - **Installation**: Search for `Pylance` in the Extensions view and install it. 103 | 104 | #### Markdown All in One 105 | - **Extension Name**: Markdown All in One 106 | - **Publisher**: Yu Zhang 107 | - **Description**: This extension provides a comprehensive set of features for Markdown editing in Visual Studio Code. It includes keyboard shortcuts, table of contents, auto- 108 | - **Installation**: Search for `Markdown All in One` in the Extensions view and install it. 109 | 110 | #### Visual Studio IntelliCode 111 | - **Extension Name**: Visual Studio IntelliCode 112 | - **Publisher**: Microsoft 113 | - **Description**: Provides AI-assisted IntelliSense by recommending commonly used completion items based on the current context in your code. This can be a big time-saver when coding in Python. 114 | - **Installation**: Search for `Visual Studio IntelliCode` in the Extensions view and install it. 115 | 116 | - **Installation**: Search for `Jupyter` in the Extensions view and install it. 117 | 118 | #### GitLens — Git supercharged 119 | - **Publisher**: Eric Amodio 120 | - **Description**: Enhances the built-in Git capabilities of VSCode. It helps you visualize code authorship, navigate repositories, and understand code changes better. 121 | - **Installation**: Search for `GitLens` in the Extensions view and install it. 122 | 123 | #### Excel Viewer 124 | - **Publisher**: GrapeCity 125 | - **Description**: Allows you to open CSV and Excel files (.xlsx/.xls) directly in VSCode. It supports large files, formatting, and even editing cell values. 126 | - **Installation**: Search for `Excel Viewer` in the Extensions view and install it. 127 | 128 | #### Rainbow CSV 129 | - **Publisher**: mechatroner 130 | - **Description**: Highlights CSV and TSV files in different colors, making it easier to read and understand these data formats. It also provides functionality to align columns, which is particularly useful for large datasets. 131 | - **Installation**: Search for `Rainbow CSV` in the Extensions view and install it. 132 | 133 | #### GitHub Repositories 134 | - **Publisher**: GitHub 135 | - **Description**: Browse, search, and edit code from any GitHub repository directly within VSCode. Ideal for collaborative projects and managing code on GitHub. 136 | - **Installation**: Search for `GitHub Repositories` in the Extensions view and install it. 137 | 138 | #### GitHub Copilot 139 | - **Publisher**: GitHub 140 | - **Description**: An AI-powered code assistant that helps you write code faster and with fewer errors. Copilot can suggest whole lines or blocks of code as you type, learning from the context in your current file and related files. 141 | - **Installation**: Search for `GitHub Copilot` in the Extensions view and install it. 142 | 143 | 144 | ### Step 2: Install Python and other Extension 145 | 146 | - Open VSCode. 147 | - Navigate to the Extensions view by clicking on the Extensions icon in the Activity Bar on the side of the window. 148 | - Search for `Python` and install the extension by Microsoft. 149 | - Search for `Jupyter`, `Pylance`, `IntelliCode Repositories`, `GitHub Copilot`, etc and install the extensions. 150 | 151 | ## Working with Jupyter Notebooks in VSCode 152 | 153 | To work with Python in Jupyter Notebooks, you must activate a conda environment in VS Code, or another Python environment in which you've installed the Jupyter package. To select an environment, use the `Python: Select Interpreter` command from the Command Palette (⇧⌘P). Once the appropriate environment is activated, you can create and open a Jupyter Notebook, and export a Jupyter Notebook as a Python file. 154 | 155 | 156 | ### Step 3: Open or Create a Jupyter Notebook 157 | 158 | - Open the Command Palette (`Ctrl+Shift+P`) and type `Jupyter: Create New Blank Jupyter Notebook`. 159 | - Alternatively, you can open an existing `.ipynb` file by right-clicking on the file and opening with VS Code, or through the VS Code File Explorer. 160 | - If you don't have Jupyter installed, you will be prompted to install it. Follow the instructions provided. 161 | 162 | 163 | 164 | 165 | 170 | 171 |
166 | 167 | VSCode setup 168 | 169 |
172 | 173 | Next, select a kernel using the kernel picker in the top right. 174 | 175 | 176 | 177 | 178 | 183 | 184 |
179 | 180 | VSCode setup 181 | 182 |
185 | 186 | After selecting a kernel, the language picker located in the bottom right of each code cell will automatically update to the language supported by the kernel. 187 | 188 | 189 | 190 | 195 | 196 |
191 | 192 | VSCode setup 193 | 194 |
197 | 198 | > If you have an existing Jupyter Notebook, you can open it by right-clicking on the file and opening with VS Code, or through the VS Code File Explorer. 199 | 200 | 201 | After setting up Visual Studio Code for Jupyter Notebooks, the next step is to understand how to work effectively with code cells in the Notebook Editor. The next section discuss the process of creating, running, and managing code cells in Jupyter Notebooks within VS Code. 202 | 203 | 204 | ### Step 5: Run Notebook Cells 205 | 206 | - Once you have a notebook, you can write your Python code in a cell. 207 | - Use `Shift+Enter` to run the cell and see the output below the cell 208 | - Alternatively, you can run a code cell using the Run icon to the left of the cell and the output will appear directly below the code cell. 209 | 210 | 211 | 212 | 217 | 218 |
213 | 214 | VSCode setup 215 | 216 |
219 | 220 | You can run multiple cells by selecting Run All, Run All Above, or Run All Below. 221 | 222 | 223 | 224 | 225 | 230 | 231 |
226 | 227 | VSCode setup 228 | 229 |
232 | 233 | ## Save your Jupyter Notebook 234 | 235 | You can save your Jupyter Notebook using the keyboard shortcut `Ctrl+S` or `File > Save`. 236 | 237 | ## Export your Jupyter Notebook 238 | 239 | - You can export a Jupyter Notebook as a Python file (.py), a PDF, or an HTML file. To export, select the Export action on the main toolbar. 240 | - You'll then be presented with a dropdown of file format options. 241 | 242 | 243 | 244 | 245 | 246 | 251 | 252 |
247 | 248 | VSCode setup 249 | 250 |
253 | 254 | ## Starting a Data Science Project 255 | 256 | ### Step 1: Create a Project Folder 257 | 258 | - Choose a location on your computer and create a new folder for your project. 259 | - If you have an existing folder, move to step 2. 260 | 261 | ### Step 2: Open the Folder in VSCode 262 | 263 | - In VSCode, go to `File > Open Folder` and select your project folder. 264 | 265 | ### Step 3: Explore Data 266 | 267 | - Create a new Jupyter notebook following the steps above and start exploring your data. 268 | 269 | ### Step 4: Save and Share Your Notebook 270 | 271 | - Save your work by clicking on the save icon or using Ctrl+S. 272 | - You can share your .ipynb notebook file with others, or upload it to a repository on GitHub. 273 | Additional Resources 274 | 275 | ### Additional Resources 276 | 277 | 1. [How to Set up VS Code for Data Science & AI](https://www.youtube.com/watch?v=zulGMYg0v6U) 278 | 1. [12 Essential VSCode Extensions for Data Science](https://www.kdnuggets.com/2022/07/12-essential-vscode-extensions-data-science.html#:~:text=12%20Essential%20VSCode%20Extensions%20for%20Data%20Science%201,Renderers%20...%208%208.%20R%20...%20More%20items) 279 | 280 | 2. [Top 10 VS Code Extensions for Data Science](https://medium.com/geekculture/top-10-vs-code-extensions-for-data-science-ce3e24e24347) 281 | 282 | For more detailed information on data science with VSCode, visit the [official documentation](https://code.visualstudio.com/docs/datascience/overview). 283 | Learn more about Jupyter notebooks in VSCode [here](https://code.visualstudio.com/docs/datascience/jupyter-notebooks). 284 | Follow a comprehensive data science tutorial provided by VSCode [here](https://code.visualstudio.com/docs/datascience/data-science-tutorial). 285 | ![Uploading image.png…]() 286 | -------------------------------------------------------------------------------- /00_Stage-1-Getting-Started/weekly-workflow.md: -------------------------------------------------------------------------------- 1 | # Arewa Data Science Fellows: Weekly Activities and Expectations 2 | 3 | We outlined our structured weekly workflow, designed to provide a comprehensive learning experience. 4 | 5 | ## Weekend Office Hours 6 | 7 | - **Schedule**: Join us every Saturday and Sunday at 10:00 AM. 8 | - **Duration**: Each session lasts 1 hour and 30 minutes. 9 | - **Activities Include**: 10 | - **Interactive Learning**: Introduction to new data science concepts in an engaging manner. 11 | - **Specialized Seminars**: Deep dives into key topics for advanced understanding. 12 | - **Mentorship Opportunity**: Direct access to mentors for doubt resolution and guidance. 13 | - **Objective**: Our goal is to deepen your understanding of data science and provide personalized support to tackle weekly challenges. 14 | 15 | ## Blogging and Knowledge Sharing 16 | 17 | ### Biweekly Blog Post 18 | - **Frequency**: Once every two weeks. 19 | - **Content**: Share your learning experiences, insights, and reflections. 20 | - **Collaborative Review**: Each blog post will be peer-reviewed to enhance content quality and foster collaborative learning. 21 | 22 | ## 30-Days of Python Challenge 23 | 24 | - **Format**: Engage in daily practice sessions and assignments. 25 | - **Goal**: To create a consistent and focused approach to mastering Python, tailored to support your progressive learning curve. 26 | 27 | ### Monthly Feedback Sessions 28 | - **Aim**: An open forum to discuss your experiences, challenges, and provide feedback for program enhancement. 29 | 30 | ## Your Commitment 31 | 32 | Your active participation and dedication are the keys to making the most out of this program. Regular engagement in sessions, timely completion of assignments, and sharing your insights through blog posts will not only amplify your learning but also enrich the collective experience of all fellows. We encourage you to embrace this journey, leveraging the diverse opportunities to learn, grow, and contribute. 33 | 34 | 35 | -------------------------------------------------------------------------------- /01_Getting-started-Assigment/GitHub Fundamentals.md: -------------------------------------------------------------------------------- 1 | # Assignment: GitHub Fundamentals 2 | 3 | The goal of this assignment is to get familiar with using GitHub, a powerful platform for version control and collaboration in software development. By the end, you should be comfortable with creating repositories, making commits, using branches, practicing pushes, and collaborating through pull requests. 4 | 5 | --- 6 | 7 | ## Task Overview 8 | 9 | 1. **Create a GitHub Account** 10 | - If you don’t already have one, create an account on [GitHub](https://github.com/). 11 | 12 | 2. **Setup Git on Your Local Machine** 13 | - Install Git on your computer (if not already installed). 14 | - Configure Git with your GitHub account credentials: 15 | ```bash 16 | git config --global user.name "Your Name" 17 | git config --global user.email "your.email@example.com" 18 | ``` 19 | 20 | 3. **Create a New Repository** 21 | - Go to your GitHub profile, create a new repository named **"ArewaDS-Fellowship"**. 22 | - Initialize the repository with a `README.md` file and a `.gitignore` file (choose Python if you’re primarily coding in Python). 23 | 24 | 4. **Clone the Repository to Your Local Machine** 25 | - Copy the repository link and clone it: 26 | ```bash 27 | git clone 28 | ``` 29 | 30 | 5. **Edit the `README.md`** 31 | - Open the `README.md` file in your text editor and add: 32 | - A brief description of what this repository is about. 33 | - Your name and a short bio. 34 | 35 | 6. **Commit and Push Your Changes** 36 | - Save your changes and commit them: 37 | ```bash 38 | git add README.md 39 | git commit -m "Updated README with project description and bio" 40 | ``` 41 | - **Push** your changes to GitHub: 42 | ```bash 43 | git push origin main 44 | ``` 45 | - **Practice Push**: Make another small edit in the `README.md` file (e.g., add the current date) and repeat the commit and push steps to practice using `push` multiple times. 46 | 47 | 7. **Create a Branch** 48 | - Create a new branch named `feature-hello-world`: 49 | ```bash 50 | git checkout -b feature-hello-world 51 | ``` 52 | - Create a Python file named `hello_world.py`, and add a simple script that prints “Hello, Arewa Data Science!” 53 | 54 | 8. **Push the Branch and Open a Pull Request** 55 | - Push the branch to GitHub: 56 | ```bash 57 | git push origin feature-hello-world 58 | ``` 59 | - Go to your GitHub repository and open a pull request from `feature-hello-world` to `main`. 60 | - In the pull request description, briefly explain what you added in `hello_world.py`. 61 | 62 | 9. **Review and Merge the Pull Request** 63 | - Review your own pull request to make sure everything looks good. 64 | - Merge the pull request into the `main` branch. 65 | 66 | 10. **Delete the Branch** 67 | - After merging, delete the branch from GitHub and your local repository. 68 | 69 | --- 70 | 71 | # **Optional Question** 72 | 73 | Research and answer the following: 74 | 75 | 1. **What is a Fork in GitHub?** 76 | - Describe the concept of forking a repository on GitHub. 77 | - How does it differ from simply cloning a repository? 78 | 79 | 2. **When and Why Should You Use a Fork?** 80 | - List scenarios where forking a repository is the preferred approach over other Git/GitHub workflows. 81 | - Explain why forking is useful in open-source projects and collaborative coding. 82 | 83 | 3. **Practical Task: Forking a Repository** 84 | - Choose a public GitHub repository that interests you (e.g., ArewaDS repository: https://github.com/arewadataScience/python-programming-fellowship) 85 | - Fork the repository to your own GitHub account. 86 | - Make a small change (e.g., edit the README or add a new file) and commit it in your forked version. 87 | - Open a **Pull Request** to the original repository if applicable. 88 | -------------------------------------------------------------------------------- /01_Getting-started-Assigment/Medium_blogpost.md: -------------------------------------------------------------------------------- 1 | # 📝 Assignment: Sharing Your Journey on Medium 2 | 3 | This assignment will help you develop your writing skills while sharing your learning journey with the broader community. By writing and publishing on Medium, you’ll gain valuable experience in documenting technical topics and reflecting on your growth as a data science student. 4 | 5 | --- 6 | 7 | ## Task Overview 8 | 9 | 1. **Create a Medium Account** 10 | - If you don’t already have one, sign up for a [Medium account](https://medium.com/). 11 | 12 | 2. **Choose a Topic for Your Post** 13 | - Write a post reflecting on your experience so far in the ArewaDS program. Possible topics could include: 14 | - Your journey learning Python, data science, or machine learning. 15 | - Setting up tools for data science, such as Conda, Anaconda, Git, or GitHub. 16 | - Tips or challenges you faced during installation and setup of various tools. 17 | - Any project or assignment you enjoyed, and what you learned from it. 18 | - **Note:** Keep your post beginner-friendly. Imagine your readers are new to data science and might benefit from your experiences and tips. 19 | 20 | 3. **Write and Publish Your Post** 21 | 22 | - Watch our recording on [Medium Article](https://www.youtube.com/watch?v=Gt2D2eNWpxI) 23 | - Read this on how to write [great medium article](https://medium.com/@shmuhammadd/how-to-write-a-great-medium-article-f26065b98dcd) 24 | - Write a clear, engaging, and informative post. Aim for a minimum of **500 words**. 25 | - Include screenshots, code snippets, or diagrams if they help explain your process. 26 | - Proofread your work for clarity and typos. 27 | - Publish your post on Medium. Make sure it is set to **public** so it can be shared with the ArewaDS community. 28 | 29 | 5. **Share Your Post with ArewaDS** 30 | - Once published, share the link to your Medium post in the ArewaDS Telegram group. 31 | - Engage with other students’ posts by reading and commenting on them, offering feedback, or asking questions. 32 | 33 | --- 34 | 35 | ## Submission 36 | 37 | - **Medium Post Link**: Submit the link to your Medium post. 38 | - **Title and Brief Summary**: Include the title of your post and a brief 2-3 sentence summary of what your article covers. 39 | 40 | --- 41 | 42 | ## Writing Regularly 43 | 44 | This assignment isn’t just a one-time task! We encourage you to write **weekly reflections** on Medium throughout the program. Documenting your learning journey consistently will help you solidify your understanding, track your growth, and build a portfolio of insights that can inspire others. 45 | 46 | Weekly posts could include: 47 | - New skills or concepts you’ve learned. 48 | - Challenges you overcame and how you approached them. 49 | - Tips for other students who might face similar challenges. 50 | - Insights into tools, techniques, or projects that stood out to you. 51 | 52 | Each week, take a few minutes to jot down your thoughts. Over time, these reflections will enhance your technical communication skills—a crucial ability for any data scientist or machine learning practitioner. Remember, consistency is key, and every post brings you one step closer to mastering the art of conveying complex ideas clearly! 53 | -------------------------------------------------------------------------------- /02_Python-Lessons/__pycache__/car_updated.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/02_Python-Lessons/__pycache__/car_updated.cpython-37.pyc -------------------------------------------------------------------------------- /02_Python-Lessons/car.py: -------------------------------------------------------------------------------- 1 | class Car: 2 | """A simple attempt to represent a car.""" 3 | def __init__(self, make, model, year): 4 | self.make = make 5 | self.model = model 6 | self.year = year 7 | self.odometer_reading = 0 8 | 9 | def get_descriptive_name(self): 10 | """Return a neatly formatted descriptive name.""" 11 | return f"{self.year} {self.make} {self.model}" 12 | 13 | def read_odometer(self): 14 | """Print a statement showing the car's mileage.""" 15 | print(f"This car has {self.odometer_reading} miles on it.") 16 | 17 | def update_odometer(self, mileage): 18 | """ 19 | Set the odometer reading to the given value. 20 | Reject the change if it attempts to roll the odometer back. 21 | """ 22 | if mileage >= self.odometer_reading: 23 | self.odometer_reading = mileage 24 | else: 25 | print("You can't roll back an odometer!") 26 | 27 | def increment_odometer(self, miles): 28 | """Add the given amount to the odometer reading.""" 29 | self.odometer_reading += miles 30 | 31 | 32 | class Battery: 33 | 34 | """A simple attempt to model a battery for an electric car.""" 35 | def __init__(self, battery_size= 40): 36 | """Initialize the battery's attributes.""" 37 | self.battery_size = battery_size 38 | def describe_battery(self): 39 | """Print a statement describing the battery size.""" 40 | print(f"This car has a {self.battery_size}-kWh battery.") 41 | def get_range(self): 42 | """Print a statement about the range this battery provides.""" 43 | if self.battery_size == 40: 44 | range = 150 45 | elif self.battery_size == 65: 46 | range = 225 47 | print(f"This car can go about {range} miles on a full charge.") 48 | 49 | class ElectricCar(Car): 50 | """Models aspects of a car, specific to electric vehicles.""" 51 | def __init__(self, make, model, year): 52 | """ 53 | Initialize attributes of the parent class. 54 | Then initialize attributes specific to an electric car. 55 | """ 56 | super().__init__(make, model, year) 57 | self.battery = Battery() 58 | 59 | 60 | -------------------------------------------------------------------------------- /02_Python-Lessons/car_updated.py: -------------------------------------------------------------------------------- 1 | class Car: 2 | """A simple attempt to represent a car.""" 3 | def __init__(self, make, model, year): 4 | self.make = make 5 | self.model = model 6 | self.year = year 7 | self.odometer_reading = 0 8 | 9 | def get_descriptive_name(self): 10 | """Return a neatly formatted descriptive name.""" 11 | return f"{self.year} {self.make} {self.model}" 12 | 13 | def read_odometer(self): 14 | """Print a statement showing the car's mileage.""" 15 | print(f"This car has {self.odometer_reading} miles on it.") 16 | 17 | def update_odometer(self, mileage): 18 | """ 19 | Set the odometer reading to the given value. 20 | Reject the change if it attempts to roll the odometer back. 21 | """ 22 | if mileage >= self.odometer_reading: 23 | self.odometer_reading = mileage 24 | else: 25 | print("You can't roll back an odometer!") 26 | 27 | def increment_odometer(self, miles): 28 | """Add the given amount to the odometer reading.""" 29 | self.odometer_reading += miles 30 | 31 | 32 | class Battery: 33 | 34 | """A simple attempt to model a battery for an electric car.""" 35 | def __init__(self, battery_size= 40): 36 | """Initialize the battery's attributes.""" 37 | self.battery_size = battery_size 38 | def describe_battery(self): 39 | """Print a statement describing the battery size.""" 40 | print(f"This car has a {self.battery_size}-kWh battery.") 41 | def get_range(self): 42 | """Print a statement about the range this battery provides.""" 43 | if self.battery_size == 40: 44 | range = 150 45 | elif self.battery_size == 65: 46 | range = 225 47 | print(f"This car can go about {range} miles on a full charge.") 48 | 49 | class ElectricCar(Car): 50 | """Models aspects of a car, specific to electric vehicles.""" 51 | def __init__(self, make, model, year): 52 | """ 53 | Initialize attributes of the parent class. 54 | Then initialize attributes specific to an electric car. 55 | """ 56 | super().__init__(make, model, year) 57 | self.battery = Battery() 58 | 59 | 60 | -------------------------------------------------------------------------------- /02_Python-Lessons/cars.py: -------------------------------------------------------------------------------- 1 | print("\n") -------------------------------------------------------------------------------- /02_Python-Lessons/module/pizza.py: -------------------------------------------------------------------------------- 1 | def make_pizza(size, *toppings): 2 | """Summarize the pizza we are about to make.""" 3 | print(f"\nMaking a {size}-inch pizza with the following toppings:") 4 | for topping in toppings: 5 | print(f"- {topping}") -------------------------------------------------------------------------------- /02_Python-Lessons/numbers.json: -------------------------------------------------------------------------------- 1 | [2, 3, 5, 7, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21] -------------------------------------------------------------------------------- /02_Python-Lessons/pi_digits.txt: -------------------------------------------------------------------------------- 1 | 3.1415926535 2 | 8979323846 3 | 2643383279 -------------------------------------------------------------------------------- /02_Python-Lessons/pizza.py: -------------------------------------------------------------------------------- 1 | def make_pizza(size, *toppings): 2 | """Summarize the pizza we are about to make.""" 3 | print(f"\nMaking a {size}-inch pizza with the following toppings:") 4 | for topping in toppings: 5 | print(f"- {topping}") 6 | 7 | 8 | -------------------------------------------------------------------------------- /02_Python-Lessons/programming.txt: -------------------------------------------------------------------------------- 1 | I love programming. -------------------------------------------------------------------------------- /02_Python-Lessons/programming_02.txt: -------------------------------------------------------------------------------- 1 | I love programming. -------------------------------------------------------------------------------- /02_Python-Lessons/reply.py: -------------------------------------------------------------------------------- 1 | reply = 0 2 | while reply != 4: 3 | 4 | reply = int(input("Reply with: \n1. to load air time\n2. to buy data\n3. to transfer data\n4. to quit\nEnter your choice [1-4] :")) 5 | print(f"you've chosen {reply}") 6 | -------------------------------------------------------------------------------- /02_Python-Lessons/text_files/pi_digits.txt: -------------------------------------------------------------------------------- 1 | 3.1415926535 2 | 8979323846 3 | 2643383279 -------------------------------------------------------------------------------- /02_Python-Lessons/username.json: -------------------------------------------------------------------------------- 1 | "Aremu Bala" -------------------------------------------------------------------------------- /02_Python-Lessons/usernames.json: -------------------------------------------------------------------------------- 1 | "" -------------------------------------------------------------------------------- /02_Python-Lessons/utils/__pycache__/tick.cpython-312.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/02_Python-Lessons/utils/__pycache__/tick.cpython-312.pyc -------------------------------------------------------------------------------- /02_Python-Lessons/utils/tick.py: -------------------------------------------------------------------------------- 1 | import IPython.display 2 | import contextlib 3 | from contextlib import contextmanager 4 | 5 | 6 | total_marks = 0 7 | available_marks = 0 8 | 9 | def reset_marks(): 10 | global total_marks, available_marks 11 | total_marks = 0 12 | available_marks = 0 13 | 14 | 15 | def js_summarise_marks(): 16 | global total_marks, available_marks 17 | if available_marks==0: 18 | IPython.display.display(IPython.display.Javascript(""" 19 | $("#TestCodeButton").value("No marks found"))""")) 20 | 21 | else: 22 | IPython.display.display(IPython.display.Javascript(""" 23 | $("#TestCodeButton").value("%d/%d (%.1f%%)"))""" % (total_marks, available_marks, total_marks*100.0/available_marks))) 24 | 25 | 26 | def summarise_marks(): 27 | global total_marks, available_marks 28 | if available_marks==0: 29 | IPython.display.display(IPython.display.HTML(""" 30 | 31 |

%d / %d marks (%.1f%%)

32 | """ % (0,0,0,0,0.0))) 33 | 34 | else: 35 | IPython.display.display(IPython.display.HTML(""" 36 | 37 |

%d / %d marks (%.1f%%)

38 | """ % (total_marks, available_marks, total_marks, available_marks, total_marks*100.0/available_marks))) 39 | 40 | @contextmanager 41 | def marks(marks): 42 | global total_marks, available_marks 43 | available_marks += marks 44 | try: 45 | yield 46 | IPython.display.display(IPython.display.HTML('

✓ [%d marks]

' % (marks,marks))) 47 | total_marks += marks 48 | except Exception as e: 49 | IPython.display.display(IPython.display.HTML('

Test failed ✘ [0/%d] marks

' % (marks, marks))) 50 | raise e 51 | 52 | @contextmanager 53 | def tick(): 54 | try: 55 | yield 56 | IPython.display.display(IPython.display.HTML('

✓ Correct

')) 57 | except Exception as e: 58 | IPython.display.display(IPython.display.HTML('

Problem: test failed ✘ [0/%d] marks

')) 59 | raise e 60 | 61 | 62 | 63 | import base64 64 | import pickle 65 | def _get_check(val): 66 | return base64.b64encode(pickle.dumps(val, protocol=3)) 67 | 68 | def check_answer(val, pxk): 69 | with tick(): 70 | assert(_get_check(val)==pxk) -------------------------------------------------------------------------------- /02_Python-Lessons/weather.txt: -------------------------------------------------------------------------------- 1 | 23 2 | 32 3 | 21 4 | 30 5 | 36 6 | 39 7 | 40 8 | 32 9 | 30 -------------------------------------------------------------------------------- /04_books/Atomic Habits An Easy Proven Way to Build Good Habits Break Bad Ones (James Clear).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/04_books/Atomic Habits An Easy Proven Way to Build Good Habits Break Bad Ones (James Clear).pdf -------------------------------------------------------------------------------- /04_books/Eric Matthes - Python Crash Course-No Starch Press (2023).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/04_books/Eric Matthes - Python Crash Course-No Starch Press (2023).pdf -------------------------------------------------------------------------------- /ABP-README.md: -------------------------------------------------------------------------------- 1 | # 1. Abdulwasiu B. Popoola README File 2 | 3 | ![Static Badge](https://img.shields.io/badge/build-%22Over%20Every%20Possessor%20of%20Knowledge%2C%20There%20is%20Some%20(One)%20Else%20(More)%20Knowledgeable%22-brightgreen?style=for-the-badge&label=ETTM) 4 | 5 | This `README.md` file will contain personal files with documentation and links to my projects. 6 | 7 | ## 1.1. My Profiles 8 | 9 | |S/No. | Platform | Link | 10 | |:----:|:----:|:----:| 11 | |1|**YouTube**|[![YouTube Channel Subscribers](https://img.shields.io/youtube/channel/subscribers/UCAe5662cWJF5NW851ylT-qw?style=social&label=ETTM%20Subscribers)](https://www.youtube.com/@edutechtainmentguides)| 12 | |2|**YouTube Likes** |[![YouTube Channel Views](https://img.shields.io/youtube/channel/views/UCAe5662cWJF5NW851ylT-qw?label=ETTM%20Channel%20Views)](https://www.youtube.com/@edutechtainmentguides)| 13 | |3|**Most Viewed Video**|![YouTube Video Views](https://img.shields.io/youtube/views/rBCavzCYjRc?label=Telegram%20Google%20Drive%20Upload%20Bot)| 14 | |4|**YouTube Video Likes**|![YouTube Video Likes](https://img.shields.io/youtube/likes/rBCavzCYjRc)| 15 | |5|**ETTM Twitter**|![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/edutech_tm?style=social)| 16 | |6|**Follow Me** |[![X (formerly Twitter) URL](https://img.shields.io/twitter/url?url=https%3A%2F%2Fx.com%2Fwaga43&label=Follow%20Me)](https://x.com/waga43)| 17 | |7|**Follow EduTechTainMent**|[![X (formerly Twitter) URL](https://img.shields.io/twitter/url?url=https%3A%2F%2Fx.com%2Fedutech_tm&label=Follow%20ETTM)](https://x.com/edutech_tm)| 18 | |8|**Github Followers**|[![GitHub followers](https://img.shields.io/github/followers/waga43)](https://github.com/waga43)| 19 | |9|**LinkedIn**|[![Connect on LinkedIn](https://img.shields.io/badge/Connect_On_LinkedIn-0A66C2?logo=linkedin&logoColor=fff)](https://linkedincom/in/abdulwasiu) 20 | -------------------------------------------------------------------------------- /assets/ArewaDS_Intro.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/ArewaDS_Intro.pdf -------------------------------------------------------------------------------- /assets/Index_positions_start_at_0_Not_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/Index_positions_start_at_0_Not_1.png -------------------------------------------------------------------------------- /assets/Markdown-Cheat-Sheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/Markdown-Cheat-Sheet.pdf -------------------------------------------------------------------------------- /assets/arewadsimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/arewadsimage.png -------------------------------------------------------------------------------- /assets/break_to_exit_while_loop.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/break_to_exit_while_loop.PNG -------------------------------------------------------------------------------- /assets/carbon_paper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/carbon_paper.png -------------------------------------------------------------------------------- /assets/chapter6-dictionary.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/chapter6-dictionary.PNG -------------------------------------------------------------------------------- /assets/chapter6-dictionary1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/chapter6-dictionary1.PNG -------------------------------------------------------------------------------- /assets/class_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/class_diagram.png -------------------------------------------------------------------------------- /assets/copying-a-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/copying-a-list.png -------------------------------------------------------------------------------- /assets/diagrams_pool temp.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/diagrams_pool temp.pptx -------------------------------------------------------------------------------- /assets/diagrams_pool.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/diagrams_pool.pptx -------------------------------------------------------------------------------- /assets/dog_based_class.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/dog_based_class.PNG -------------------------------------------------------------------------------- /assets/dog_class_objects.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/dog_class_objects.PNG -------------------------------------------------------------------------------- /assets/dog_object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/dog_object.png -------------------------------------------------------------------------------- /assets/dog_roll_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/dog_roll_over.gif -------------------------------------------------------------------------------- /assets/dog_sit.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/dog_sit.gif -------------------------------------------------------------------------------- /assets/dog_uml_diagram.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/dog_uml_diagram.jpg -------------------------------------------------------------------------------- /assets/ezgif.com-video-to-gif-converter.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/ezgif.com-video-to-gif-converter.gif -------------------------------------------------------------------------------- /assets/for-loop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/for-loop.png -------------------------------------------------------------------------------- /assets/function_definition_and_call.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/function_definition_and_call.PNG -------------------------------------------------------------------------------- /assets/function_syntax.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/function_syntax.PNG -------------------------------------------------------------------------------- /assets/generate-series-of-numbers-with-range.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/generate-series-of-numbers-with-range.png -------------------------------------------------------------------------------- /assets/how-each-item-is-printed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/how-each-item-is-printed.png -------------------------------------------------------------------------------- /assets/if-elif-else-chain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/if-elif-else-chain.png -------------------------------------------------------------------------------- /assets/inheritance.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/inheritance.PNG -------------------------------------------------------------------------------- /assets/insert_function.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/insert_function.png -------------------------------------------------------------------------------- /assets/list-comprehension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/list-comprehension.png -------------------------------------------------------------------------------- /assets/list-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/list-image.jpg -------------------------------------------------------------------------------- /assets/list-index.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/list-index.PNG -------------------------------------------------------------------------------- /assets/module.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/module.png -------------------------------------------------------------------------------- /assets/passing_info_to_a_function.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/passing_info_to_a_function.PNG -------------------------------------------------------------------------------- /assets/range-general-syntax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/range-general-syntax.png -------------------------------------------------------------------------------- /assets/range-syntax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/range-syntax.png -------------------------------------------------------------------------------- /assets/set-of-instructions-under-a-loop2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/set-of-instructions-under-a-loop2.PNG -------------------------------------------------------------------------------- /assets/simple-if-else-statement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/simple-if-else-statement.png -------------------------------------------------------------------------------- /assets/simple-if-else-statement2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/simple-if-else-statement2.png -------------------------------------------------------------------------------- /assets/simple-if-statement-update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/simple-if-statement-update.png -------------------------------------------------------------------------------- /assets/slicing-a-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/slicing-a-list.png -------------------------------------------------------------------------------- /assets/title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/title.png -------------------------------------------------------------------------------- /assets/waiting_for_user_input.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/waiting_for_user_input.gif -------------------------------------------------------------------------------- /assets/while_loop_flowchart.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arewadataScience/python-programming-fellowship/2a6cca48b73573dade298db5c44168b8be7f6082/assets/while_loop_flowchart.PNG --------------------------------------------------------------------------------