====== 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