Индивидуальный проект. Этап 2. Общие положения по работе.
3.03M
Category: pedagogypedagogy

Оформление индивидуального проекта. Этап 2. Общие положения по работе

1. Индивидуальный проект. Этап 2. Общие положения по работе.

Дисциплина

2.

План занятия:
≻ Разберемся с тем, что должен содержать ваш
индивидуальный проект
≻ Обсудим зачем нам это нужно
≻ Подведем итоги активности

3.

Этап 2 и 3
После выполнения
Технического задания,
которое будет приложено к
вашей основной работе, мы
рассмотрим, как будет
оформляться основной
документ.

4.

Общее содержание
Помимо титульного листа, содержания и введния, работа будет
делиться на 2 основные части, которые и являются отдельными
этапами работы.
≻ Теоретическое обоснование
≻ Проектирование и разработка
В случае если проект связан с программированием, у вас появляется
дополнительная 3-ья часть:
≻ Тестирование и отладка
А также в конце необходимо привести:
≻ Заключение
≻ Список литературы
≻ Приложение

5.

Титульный лист
Титульный лист вы можете скачать с Odin. Ваша задача,
поменять содержание, а именно:



Код и название учебного направления
Название темы проекта
Автора проекта

6.

Содержание и введение
Содержание оформляется согласно всем главам в документе. В введении описывается следующее:
•Актуальность темы: Обоснование важности и значимости выбранной темы. Почему эта задача
важна? Какие проблемы она решает?
•Цель проекта: Чёткое формулирование цели проекта – что конкретно вы хотите достичь.
•Задачи проекта: Конкретные шаги, которые необходимо выполнить для достижения цели. Задачи
должны быть измеримыми и достижимыми.
•Предмет исследования/разработки: Конкретные аспекты объекта исследования/разработки, на
которые направлено внимание (например, эффективность алгоритма, удобство использования
программы).
•Методы исследования/Технологии разработки: Перечисление методов/технологий, которые
использовались при выполнении проекта (например, анализ литературы, моделирование,
эксперимент, тестирование, языки программирования, библиотеки, утилиты).
•Практическая значимость: Описание возможного применения результатов проекта в реальной
жизни.

7.

Глава 1. Теоретическое
обоснование
Теоретическое обоснование в основной части
индивидуального проекта – это раздел, в
котором вы демонстрируете свои знания в
выбранной области, определяете контекст своей
работы и подготавливаете основу для
дальнейшего изложения практической части.
Оно показывает, что вы не просто скопировали
работу, а понимаете принципы, лежащие в
основе.

8.

Цель теоретического
обоснования:
•Обосновать актуальность темы: Почему выбранная тема важна и востребована в
настоящее время?
•Показать знание предметной области: Демонстрация понимания основных
концепций, терминов и технологий, используемых в проекте.
•Определить место проекта в существующей области знаний: Анализ
существующих решений, выявление их преимуществ и недостатков, и определение
того, как ваш проект решает проблемы или предлагает новые подходы.
•Обосновать выбор используемых технологий и инструментов: Почему были
выбраны именно эти языки программирования, библиотеки, фреймворки и другие
инструменты?

9.

Структура теоретического обоснования
(рекомендуемая):
1.Введение в предметную область:
1. Общее описание предметной области: Дайте общее
представление о теме, в которой разрабатывается проект.
Определите ключевые термины и понятия.
2. История развития (опционально): Краткий обзор истории
развития предметной области, если это уместно (например,
эволюция языков программирования, развитие веб-технологий).
3. Современное состояние предметной области: Опишите текущие
тенденции и направления развития в выбранной области.

10.

2. Обзор существующих решений и аналогов:
1. Анализ существующих программных продуктов, библиотек, фреймворков,
алгоритмов и других решений, имеющих отношение к вашему
проекту: Опишите, какие решения уже существуют для решения поставленной
задачи.
2. Сравнение и оценка: Сравните существующие решения по ключевым критериям
(например, производительность, функциональность, удобство использования,
стоимость).
3. Выявление преимуществ и недостатков: Обозначьте сильные и слабые стороны
каждого решения.
4. Определение места вашего проекта: Как ваш проект отличается от
существующих решений? Какие проблемы он решает лучше? Какие новые
возможности он предоставляет? Почему он необходим?

11.

3. Обоснование выбора используемых
технологий и инструментов:
1. Описание выбранных технологий и инструментов: Опишите языки
программирования, библиотеки, фреймворки, базы данных, операционные
системы, среды разработки и другие инструменты или приложения,
которые вы использовали в проекте.
2. Обоснование выбора: Объясните, почему вы выбрали именно эти
технологии и инструменты. Какие у них преимущества для решения
поставленной задачи? Учитывали ли вы ограничения (например,
лицензионные ограничения, доступность документации, сложность
освоения)?
3. Альтернативные варианты: Рассматривали ли вы альтернативные
технологии и инструменты? Если да, то почему они были отклонены?

12.

4. Теоретические основы:
1. Изложение основных теоретических концепций,
алгоритмов, примеров и моделей, лежащих в основе
вашего проекта: Этот раздел должен показать, что вы
понимаете, как работает ваш проект на уровне теории.
Приведите необходимые формулы, определения, теоремы,
модельные концепции.
2. Примеры: Проиллюстрируйте теоретические концепции
конкретными примерами, связанными с вашим проектом.

13.

5. Заключение (в рамках теоретического
обоснования):
•Краткое резюме: Подведите итог теоретического
обоснования. Обобщите основные выводы и подчеркните,
как теоретические знания будут использованы в
практической части проекта.
•Переход к практической части: Плавно перейдите к
описанию практической реализации проекта, указав, как
теоретические знания нашли свое применение в
разработке.

14.

Глава 2. Проектирование и Разработка
Глава 2 “Проектирование и Разработка” – это ключевая часть
индивидуального проекта, демонстрирующая практическое
применение знаний и навыков. Она является логическим
продолжением теоретического обоснования и раскрывает
процесс создания программного продукта от замысла до
реализации.

15.

Основное назначение главы “Проектирование и
Разработка”:
1.Демонстрация понимания процесса разработки: Показать, что вы не просто знаете, как
писать код, но и понимаете все этапы разработки программного обеспечения, включая анализ
требований, проектирование архитектуры и реализацию.
2.Подтверждение умения применять теоретические знания на практике: Связать теоретические
знания, изложенные в первой главе, с конкретными решениями, принятыми при разработке
проекта. Показать, как выбранные технологии и инструменты были использованы для
достижения поставленных целей.
3.Описание процесса принятия решений: Обосновать выбор конкретных технологий,
инструментов, архитектурных решений и алгоритмов. Показать, что решения были приняты не
случайно, а на основе анализа и оценки различных вариантов.
4.Документирование процесса разработки: Создать подробную документацию проекта, которая
может быть использована для дальнейшего развития, поддержки и сопровождения
программного продукта.

16.

2.1 Постановка задачи (Техническое
задание)
Так как техническое задание делается отдельно, в работе
достаточно написать краткое описание с отсылкой к
приложению:
1. Начните с краткого описания цели и назначения ТЗ.
2. Перечислите ключевые разделы ТЗ.
3. Сделайте акцент на наиболее важных требованиях и
ограничениях.
4. Укажите, где можно найти полный текст ТЗ. (ТЗ должно
быть в приложении)

17.

2.2 Описание алгоритма
2.2.1 Обзор Ключевых Функциональных Областей:
• Вместо общего описания алгоритма, начните с описания основных
функциональных областей вашего приложения. Перечислите 3-5 самых
важных функций или модулей, которые определяют его работу.
• Пример: “Приложение состоит из следующих ключевых функциональных
областей: 1) Аутентификация и авторизация пользователей; 2) Управление
задачами; 3) Планирование и оптимизация маршрутов доставки; 4) Анализ
данных и формирование отчетов.”
2.2.2 Описание Ключевых Алгоритмов (Абстрактный уровень):
• Выбор алгоритмов: Выберите 2-3 самых важных и сложных алгоритма,
которые реализуют ключевые функциональные области.
• Абстрагирование: Не описывайте каждый шаг алгоритма в деталях.
Сосредоточьтесь на его логике и цели. Что алгоритм делает? Какие входные
данные он принимает? Какие выходные данные он выдает? Какие основные
этапы он проходит?
2.2.3 Примеры основных листингов:
• Выбор алгоритмов: Выберите 2-3 самых важных и сложных алгоритма,
которые реализуют ключевые функциональные области и отобразите код в
формате изображения

18.

Пример листинга функции представления для обработки данных через фильтры

19.

2.3 Выбор языка программирования и
инструментов разработки
2.3.1 Язык программирования:
• Критерии выбора:
• Простота и читаемость кода.
• Наличие необходимых библиотек и фреймворков.
• Производительность.
• Сообщество разработчиков и доступность документации.
• Совместимость с другими используемыми технологиями.
Пример обоснования (Python): “Язык Python был выбран благодаря его простоте и
читаемости, что упрощает разработку и поддержку кода. Python также имеет широкую
экосистему библиотек и фреймворков для веб-разработки, таких как Django и Flask,
которые значительно ускоряют процесс разработки. Кроме того, Python является
кроссплатформенным языком, что позволяет запускать приложение на различных
операционных системах.”

20.

2.3.2 Среда разработки (IDE):
Критерии выбора:
• Удобство редактирования кода.
• Наличие инструментов для отладки.
• Интеграция с системой контроля версий.
• Поддержка автодополнения кода.
• Возможность установки плагинов и расширений.
Пример обоснования (VS Code): “Visual Studio Code (VS Code) был выбран в качестве
среды разработки благодаря его легковесности, гибкости и широкой поддержке
различных языков программирования. VS Code предоставляет удобные инструменты для
редактирования кода, отладки, интеграции с Git и установки плагинов, расширяющих его
функциональность. Кроме того, VS Code является бесплатным и кроссплатформенным.”

21.

2.3.3 Другие инструменты:
Примеры инструментов и обоснования:
• Система контроля версий (Git): “Git была выбрана для управления версиями кода, что
позволяет отслеживать изменения, совместно работать над проектом и восстанавливать
предыдущие версии кода в случае необходимости. GitHub используется как платформа
для хранения и обмена кодом.”
• Фреймворк (React): “React был выбран для разработки пользовательского интерфейса
благодаря его компонентной архитектуре, которая упрощает создание сложных и
интерактивных интерфейсов. React также обеспечивает высокую производительность и
удобство разработки.”
• База данных (PostgreSQL): “PostgreSQL была выбрана в качестве базы данных
благодаря ее надежности, масштабируемости и поддержке транзакций ACID.
PostgreSQL также поддерживает широкий спектр типов данных и функций, что
позволяет эффективно хранить и обрабатывать данные приложения.”

22.

2.4 Архитектура приложения
2.4.1 Общая архитектура:
Типы архитектур:
• Трехзвенная архитектура (Client-Server): Frontend, Backend, Database.
• Микросервисная архитектура: Приложение разбивается на небольшие, независимые
сервисы, взаимодействующие друг с другом.
• Monolithic architecture: Все компоненты приложения объединены в один модуль.
Описание выбранной архитектуры:
• Опишите выбранную архитектуру и объясните, почему она подходит для вашего проекта.
• Пример: “Для данного проекта была выбрана трехзвенная архитектура, так как она
обеспечивает хорошую разделяемость ответственности, масштабируемость и удобство
разработки. Frontend отвечает за взаимодействие с пользователем, backend
обрабатывает запросы и взаимодействует с базой данных, а база данных хранит
данные.”

23.

2.4.2 Модульная структура:
Примеры модулей:
•auth_module: Модуль аутентификации и авторизации пользователей.
•tasks_module: Модуль управления задачами.
•projects_module: Модуль управления проектами.
•api_module: Модуль API для взаимодействия с frontend.
•database_module: Модуль для взаимодействия с базой данных.
•utils_module: Модуль, содержащий общие утилиты и функции.
•Описание каждого модуля:
•Опишите, за что отвечает каждый модуль, какие функции он выполняет и какие другие модули
использует.
2.4.3 Взаимодействие между компонентами:
Примеры:
•“Когда пользователь пытается войти в систему, frontend отправляет запрос в auth_module. auth_module проверяет
логин и пароль пользователя в базе данных через database_module. Если данные верны, auth_module создает сессию
пользователя и возвращает токен аутентификации frontend.”
•“Когда пользователь создает новую задачу, frontend отправляет запрос в tasks_module. tasks_module сохраняет
данные задачи в базе данных через database_module и уведомляет пользователя об успешном создании задачи.”

24.

2.5 Реализация
Описание процесса разработки:
Методология разработки:
• Опишите, какую методологию разработки вы использовали (например, Agile, Waterfall,
Scrum) и объясните почему вы выбрали именно эту методологию.
Этапы разработки:
• Опишите основные этапы разработки проекта.
• Пример: “Разработка проекта проходила в несколько этапов: 1) Сбор требований и
разработка технического задания; 2) Проектирование архитектуры приложения; 3)
Разработка backend; 4) Разработка frontend; 5) Тестирование и отладка; 6)
Развертывание приложения.”
Сложности и решения:
• Опишите, какие сложности возникли в процессе разработки и как вы их решали.

25.

2.6 Описание пользовательского
интерфейса (UI)
2.6.1 Общее описание UI:
Принципы дизайна: Опишите, какие принципы дизайна
вы использовали при создании пользовательского
интерфейса (например, минимализм, flat design, material
design).
Цветовая схема: Опишите используемую цветовую схему
и объясните, почему вы выбрали именно эти цвета.
Типографика: Опишите используемые шрифты и их
размеры.
Адаптивность: Опишите, как пользовательский
интерфейс адаптируется под разные размеры экранов.

26.

2.7 Описание базы данных (БД)
2.7.1 Структура базы данных:
•Таблицы: Опишите каждую таблицу в базе данных.
•Поля: Для каждого поля укажите:
•Название поля.
•Тип данных.
•Ограничения (например, Primary Key, Foreign Key, Not Null).
•Описание.
•Пример (таблица tasks):
•id: Integer, Primary Key, Not Null, Автоинкрементное значение.
•title: Varchar(200), Not Null, Название задачи.
•description: Text, Описание задачи.
•due_date: Date, Срок выполнения задачи.
•status: Varchar(50), Not Null, Статус задачи (“Новая”, “В работе”,
“Выполнена”, “Отложена”).
•project_id: Integer, Foreign Key, Ссылка на таблицу projects.
•assignee_id: Integer, Foreign Key, Ссылка на таблицу users.

27.

Заключение
В заключении подводится итог разработки программной части приложения. Акцент
делается на достижении технических целей, реализации алгоритмов и стабильности
работы.
Краткое резюме проделанной работы:
• Напомните, что задачей было создание программной основы продукта.
• Перечислите ключевые реализованные модули и функции (например,
модуль поиска, модуль отображения гайдов, система аутентификации, база
данных и т.д.).
Оценка достигнутых результатов:
• Оцените, насколько удалось реализовать запланированную
функциональность:
• Все ли модули успешно реализованы?
• Работают ли алгоритмы (поиска, фильтрации, сортировки) корректно?
• Насколько стабильно работает приложение?
• Соответствует ли производительность приложения заданным
требованиям?

28.

Выводы:
• Сделайте общие выводы о проекте. Что удалось реализовать успешно? Где возникли
сложности?
• Какие алгоритмы оказались наиболее эффективными?
• Какие архитектурные решения были удачными?
Рекомендации:
• Дайте рекомендации по дальнейшему развитию программной части приложения:
• Какие новые функции можно добавить?
• Какие алгоритмы можно улучшить?
• Как можно оптимизировать производительность приложения?
• Как можно улучшить архитектуру приложения?
• Предложите возможные улучшения в процессе разработки подобных проектов (например,
использование других инструментов, более тщательное планирование).
Личный опыт и рефлексия:
• Поделитесь своими впечатлениями от проекта.
• Что вам понравилось больше всего в процессе программирования? Что было самым
сложным?
• Как этот проект повлиял на ваши навыки и знания в области программирования? Что вы
узнали нового о разработке мобильных приложений?
• Планируете ли вы развиваться в этой области дальше?

29.

Список литературы:
Список литературы должен включать все источники, которые вы использовали при написании
кода и изучении принципов разработки мобильных приложений.
Учебники и справочники:
• Перечислите учебники по языку программирования, фреймворку, базам данных,
которые вы использовали.
Официальная документация:
• Укажите ссылки на официальную документацию по используемым языкам
программирования, фреймворкам и базам данных.
Онлайн-ресурсы:
• Укажите веб-сайты, блоги, статьи, видео, которые вы использовали в качестве
источников информации и примеров кода (Stack Overflow, MDN Web Docs, и т.д.).
Библиотеки и фреймворки:
• Перечислите все библиотеки и фреймворки, которые вы использовали в проекте.

30.

Приложения:
В приложении содержатся дополнительные материалы, важные для понимания программной части
проекта.
Диаграмма архитектуры приложения:
• Графическое представление архитектуры вашего приложения (например, диаграмма UML),
показывающее взаимосвязь между модулями и компонентами.
Диаграмма базы данных (ERD - Entity-Relationship Diagram):
• Графическое представление структуры базы данных, показывающее таблицы, поля и связи
между ними.
Результаты тестирования:
• Приведите результаты тестирования различных модулей и функций приложения.
Конфигурационные файлы:
• Приложите примеры конфигурационных файлов (например, файлы настроек базы данных,
файлы манифеста).
Техническое задание:
• Приложите ваше ТЗ как часть вашей работ.

31.

Итоги занятия:
≻ Объясняйте свои решения: Важно не просто показать свою
работу, а объяснить, почему вы выбрали те или иные решения,
какие альтернативы рассматривали и почему они не подошли.
≻ Показывайте процесс разработки: Опишите, как вы
разрабатывали приложение, какие инструменты использовали,
как тестировали код.

32.

Индивидуальный проект:
знания в коде, опыт в
руках!
English     Русский Rules