9.9 KiB
How to Contribute to Data Science for Beginners
Tank you say you wan contribute to di Data Science for Beginners curriculum! We dey happy to see community people wey wan help.
Table of Contents
- Code of Conduct
- How I Fit Contribute?
- How to Start
- Contribution Guidelines
- Pull Request Process
- Style Guidelines
- Contributor License Agreement
Code of Conduct
Dis project dey follow di Microsoft Open Source Code of Conduct.
If you wan sabi more, check di Code of Conduct FAQ
or send email to opencode@microsoft.com if you get any question or comment.
How I Fit Contribute?
Report Bugs
Before you go report bug, abeg check di issues wey don dey already so you no go repeat di same thing. If you wan report bug, abeg add plenty details:
- Use clear and correct title
- Explain di steps wey fit make di problem show
- Add example (code snippets, screenshots)
- Talk wetin you see and wetin you dey expect
- Add your environment details (OS, Python version, browser)
Suggest Improvements
We dey happy to see suggestions for improvement! If you wan suggest something:
- Use clear and correct title
- Explain di improvement well well
- Talk why e go make sense
- Mention any similar feature for other projects, if e dey
Help with Documentation
We dey always appreciate better documentation:
- Correct typo and grammar mistake
- Make explanation clear
- Add di documentation wey dey miss
- Update old information
- Add example or use case
Contribute Code
We dey welcome code contributions like:
- New lessons or exercises
- Bug fixes
- Better notebooks
- New datasets or examples
- Improve quiz app
How to Start
Wetin You Need
Before you start, make sure say you get:
- GitHub account
- Git for your system
- Python 3.7+ and Jupyter
- Node.js and npm (if na quiz app you wan work on)
- You sabi di curriculum structure
Check INSTALLATION.md for setup instructions.
Fork and Clone
- Fork di repo for GitHub
- Clone your fork for your computer:
git clone https://github.com/YOUR-USERNAME/Data-Science-For-Beginners.git cd Data-Science-For-Beginners - Add upstream remote:
git remote add upstream https://github.com/microsoft/Data-Science-For-Beginners.git
Create Branch
Create new branch for your work:
git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix
Branch naming style:
feature/- For new features or lessonsfix/- For bug fixesdocs/- For documentation changesrefactor/- For code wey you wan rearrange
Contribution Guidelines
For Lesson Content
If you wan add or change lesson:
-
Follow di structure wey dey already:
- README.md for di lesson content
- Jupyter notebook for exercises
- Assignment (if e dey)
- Link to pre and post quizzes
-
Add dis things:
- Clear learning objectives
- Step-by-step explanation
- Code examples with comments
- Exercises to practice
- Links to more resources
-
Make am easy for everybody:
- Use simple language
- Add alt text for images
- Put comments for code
- Think about different learning styles
For Jupyter Notebooks
-
Clear all outputs before you commit:
jupyter nbconvert --clear-output --inplace notebook.ipynb -
Add markdown cells to explain things
-
Use same format everywhere:
# Import libraries at the top import pandas as pd import numpy as np import matplotlib.pyplot as plt # Use meaningful variable names # Add comments for complex operations # Follow PEP 8 style guidelines -
Test di notebook well before you submit
For Python Code
Follow PEP 8 style guide:
# Good practices
import pandas as pd
def calculate_mean(data):
"""Calculate the mean of a dataset.
Args:
data (list): List of numerical values
Returns:
float: Mean of the dataset
"""
return sum(data) / len(data)
For Quiz App Contributions
If you dey work on di quiz app:
-
Test am for your computer:
cd quiz-app npm install npm run serve -
Run linter:
npm run lint -
Make sure e build well:
npm run build -
Follow Vue.js style guide and di pattern wey dey already
For Translations
If you wan add or update translations:
- Follow di structure for
translations/folder - Use di language code as folder name (e.g.,
frfor French) - Keep di same file structure as English version
- Update quiz links to include language parameter:
?loc=fr - Test all links and formatting
Pull Request Process
Before You Submit
-
Update your branch with di latest changes:
git fetch upstream git rebase upstream/main -
Test wetin you change:
- Run all di notebooks wey you change
- Test quiz app if you touch am
- Check all links
- Look for spelling and grammar mistake
-
Commit your changes:
git add . git commit -m "Brief description of changes"Write clear commit messages:
- Use present tense ("Add feature" no be "Added feature")
- Use imperative mood ("Move cursor to..." no be "Moves cursor to...")
- First line no pass 72 characters
- Mention issues and pull requests if e dey relevant
-
Push to your fork:
git push origin feature/your-feature-name
Create di Pull Request
- Go to di repo
- Click "Pull requests" → "New pull request"
- Click "compare across forks"
- Select your fork and branch
- Click "Create pull request"
PR Title Style
Use clear, correct title like dis:
[Component] Brief description
Examples:
[Lesson 7] Fix Python notebook import error[Quiz App] Add German translation[Docs] Update README with new prerequisites[Fix] Correct data path in visualization lesson
PR Description
For your PR description, talk about:
- Wetin: Wetin you change?
- Why: Why di change dey important?
- How: How you take do am?
- Testing: How you test am?
- Screenshots: Add screenshots if e get visual change
- Related Issues: Link di issues wey e relate to (e.g., "Fixes #123")
Review Process
- Automated checks go run for your PR
- Maintainers go review wetin you submit
- Fix any feedback by adding more commits
- Once dem approve am, maintainer go merge your PR
After Dem Merge Your PR
-
Delete your branch:
git branch -d feature/your-feature-name git push origin --delete feature/your-feature-name -
Update your fork:
git checkout main git pull upstream main git push origin main
Style Guidelines
Markdown
-
Use same heading levels
-
Put blank lines between sections
-
Use code blocks with language specifiers:
```python import pandas as pd ``` -
Add alt text for images:
 -
No make line too long (around 80-100 characters)
Python
- Follow PEP 8 style guide
- Use good variable names
- Add docstrings for functions
- Add type hints if e make sense:
def process_data(df: pd.DataFrame) -> pd.DataFrame: """Process the input dataframe.""" return df
JavaScript/Vue.js
- Follow Vue.js 2 style guide
- Use di ESLint config wey we provide
- Write modular, reusable components
- Add comments for any complex logic
File Arrangement
- Keep related files together
- Use good file names
- Follow di directory structure wey dey already
- No commit unnecessary files (.DS_Store, .pyc, node_modules, etc.)
Contributor License Agreement
We dey welcome contributions and suggestions. Most contributions go need you to agree to Contributor License Agreement (CLA) wey go show say you get di right to, and you dey give us di right to use wetin you contribute. For details, visit https://cla.microsoft.com.
When you submit pull request, CLA-bot go check if you need to provide CLA and go mark di PR well (e.g., label, comment). Just follow di instructions wey di bot go give you. You go only do dis one time for all repos wey dey use our CLA.
Questions?
- Check our Discord Channel #data-science-for-beginners
- Join our Discord community
- Look di issues and pull requests wey don dey already
Tank You!
Na your contribution dey make dis curriculum better for everybody. Tank you say you take time to contribute!
Disclaimer:
Dis dokyument don use AI transleshion service Co-op Translator do di transleshion. Even as we dey try make am accurate, abeg make una sabi say automatik transleshion fit get mistake or no dey correct well. Di original dokyument wey dey for im native language na di main source wey una suppose trust. For important informashon, e good make una use professional human transleshion. We no go fit take blame for any misunderstanding or wrong interpretashon wey fit happen because una use dis transleshion.