Data Science for Beginners — це комплексна навчальна програма на 10 тижнів, що складається з 20 уроків, створена командою Microsoft Azure Cloud Advocates. Репозиторій є навчальним ресурсом, який викладає основні концепції науки про дані через проєктно-орієнтовані уроки, включаючи Jupyter ноутбуки, інтерактивні вікторини та практичні завдання.
Основні технології:
- Jupyter Notebooks: Основний навчальний інструмент з використанням Python 3
- Бібліотеки Python: pandas, numpy, matplotlib для аналізу даних та візуалізації
- Vue.js 2: Додаток для вікторин (папка quiz-app)
- Docsify: Генератор сайту документації для офлайн-доступу
- Node.js/npm: Управління пакетами для компонентів JavaScript
- Markdown: Весь контент уроків та документація
Архітектура:
- Багатомовний освітній репозиторій з широкими перекладами
- Структурований у модулі уроків (від 1-Introduction до 6-Data-Science-In-Wild)
- Кожен урок включає README, ноутбуки, завдання та вікторини
- Автономний додаток для вікторин на Vue.js для оцінювання до/після уроків
- Підтримка GitHub Codespaces та контейнерів розробки VS Code
# Clone the repository (if not already cloned)
git clone https://github.com/microsoft/Data-Science-For-Beginners.git
cd Data-Science-For-Beginners
# Create a virtual environment (recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install common data science libraries (no requirements.txt exists)
pip install jupyter pandas numpy matplotlib seaborn scikit-learn
# Navigate to quiz app
cd quiz-app
# Install dependencies
npm install
# Start development server
npm run serve
# Build for production
npm run build
# Lint and fix files
npm run lint
# Install Docsify globally
npm install -g docsify-cli
# Serve documentation locally
docsify serve
# Documentation will be available at localhost:3000
Для проєктів візуалізації, таких як meaningful-visualizations (урок 13):
# Navigate to starter or solution folder
cd 3-Data-Visualization/13-meaningful-visualizations/starter
# Install dependencies
npm install
# Start development server
npm run serve
# Build for production
npm run build
# Lint files
npm run lint
- Запустіть Jupyter у корені репозиторію:
jupyter notebook
- Перейдіть до потрібної папки уроку
- Відкрийте файли
.ipynb
, щоб виконувати вправи
- Ноутбуки є самодостатніми з поясненнями та кодовими блоками
- Більшість ноутбуків використовують pandas, numpy та matplotlib — переконайтеся, що вони встановлені
Кожен урок зазвичай містить:
README.md
- Основний контент уроку з теорією та прикладами
notebook.ipynb
- Практичні вправи в Jupyter ноутбуках
assignment.ipynb
або assignment.md
- Практичні завдання
- Папка
solution/
- Ноутбуки з рішеннями та кодом
- Папка
images/
- Додаткові візуальні матеріали
- Додаток на Vue.js 2 з функцією гарячого перезавантаження під час розробки
- Вікторини зберігаються в
quiz-app/src/assets/translations/
- Кожна мова має власну папку перекладів (en, fr, es тощо)
- Нумерація вікторин починається з 0 і доходить до 39 (всього 40 вікторин)
- Переклади розміщуються в папці
translations/
у корені репозиторію
- Кожна мова має повну структуру уроків, дзеркальну до англійської
- Автоматичний переклад через GitHub Actions (co-op-translator.yml)
cd quiz-app
# Run lint checks
npm run lint
# Test build process
npm run build
# Manual testing: Start dev server and verify quiz functionality
npm run serve
- Автоматизованої системи тестування для ноутбуків немає
- Ручна перевірка: Виконайте всі блоки коду послідовно, щоб переконатися у відсутності помилок
- Перевірте доступність файлів даних та правильність вихідних результатів
- Переконайтеся, що візуалізації відображаються правильно
# Verify Docsify renders correctly
docsify serve
# Check for broken links manually by navigating through content
# Verify all lesson links work in the rendered documentation
# Vue.js projects (quiz-app and visualization projects)
cd quiz-app # or visualization project folder
npm run lint
# Python notebooks - manual verification recommended
# Ensure imports work and cells execute without errors
- Дотримуйтесь стилю PEP 8 для Python коду
- Використовуйте зрозумілі назви змінних, які пояснюють аналізовані дані
- Додавайте markdown блоки з поясненнями перед кодовими блоками
- Зосереджуйте кодові блоки на окремих концепціях або операціях
- Використовуйте pandas для обробки даних, matplotlib для візуалізації
- Загальний шаблон імпорту:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
- Дотримуйтесь стилю та найкращих практик Vue.js 2
- Конфігурація ESLint у
quiz-app/package.json
- Використовуйте однофайлові компоненти Vue (.vue файли)
- Підтримуйте архітектуру, засновану на компонентах
- Запустіть
npm run lint
перед внесенням змін
- Використовуйте чітку ієрархію заголовків (# ## ### тощо)
- Додавайте блоки коду з вказівкою мови
- Додавайте альтернативний текст для зображень
- Посилайтеся на пов’язані уроки та ресурси
- Зберігайте розумну довжину рядків для зручності читання
- Контент уроків у пронумерованих папках (01-defining-data-science тощо)
- Рішення у спеціальних підпапках
solution/
- Переклади дзеркалять структуру англійської у папці
translations/
- Файли даних у папці
data/
або у папках, специфічних для уроків
cd quiz-app
# Build production version
npm run build
# Output is in dist/ folder
# Deploy dist/ folder to static hosting (Azure Static Web Apps, Netlify, etc.)
Додаток quiz-app можна розгорнути на Azure Static Web Apps:
- Створіть ресурс Azure Static Web App
- Підключіть до репозиторію GitHub
- Налаштуйте параметри збірки:
- Розташування додатка:
quiz-app
- Розташування вихідних даних:
dist
- GitHub Actions автоматично розгорне при пуші
# Build PDF from Docsify (optional)
npm run convert
# Docsify documentation is served directly from markdown files
# No build step required for deployment
# Deploy repository to static hosting with Docsify
- Репозиторій включає конфігурацію контейнера розробки
- Codespaces автоматично налаштовує середовище Python та Node.js
- Відкрийте репозиторій у Codespace через інтерфейс GitHub
- Усі залежності встановлюються автоматично
# For Vue.js changes in quiz-app
cd quiz-app
npm run lint
npm run build
# Test changes locally
npm run serve
- Використовуйте чіткі, описові заголовки
- Формат:
[Компонент] Короткий опис
- Приклади:
[Lesson 7] Виправлення помилки імпорту в Python ноутбуці
[Quiz App] Додано переклад німецькою
[Docs] Оновлено README з новими вимогами
- Переконайтеся, що весь код виконується без помилок
- Перевірте повне виконання ноутбуків
- Переконайтеся, що додатки Vue.js успішно збираються
- Перевірте, чи працюють посилання в документації
- Тестуйте додаток для вікторин, якщо він змінений
- Переконайтеся, що переклади зберігають послідовну структуру
- Дотримуйтесь існуючого стилю та шаблонів коду
- Додавайте пояснювальні коментарі для складної логіки
- Оновлюйте відповідну документацію
- Тестуйте зміни в різних модулях уроків, якщо це можливо
- Ознайомтеся з файлом CONTRIBUTING.md
- pandas: Обробка та аналіз даних
- numpy: Числові обчислення
- matplotlib: Візуалізація даних та побудова графіків
- seaborn: Статистична візуалізація даних (деякі уроки)
- scikit-learn: Машинне навчання (просунуті уроки)
- Файли даних розташовані в папці
data/
або у папках, специфічних для уроків
- Більшість ноутбуків очікують файли даних у відносних шляхах
- Основний формат даних — CSV
- Деякі уроки використовують JSON для прикладів нереляційних даних
- 40+ мовних перекладів через автоматизовані GitHub Actions
- Робочий процес перекладу в
.github/workflows/co-op-translator.yml
- Переклади в папці
translations/
з кодами мов
- Переклади вікторин у
quiz-app/src/assets/translations/
- Локальна розробка: Встановіть Python, Jupyter, Node.js локально
- GitHub Codespaces: Хмарне миттєве середовище розробки
- VS Code Dev Containers: Локальна розробка на основі контейнерів
- Binder: Запуск ноутбуків у хмарі (якщо налаштовано)
- Кожен урок є самостійним, але базується на попередніх концепціях
- Вікторини перед уроком перевіряють попередні знання
- Вікторини після уроку закріплюють навчання
- Завдання забезпечують практичне застосування
- Скетчноти надають візуальні резюме
Проблеми з ядром Jupyter:
# Ensure correct kernel is installed
python -m ipykernel install --user --name=datascience
Помилки встановлення npm:
# Clear npm cache and retry
npm cache clean --force
rm -rf node_modules package-lock.json
npm install
Помилки імпорту в ноутбуках:
- Переконайтеся, що всі необхідні бібліотеки встановлені
- Перевірте сумісність версії Python (рекомендується Python 3.7+)
- Переконайтеся, що віртуальне середовище активоване
Docsify не завантажується:
- Переконайтеся, що ви запускаєте сервер з кореня репозиторію
- Перевірте наявність файлу
index.html
- Переконайтеся у правильному доступі до мережі (порт 3000)
- Великі набори даних можуть займати час для завантаження в ноутбуках
- Візуалізація може бути повільною для складних графіків
- Сервер розробки Vue.js забезпечує гаряче перезавантаження для швидкої ітерації
- Виробничі збірки оптимізовані та мінімізовані
- Не слід зберігати конфіденційні дані або облікові дані в репозиторії
- Використовуйте змінні середовища для будь-яких ключів API у хмарних уроках
- Уроки, пов’язані з Azure, можуть вимагати облікових даних облікового запису Azure
- Оновлюйте залежності для усунення вразливостей
- Автоматизовані переклади керуються через GitHub Actions
- Вітаються ручні виправлення для точності перекладу
- Дотримуйтесь існуючої структури папок перекладу
- Оновлюйте посилання на вікторини, додаючи параметр мови:
?loc=fr
- Тестуйте перекладені уроки на правильність відображення
- Регулярні оновлення для актуалізації контенту
- Вітаються внески від спільноти
- Проблеми відстежуються на GitHub
- PR перевіряються кураторами навчальної програми
- Щомісячні огляди та оновлення контенту
Відмова від відповідальності:
Цей документ був перекладений за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникають внаслідок використання цього перекладу.