====== Struktura ======
Zazwyczaj praca składa się ze
* wstępu
* opisu teoretycznego na podstawie literatury
* opisu prac własnych
* podsumowania.
Konkretne treści zależą od charakteru pracy, nie da się przewidzieć wszystkich wariantów. Poniższy układ należy potraktować jako szablon do ewentualnego przycięcia/rozszerzenia.
===== Wstęp =====
*Ogólne wprowadzenie, motywacje, dlaczego temat jest ważny, interesujący, kto może wykorzystać wyniki...
* **Cel pracy**
* **Opis struktury** Co zawierają kolejne rozdziały
===== Część teoretyczna =====
Nie stosujemy nazwy część teoretyczna, ale przygotowujemy 1-3 rozdziały. Są to treści przygotowane na podstawie literatury lub analizy zasobów internetowych. W zależności od tematu mogą się tu pojawić
* Modele zjawisk fizycznych, ekonomicznych i innych ilustrowane wzorami i rysunkami
* Definicje stosowanych w dziedzinie pracy pojęć, także z użyciem wzorów
* Opisy znanych z literatury algorytmów
* Opisy mniej znanych mechanizmów lub wzorców architektury
* Opisy specyficznych języków, np. sieci Petriego
* Opisy bibliotek użytych przy implementacji
* Opisy platform, np. CUDA, OpenCL, Apache Spark
Trudno jest wymienić wszystkie możliwości...
===== Opis prac własnych =====
W 2-3 rozdziałach należy przedstawić:
* Opis abstrakcyjny, może to być w zależności od kontekstu
* Analiza dziedziny, specyfikacja wymagań, projekt z użyciem UML
* Opis własnych algorytmów w postaci pseudokodu, diagramów czynności. W obu przypadkach powinien być dołączony opis.
* Opis implementacji
* Jakie narzędzia, biblioteki, platformy zostały użyte (wymienić)
* Struktura kodu, moduły, klasy
* Interfejs użytkownika (jeżeli występuje)
* Testy
* Co było przedmiotem testów i jak zostały one zrealizowane
* Opis przypadków testowych i sposobu ich realizacji (np. aplikacji webowej, backendu)
* W miarę możliwosci należy wyodrębnić scenariusze
* Testy algorytmów, np. jaka funkcja była optymalizowana, rozmiary problemu
* Opis danych (zbiorów danych) na których były przeprowadzone testy
* Rezultaty
* Wykresy pokazujące zależność od czasu lub liczby iteracji, czasy odpowiedzi dla równolegle wykonanych wywołań, itp.
* Tabele pokazujące osiągnięte wartości (np. 5 scenariuszy, 10 testowanych funkcji lub problemów, 10 testowanych zbiorów danych)
* W miarę możliwości testy należy wykonać wielokrotnie, obliczyć wartości średnie i odchylenia standardowe
* Najlepsze wartości w tabelach powinny być oznaczone, np. przez wytłuszczenie
* Napotkane problemy, np. błędy w danych, słabe połączenie sieciowe, brak zasobów, ograniczona wydajność sprzetu
* Dyskusja rezultatów
* Dla których ze scenariuszy, zbiorów danych, funkcji wyniki okazały się najlepsze, najgorsze
* Co mogło być przyczyną? Czy było to przewidywalne, zaskakujące?
===== Podsumowanie =====
* Jakie były cele (ale innymi słowami)?
* Co w ramach pracy zostało zrealizowane?
* Problemy, osiągnięcia...
* Możliwości rozwoju na przeszłość?
===== Literatura =====
10-30 pozycji
===== Opcjonalnie dodatki =====
Na przykład opis sposobu uruchamiania oprogramowania
====== Uwagi ogólne ======
* Praca opisuje czynności wykonane/zrealizowane. Nie stosujemy czasu przyszłego. Ale w czasie przyszłym można odnieść się do struktury pracy
* Klarowny wstęp i zakończenie są ważne dla recenzenta i komisji podczas obrony.
* Rysunki i tabele powinny mieć podpisy. Nie piszemy //Na rysunku poniżej...// ale //Na Rys. 7 pokazano//
* Nie stosujemy jednego podrozdziału, muszą być co najmniej dwa
* Nie stosujemy rozdziałów bez tekstu wprowadzającego
3 Rozdział
3.1 PodRozdział
3.1.1 PodPodRozdział
* Napiszmy chociaż jedno zdanie, wyliczmy wcześniej o czym będziemy pisać
3. Rozdział
W tym rozdziale podane zostaną...
3.1 Rozdział
Procesory dzielimy na:
* silne
* średnie
* słabe
Zostaną one omówione w kolejnych rozdziałach.
3.1.1 Procesory silne
3.1.2 Procesory średnie
3.1.3 Procesory słabe
*Literatura powinna zostać zacytowana