Skip to content

Template of the bachelor diploma work proposed for the APPS.UCU students (unofficial copy)

Notifications You must be signed in to change notification settings

ucu-computer-science/b_diploma_template

Repository files navigation

Шаблон диплому APPS.UCU -- неофіційна копія

Цей репозиторій містить LaTeX-шаблон дипломів, який використовується студентами факультету прикладних наук УКУ.

Ця копія неофіційна. Також, тут писатиму технічні поради своїм дипломникам, накопичені за роки1. Оскільки (поки?) всі вони вільно володіють українською, а мені нею писати простіше, ніж російською, то, на відміну від шаблону, пишу українською.

Високорівневе

Цитування

Частиною академічної доброчесності є правильна атрибуція чужої праці з одного боку, з іншого -- підтвердження будь-яких тверджень доказами. Лаконічно це правило щодо академічних текстів можна сформулювати так:

"Кожне твердження або доводиться вами в цьому тексті, або ви до нього даєте цитування, звідки воно взяте."

Звичайно, не слід доводити до абсурду, але коли ви пишете, скажімо, "Для більшості мережевих серверів найважливішим є мінімізувати затримку", і це не є темою та результатом вашого дослідження -- потрібно дати посилання на джерело, яким би самоочевидним вам не здавалося це твердження. Хоча б тому, що часто такі самоочевидні твердження -- більш ніж дискусійні, або, принаймні, з ними не погоджується вагома меншість спільноти відповідних фахівців.

Тому дуже важливим є вказання походження всього чужого, що використовуєте! Обов'язково давайте посилання на всі використані зображення, схеми, код, дані, таблиці тощо. Відсутність такого посилання цілком може бути сприйнята як плагіат. При чому, важливо цитувати саме в підписі до ілюстрації, таблиці тощо, що її взято з джерела такого. Того, що відповідна робота є в списку посилань диплому -- недостатньо.

\begin{figure}[ht]
    \centering
    \includegraphics[width=\linewidth]{images/StructureofNeuralProcessingCircuit}
    \caption{Structure of Neural Processor Circuit~\cite{NNPEngine}.}
    \label{NPC_struct}
\end{figure}

В цілому, в наукових публікаціях використання чужих ілюстрацій і т.д., дуже не рекомендується! Є окремі винятки, наприклад, використання експериментальних графіків у теоретичних роботах чи навпаки, але навіть тоді зазвичай потрібні письмові дозволи від авторів. Однак, в дипломній роботі суворо дотримуватися такої вимоги поки не обов'язково.

Читабельність

На жаль, це, певне, найбільша (принаймні -- для автора цього тексту), проблема з дипломами -- в ілюстраціях, діаграмах, рідше -- таблицях, повністю ігноруються читачі.

Якщо ви наводите діаграму -- ви її наводите, щоб хтось її прочитав, і, наприклад, зрозумів суть якоїсь частини вашої роботи. Якщо прочитати підписи на діаграмі неможливо, або щоб їх прочитати, потрібно використовувати лупу (чи величезне збільшення на екрані) -- вона, в кращому випадку -- марна, в гіршому виглядає як спроба обману.

Те ж стосується графіків: якщо осі не підписані, якщо підписи та числа біля шкал нечитабельні, якщо немає легенди (пояснень, що різні лінії абощо означають) або якщо лінії неможливо відрізнити одну від одної -- графік безглуздий. Читачі не знають, що це за графік і які у вас були думки, коли ви його будували, тому потрібно надати їм всю необхідну інформацію: в підписах, шкалах, легенді, лініях і кольорах. І зробіть так, щоб її можна було прочитати.

Налаштування за замовчуванням MatPlotLib та кількох аналогічних інструментів не придатні, щоб вставляти їх продукт в текст статей. Власне, їх ціль інша. Тому потрібно налаштувати відповідні розміри шрифтів.

Не так трагічно, але дивно виглядають "півтора процесора" чи "нуль процесорів".

Також, графіки повинні відповідати загальноприйнятим стандартам — див. як їх роблять в статтях!

Вибір конкретного представлення графіків -- що і як зображати, сильно залежить від потреб конкретної роботи, їх варто обговорювати з керівниками, але наведені вище правила -- дуже базові і стосуються всіх. Я щиро переконаний, що диплом з хоча б одною нечитабельною ілюстрацією абощо не можна допускати до захисту.

Абревіатури

Скорочення даєте першого разу повністю: Deep Neural Networks (DNN), далі вже пишете DNN.

Це — на додачу до наведення у списку абревіатур.

Також, в абстракті розшифровку скорочень потрібно дублювати.

LaTeX

LaTeX -- це система підготовки наукових текстів до друку. Ви пишете текст, логічно його структуруючи. Тоді стильовик -- файл, що описує формат вашого документу, форматує його так, як треба. Ручне насильство над форматом заборонене2.

Ілюстрації -- зображення

Команди типу \includegraphics додають зображення, але для керування власне ілюстраціями, використовується оточення figure.

Ілюстрації — за можливості, в PDF3. Для зображень, що є растровими за своєю природою, такі як фотографії -- PNG. Прийнятним є TIFF, але, в жодному разі, не JPG/JPEG! При тому, роздільна здатність растрових зображень повинна бути не гіршою за 300-600 DPI4.

Крім того, ім'я файлу пишете без розширення:

\includegraphics[width=0.5\textwidth]{static/nvprof_example}

Тоді LaTeX візьме кращий з доступних, PDF5, а якщо немає — PNG.

Для вказання розмірів зображень, користуйтеся константами типу textwidth чи textheight, відсотками абощо -- уникайте абсолютних величин, типу сантиметрів, коли вказуєте якісь довжини.

Ілюстрації -- розташування, підписи, посилання

В жодному разі не намагайтеся запхати картинки і таблиці строго там, де ви їх в текст вставили. В нормі6 LaTeX знаходить хороше — з точки зору типографічних та інших релевантних правил, положення. Не покладайтеся, що ілюстрація йде під текстом -- посилайтеся на них у тексті та й все: ... are shown in Fig.~\ref{algo}..

Синтаксично це означає, що в \begin{figure}[h], оце h надміру жорстке. Хорошим варіантом є \begin{figure}[htb] — воно поставить або там, або зверху, або внизу сторінки.

Приклад:

\begin{figure}[htb]
 \centerline {\includegraphics[width=0.9\textwidth]{AlgorithmBlockScheme}}
 \caption{Proposed BLE and IMU measurements fusion algorithm block-scheme.}
 \label{block_scheme}
\end{figure}

The fusion algorithm is illustrated in Fig.~\ref{block_scheme}. 

Те ж стосується таблиць:

\begin{table}[htb]
 \caption{RMSE on different data sets, relative to the actual values}
 \label{table:rmse}
 \begin{center}
  \begin{tabular}{ c|c|c|c } 
    ..................................
  \end{tabular}
 \end{center}
\end{table}

Розташування \label відносно \caption тут важливе!

Цікавими можуть бути subfloat -- якщо потрібно створити складену ілюстрацію, яка містить кілька частин. За потреби -- звертайтеся.

Стильовик журналів IEEE дає таку пораду -- варто дослухатися!

If possible, position illustrations at the top of columns, rather than in the middle or at the bottom. Caption and number every illustration. All halftone illustrations must be clear black and white prints. Colors may be used, but they should be selected so as to be readable when printed on a black-only printer.

Програмний код

Для того, щоб вставити код, можна використати пакет lstlisting:

\begin{lstlisting}[language=C++]
double process_some_data(const vector<double>& a).
\end{lstlisting} 

За потреби, щодо подробиць підтримки кирилиці7 і т.д. -- пишіть.

Див. також спеціалізовані пакети для написання алгоритмів.

Формули

Не соромтеся використовувати нумерацію формул і потім її використовувати!

\begin{equation}\label{phase_shift}
    \phi(f, x) = \frac{2\pi}{c}fx\,(\bmod\,2\pi),
\end{equation}
where $x$ is the travel distance, $c$ is the speed of light, and $f$ denotes the signal frequency. For a known frequency $f$, the distance $x$ can be inferred from its phase shift $\phi$~\eqref{phase_shift} as follows:
\[
x\left(\bmod\,\frac{c}{f}\right) = \frac{c\phi}{2\pi f}.
\]

Звертання до формул беремо в дужки (\eqref робить це автоматично), формулу вважаємо таким-собі словом — розділові знаки розставляємо згідно правил. Абзац після формули не обов'язковий -- зокрема, в прикладі вище, абсолютно зайвим буде порожній рядок перед "where".

Якщо потрібно створити табличку рівнянь, надавайте перевагу оточенню align чи align*, eqnarray застарілий та незручний.

Список літератури

Для списку літератури використовуємо bibtex8. І тільки так9. Вручну, (Господи прости!),вписані "[3]" в LaTeX-коді — абсолютно неприйнятні. Ви просто не відтрекаєте це — загубитеся! Перевірено — сумарно час економиться, не навпаки. Це ж стосується, звичайно, й посилань на ілюстрації, таблиці, розділи.

Bibtex великі-малі літери ставить згідно своїх правил. Якщо потрібно зберегти як є, берете в фігурні дужки:

title = {{NVIDIA} {CUDA} C Programming Guide},

Без них воно всюди робитиме Nvidia Cuda або щось схоже.

Цитата вставляється так: costumer needs~(\cite{CPU-DB}).. Перед дужкою має бути пробіл, щоб по ньому не перенесло на новий рядок10, використовуйте тільду, "~" — це non-breaking space, по ньому не зробить перенос.

Тобто, пробіл перед дужками, розділовий знак (в прикладі це крапка) — після. І тільки так11!

Це ж стосується посилань на таблиці, глави, розділи, ілюстрації, формули тощо.

В bibtex and розділяє авторів, кома -- розділяє ім'я-прізвища-ініціали тощо. Акуратно з цим:

@article{edge_computing,
    author = {Cao, Keyan and Liu, Yefan and Meng, Gongjie and Sun, Qimeng},
    year = {2020},
    month = {01},
    pages = {1-1},
    title = {An Overview on Edge Computing Research},
    volume = {PP},
    journal = {IEEE Access},
    doi = {10.1109/ACCESS.2020.2991734}
}

Для цитування матеріалів конференцій використовуйте @inproceedings, джерел з Інтернету, мануалів від виробників тощо -- оточення @misc. Приклади таких цитувань є у нашому шаблоні.

Цитуючи книжки дуже і дуже бажано вказувати сторінки, про які ви! Наприклад: \cite[p.~150]{dirac}.

Вручну писати записи bibtex -- дуже неефективно. Однак:

  • Інтернет-сервіси типу ResearchGate, arXiv чи журналів IEEE, надають їх для згаданих там статей.
    • Тому варто пошукати статтю там.
  • Якщо у вас є DOI чи arXiv ID статті, може бути корисним цей сервіс: doi2bib -- дозволяє згенерувати bibtex-посилання.
    • Отриманий код варто проглянути, але зазвичай він ОК.
  • Bibtex-посилання на URL можна отримати за допомогою цього сервісу: Generate BibTeX from URL, однак, вони не дуже якісні, потребують ручного налаштування. Час, проте, економлять.

Інше

У списках і підписах до таблиць та картинок все ще користуємося розділовими знаками12 -- як і в формулах:

\begin{itemize}
\item Раз.
\item Два.
\item Три.
\end{itemize}

...................................
\caption{Text.}

А ось назви розділів - без крапки в кінці.

LaTeX -- подробиці

Абзаци

Абзац — просто порожній рядок. Жодних //, \hspace{0.8cm} тощо! Останнє взагалі практично завжди13 -- помилка.

Код має відображати структуру. Розробники стильовика вирішили, що різноманітні відступи мають бути саме такими. Не втручайтеся у його роботу. Винятки можливі -- коли треба якусь дуже хитру таблицю на три сторінки абощо. Але не просто в тексті.

Форматування

Хоча це дещо контроверсійно, раджу не форматувати тексти в LaTeX новими рядками — редактор нормально переносить сам, а при ручному поділі на рядки, воно на інших роздільних здатностях дико незручне, особливо в Overleaf.

Тире

Тире це: text -- text або, як англійці хочуть, text---text -- не "text - text". Коротко: ставте ДВА дефіси, не один.

Verbatim-блоки

Всілякі хитрі речі вставляєте отак: \verb|-Xptxas -v,-abi-no| чи \verb|__syncthreads|. Пам'ятаєте, що два дефіси — тире, навіть якщо вам треба саме два дефіси? Не варто таким жахом зловживати: $\_\_syncthreads$ — часто \verb|...| зручніший.

Символ після \verb — практично будь-який, якого не буде в тілі, він починає — він закінчує.

Перевищення ширини сторінки

Дуже важливо, щоб вміст сторінки не за правий14 край! Код — переформатуйте. Слова — можна переноси вручну вказати: Spil\-ling\- вказує прийнятну точку переносу для слів, яких сам LaTeX не знає.

Лапки

Лапки: '' (два апострофи) для відкриття, '' (дві ті одинарні, що над клавішею є) для закриття, в жодному разі не " — не подвійні лапки (на клавіші 2 в кириличній стандартній). Детальніше див. Quotation Marks and Dashes — це дуже важливо, бо подвійні лапки є спец-кодом для вставки символів з умляутом, і таке: "test" може все зламати. Оскільки тут різницю візуально видно не дуже добре — див. за посиланням.

Footnotes

  1. Не пробую переказати весь LaTeX абощо, лише питання, які гостро постають з разу в раз.

  2. Звичайно, не завжди і не всюди, але в тексті статті, диплому тощо, для простоти можна вважати -- заборонене.

  3. Звичайно, отримані з векторного формату, типу SVG -- друкувати в PDF растрові зображення особливого сенсу не має, швидше навпаки.

  4. Це важливо — для друку треба мати не менше 300-600 DPI, краще більше! Такі растрові картинки дуже великі, тому, всюди де можливо, варто використовувати векторні формати. Сучасні драйвери pdfLaTeX чи luaLaTeX розуміють PDF. Звичайно, можна й безпосередньо SVG, хоча багато які наукові журнали цей формат не підтримують.

  5. Для спрощення пропускаю важливі подробиці, типу використання EPS відповідним драйвером.

  6. Виняток -- коли ілюстрацій багато, тоді доводиться йому допомагати.

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

  8. Наш шаблон використовує bibLaTeX в режимі bibTeX, тому обмежуся останнім.

  9. Бібліографії з допомогою оточення thebibliography можливі, але, все ж, не бажані -- не зважаючи на плавнішу криву навчання, це значно менш гнучкий та зручний метод, особливо у наш час, коли bibtex-записи легко знайти в Інтернеті.

  10. Перенос на новий рядок самого номера заборонений правилами.

  11. Звідки стільки диких варіацій студенти беруть?! Кожен рік цирк з тими крапками-пробілами навколо дужок, цитат, посилань на різні частини.

  12. Мова про текст диплому. В презентаціях, особливо, якщо елементами списку не є повноцінні речення, крапки абощо в кінці можуть заважати.

  13. Крім оформлення чогось типу титульних сторінок чи слайдів

  14. Чи й лівий - але там важче це зробити. Ці обмеження потрібні, щоб ваш документ можна було надрукувати і прошити.

About

Template of the bachelor diploma work proposed for the APPS.UCU students (unofficial copy)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages