We welcome contributions to make this course even better! Here's how you can help:
- Found an error in a notebook? Report it!
- Include the notebook name and cell number
- Describe what you expected vs. what happened
- Suggest new examples or exercises
- Improve explanations or add clarifications
- Fix typos or formatting issues
- Propose new mini-challenges
- Suggest additional datasets for practice
- Add new visualization examples
- Python 3.8 or higher
- Git installed on your machine
- Jupyter Notebook/Lab
-
Fork the repository
# Click the "Fork" button on GitHub, then clone your fork git clone https://github.com/YOUR_USERNAME/Data-Science-AI-Python-Course.git cd Data-Science-AI-Python-Course
-
Set up virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt pip install -r requirements-dev.txt
-
Run setup script
chmod +x setup.sh ./setup.sh
- Follow PEP 8 for Python code
- Use clear, descriptive variable names
- Add comments to explain complex concepts
- Keep cells focused and not too long
- Start each notebook with a clear introduction
- Include learning objectives
- Add mini-challenges throughout
- End with a summary and next steps
- Test all code cells before submitting
- Update README.md if adding new features
- Document any new dependencies
- Include examples for new functionality
-
Create a new branch
git checkout -b feature/your-feature-name
-
Make your changes
- Edit notebooks using Jupyter
- Test all code thoroughly
- Update documentation as needed
-
Commit your changes
git add . git commit -m "Add: Clear description of your changes"
-
Push to your fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Go to the original repository
- Click "New Pull Request"
- Fill out the template (see below)
## Description
Brief description of what this PR does.
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
- [ ] Performance improvement
- [ ] Code refactoring
## Testing
- [ ] All notebooks run without errors
- [ ] New code includes appropriate comments
- [ ] Documentation updated (if needed)
## Screenshots (if applicable)
Add screenshots of new visualizations or outputs.
## Checklist
- [ ] Code follows style guidelines
- [ ] Self-review completed
- [ ] No merge conflictsBefore submitting, please:
-
Run all notebooks
jupyter nbconvert --to notebook --execute *.ipynb -
Check code quality
black . --check flake8 . --max-line-length=88
-
Verify dependencies
pip-compile requirements.in # If you added new packages
When adding new datasets:
- Ensure data is publicly available
- Include proper attribution
- Keep file sizes reasonable (<10MB)
- Document data sources and structure
- Consider privacy and ethical implications
Each notebook should have clear:
- What students will learn
- Prerequisites knowledge
- Expected time to complete
- Well-commented code
- Error handling where appropriate
- Consistent naming conventions
- Reproducible results
- Progressive difficulty
- Clear instructions
- Provided solutions or hints
- Real-world relevance
Contributors will be:
- Listed in the CHANGELOG.md
- Mentioned in README.md contributors section
- Credited in relevant notebook sections
Need help contributing?
- Open an issue with the "question" label
- Check existing issues for similar questions
- Review the course documentation
This project follows a simple code of conduct:
- Be respectful and constructive
- Help create a welcoming learning environment
- Focus on educational value
- Respect different learning styles and backgrounds
- Automated Checks: CI will run basic tests
- Maintainer Review: A project maintainer will review your PR
- Feedback: You may receive requests for changes
- Merge: Once approved, your contribution will be merged!
Thank you for helping make this course better for everyone! 🎉
Happy coding and learning! 🐍📊