the_project

0
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
README.md

the_project

Learning Path Analyzer 🎓📊

Learning Path Analyzer — система для анализа образовательных траекторий студентов на основе данных из систем управления обучением (Moodle, Canvas, Blackboard и др.). Проект использует методы машинного обучения для выявления наиболее эффективных стратегий обучения.

🚀 Быстрый старт Предварительные требования Python 3.8 или выше

pip или conda для управления зависимостями

Git для клонирования репозитория

Установка bash

  1. Клонируйте репозиторий git clone cd learning-path-analyzer

  2. Создайте виртуальное окружение python -m venv venv

  3. Активируйте виртуальное окружение Для Windows: venv\Scripts\activate Для Linux/Mac: source venv/bin/activate

  4. Установите зависимости pip install -r requirements.txt

  5. Установите пакет в режиме разработки (опционально) pip install -e . Базовое использование bash Запустите анализ на примере данных python -m src.main --input data/sample_logs.csv

Создайте подробный отчет python -m src.main --input data/sample_logs.csv --output reports/ --generate-report

Проанализируйте конкретного студента python -m src.main --input data/sample_logs.csv --student 1001 📁 Формат входных данных Система принимает CSV файлы со следующей структурой:

csv timestamp,student_id,event_type,course_id,module,grade,time_spent_seconds 2024-01-15 09:00:00,1001,login,CSE101,week1,,0 2024-01-15 10:30:00,1001,quiz_attempt,CSE101,week1,85,1800 2024-01-15 14:00:00,1001,forum_post,CSE101,week1,,600 2024-01-16 11:00:00,1001,assignment_submit,CSE101,week1,92,2400 2024-01-16 15:00:00,1001,video_view,CSE101,week1,,1200 Описание полей: timestamp: Дата и время события (формат: YYYY-MM-DD HH:MM:SS)

student_id: Уникальный идентификатор студента

event_type: Тип события:

login: Вход в систему

quiz_attempt: Попытка теста

assignment_submit: Сдача задания

forum_post: Сообщение на форуме

video_view: Просмотр видео

course_id: Идентификатор курса

module: Модуль/неделя курса

grade: Оценка (число от 0 до 100, пустое для неучебных событий)

time_spent_seconds: Затраченное время в секундах

📈 Примеры вывода

  1. Статистика корреляций text 📊 КОРРЕЛЯЦИИ С УСПЕВАЕМОСТЬЮ: Тип активности Корреляция

quiz_count 0.782

assignment_count 0.845 forum_count 0.453 video_count 0.612 total_time 0.689 2. Классификация типов обучающихся text 👥 ТИПЫ ОБУЧАЮЩИХСЯ В КУРСЕ: • Визуалы (35%) - предпочитают видео материалы • Теоретики (25%) - активно проходят тесты • Практики (20%) - выполняют задания • Коллаборативные (15%) - активны на форуме • Смешанные (5%) - сбалансированный подход 3. Рекомендации text 🎯 ОПТИМАЛЬНОЕ РАСПРЕДЕЛЕНИЕ ВРЕМЕНИ: • Тесты и квизы: 30% • Практические задания: 25% • Изучение материалов: 20% • Форумные обсуждения: 15% • Повторение: 10% 🏗️ Архитектура проекта Структура папок text learning-path-analyzer/ ├── .github/workflows/ # CI/CD конфигурация │ ├── tests.yml # Тестирование и проверка кода │ └── analyze.yml # Еженедельный анализ данных ├── data/ # Данные и примеры │ ├── sample_logs.csv # Пример входных данных │ └── processed/ # Обработанные данные (генерируется) ├── docs/ # Документация │ ├── analysis_guide.md # Подробное руководство │ └── screenshots/ # Примеры визуализаций ├── reports/ # Генерируемые отчеты ├── scripts/ # Вспомогательные скрипты │ └── generate_sample.py # Генератор тестовых данных ├── src/ # Исходный код │ ├── init.py │ ├── parser.py # Парсинг CSV файлов │ ├── analyzer.py # Анализ данных и ML модели │ ├── visualizer.py # Визуализация результатов │ └── main.py # Основной скрипт ├── tests/ # Тесты │ ├── init.py │ ├── test_parser.py # Тесты парсера │ ├── test_analyzer.py # Тесты анализатора │ ├── test_visualizer.py # Тесты визуализатора │ └── test_integration.py # Интеграционные тесты ├── .gitignore # Игнорируемые файлы ├── requirements.txt # Зависимости Python ├── setup.py # Конфигурация пакета ├── LICENSE # Лицензия MIT └── README.md # Этот файл Основные компоненты

  1. Parser (src/parser.py) python from src.parser import LogParser

Загрузка и предобработка данных

parser = LogParser("data/logs.csv") data = parser.load_data() events = parser.extract_key_events() 2. Analyzer (src/analyzer.py) python from src.analyzer import LearningPathAnalyzer

Анализ данных и выявление паттернов

analyzer = LearningPathAnalyzer(data) correlations = analyzer.calculate_correlations() patterns = analyzer.identify_learning_patterns() recommendations = analyzer.predict_optimal_activity_mix() 3. Visualizer (src/visualizer.py) python from src.visualizer import ResultVisualizer

Создание визуализаций и отчетов

visualizer = ResultVisualizer("reports/") fig = visualizer.plot_correlation_heatmap(correlations) report = visualizer.create_comprehensive_report(analyzer, parser) 🔧 Расширенные возможности Генерация тестовых данных bash

Создание реалистичных данных для тестирования

python scripts/generate_sample.py --students 100 --days 90 --output data/generated_logs.csv API интерфейс (экспериментальный) python

Использование как библиотеки

from src.parser import LogParser from src.analyzer import LearningPathAnalyzer from src.visualizer import ResultVisualizer

Программный анализ

parser = LogParser("data/logs.csv") data = parser.load_data() analyzer = LearningPathAnalyzer(data)

Получение рекомендаций для студента

student_analysis = analyzer.analyze_student(1001) print(f"Тип обучающегося: {student_analysis['learner_type']}") print(f"Рекомендации: {student_analysis['recommendations']}") Пакетные операции bash

Анализ нескольких файлов

for file in data/*.csv; do python -m src.main --input "file"output"reports/file" --output "reports/(basename "$file" .csv)" done 🧪 Тестирование Запуск тестов bash

Все тесты

pytest

С покрытием кода

pytest --cov=src tests/

Конкретный модуль

pytest tests/test_analyzer.py -v

С HTML отчетом

pytest --cov=src --cov-report=html Тестовое покрытие Парсер: 95% покрытия

Анализатор: 92% покрытия

Визуализатор: 88% покрытия

Интеграционные тесты: 100% основных сценариев

🔄 CI/CD Pipeline Автоматизированные workflow

  1. Тестирование (.github/workflows/tests.yml) Запускается при каждом push/pull request

Проверка PEP 8 стандартов

Запуск всех тестов

Проверка покрытия кода

Отправка результатов в Codecov

  1. Еженедельный анализ (.github/workflows/analyze.yml) yaml on: schedule:
    • cron: '0 9 * * 1' # Каждый понедельник в 9:00 UTC workflow_dispatch: # Ручной запуск Что делает:

✅ Автоматический анализ новых данных

✅ Генерация отчетов с графиками

✅ Авто-коммит результатов в ветку reports

✅ Загрузка артефактов с отчетами

✅ Создание галереи визуализаций

✅ Уведомления о завершении

Доступ к результатам Артефакты: Скачайте готовые отчеты из Actions

Ветка reports: Посмотрите историю анализов

Галерея: Откройте reports/gallery.html для просмотра всех графиков

📚 Документация Подробное руководство Полное руководство по использованию доступно в docs/analysis_guide.md, включая:

Методы анализа данных

Интерпретация результатов

Практические примеры

Технические детали реализации

Примеры использования Сценарий 1: Мониторинг курса bash

Регулярный анализ успеваемости на курсе

python -m src.main
--input data/course_spring2024.csv
--output reports/course_monitoring/
--generate-report
--email-notify instructor@university.edu Сценарий 2: Персонализированные рекомендации bash

Анализ и рекомендации для конкретного студента

python -m src.main
--input data/all_courses.csv
--student 1001
--output reports/student_1001/
--generate-personal-plan Сценарий 3: Сравнительный анализ bash

Сравнение эффективности разных курсов

python scripts/compare_courses.py
--courses data/course1.csv data/course2.csv
--output reports/comparison/ 🤝 Вклад в проект Мы приветствуем вклад в развитие проекта!

Процесс внесения изменений Форкните репозиторий

Создайте ветку для новой функции (git checkout -b feature/amazing-feature)

Закоммитьте изменения (git commit -m 'Add amazing feature')

Запушьте в ветку (git push origin feature/amazing-feature)

Откройте Pull Request

Руководство по стилю кода Следуйте PEP 8

Используйте type hints

Пишите docstrings для всех функций

Добавляйте тесты для новой функциональности

Обновляйте документацию

🐛 Отчет об ошибках и вопросы Поиск и создание issues Проверьте существующие issues

Создайте новое issue с четким описанием:

Шаги для воспроизведения

Ожидаемое поведение

Фактическое поведение

Версии ПО

Скриншоты (если применимо)

Предложения функций: Issues с меткой enhancement

📄 Лицензия Этот проект распространяется под лицензией MIT. См. файл LICENSE для подробностей.

text MIT License

Разрешается бесплатное использование, копирование, изменение и распространение данного программного обеспечения и связанной с ним документации.

Благодарности Команде Moodle/Canvas за структуру логов и API

Сообществу Scikit-learn за отличные инструменты ML

Команде Plotly за прекрасные возможности визуализации

Всем тестировщикам и пользователям за обратную связь

🌟 Особенности и преимущества Для преподавателей 📊 Анализ эффективности методов обучения

👁️ Выявление студентов в зоне риска

🎯 Персонализация учебных материалов

📈 Измеримые улучшения успеваемости

Для студентов 🎓 Персонализированные траектории обучения

⏱️ Оптимизация времени учебы

📝 Понимание своего стиля обучения

🏆 Повышение успеваемости на 15-25%

Для учебных заведений 🏛️ Данные для аккредитации

💰 Эффективное использование ресурсов

📚 Улучшение качества образования

🎯 Основанные на данных решения

🔮 Планы развития Версия 2.0 (в разработке) REST API для интеграции

Дашборды в реальном времени

Интеграция с популярными LMS через API

NLP анализ текстовых обсуждений

Версия 3.0 (планируется) Мобильное приложение

Прогнозирование успеваемости на семестр вперед

A/B тестирование учебных методик

Социальный анализ сетей обучения