├── .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 | 
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |

3 |
Open Source Society University
4 |
5 | :bar_chart: Path to a free self-taught education in Data Science!
6 |
7 |
8 |
9 |
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 |
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 | 
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
--------------------------------------------------------------------------------