Как программисту написать диплом. Полное руководство
Всем привет, меня зовут Александр и в этом году я заканчиваю магистратуру.
Так получилось, что сейчас я пишу 2 диплома или, правильнее сказать, 2 магистерских диссертации одновременно: одну на русском языке по российским стандартам, а вторую — на английском языке по немецким стандартам. Почему так получилось, я расскажу как нибудь потом (совсем другая история), а сейчас, я бы хотел поделиться своими знаниями в области написания работ бакалавров и магистерских диссертаций в преддверии летних защит.
Введение. Фундамент работы
Как и в твоём дипломе, в моей статье тоже должно быть введение. О структуре поговорим позже, а сейчас, хотел бы сказать с чего всё начинается.
А начинается всё с того, что тебе необходимо что-то сделать, например, если ты бакалавр, то твоя работа должна быть более проектной (70% Техническая часть 30% Исследовательская часть). Обычно, работы бакалавров в Computer Science заключаются в создании какого либо приложения, которое автоматизирует определенную задачу, например «Автоматизированная система библиотеки».
Работы магистров формально и фактически должны состоять в большей степени из исследовательской части и в меньшей из технической (70/30). Но зачастую, программисты делают магистерские работы аналогичными бакалаврским, только в более расширенном варианте и пытаются притянуть за уши какую-никакую «науку» в них.
Если хочешь написать хороший диплом, задумайся об этом за 1 год, а ещё лучше за 2. Если ты бакалавр, то можешь начать спрашивать на кафедре про проекты, в которых ты бы мог принять участие. Если кафедра разрешает писать дипломы по своим собственным проектам — тоже хорошо. Если ты магистр, то самым простым вариантом будет продолжать делать то, что ты уже делал в бакалавриате, пытайся изобрести что-нибудь новое или же использовать что-то существующее в новой задаче. Публикация статей и поездки на конференции формируют бэкграунд для того, чтобы успешно написать свою работу и суметь её защитить.
Личный пример: Тема моего бакалаврского диплома находится на стыке Computer Science и Natural Language Processing (NLP) и называлась так: «Разработка диалоговой системы для помощи студентам и абитуриентам ВУЗа». Этакий ВУЗовский чатбот. В данной работе большее внимание я уделял написанию веб-приложения и меньше рассматривал отдельные методы из NLP, которые я использовал в своём чатботе. В магистерской диссертации наоборот, я большее внимание уделяю конкретным методам и подзадачам. Изучаю влияние входных данных на качество выхода и так далее. Разработке приложения уделяется минимальное внимание, в этом и разница.
Итак, что же нужно делать? Если ты бакалавр — пиши приложение, если магистр — делай исследование. В обоих случаях старайся ездить на конференции и публиковать статьи — это поможет заложить крепкий фундамент выпускной квалификационной работы.
Когда это нужно делать? Начинать нужно за 1-2 года до срока сдачи диплома, а заканчивать стоит за 1-2 месяца до сдачи. Это время тебе понадобится на написание отчёта, о котором поговорим далее.
Зачем это нужно делать? В первую очередь для себя. Если ты сможешь написать простенькое CRUD приложение, то у тебя есть все шансы пойти работать Junior разработчиком в локальную ИТ-конторку. А ещё, тебе нужно выпуститься из ВУЗа, так что код писать в любом случае придётся.
Написание отчёта
Обычно, под дипломом студенты понимают именно отчёт, особенно такое мнение популярно в России. Более того, я знаю человека, который часть своего диплома написал с помощью генератора текста (о котором и был его диплом). К сожалению, такой подход, по моему мнению, ошибочен, ведь отчёт — это всего лишь описание того, что ты сделал. А о том, что нужно делать мы уже поговорили в предыдущей части.
Перед тем, как писать отчёт — тебе необходимо почитать научные статьи по твоей тематике, желательно те, которые ты потом сможешь использовать в списке литературы своей работы. Выбери 15-20 статей (50% русских, 50% зарубежных) и начни штудировать. Искать статьи можно тут: E Library и Google Scholar. Так же полезно иметь парочку полноценных книг по твоей теме, из них можно брать фундаментальные понятия, например про принципы ООП. Искать книги можно тут: Вконтакте Документы OZON. Можешь не читать всё целиком, а лишь бегло и осознанно пробежаться по основным пунктам, впоследствии, для уточнения деталей ты ещё не раз будешь возвращаться к той или иной статье.
После того, как ты ознакомился с литературой, можешь начинать накидывать «скелет» твоего диплома. Где это делать — решать тебе, обычно все пишут в Ворде, можно делать в Гугл Доке, а если ты преисполненный и умеешь пользоваться LaTeX, то ищи соответствующий шаблон и пиши там! Примерная структура диплома программиста в соответствие с ГОСТом 7.32 выглядит следующим образом:
- Титульный лист (зависит от вашего ВУЗа)
- Реферат (пишется по госту, примерная длина — одна страница)
- Определения (прописываем все определения, например «Инкапсуляция — . ». Всё в алфавитном порядке)
- Обозначения и сокращения (прописываем в алфавитном порядке все аббревиатуры)
- Введение (описание важности проблемы, статистика, описание самой проблемы, цель и задачи)
- 1. Теоретические и технические основы (описывает основные понятия и технологии, которые вы используете)
- 2. Описание предложенного подхода (для бакалавров — проектирование программного продукта со всеми вытекающими, для магистров постановка и описание экспериментов, описание предлагаемых методов решения задачи)
- 3. Имплементация (для бакалавров — описание процесса разработки, для магистров — описание процесса проведения экспериментов, анализ результатов и выведенные инсайды).
- Заключение (подведение итогов, обзор выполненных задач и цели, ограничения работы и последующая работа)
- Список использованных источников (в порядке цитирования, можно юзать сервис snoska.info)
- Приложения (может быть листинг кода, модели данных и т.д.)
Ещё, к данной структуре диплома могут быть добавлены две главы: Экономическое обоснование и Защита информации. Всё зависит от требований вашей кафедры или университета.
По поводу оформления — я бы не хотел вдаваться в подробности в этой статье, требования достаточно полно описаны в ГОСТе 7.32.
Личный пример: диплом бакалавра я писал в Ворде и с этого получил очень много баттхёрта, теперь я пишу диплом в Гугл Доках и пока не заморачиваюсь по поводу оформления. К слову сказать, в Германии нет жёстких требований по оформлению — главное содержание. Но, об этом, в следующей статье.
Итак, что же нужно делать? Найди 15-20 научных статей и пробегись по ним. Создай документ в Ворде (или в чем-то другом), накидай его структуру в соответствие с приведенным тут содержанием и начинай шаг за шагом писать текст. Далее, открой ГОСТ и скорректируй оформление.
Когда это нужно делать? Начинай писать отчёт за 2-3 месяца до сдачи диплома.
Зачем это нужно делать? Это формальность, которая позволит тебе выпуститься из ВУЗа. Есть и приятный бонус: написание отчёта помогает тебе структурировать в голове все знания, полученные в процессе работы.
Подготовка презентации
Окей, ты проделал большую работу и написал отчёт, осталось это красиво презентовать. Начинай готовить слайды, когда отчёт уже почти завершен. Структура презентации должна примерно соответствовать структуре твоего отчёта, а оформление слайдов индивидуально для каждого ВУЗа или кафедры.
- Вставлять код на слайды
- Вставлять длинные схемы алгоритмов на слайды
- Писать длинные определения
- Заполнять слайд текстом на 100%
Личный пример: я всегда структурирую слайды для презентации по тому же принципу, как и в отчёте. Готовлю слайды в зависимости от требований по оформлению, если сторих рамок нет, то использую LaTeX, если есть строгие правила по оформлению и нет шаблона в LaTeX, то использую Power Point.
Итак, что же нужно делать? Создай структуру слайдов в соответствии с оглавлением твоего отчета и заполни их шаг за шагом. Затем, по тому же принципу напиши доклад и отрепетируй презентацию.
Когда это нужно делать? Начинай готовить презентацию за 2-3 недели до защиты.
Зачем это нужно делать? Опять же, это формальность, которая позволит тебе выпуститься из ВУЗа. А ещё, это поможет тебе научиться грамотно презентовать твоё исследование.
Заключение
Вместо заключения хотел бы пожелать всем, кто в этом году заканчивает ВУЗ — удачных защит, а тем, кто это будет делать позже — «готовьте сани летом». Если лень читать, просто пробегись по пунктам, выделенным жирным шрифтом, там я постарался собрать краткую выжимку из каждого параграфа. Жду ваши комментарии внизу!