├── .github ├── ISSUE_TEMPLATE │ └── request-for-comment-template.md └── workflows │ └── delete-empty-issues.yml ├── CNAME ├── LICENSE.md ├── README.md ├── coursepages ├── intro-cs │ └── README.md └── intro-programming │ └── README.md ├── extras ├── books.md ├── courses.md └── specializations.md └── topic_progression_graph.jpg /.github/ISSUE_TEMPLATE/request-for-comment-template.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Request for Comment Template 3 | about: Template for creating an RFC to modify the curriculum 4 | title: 'RFC: ' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Problem:** 11 | Give a 1 sentence description of a problem with the current OSSU Curriculum. Successful critiques of the curriculum will point out ways that OSSU is failing to uphold [our curricular guidelines](https://github.com/ossu/data-science#curricular-guideline). Examples are: 12 | 13 | * OSSU lists course X as required when the course's topics are elective in our curricular guidelines. 14 | * OSSU does not having a course to cover required topic X from our curricular guidelines. 15 | * OSSU lists courses X, Y and Z that cover the same topics when fewer courses could suffice. 16 | * OSSU recommends course X to teach a topic, but there exists a higher quality course that covers the same material. 17 | 18 | **Duration:** 19 | This should most often be 1 month from the date of posting. 20 | 21 | **Background:** 22 | Give an in depth description of the problem. Describe a solution to the problem. Describe the advantages and disadvantages of this solution. This section should be a few paragraphs. 23 | 24 | **Proposal:** 25 | Give a bullet point list of changes that are being proposed. These can link to a Pull Request. 26 | 27 | **Alternatives:** 28 | Give a bullet point list of alternative ways to address the problem. 29 | -------------------------------------------------------------------------------- /.github/workflows/delete-empty-issues.yml: -------------------------------------------------------------------------------- 1 | name: Delete empty issues 2 | on: 3 | issues: 4 | types: 5 | - opened 6 | jobs: 7 | label_issues: 8 | runs-on: ubuntu-latest 9 | permissions: 10 | issues: write 11 | 12 | if: github.event.issue.body == '' || contains(github.event.issue.body, 'Give a 1 sentence description of a problem with the current OSSU Curriculum. Successful critiques of the curriculum will point out ways that OSSU is failing to uphold') 13 | steps: 14 | - name: Create comment 15 | uses: actions-cool/issues-helper@v3 16 | with: 17 | actions: 'create-comment' 18 | token: ${{ secrets.GITHUB_TOKEN }} 19 | issue-number: ${{ github.event.issue.number }} 20 | body: | 21 | Hello @${{ github.event.issue.user.login }}. 22 | It looks like you've opened an empty issue or one without a unique problem description. 23 | Please understand that this is a popular project, useful to many learners, and empty issues distract maintainers that are trying to help others. 24 | If you would like practice with issues, you can follow github documentation to create your own repo: 25 | https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-new-repository 26 | And then in that repo practice creating and editing issues: 27 | https://docs.github.com/en/issues/tracking-your-work-with-issues/configuring-issues/quickstart 28 | 29 | We look forward to your future contributions to OSSU, when you are contributing to improve computer science education for learners all over the world! 30 | - name: Close issue 31 | uses: actions-cool/issues-helper@v3 32 | with: 33 | actions: 'close-issue' 34 | token: ${{ secrets.GITHUB_TOKEN }} 35 | issue-number: ${{ github.event.issue.number }} 36 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | ds.ossu.dev -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | Open Source Society logo 3 |

Open Source Society University

4 |

5 | :bar_chart: Path to a free self-taught education in Data Science! 6 |

7 |

8 | 9 | Open Source Society University - Data Science 10 | 11 |

12 |
13 | 14 | ## Contents 15 | 16 | - [About](#about) 17 | - [Curricular Guideline](#curricular-guideline) 18 | - [How to use this guide](#how-to-use-this-guide) 19 | - [Community](#community) 20 | - [Prerequisites](#prerequisites) 21 | - [Curriculum](#curriculum) 22 | - [How to contribute](#how-to-contribute) 23 | - [Code of conduct](#code-of-conduct) 24 | - [Team](#team) 25 | 26 | ## About 27 | 28 | This is a path for those of you who want to complete the Data Science undergraduate curriculum on your own time, **for free**, with courses from the **best universities** in the World. 29 | 30 | In our curriculum, we give preference to MOOC (Massive Open Online Course) style courses because these courses were created with our style of learning in mind. 31 | 32 | ## Curricular Guideline 33 | 34 | OSSU Data Science uses the report [Curriculum Guidelines for Undergraduate Programs in Data Science](https://www.amstat.org/asa/files/pdfs/EDU-DataScienceGuidelines.pdf) as our guide for course recommendation. 35 | 36 | ## How to use this guide 37 | 38 | ### Duration 39 | It is possible to finish within about 2 years if you plan carefully and devote roughly 20 hours/week to your studies. Learners can use [this spreadsheet](https://docs.google.com/spreadsheets/d/1TEGSUQDFuWL3TYNjiM8G3esly-tKOcgHSDABt92mzdA/copy) to estimate their end date. Make a copy and input your start date and expected hours per week in the `Timeline` sheet. As you work through courses you can enter your actual course completion dates in the Curriculum Data sheet and get updated completion estimates. 40 | 41 | > **Warning:** While the spreadsheet is a useful tool to estimate the time you need to complete this curriculum, it may not be up-to-date with the curriculum. Use the spreadsheet just to estimate the time you need. Use the [the GitHub repo](https://github.com/ossu/data-science) to see what courses to do. 42 | 43 | ### Order of the classes 44 | 45 | Some courses can be taken in parallel, while others must be taken sequentially. All of the courses within a topic should be taken in the order listed in the curriculum. The graph below demonstrates how topics should be ordered. 46 | 47 | Topic Progression Graph 48 | 49 | ### Track your progress 50 | 51 | [Fork](https://www.freecodecamp.org/news/how-to-fork-a-github-repository/) the [GitHub repo](https://github.com/ossu/data-science) into your own GitHub account and put ✅ next to the stuff you've completed as you complete it. This can serve as your [kanban board](https://en.wikipedia.org/wiki/Kanban_board) and will be faster to implement than any other solution (giving you time to spend on the courses). 52 | 53 | ### Which programming languages should I use? 54 | 55 | Python and R are heavily used in Data Science community and our courses teach you both. Remember, the important thing for each course is to internalize the core concepts and to be able to use them with whatever tool (programming language) that you wish. 56 | 57 | ### Content Policy 58 | 59 | You must share only files that you are allowed. **Do NOT disrespect the code of conduct** that you sign in the beginning of your courses. 60 | 61 | ## Community 62 | 63 | We have a Discord server! This should be your first stop to talk with other OSSU students. [Why don't you introduce yourself right now?](https://discord.gg/wuytwK5s9h) 64 | 65 | You can also interact through [GitHub issues](https://github.com/open-source-society/data-science/issues). 66 | 67 | Add **Open Source Society University** to your [Linkedin](https://www.linkedin.com/school/11272443/) profile! 68 | 69 | > **Warning:** There are a few third-party/deprecated/outdated material that you might find when searching for OSSU. We recommend you to ignore them, and only use the [OSSU Data Science Github Repo](https://github.com/ossu/data-science). Some known outdated materials are: 70 | > - An unmaintained and deprecated trello board 71 | > - Third-party notion templates 72 | 73 | ## Prerequisites 74 | 75 | The Data Science curriculum assumes the student has taken [high school math](https://ossu.dev/precollege-math) and [statistics](https://www.khanacademy.org/math/probability). 76 | 77 | ## Curriculum 78 | 79 | - [Introduction to Data Science](#introduction-to-data-science) 80 | - [Introduction to Computer Science](#introduction-to-computer-science) 81 | - [Data Structures and Algorithms](#data-structures-and-algorithms) 82 | - [Databases](#databases) 83 | - [Single Variable Calculus](#single-variable-calculus) 84 | - [Linear Algebra](#linear-algebra) 85 | - [Multivariable Calculus](#multivariable-calculus) 86 | - [Statistics & Probability](#statistics--probability) 87 | - [Data Science Tools & Methods](#data-science-tools--methods) 88 | - [Machine Learning/Data Mining](#machine-learningdata-mining) 89 | - [Final project](#final-project) 90 | 91 | ### Introduction to Data Science 92 | 93 | [What is Data Science](https://www.coursera.org/learn/what-is-datascience) 94 | 95 | ### Introduction to Computer Science 96 | 97 | _Students who already know basic programming in any language can skip this first course_ 98 | 99 | [Introduction to programming](coursepages/intro-programming/README.md) 100 | 101 | [Introduction to Computer Science and Programming Using Python](coursepages/intro-cs/README.md) 102 | 103 | [Introduction to Computational Thinking and Data Science](https://ocw.mit.edu/courses/6-0002-introduction-to-computational-thinking-and-data-science-fall-2016/) 104 | 105 | ### Data Structures and Algorithms 106 | 107 | _The Algorithms courses are taught in Java. If students need to learn Java, they should take this course first_ 108 | 109 | [Java Programming](https://java-programming.mooc.fi/) 110 | 111 | [Algorithms I: ArrayLists, LinkedLists, Stacks and Queues](https://www.edx.org/learn/data-structures/the-georgia-institute-of-technology-data-structures-algorithms-i-arraylists-linkedlists-stacks-and-queues) 112 | 113 | [Algorithms II: Binary Trees, Heaps, SkipLists and HashMaps](https://www.edx.org/learn/data-structures/the-georgia-institute-of-technology-data-structures-algorithms-ii-binary-trees-heaps-skiplists-and-hashmaps) 114 | 115 | [Algorithms III: AVL and 2-4 Trees, Divide and Conquer Algorithms](https://www.edx.org/learn/data-structures/the-georgia-institute-of-technology-data-structures-algorithms-iii-avl-and-2-4-trees-divide-and-conquer-algorithms) 116 | 117 | [Algorithms IV: Pattern Matching, Dijkstra’s, MST, and Dynamic Programming Algorithms](https://www.edx.org/learn/data-structures/the-georgia-institute-of-technology-data-structures-algorithms-iv-pattern-matching-dijkstras-mst-and-dynamic-programming-algorithms) 118 | 119 | ### Databases 120 | 121 | [Database Management Essentials](https://www.coursera.org/learn/database-management) 122 | 123 | [Data Warehouse Concepts, Design, and Data Integration](https://www.coursera.org/learn/dwdesign) 124 | 125 | [Relational Database Support for Data Warehouses](https://www.coursera.org/learn/dwrelational) 126 | 127 | [Business Intelligence Concepts, Tools, and Applications](https://www.coursera.org/learn/business-intelligence-tools) 128 | 129 | [Design and Build a Data Warehouse for Business Intelligence Implementation](https://www.coursera.org/learn/data-warehouse-bi-building) 130 | 131 | [MongoDB for Developers Learning Path](https://learn.mongodb.com/pages/mongodb-developer-learning-paths) 132 | 133 | ### Single Variable Calculus 134 | 135 | [Calculus 1A: Differentiation](https://mitxonline.mit.edu/courses/course-v1:MITxT+18.01.1x/) 136 | 137 | [Calculus 1B: Integration](https://mitxonline.mit.edu/courses/course-v1:MITxT+18.01.2x/) 138 | 139 | [Calculus 1C: Coordinate Systems & Infinite Series](https://mitxonline.mit.edu/courses/course-v1:MITxT+18.01.3x/) 140 | 141 | ### Linear Algebra 142 | 143 | [Essence of Linear Algebra](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab) 144 | 145 | [Linear Algebra](https://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebra-fall-2011/) 146 | 147 | ### Multivariable Calculus 148 | 149 | [Multivariable Calculus](http://ocw.mit.edu/courses/mathematics/18-02sc-multivariable-calculus-fall-2010/index.htm) 150 | 151 | ### Statistics & Probability 152 | 153 | [Introduction to Probability](https://projects.iq.harvard.edu/stat110/home) 154 | 155 | [Intro to Descriptive Statistics](https://www.udacity.com/course/intro-to-descriptive-statistics--ud827) 156 | 157 | [Intro to Inferential Statistics](https://www.udacity.com/course/intro-to-inferential-statistics--ud201) 158 | 159 | [Statistical Learning with Python by Stanford University on EdX](https://www.edx.org/learn/python/stanford-university-statistical-learning-with-python) ([Textbook](https://hastie.su.domains/ISLP/ISLP_website.pdf.download.html), [Textbook resources](https://www.statlearning.com/resources-python)) or [Statistical Learning With R by Stanford University on EdX](https://www.edx.org/learn/statistics/stanford-university-statistical-learning) ([Textbook](https://hastie.su.domains/ISLR2/ISLRv2_corrected_June_2023.pdf.download.html), [Textbook resources](https://www.statlearning.com/resources-second-edition)) 160 | 161 | ### Data Science Tools & Methods 162 | 163 | [Tools for Data Science](https://www.coursera.org/learn/open-source-tools-for-data-science) 164 | 165 | [Data Science Methodology](https://www.coursera.org/learn/data-science-methodology) 166 | 167 | [Data Science: Wrangling](https://www.edx.org/course/data-science-wrangling) 168 | 169 | ### Machine Learning/Data Mining 170 | 171 | [Supervised Machine Learning: Regression and Classification](https://www.coursera.org/learn/machine-learning) 172 | 173 | [Advanced Learning Algorithms](https://www.coursera.org/learn/advanced-learning-algorithms) 174 | 175 | [Unsupervised Learning, Recommenders, Reinforcement Learning](https://www.coursera.org/learn/unsupervised-learning-recommenders-reinforcement-learning) 176 | 177 | [Intro to Machine Learning](https://www.udacity.com/course/intro-to-machine-learning--ud120) 178 | 179 | [Mining Massive Datasets](https://www.edx.org/course/mining-massive-datasets) 180 | 181 | [Process Mining](https://www.coursera.org/learn/process-mining) 182 | 183 | ### Final project 184 | 185 | Part of learning is doing. 186 | The assignments and exams for each course are to prepare you to use your knowledge to solve real-world problems. 187 | 188 | After you've completed the curriculum, 189 | you should identify a problem that you can solve using the knowledge you've acquired. 190 | You can create something entirely new, or you can improve some tool/program that you use and wish were better. 191 | 192 | Students who would like more guidance in creating a project may choose to use a series of project oriented courses. 193 | A sample of options 194 | (many more are available, at this point you should be capable of identifying a series that is interesting and relevant to you) 195 | are available on [this page](extras/specializations.md). 196 | 197 | ### Congratulations 198 | 199 | After completing the requirements of the curriculum above, 200 | you will have completed the equivalent of a full bachelor's degree in Data Science. 201 | Congratulations! 202 | 203 | What is next for you? The possibilities are boundless and overlapping: 204 | 205 | - Look for a job as a data scientist! 206 | - Check out the [readings](extras/books.md) for classic books you can read that will sharpen your skills and expand your knowledge. 207 | - Join a local data science meetup (e.g. via [meetup.com](https://www.meetup.com/)). 208 | - Pay attention to emerging technologies in the world of data science. 209 | 210 | ![keep learning](https://i.imgur.com/REQK0VU.jpg) 211 | 212 | ## How to contribute 213 | 214 | You can [open an issue](https://help.github.com/articles/creating-an-issue/) and give us your suggestions as to how we can improve this guide, or what we can do to improve the learning experience. 215 | 216 | You can also [fork this project](https://help.github.com/articles/fork-a-repo/) and send a [pull request](https://help.github.com/articles/using-pull-requests/) to fix any mistakes that you have found. 217 | 218 | If you want to suggest a new resource, send a pull request adding such resource to the [extras](https://github.com/open-source-society/data-science/tree/master/extras) section. The **extras** section is a place where all of us will be able to submit interesting additional articles, books, courses and specializations. 219 | 220 | ## Code of Conduct 221 | 222 | [OSSU's code of conduct](https://github.com/ossu/code-of-conduct). 223 | 224 | ## Team 225 | 226 | * **Curriculum Maintainer**: [Waciuma Wanjohi](https://github.com/waciumawanjohi) 227 | * **Contributors**: [contributors](https://github.com/open-source-society/data-science/graphs/contributors) 228 | -------------------------------------------------------------------------------- /coursepages/intro-cs/README.md: -------------------------------------------------------------------------------- 1 | # Introduction to Computer Science 2 | 3 | This course will introduce you to the world of computer science. Students who have been introduced to programming, either from the courses above or through study elsewhere, should take this course for a flavor of the material to come. If you finish the course wanting more, Computer Science is likely for you! 4 | 5 | This course has been developed by MIT and is available from three different places. We recommend you to do it from the archived version on Edx. 6 | 7 | > 6.0001 Introduction to Computer Science and Programming in Python is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class uses the Python 3.5 programming language. 8 | **Course Link:** 9 | Alternative Links: 10 | 11 | - 12 | - (instructor-paced version, runs three times a year) 13 | 14 | ## Instructions 15 | 16 | **Note:** These instructions are for the archived version of the course on Edx, which we recommend. They don't apply to other versions of the course. 17 | 18 | - The course does not have a homepage on Edx, but don't worry about it. Open the [link](https://learning.edx.org/course/course-v1:MITx+6.00.1x+2T2018/home) given above, log in (if you are not logged in) and then enroll in the course. 19 | - Work through the course as given in the course overview. Watch the videos, do the finger exercises, and then solve the problem sets. 20 | - You won't be able to submit your responses for the finger exercises, but you can see their answers by clicking on "Show Answer". Check your answers honestly. 21 | - You won't be able to submit the problem sets on their own page. To submit them, go to the "Sandbox" section (It is the last section. You can find it on the course overview). There, you will be able to submit your work and get it graded. 22 | - You don't need to install the full Anaconda distribution to do this course. See the notes section below for more information. 23 | - If you are stuck somewhere, feel free to ask questions. You can join the OSSU chat for this course here: . 24 | 25 | ## Notes 26 | 27 | - You don't need to install the full anaconda package to do this course. You can just download the Spyder IDE from here: . It comes bundles with python as well as some popular scientific python libraries (all the libraries which this course uses are included), but it is not as large or complex as the full anaconda distribution. You don't need to set up python separately or anything. 28 | - The community has found this resource useful: 29 | - You won't get any certificate for doing this course. If you really want a certificate, you need to do the [instructor-paced version of this course](https://www.edx.org/course/introduction-to-computer-science-and-programming-7) on Edx. Certificate of an introductory course like this is not very valuable, so unless you are absolutely sure, we recommend you to do the archived version of this course instead. 30 | - If for some reason you want to do the OCW version of the course, you will find many useful notes and fixes of various problems in our [discord server](https://discord.gg/jvchSm9). 31 | -------------------------------------------------------------------------------- /coursepages/intro-programming/README.md: -------------------------------------------------------------------------------- 1 | # Introduction to Programming 2 | 3 | If you've never written a for-loop, or don't know what a string is in programming, start here. These courses are self-paced, allowing you to adjust the number of hours you spend per week to meet your needs. 4 | 5 | We are currently looking for volunteers to try out both of the following two courses and analyze them in different ways to determine which one is better suited to be included in our curriculum. We suggest that you flip a coin to decide which one to take first, so that you avoid an ordering bias. Once you have completed both courses, please provide your analysis of [this RFC](https://github.com/ossu/computer-science/issues/1164) (the RFC is from Computer Science curriculum, but also applicable for this curriculum). 6 | 7 | If you don't have time or do not want to volunteer, you are required to do **only ONE** of the following courses. 8 | 9 | ## CS50P: Introduction to Programming with Python 10 | 11 | This course has been developed by the CS50 team at Harvard University. 12 | > An introduction to programming using a language called Python. Learn how to read and write code as well as how to test and "debug" it. Designed for students with or without prior programming experience who'd like to learn Python specifically. Learn about functions, arguments, and return values (oh my!); variables and types; conditionals and Boolean expressions; and loops. Learn how to handle exceptions, find and fix bugs, and write unit tests; use third-party libraries; validate and extract data with regular expressions; model real-world entities with classes, objects, methods, and properties; and read and write files. Hands-on opportunities for lots of practice. Exercises inspired by real-world programming problems. No software required except for a web browser, or you can write code on your own PC or Mac. 13 | 14 | **Link**: 15 | 16 | **Note**: This course is *different* from CS50 or CS50x. CS50 is not part of the OSSU curriculum. That being said, if you have completed CS50, you can skip this course and move on to the next one. 17 | 18 | ### Instructions 19 | 20 | - If you want to follow along with the instructor, log in to the [CS50 "codespace"](https://cs50.dev) and watch [this video](https://cs50.harvard.edu/python/2022/shorts/visual_studio_code_for_cs50/) to get started. 21 | - Watch each lecture and complete the respective problem set. Read the lecture notes to revise things. 22 | - If you are stuck somewhere, feel free to ask questions. You can join the OSSU chat for this course here: . 23 | - You can also join the CS50 discord server and ask questions there: , but note that it is not affiliated with or maintained by OSSU. 24 | 25 | ### Course Materials 26 | 27 | 0. [Functions, Variables](https://cs50.harvard.edu/python/2022/weeks/0/) — [Notes](https://cs50.harvard.edu/python/2022/notes/0/) — [Problem Set](https://cs50.harvard.edu/python/2022/psets/0/) 28 | 1. [Conditionals](https://cs50.harvard.edu/python/2022/weeks/1/) — [Notes](https://cs50.harvard.edu/python/2022/notes/1/) — [Problem Set](https://cs50.harvard.edu/python/2022/psets/1/) 29 | 2. [Loops](https://cs50.harvard.edu/python/2022/weeks/2/) — [Notes](https://cs50.harvard.edu/python/2022/notes/2/) — [Problem Set](https://cs50.harvard.edu/python/2022/psets/2/) 30 | 3. [Exceptions](https://cs50.harvard.edu/python/2022/weeks/3/) — [Notes](https://cs50.harvard.edu/python/2022/notes/3/) — [Problem Set](https://cs50.harvard.edu/python/2022/psets/3/) 31 | 4. [Libraries](https://cs50.harvard.edu/python/2022/weeks/4/) — [Notes](https://cs50.harvard.edu/python/2022/notes/4/) — [Problem Set](https://cs50.harvard.edu/python/2022/psets/4/) 32 | 5. [Unit Tests](https://cs50.harvard.edu/python/2022/weeks/5/) — [Notes](https://cs50.harvard.edu/python/2022/notes/5/) — [Problem Set](https://cs50.harvard.edu/python/2022/psets/5/) 33 | 6. [File I/O](https://cs50.harvard.edu/python/2022/weeks/6/) — [Notes](https://cs50.harvard.edu/python/2022/notes/6/) — [Problem Set](https://cs50.harvard.edu/python/2022/psets/6/) 34 | 7. [Regular Expressions](https://cs50.harvard.edu/python/2022/weeks/7/) — [Notes](https://cs50.harvard.edu/python/2022/notes/7/) — [Problem Set](https://cs50.harvard.edu/python/2022/psets/7/) 35 | 8. [Object-Oriented Programming](https://cs50.harvard.edu/python/2022/weeks/8/) — [Notes](https://cs50.harvard.edu/python/2022/notes/8/) — [Problem Set](https://cs50.harvard.edu/python/2022/psets/8/) 36 | 9. [Et Cetera](https://cs50.harvard.edu/python/2022/weeks/9/) — [Notes](https://cs50.harvard.edu/python/2022/notes/9/) — [Final Project](https://cs50.harvard.edu/python/2022/project/) 37 | 38 | ## Python for Everybody 39 | 40 | This course has been created by Professor Charles Severance from the University of Michigan. 41 | > Learn to Program and Analyze Data with Python. Develop programs to gather, clean, analyze, and visualize data. 42 | 43 | **Link**: 44 | 45 | **Textbook**: [PDF](http://do1.dr-chuck.com/pythonlearn/EN_us/pythonlearn.pdf) / [EPUB](http://do1.dr-chuck.com/pythonlearn/EN_us/pythonlearn.epub) / [HTML](https://www.py4e.com/html3) / [Buy hardcopy](https://www.py4e.com/book) 46 | 47 | **Note**: This course is also offered on Coursera, Edx. Those versions require you to pay to get the full version of the course. We suggest doing the course on its website, which is completely free. 48 | 49 | ### Instructions 50 | 51 | - You need to [sign in](https://www.py4e.com/) to the course website using your Google account to access the assignments. 52 | - Watch all the videos of a lesson and then do its assignments. 53 | - If you prefer reading books, you can read the HTML version of the chapter related to the lesson linked on the lesson's page, or you can download the whole book in different formats from [this page](https://www.py4e.com/book). 54 | - If you face any problems, feel free to ask questions. You can join the OSSU chat for this course here: . 55 | - You only need to complete the course up to the Regular Expressions lesson. The rest of the course is optional. 56 | 57 | ### Course Materials 58 | 59 | 1. [Installing Python](https://www.py4e.com/lessons/install) 60 | 2. [Why Program?](https://www.py4e.com/lessons/intro) 61 | 3. [Variables, expressions and statements](https://www.py4e.com/lessons/memory) 62 | 4. [Conditional Execution](https://www.py4e.com/lessons/logic) 63 | 5. [Functions](https://www.py4e.com/lessons/functions) 64 | 6. [Loops and Iterations](https://www.py4e.com/lessons/loops) 65 | 7. [Strings](https://www.py4e.com/lessons/strings) 66 | 8. [Files](https://www.py4e.com/lessons/files) 67 | 9. [Lists](https://www.py4e.com/lessons/lists) 68 | 10. [Dictionaries](https://www.py4e.com/lessons/dictionary) 69 | 11. [Tuples](https://www.py4e.com/lessons/tuples) 70 | 12. [Regular Expressions](https://www.py4e.com/lessons/regex) 71 | 13. [Network Programming](https://www.py4e.com/lessons/network) (Optional) 72 | 14. [Using Web Services](https://www.py4e.com/lessons/servces) (Optional) 73 | 15. [Object-Oriented Programming](https://www.py4e.com/lessons/Objects) (Optional) 74 | 16. [Databases](https://www.py4e.com/lessons/database) (Optional) 75 | 17. [Data Visualization](https://www.py4e.com/lessons/dataviz) (Optional) 76 | 77 | ### Fixes 78 | 79 | 1. If you're doing the BeautifulSoup4 lesson, there is an issue with Python 3.10+ that will give you an error referencing the Collections library. We have a fix for you. We don't expect you to understand it, just put this in front of your code in the imports block: 80 | 81 | ```python 82 | import collections 83 | collections.Callable = collections.abc.Callable 84 | 85 | from bs4 import BeautifulSoup 86 | ``` 87 | 88 | Doing this should fix the compatibility issue and allow your code to run. 89 | -------------------------------------------------------------------------------- /extras/books.md: -------------------------------------------------------------------------------- 1 | # Data Science - Extra Resources 2 | 3 | ## Books 4 | 5 | - [Python](#python) 6 | - [Data Analysis](#data-analysis) 7 | - [Data Visualization](#data-visualization) 8 | - [Web Scraping](#web-scraping) 9 | - [Databases and SQL](#databases-and-sql) 10 | - [Statistics](#statistics) 11 | - [Linear Algebra](#linear-algebra) 12 | - [Machine Learning](#machine-learning) 13 | - [Data Science](#data-science) 14 | - [Big Data](#big-data) 15 | 16 | 17 | --- 18 | 19 | 20 | 21 | ### Python 22 | 23 | Name | Author | ISBN 24 | :-- | :--: | :--: 25 | 26 | 27 | ### Data Analysis 28 | 29 | Name | Author | ISBN 30 | :-- | :--: | :--: 31 | 32 | 33 | ### Data Visualization 34 | 35 | Name | Author | ISBN 36 | :-- | :--: | :--: 37 | 38 | 39 | ### Web Scraping 40 | 41 | Name | Author | ISBN 42 | :-- | :--: | :--: 43 | 44 | 45 | ### Databases and SQL 46 | 47 | Name | Author | ISBN 48 | :-- | :--: | :--: 49 | 50 | ### Statistics 51 | 52 | 53 | Name | Author | ISBN 54 | :-- | :--: | :--: 55 | 56 | 57 | ### Linear Algebra 58 | 59 | Name | Author | ISBN 60 | :-- | :--: | :--: 61 | -------------------------------------------------------------------------------- /extras/courses.md: -------------------------------------------------------------------------------- 1 | # Data Science - Extra Resources 2 | 3 | ## Courses 4 | 5 | - [Statistics](#statistics) 6 | 7 | --- 8 | 9 | ### Statistics 10 | 11 | Courses | Duration | Effort 12 | :-- | :--: | :--: 13 | [Intro to Statistics](https://www.udacity.com/course/intro-to-statistics--st101)| 8 weeks | 6 hours/week 14 | [Basic Statistics](https://www.coursera.org/learn/basic-statistics)| 8 weeks | 3 hours/week 15 | [Bayesian Statistics](https://www.coursera.org/learn/bayesian)| 5 weeks | 5-7 hours/week 16 | -------------------------------------------------------------------------------- /extras/specializations.md: -------------------------------------------------------------------------------- 1 | # Data Science - Specializations 2 | 3 | ## Specializations 4 | 5 | * [Udacity](#udacity) 6 | * [Machine Learning Nanodegree by Google](#machine-learning-nanodegree-by-google) 7 | * [Data Scientist Nanodegree](#data-scientist-nanodegree) 8 | * [edX](#edx) 9 | * [Data Science and Engineering with Apache Spark](#data-science-and-engineering-with-apache-spark) 10 | * [Coursera](#coursera) 11 | * [Data Mining Specialization](#data-mining-specialization) 12 | * [Machine Learning Specialization](#machine-learning-specialization) 13 | * [Data Science Specialization](#data-science-specialization) 14 | * [FutureLearn](#futurelearn) 15 | 16 | --- 17 | 18 | ### Udacity 19 | 20 | #### Machine Learning Nanodegree by Google 21 | Course | Duration | Effort 22 | :-- | :--: | :--: 23 | [Machine Learning Engineer Nanodegree](https://www.udacity.com/course/machine-learning-engineer-nanodegree--nd009)| - weeks | 10 hours/week 24 | 25 | #### Data Scientist Nanodegree 26 | Course | Duration | Effort 27 | :-- | :--: | :--: 28 | [Data Analyst Nanodegree](https://www.udacity.com/course/data-analyst-nanodegree--nd002)| - weeks | 10 hours/week 29 | 30 | ### edX 31 | 32 | #### Data Science and Engineering with Apache Spark 33 | Course | Duration | Effort 34 | :-- | :--: | :--: 35 | [Data Science and Engineering with Apache Spark XSeries](https://www.edx.org/xseries/data-science-engineering-apache-spark)| - weeks | 10 hours/week 36 | 37 | ### Coursera 38 | 39 | #### Data Mining Specialization 40 | Course | Duration | Effort 41 | :-- | :--: | :--: 42 | [Data Mining](https://www.coursera.org/specializations/data-mining)| - weeks | 8-12 hours/week 43 | 44 | #### Machine Learning Specialization 45 | Course | Duration | Effort 46 | :-- | :--: | :--: 47 | [Machine Learning](https://www.coursera.org/specializations/machine-learning)| - weeks | 8-12 hours/week 48 | 49 | #### Data Science Specialization 50 | Course | Duration | Effort 51 | :-- | :--: | :--: 52 | [Statistics with R](https://www.coursera.org/specializations/statistics)| - weeks | - hours/week 53 | [Data Science at Scale](https://www.coursera.org/specializations/data-science)| 17 weeks | 6-8 hours/week 54 | [Data Science](https://www.coursera.org/specializations/jhu-data-science) | - weeks | 4-9 hours/week 55 | 56 | ### FutureLearn 57 | 58 | #### Big Data 59 | Course | Duration | Effort 60 | :-- | :--: | :--: 61 | [Big Data Analytics](https://www.futurelearn.com/programs/big-data-analytics)| 8 weeks | - hours/week 62 | -------------------------------------------------------------------------------- /topic_progression_graph.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ossu/data-science/ccb52fe046fe3b61696083596278b36516fdb80b/topic_progression_graph.jpg --------------------------------------------------------------------------------