16 KiB
Допринос курикулуму "Основе науке о подацима"
Хвала вам на интересовању за допринос курикулуму "Основе науке о подацима"! Добродошли су сви доприноси из заједнице.
Садржај
- Кодекс понашања
- Како могу да допринесем?
- Почетак
- Смернице за допринос
- Процес Pull Request-а
- Смернице за стил
- Споразум о лиценци за допринос
Кодекс понашања
Овај пројекат је усвојио Microsoft Open Source Code of Conduct.
За више информација погледајте Често постављана питања о Кодексу понашања
или контактирајте opencode@microsoft.com за додатна питања или коментаре.
Како могу да допринесем?
Пријављивање грешака
Пре него што креирате извештај о грешци, проверите постојеће проблеме како бисте избегли дупликате. Када креирате извештај о грешци, укључите што више детаља:
- Користите јасан и описан наслов
- Опишите тачне кораке за репродукцију проблема
- Обезбедите конкретне примере (код, снимке екрана)
- Опишите понашање које сте приметили и оно које сте очекивали
- Укључите детаље о вашем окружењу (оперативни систем, верзија Python-а, прегледач)
Предлагање побољшања
Предлози за побољшања су добродошли! Када предлажете побољшања:
- Користите јасан и описан наслов
- Обезбедите детаљан опис предложеног побољшања
- Објасните зашто би ово побољшање било корисно
- Наведите сличне функције у другим пројектима, ако је применљиво
Допринос документацији
Побољшања документације су увек добродошла:
- Исправите правописне и граматичке грешке
- Побољшајте јасноћу објашњења
- Додајте недостајућу документацију
- Ажурирајте застареле информације
- Додајте примере или случајеве употребе
Допринос коду
Добродошли су доприноси коду, укључујући:
- Нове лекције или вежбе
- Исправке грешака
- Побољшања постојећих нотебоок-ова
- Нови скупови података или примери
- Побољшања апликације за квизове
Почетак
Предуслови
Пре него што допринесете, уверите се да имате:
- Налог на GitHub-у
- Инсталиран Git на вашем систему
- Python 3.7+ и Jupyter инсталиране
- Node.js и npm (за допринос апликацији за квизове)
- Познавање структуре курикулума
Погледајте INSTALLATION.md за детаљна упутства за подешавање.
Fork и Clone
-
Fork-ујте репозиторијум на GitHub-у
-
Клонирајте ваш fork локално:
git clone https://github.com/YOUR-USERNAME/Data-Science-For-Beginners.git cd Data-Science-For-Beginners -
Додајте upstream remote:
git remote add upstream https://github.com/microsoft/Data-Science-For-Beginners.git
Креирајте грану
Креирајте нову грану за ваш рад:
git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix
Конвенције за именовање грана:
feature/- Нове функције или лекцијеfix/- Исправке грешакаdocs/- Промене у документацијиrefactor/- Рефакторинг кода
Смернице за допринос
За садржај лекција
Када доприносите лекцијама или мењате постојеће:
-
Пратите постојећу структуру:
- README.md са садржајем лекције
- Jupyter нотебоок са вежбама
- Задатак (ако је применљиво)
- Линк ка квизовима пре и после лекције
-
Укључите следеће елементе:
- Јасни циљеви учења
- Објашњења корак по корак
- Примери кода са коментарима
- Вежбе за праксу
- Линкове ка додатним ресурсима
-
Обезбедите приступачност:
- Користите јасан, једноставан језик
- Обезбедите alt текст за слике
- Укључите коментаре у код
- Размотрите различите стилове учења
За Jupyter нотебоок-ове
-
Очистите све излазе пре комитовања:
jupyter nbconvert --clear-output --inplace notebook.ipynb -
Укључите markdown ћелије са објашњењима
-
Користите конзистентно форматирање:
# 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 -
Тестирајте ваш нотебоок у потпуности пре слања
За Python код
Пратите PEP 8 смернице за стил:
# 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)
За допринос апликацији за квизове
Када мењате апликацију за квизове:
-
Тестирајте локално:
cd quiz-app npm install npm run serve -
Покрените linter:
npm run lint -
Успешно изградите:
npm run build -
Пратите Vue.js смернице за стил и постојеће шаблоне
За преводе
Када додајете или ажурирате преводе:
- Пратите структуру у фолдеру
translations/ - Користите код језика као име фолдера (нпр.
frза француски) - Одржавајте исту структуру фајлова као у енглеској верзији
- Ажурирајте линкове за квизове да укључе параметар језика:
?loc=fr - Тестирајте све линкове и форматирање
Процес Pull Request-а
Пре слања
-
Ажурирајте вашу грану са најновијим променама:
git fetch upstream git rebase upstream/main -
Тестирајте ваше промене:
- Покрените све модификоване нотебоок-ове
- Тестирајте апликацију за квизове ако је модификована
- Проверите да ли сви линкови раде
- Проверите правопис и граматичке грешке
-
Комитујте ваше промене:
git add . git commit -m "Brief description of changes"Напишите јасне поруке комита:
- Користите садашње време ("Додај функцију" уместо "Додата функција")
- Користите императивни тон ("Помери курсор на..." уместо "Померен курсор на...")
- Ограничите прву линију на 72 карактера
- Референцирајте проблеме и Pull Request-ове када је релевантно
-
Пошаљите на ваш fork:
git push origin feature/your-feature-name
Креирање Pull Request-а
- Идите на репозиторијум
- Кликните "Pull requests" → "New pull request"
- Кликните "compare across forks"
- Изаберите ваш fork и грану
- Кликните "Create pull request"
Формат наслова PR-а
Користите јасне, описне наслове следећег формата:
[Component] Brief description
Примери:
[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-а
Укључите у опис вашег PR-а:
- Шта: Које промене сте направили?
- Зашто: Зашто су ове промене неопходне?
- Како: Како сте имплементирали промене?
- Тестирање: Како сте тестирали промене?
- Снимци екрана: Укључите снимке екрана за визуелне промене
- Повезани проблеми: Линк ка повезаним проблемима (нпр. "Fixes #123")
Процес прегледа
- Аутоматске провере ће се покренути на вашем PR-у
- Одржаваоци ће прегледати ваш допринос
- Одговорите на повратне информације прављењем додатних комита
- Када буде одобрен, одржавалац ће спојити ваш PR
Након што ваш PR буде спојен
-
Обришите вашу грану:
git branch -d feature/your-feature-name git push origin --delete feature/your-feature-name -
Ажурирајте ваш fork:
git checkout main git pull upstream main git push origin main
Смернице за стил
Markdown
-
Користите конзистентне нивое наслова
-
Укључите празне линије између секција
-
Користите блокове кода са спецификацијом језика:
```python import pandas as pd ``` -
Додајте alt текст сликама:
 -
Одржавајте разумну дужину линија (око 80-100 карактера)
Python
- Пратите PEP 8 смернице за стил
- Користите значајна имена променљивих
- Додајте docstrings функцијама
- Укључите типске назнаке где је применљиво:
def process_data(df: pd.DataFrame) -> pd.DataFrame: """Process the input dataframe.""" return df
JavaScript/Vue.js
- Пратите Vue.js 2 смернице за стил
- Користите обезбеђену ESLint конфигурацију
- Пишите модуларне, поново употребљиве компоненте
- Додајте коментаре за сложену логику
Организација фајлова
- Држите повезане фајлове заједно
- Користите описна имена фајлова
- Пратите постојећу структуру директоријума
- Не комитујте непотребне фајлове (.DS_Store, .pyc, node_modules, итд.)
Споразум о лиценци за допринос
Овај пројекат поздравља доприносе и предлоге. Већина доприноса захтева да се
сагласите са Споразумом о лиценци за допринос (CLA) којим изјављујете да имате право да,
и заиста дајете, права за коришћење вашег доприноса. За детаље, посетите
https://cla.microsoft.com.
Када пошаљете Pull Request, CLA-бот ће аутоматски утврдити да ли треба
да обезбедите CLA и означити PR на одговарајући начин (нпр. етикета, коментар). Само следите
упутства која вам бот пружа. Ово ћете морати да урадите само једном за све репозиторијуме који користе наш CLA.
Питања?
- Проверите наш Discord канал #data-science-for-beginners
- Придружите се нашој Discord заједници
- Прегледајте постојеће проблеме и Pull Request-ове
Хвала!
Ваши доприноси чине овај курикулум бољим за све. Хвала вам што сте одвојили време да допринесете!
Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако се трудимо да превод буде тачан, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.