Preskoči na sadržaj

Teme završnih i diplomskih radova

U nastavku je popis predloženih i odabranih tema završnih i diplomskih radova. Popis predloženih tema se kontinuirano nadopunjuje i poboljšava vođen sugestijama studenata. Među predloženim temama dio nije potpuno opisan i/ili nema pripadnu literaturu, ali ne očajavajte: ukoliko vam je neka od tema zanimljiva i smatrate da u prijedlogu sadržaja ili literature nešto nedostaje, javite se putem e-maila pa ćemo je prilagoditi vašim interesima.

Ponuđene teme završnih radova

Modeli prometa u mobilnim mrežama

Opis teme:

...

Literatura:

  1. Guidelines for LTE Backhaul Traffic Estimation
  2. Bojovic, B., & Lagen, S. Enabling NGMN Mixed Traffic Models for ns-3. In Proceedings of the 2022 Workshop on ns-3 (pp. 127-134). (2022, June).

Primjena kompleta za razvoj softvera DOCA na jedinicama za obradu podataka NVIDIA BlueField {PPHS/URS}

Opis teme:

...

Literatura:

  1. NVIDIA DOCA SDK
  2. Demystifying NVIDIA DOCA (NVIDIA Developer Blog)
  3. NVIDIA Creates Zero-Trust Cybersecurity Platform (NVIDIA Blog)
  4. Introduction to DOCA for DPUs (NVIDIA Deep Learning Institute)
  5. DOCA Base Image (NVIDIA NGC)

Mjerenje performansi simulacije molekulske dinamike {PPHS}

Opis teme:

...

Literatura:

  1. Best bang for your buck: GPU nodes for GROMACS biomolecular simulations (PDF)
  2. More bang for your buck: Improved use of GPU nodes for GROMACS 2018 (PDF)

Kriptografski algoritmi u WireGuardu {SIKS}

Opis teme:

...

Literatura:

  1. WireGuard
  2. Protocol & Cryptography (WireGuard)
  3. Formal Verification (WireGuard)

Implementacija aktualnih softverskih i hardverskih standarada u OpenWrtu {RM/RM1}

Opis teme:

...

Literatura:

  1. OpenWrt version history
  2. Wi-Fi /etc/config/wireless
  3. Table of Hardware: Ideal for OpenWrt + 802.11ax supported

Uobličavanje mrežnog prometa u OpenWrtu {RM/RM2}

Opis teme:

...

Literatura:

  1. Traffic shaping
  2. QoS (Network Traffic Control)

Automatizacija IT infrastrukture korištenjem Chefa {URS}

Opis teme:

...

Literatura:

  1. Chef

Automatizacija IT infrastrukture korištenjem Puppeta {URS}

Opis teme:

...

Literatura:

  1. Puppet

Razvoj web aplikacije korištenjem okvira Ruby on Rails i biblioteke Hotwire {PW}

Opis teme:

...

Literatura:

  1. Ruby on Rails
  2. HTML Over The Wire (Hotwire)

Razvoj web aplikacije korištenjem okvira Laravel i sučelja Inertia.js {PW}

Opis teme:

...

Literatura:

  1. Laravel
  2. Inertia.js

Proširenja i primjene Herokuove metodologije dvanaest faktora {PW}

Opis teme:

...

Literatura:

  1. The Twelve-Factor App
  2. An illustrated guide to 12 Factor Apps (Red Hat Enable Architect)
  3. Beyond the Twelve-Factor App (Adam Bloom, VMWare Tanzu Blog)
  4. Beyond the 12 Factor App: Exploring the DNA of Highly Scalable, Resilient Cloud Applications (VMWare Tanzu Content Library)

Softver otvorenog koda za infrastrukturu oblaka OpenStack {MMOS/URS}

Opis teme:

...

Literatura:

  1. OpenStack

Pregled projekata Zaklade za oblaku urođeno računarstvo {MMOS/URS}

Opis teme:

...

Literatura:

  1. Graduated and incubating projects (Cloud Native Computing Foundation)

Doprinos projekta Berkeley Software Distribution i potomaka u razvoju interneta {RM/RM2}

Opis teme:

Tijekom 80-ih godina na Kalifornijskom sveučilištu u Berkeleyu Keith Bostic, Bill Joy, Marshall Kirk McKusick, Sam Leffler, Mike Karels i drugi članovi Computer Systems Research Group razvijaju Berkeley Software Distribution (BSD) kao derivat AT&T-evog Unixa. U istom desetljeću DARPA financira razvoj TCP/IP-a na BSD-u pa BSD postaje nositelj razvoja tehnologija interneta. Korištenje BSD-a u istraživanju nastavlja se i narednih desetljeća, kroz japanski projekt KAME, FER-ov projekt IMUNES i brojne druge. Zadatak rada je dati detaljan pregled primjene BSD-a u istraživanju i standardizaciji internetskih tehnologija kroz posljednjih četiri desetljeća.

Literatura:

  1. Computer Systems Research Group
  2. KAME
  3. IMUNES
  4. Jones, T. FreeBSD in Network Research and Standardization (FreeBSD in Research). FreeBSD Journal, January/February 2020.
  5. Leffler, S. J., Joy, W. N., Fabry, R. S. & Karels, M. J. Networking Implementation Notes 4.3 BSD Edition. Unix System Manager's Manual, 1986.

Interaktivni interpreter Cling za programski jezik C++ {PPHS}

Opis teme:

...

Literatura:

  1. LLVM
  2. Clang
  3. CLing

Prenosivost znanstvenog softvera među operacijskim sustavima sličnim Unixu {OS2}

Opis teme:

...

Literatura:

  1. illumos
  2. GROMACS

Usporedba arhitekture i značajki Waylanda i X.Org X11 Servera {PPHS}

Opis teme:

X.Org je tradicionalni display server koji se koristi na operacijskim sustavima sličnim Unixu za prikaz grafičkog korisničkog sučelja. Wayland je protokol za komunikaciju između display servera i njegovih klijenata, a isto se ime koristi i za referentnu implementaciju tog protokola. Wayland je dosegao stabilnu verziju i softvera i protokola te će vjerojatno biti u skoroj budućnosti korišten umjesto X.Org X11 Servera. Zadatak rada je opisati oba display servera i međusobno ih usporediti.

Literatura:

  1. X.Org Wiki
  2. Wayland

Named Data Networking {RM1}

Opis teme:

Literatura:

  1. Named Data Networking Project

CoCCA: softver otvorenog koda za upravljanje registrom domena {RM2}

Opis teme:

Literatura:

  1. CoCCA

FRED: softver otvorenog koda za upravljanje registrom domena {RM2}

Opis teme:

CZ.NIC je upravitelj Češke državne domene .cz, a softver FRED koji koriste za upravljanje registrom domene su izbacili kao slobodni softver otvorenog koda. Isti softver koristi se za upravljanje državnih domena Angole, Tanzanije, Kostarike, Farskih Otoka, Estonije, Albanije i Makedonije. Cilj rada je analizirati mogućnosti softvera i opisati način konfiguracije.

Literatura:

  1. FRED
  2. ICANN Wiki
  3. ICANN-ove informacije o registrima

Domain Name Registry System: softver otvorenog koda za upravljanje registrom domena {RM2}

Opis teme:

Literatura:

  1. Domain Name Registry System

Prekršaji licence GNU GPL i njihovo razrješavanje {OS1}

Opis teme:

GPL violations: Linksys WRT54G, Linux devices, SF Conservancy, SF Law Center

Literatura:

  1. [Ksummit-discuss] [CORE TOPIC] GPL defense issues
  2. GPL violations
  3. Software Freedom Law Center
  4. Software Freedom Conservancy
  5. Bradley M. Kuhn's Blog

Migracije sa vlasničkih formata dokumenata uredskih aplikacija na OpenDocument {OS1}

Opis teme:

OpenDocument je format dokumenata uredskih aplikacija zasnovan na XML-u. OpenDocument je otvoreni standard organizacija OASIS i ISO, neovisan o određenom proizvođaču softvera, te je vrlo pogodan za dugoročno arhiviranje dokumenata. Pored LibreOffice-a i Apache OpenOffice-a, OpenDocument podržavaju i Adobe Acrobat Digital Cloud, Corel WordPerfect Office, Microsoft Office i Office Online, te SoftMaker Office. Zadatak rada je proučiti dosadašnje migracije na OpenDocument i opisati tehničke i društvene izazove koje su se pojavili prilikom migracija, te uspješna rješenja tih izazova koja su primijenjena.

Literatura:

  1. OpenDocument adoption
  2. Digital dark age
  3. LibreOffice users and deployments

Tehnički i društveni problemi Digital Rights Managementa {OS1}

Opis teme:

Literatura:

Ponuđene teme diplomskih radova

Implementacija TLS-a u jezgri operacijskog sustava FreeBSD {UMS}

Opis teme:

...

Literatura:

  1. In-Kernel TLS Framing and Encryption for FreeBSD (John Baldwin, vBSDCon, September 6, 2019) (prezentacija)
  2. D21277: Add kernel-side support for in-kernel TLS. (FreeBSD's Phabricator)
  3. D24274: security/openssl: Add support for in-kernel TLS (KTLS). (FreeBSD's Phabricator)
  4. FreeBSD in kernel TLS (Vladimir Kotal)
  5. Nginx KTLS support on FreeBSD 13? (FreeBSD Forums)
  6. Kernel TLS and hardware TLS offload in FreeBSD 13 (Slava Shwartsman, Drew Gallatin, EuroBSDCon 2019) (prezentacija, dodatna kopija prezentacije)

Implementacija TLS-a u jezgri operacijskog sustava Linux {UMS}

Opis teme:

...

Literatura:

  1. KTLS: Linux Kernel Transport Layer Security (1st Dave Watson, Facebook, San Franciso, USA)
  2. Kernel TLS (Linux Networking Documentation)
  3. Kernel TLS offload (Linux Networking Documentation)
  4. ktls (GitHub)

Prilagodba znanstvenog softvera za izvođenje na eksaskalarnim superračunalima {DS}

Opis teme:

...

Literatura:

  1. German Priority Programme 1648: Software for Exascale Computing (SPPEXA)
  2. Exascale Computing Project
  3. European High-Performance Computing Joint Undertaking
  4. Skalabilni algoritmi visokih preformansi za buduće heterogene distribuirane računalne sustave

Pretvorba OpenCL C-a u Vulkanova računska sjenčanja alatom clspv {PPHS}

Opis teme:

...

Literatura:

  1. google/clspv (GitHub)

Simulatori heterogene sustavske arhitekture {PPHS}

Opis teme:

...

Literatura:

  1. Hwu, W. Heterogeneous system architecture: practical applications for industry. (Elsevier, 2015).
  2. gem5

Usporedba program prevoditelja NVIDIA nvcc i Clang za programski jezik CUDA {PPHS}

Opis teme:

CUDA je vlasnički programski jezik za heterogeno paralelno programiranje korištenjem grafičkih procesora tvrtke NVIDIA. Iako su pojedini dijelovi NVIDIA-inog programskog stoga slobodni softveri otvorenog koda, većina je ipak zatvorena i nad njima kontrolu ima NVIDIA. Motiviran zatvorenošću NVIDIA-e, Google je korištenjem LLVM-a razvio vlastiti program prevoditelj jezika CUDA gpucc koji je potom uključen u Clang. Zadatak rada je usporediti dva program prevoditelja u terminima značajki koje podržavaju te u terminima performansi prevođenja i izvođenja nekoliko aplikacija otvorenog koda po koje koriste CUDA-u.

Literatura:

  1. 2015 LLVM Developers' Meeting: Jingyue Wu "Optimizing LLVM for GPGPU"
  2. Službena NVIDIA-ina dokumentacija za CUDA-u

Grafički procesor otvorenog koda MIAOW {PPHS}

Opis teme:

...

Literatura:

  1. MIAOW GPU
  2. Southern Islands Series Instruction Set Architecture

Opis backenda program-prevoditelja AMDGPU u infrastrukturi za izgradnju program-prevoditelja LLVM {PPHS}

Opis teme:

...

Literatura:

  1. User Guide for AMDGPU Backend (LLVM Documentation)
  2. LLVM AMDGPU Assembler Helper Tools (ROCm-Developer-Tools/LLVM-AMDGPU-Assembler-Extra on GitHub)

Odabrane teme završnih radova akademske godine 2022./2023.

Standardizacija i primjene Web3-a {DWA2} [Stjepan Friganović]

Naslov na engleskom: Web3 standardization and applications

Opis teme:

...

Literatura:

  1. What's Web3? (Brave Browser)
  2. Web3 — A vision for a decentralized web (The Cloudflare Blog)
  3. Web3 Foundation
  4. The Father of Web3 Wants You to Trust Less (WIRED)

Krivulje u računalnoj grafici {PPHS} [Mikaela Oklen, preneseno iz 2020/2021.]

Naslov na engleskom: Curves in computer graphics

Mentor: v. pred. dr. sc. Vedran Miletić

Komentor: doc. dr. sc. Sanda Bujačić

Opis teme:

U računalnoj grafici se razrađuju temeljni koncepti i tehnike prikazivanja 2D i 3D objekata koji su nužni prilikom izrade grafičkih programa na računalu. Jedna od temeljnih karakteristika današnjeg strelovito brzog i uspješnog razvoja računalne grafike jest implementacija optimiziranih grafičkih algoritama u grafičke aplikacije korištenjem standardnih API-ja kao što su OpenGL, Vulkan i vlasničkih API-ja kao što je DirectX. No, uz sve napredne funkcije i mogućnosti koje računalna grafika posjeduje, za ovladavanje svijetom računalne grafike nužno je poznavanje osnovnih i temeljnih koncepata u grafici: od temeljnih pojmova kao što su točka i krivulja do postupka interpolacije i orijentacije promatranih objekata. Cilj rada je predstaviti temeljne matematičke koncepte koji se koriste u računalnoj grafici kao što su točka, vektor, pravac i krivulja te razraditi pristupe koji se koriste prilikom iscrtavanja navedenih pojmova na računalu. Poseban se naglasak stavlja na krivulje čija se matematička svojstva analiziraju i koreliraju sa svojstvima koja su karakteristična za krivulje koje se koriste u računalnoj grafici. Jedan od čestih zadataka u računalnoj grafici je crtanje glatke krivulje između zadanog niza točaka (aproksimacija krivulje), a rješenjetog tipičnog problema numeričke matematike i računalne grafike su aproksimacijske i interpolacijske Bezierove krivulje. Implementaciju algoritama student može izvesti u programskom jeziku po želji te za vizualizaciju može koristiti OpenGL ili Vulkan.

Izdavanje višeplatformskih projekata korištenjem Unreal Enginea i standarda Vulkan {PPHS} [Hrvoje Sedlar, preneseno iz 2021./2022.]

Naslov na engleskom: Publishing cross-platform projects using Unreal Engine and Vulkan

Opis teme:

...

Literatura:

...

Evolucija arhitekture modularne monolitne web aplikacije u mikroservisnu {PW} [Lukas Gambeta]

Naslov na engleskom: Evolution of modular monolithic web application architecture into microservices

Opis teme:

...

Literatura:

...

Razvoj web aplikacije za upis više godine studija korištenjem okvira Laravel i biblioteke Livewire {PW} [Antonio Heski]

Naslov na engleskom: Development of a web application for enrolling non-freshman years of studies using the Laravel framework and the Livewire library

Opis teme:

...

Literatura:

  1. Laravel
  2. Livewire

Instalacija i konfiguracija poslužitelja datoteka {URS} [Deni Kernjus]

Naslov na engleskom: Installation and configuration of a file server

Opis teme:

Poslužitelj datoteka je dio gotovo svakog suvremenog poslovnog sustava. Bio taj poslužitelj dio komecijalnih oblaka kao što su Google Drive i Microsoft OneDrive ili dio vlastitog oblaka kao što je Nextcloud, njegova uloga uloga u poslovnom sustavu je ista: spremanje i dijeljenje datoteka koje omogućuju poslovanje. Dakako, taj poslužitelj zahtijeva odgovarajući hardver da bi ispravno obavljao svoju zadaću. Zadatak rada je opisati kompletan postupak postavljanja poslužitelja datoteka, što uključuje:

  • hardversku osnovu poslužitelja: svojstva i vrste medija za pohranu podataka koji se koriste (tvrdi diskovi i diskovi čvrstog stanja) te sučelja i kontroleri koje mediji za pohranu podataka koriste,
  • softverska osnova poslužitelja, sustavski dio: hardverske i softverske implementacije RAID-a (Redundant Array of Inexpensive/Independent Disks), specifično Linuxov softverski RAID te razine RAID-a koje se koriste,
  • softverska osnova poslužitelja, aplikacijski dio: prikazati postupak instalacije poslužitelja datoteka (Samba i NFS).

Literatura:

  1. File Server (Ubuntu Server Guide)
  2. Using Samba as a server (Red Hat Enterprise Linux 8 Documentation: Deploying different types of servers)

Razvoj web aplikacije za dohvaćanje i pohranu informacija o molekulama koištenjem okvira ASP.NET {PW} [Mihael Ladić]

Naslov na engleskom: Development of a web application for retrieving and storing information about molecules using the ASP.NET framework

Opis teme:

...

Literatura:

...

Odabrane teme diplomskih radova akademske godine 2022./2023.

Mjere zaštite računalnih igara od piratstva i varanja {UMS} [Dominik Kinkela]

Naslov na engleskom: Piracy and cheating prevention measures in PC games

Područje teme: Sigurnost aplikacija i usluga

Opis teme:

Računalne igre od samih početaka koriste brojne metode prevencije neovlaštenog kopiranja (piratstva), a od doba omasovljenja višeigračkih naslova i metode prevencije varanja. Kako vremenom napreduje znanje koje omogućuje zaobilaženje postojećih metoda prevencije, tako se razvijaju i nove metode prevencije koje je teže zaobići. Cilj rada je dati pregled povijesnog razvoja metoda i na primjeru vlastite aplikacije prikazati način rada metode prevencije neovlaštenog kopiranja i njeno zaobilaženje.

Literatura:

  1. Digital rights management
  2. Anti-tamper software
  3. Denuvo
  4. Console Hacking 2015: Liner Notes (fail0verflow)

Pohrana podataka o molekulama u sustavu za upravljanje bazom podataka PostgreSQL {UMS} [Josip Lukin, preneseno iz 2021/2022.]

Naslov na engleskom: Molecular data storage in PostgreSQL database management system

Područje teme: Pohrana podataka

Opis teme:

PostgreSQL se smatra najnaprednijim postojećim sustavom za upravljanje relacijskom bazom podataka otvorenog koda. Osim podrške za osnovne tipove podataka, omogućuje korištenje i valuta, nabrajanja, geometrijskih pojmova, mrežnih adresa, rezultata pretrage teksta, XML-a, JSON-a te brojnih drugih. Jedno od proširenja treće strane, dio projekta RDKit, omogućuje pohranu podataka o molekulama. Cilj rada je na primjeru razvoja vlastite aplikacije za rad s molekulama prikazati mogućnosti i način korištenja tog proširenja.

Literatura:

  1. CREATE EXTENSION (PostgreSQL)
  2. CREATE SCHEMA (PostgreSQL)
  3. RDKit database cartridge

Automatizacija obrade i izvještavanja političkih trendova temeljem podataka s društvene mreže Reddit {UMS} [Ivan Modrić]

Naslov na engleskom: Automation of processing and reporting of political trends based on data from the Reddit social network

Područje teme: Upravljanje aplikacijama i uslugama

Opis teme:

Razvoj oblaku urođenih aplikacija omogućuje korištenje velikog broja usluga koje oblak nudi. U praksi to ubrzava razvoj jer značajno umanjuje broj komponenata aplikacije koje je potrebno samostalno razviti, što specijalno pomaže kod aplikacija koje rade analitiku podataka velikog obujma. Takve aplikacije karakteriziraju česte promjene zahtjeva po pitanju ulaznih podataka, načina obrade i izlaznih podataka pa je korištenje gotovih usluga u oblaku gdje je to moguće specijalno poželjno. Cilj rada je na primjeru razvoja aplikacije za obradu i izvještavanje o političkim trendovima na temelju podataka s društvene mreže Reddit opisati proces razvoja aplikacija koje koriste usluge u oblaku za rad s podacima velikog obujma.

Literatura:

  1. Understanding cloud-native apps (Red Hat)
  2. What is Cloud Native? (AWS)
  3. What is Big Data Analytics? (Azure)

Skalabilnost mikroservisa {UMS} [Kristian Nekić, preneseno iz 2020/2021.]

Naslov na engleskom: Microservice scalability

Područje teme: Upravljanje aplikacijama i uslugama

Opis teme:

...

Literatura:

  1. Nomad by HashiCorp
  2. Scaling Microservices: The Challenges and Solutions (DZone Microservices)
  3. The Scale Cube (Microservices.io)

Evaluacija i primjena statičke i dinamičke analize izvornog koda za otkrivanje sigurnosnih propusta {UMS} [Đino Prenc]

Naslov na engleskom: Evaluation and application of static and dynamic source code analysis in finding security issues

Područje teme: Sigurnost aplikacija i usluga

Opis teme:

Suvremeni razvoj softvera karakterizira korištenje brojnih cjevovoda za testiranje i sigurnost aplikacija. U domeni sigurnosti, koriste se alati za statičku i dinamičku analizu koji prijavljuju svoje pronalaske problema razvojnim inženjerima kako bi ih ovi ispravili, a u nekim slučajevima i samu predlažu ispravke. Cilj rada je dati pregled alata koji se koriste za sigurnost aplikacija kod njihovog razvoja na vlastitim primjerima aplikacija s poznatim ranjivostima.

Literatura:

  1. DevSecOps (GitLab)
  2. DevSecOps with GitHub Security

Razvoj, mjerenje performansi i optimizacija višeplatformskih računalnih igara {UMS} [Bruno Šavor]

Naslov na engleskom: Development, performance measurement, and optimization of cross-platform PC games

Područje teme: Upravljanje aplikacijama i uslugama

Opis teme:

Razvoj igara je jedna od propulzivnih grana suvremenog razvoja softvera. S ciljem bržeg razvoja i mogućnosti korištenja gotovih elemenata, velik broj timova koji razvijaju igre odlučuje se za korištenje gotovih pogona kao što su Unity, Unreal Engine i Godot Engine. Cilj rada je odabrati pogon po želji studenta i u njemu prikazati proces razvoja višeplatformske računalne igre, uz mjerenje performansi prilikom izvođenja i korištenje optimizacijskih tehnika za poboljšanje performansi.

Literatura:

  1. Unity Documentation
  2. Unreal Engine Documentation
  3. Godot Engine Documentation

Odabrane teme završnih radova akademske godine 2021./2022.

Čitanje, obrada i pohrana JSON-a u web aplikacijama {DWA2} [Sven Tajz]

Naslov na engleskom: Reading, processing, and storing of JSON in web applications

Opis teme:

...

Literatura:

  1. JSON Functions (PHP)
  2. JSON methods, toJSON (The Modern JavaScript Tutorial)
  3. PostgreSQL
  4. MariaDB
  5. MongoDB
  6. Apache CouchDB

Upravljanje fizičkim i virtualnim poslužiteljima korištenjem Foremana {MMOS/URS} [Fran Poje]

Naslov na engleskom: Managing phyiscal and virtual servers using Foreman

Opis teme:

...

Literatura:

  1. Foreman

Automatizacija infrastrukture korištenjem platforme Ansible {URS} [Luka Ljubojević]

Naslov na engleskom: Infrastructure automation using Ansible

Opis teme:

...

Literatura:

  1. Ansible Documentation
  2. Red Hat Ansible Automation Platform
  3. IT Automation with Ansible
  4. Ansible (ArchWiki)

Razvoj web aplikacije korištenjem okvira Django i biblioteke HTMX {DWA2} [Tvrtko Kaurinović]

Naslov na engleskom: Web application development using Django framework and HTMX library

Opis teme:

...

Literatura:

  1. htmx - high power tools for html
  2. HTMX/Django
  3. Carson Gross - REST, HATEOAS & Django - It's OK to not use JSON... or Javascript (DjangoCon US 2021, YouTube)

Odabrane teme diplomskih radova akademske godine 2021./2022.

Nadzor rada mikroservisa i osiguravanje visoke dostupnosti {UMS} [Maja Abramović]

Naslov na engleskom: Monitoring and ensuring high availability of microservices

Opis teme:

...

Literatura:

  1. Microservices: High availability (Vaadin)
  2. Resiliency and high availability in microservices (Microsoft Docs)
  3. Prometheus
  4. Grafana

Primjena grafičkih procesora u projektiranju građevina korištenjem strojnog učenja {PPHS, DS} [Adis Tokalić]

Naslov na engleskom: Application of graphics processing units in design of buildings using machine learning

Opis teme:

...

Literatura:

  1. CUDA Toolkit Documentation
  2. TensorFlow Guide
  3. PyTorch Documentation
  4. Blender Documentation

Napadi na blockchain {UMS} [Paolo Kos]

Naslov na engleskom: Blockchain attacks

Opis teme:

...

Literatura:

  1. What is Blockchain Security? (IBM)
  2. Top Five Blockchain Attacks & DLT Vulnerabilities to Know in 2022 (Spiceworks)
  3. 51% Attack: Definition, Who Is At Risk, Example, and Cost (Investopedia)

Evolucija monolitne web aplikacije u mikroservisnu besposlužiteljsku aplikaciju {UMS} [Ana Novokmet]

Naslov na engleskom: Monolith to serverless microservice application evolution

Opis teme:

...

Literatura:

  1. What is a serverless microservice? (Cloudflare)
  2. Serverless microservices (AWS Documentation)
  3. Serverless Microservices reference architecture (Microsoft Docs)

Ponovljiva izgradnja programske podrške {UMS} [Matija Banjan, preneseno iz 2020./2021.]

Naslov na engleskom: Reproducible building of software

Opis teme:

...

Literatura:

  1. Reproducible Builds

Odabrane teme završnih radova akademske godine 2020./2021.

Izrada web aplikacije korištenjem Djanga {DWA2} [Antonela Troha]

Naslov na engleskom: Web application development using Django

Opis teme:

Sveprisutnost weba čini da se mnoge aplikacije realiziraju kao web aplikacije. Iako suvremeni pristup podrazumijeva pisanje aplikacija u obliku mikroservisa, okviri za razvoj monolitnih aplikacija kao što su Laravel, Django i Ruby on Rails se i dalje intenzivno koriste. Cilj rada je prikazati razvoj monolitne web aplikacije u Pythonu korištenjem okvira Django na vlastitom primjeru.

Literatura:

  1. Django
  2. Shaw, B., Badhwar, S., Bird, A., Chandra K S, B. & Guest, C. Web Development with Django, O'Reilly, 2021.

Izrada web aplikacije korištenjem Flaska {DWA2} [Ivan Modrić]

Naslov na engleskom: Web application development using Flask

Opis teme:

Suvremeni pristup razvoju web aplikacija podrazumijeva realizaciju aplikacije korištenjem usluga u oblaku. Takve se aplikacije nazivaju oblaku urođene jer su od početka razvijane prema određenom skupu pravila kako bi se olakšalo njihovo postavljanje u oblak i kasnije održavanje. Kod razvoja takvih aplikacija često se koriste mikrookviri kao Lumen za PHP, Flask za Python i Sintra za Ruby kod kojih programski inženjer sam određuje arhitekturu aplikacije i biblioteke koje će koristiti za realizaciju pojedinih funkcija. Cilj rada je prikazati razvoj oblaku urođene aplikacije u Pythonu korištenjem mikrookvira Flask na vlastitom primjeru.

Literatura:

  1. Flask
  2. Getting Started with AWS
  3. Getting started with Azure

Paralelizacija izračuna dubokih neuralnih mreža na grafičkim procesorima {PPHS} [Andrija Poleksić]

Naslov na engleskom: Parallelization of deep neural network computation on the GPU

Opis teme:

Duboke neuralne mreže su temelj modernih primjena strojnog učenja u brojnim domenama, od samovozećih automobila do računalne kemije. Zbog veličine problema koje obrađuju često se izvode paralelno na grafičkim procesorima i upravo su jedna od najčešćih primjena grafičkih procesora. Cilj rada je opisati primjenu paralelizma u radu s dubokim neuralnim mrežama te usporediti učinkovitost procesa treniranja modela u serijskoj izvedbi na osnovnom i paralelnoj izvedbi na grafičkom procesoru.

Literatura:

  1. NVIDIA cuDNN Documentation
  2. Goldsborough, P. A Tour of TensorFlow. ArXiv, 2016.
  3. Chollet, F. Deep Learning with Python. Manning, 2017.

Predikcija vrijednosti kriptovaluta metodama strojnog učenja i analizom blockchain informacija {PPHS} [Dominik Frković]

Naslov na engleskom: Predicting the values of cryptocurrencies using machine learning methods and blockchain information

Mentor: v. pred. dr. sc. Vedran Miletić

Komentor: doc. dr. sc. Sanda Bujačić

Opis teme:

Kriptovalute su danas vrlo aktualna i intrigantna tema, kako u području informacijsko-komunikacijske tehnologiju, tako u području financija. Izrazito turbulentan tijek kretanja cijena kriptovaluta je značajna pojava, kako iz ekonomskog, tako i iz tehnološkog aspekta, a velikim je dijelom generiran špekulacijama i utjecajima koje nije moguće procijeniti i predvidjeti na klasičan način. Popularnost kriptovaluta je u kontinuiranom rastu, a najviše zbog osobina kao što su decentraliziranost, transparentnost i sigurnost. U radu se predstavljaju i analiziraju osnovne metode strojnog učenja koje se koriste u predikciji vrijednosti kriptovaluta na temelju analize blockchain informacija. Cilj rada je opisati pristupe i rješenja za predviđanje cijena kriptovaluta oslanjajući na informacije o tehnologiji blockchain, što nije slučaj koji se javlja u trgovanju uobičajenim valutama na svjetskim burzama kapitala.

Literatura:

  1. Rivest, R. L. Cryptography and Machine Learning, Advances in Cryptology -- ASIACRYPT '91 (H. Imai, R. L. Rivest, and T. Matsumoto, eds.), (Berlin, Heidelberg), pp. 427--439, Springer Berlin Heidelberg, 1993.
  2. Alessandretti, L., ElBahrawy, A., Aiello, L. M. & Baronchelli, A. Anticipating cryptocurrency prices using machine learning. Complexity, 2018.
  3. Nakamoto, S. Bitcoin: A Peer-to-Peer Electronic Cash System. Dostupno na: bitcoin.org/bitcoin.pdf
  4. Ellis, S. Juels, A. & Nazarov, S. ChainLink -- A Decentralized Oracle Network. Dostupno na: link.smartcontract.com/whitepaper

Optimizacijske tehnike kod sjenčanja u Unreal Engineu {PPHS} [Mia Doričić]

Naslov na engleskom: Shading optimization techniques in Unreal Engine

Opis teme:

Posljednjih desetljeća industrija igara je u kontinuiranom porastu te je jedan od najvećih poticaja za razvoj računalne infrastrukture koja te igre pogoni. Kako je razvoj igara za više platformi složen proces, sve je popularnije korištenje pogona kao Unity i Unreal Engine. U tim alatima se koriste programi za sjenčanje za prikaz raznih efekata i jedan su od ključnih ciljeva kod optimizacije brzine izvođenja računalne igre. Cilj rada je opisati tehnike optimizacije sjenčanja u Unreal Engineu i primijeniti ih na vlastitim primjerima.

Literatura:

  1. 3D Game Shaders For Beginners
  2. Shader Development (Unreal Engine Documentation)

Literatura:

  1. J. Kiusalaas, Numerical Methods in Engineering with Python 3, Cambridge University Press, 2013.
  2. M. Čupić, Ž. Mihajlović, Interaktivna računalna grafika kroz primjere u OpenGL-u, udžbenik Fakulteta elektronike i računarstva, 2018.
  3. R. Scitovski, Numerička matematika, 3. izmijenjeno i dopunjeno izdanje, Odjel za matematiku, Sveučilište u Osijeku, 2015.

Razvoj aplikacije korištenjem mrežne i kriptografske biblioteke NaCl {RM2} [Đino Prenc, preneseno iz 2019./2020.]

Naslov na engleskom: Application development using NaCl network and cryptographic library

Opis teme:

Brojne mrežne aplikacije koje svakodnevno vrše šifriranje i dešifriranje sadržaja. Primjerice, web preglednik Firefox i web poslužitelj Apache HTTP Server koriste velik broj različitih kriptografskih algoritama koje podržava protokol Transport Layer Security (TLS) kako bi bili interoperabilni s raznim web poslužiteljima, odnosno klijentima na internetu. Poslužitelj i klijent virtualne privatnu mreže OpenVPN također koristi protokol TLS za šifriranje podataka u komunikaciji i pritom podržava veliki broj algoritama zbog kompatibilnosti s velikim brojem platformi na kojima radi te sa vlastitim starijim verzijama. Navedeni programi uglavnom koriste OpenSSL za izvođenje kriptografskih algoritama koji im trebaju, što zbog veličine OpenSSL-ovog koda i velikog broja podržanih algoritama otežava sigurnosni pregled dobivenog rješenja. Zbog toga se novije aplikacije odlučuju na vlastitu implementaciju kriptografskih algoritama (primjerice, tako radi sustav za virtualnu privatnu mrežu WireGuard) ili koriste manje i lakše provjerljive biblioteke kao što je NaCl (kratica od Networking and Cryptography library) i njezin fork Sodium, namijenjen za jednostavnije višeplatformsko korištenje, pakiranje i instalaciju. Cilj rada je razviti vlastitu mrežnu aplikaciju čija je namjena po izboru studenta i koja kod šifriranja koristi kriptografske algoritme iz biblioteke Sodium.

Literatura:

  1. NaCl: Networking and Cryptography library
  2. Libsodium documentation

Prvoaprilski RFC-i {RM2} [Dino Šarković, preseneno iz 2018./2019.]

Naslov na engleskom: April Fools' Day Request for Comments

Opis teme:

Osim ozbiljnih RFC-a, kao što su primjerice oni koji opisuju TCP, IPv6 ili ICMP, postoji i određeni broj RFC-a objavljenih na prvi april koji sadrže inženjerske šale. Bez obzira na njihov humorističan karakter, većina prvoaprilskih RFC-a može se povezati s aktualnim tehnologijama i problemima u domeni računalnih mreža te su stoga zanimljivi za analizu. Cilj rada je analizirati nekolicinu prvoaprilskih RFC-a po izboru studenta i povezati ih s ozbiljnim RFC-ima na koje se vežu.

Literatura:

  1. April Fools' Day Request for Comments
  2. Limoncelli, T. A. & Salus, P. H. The Complete April Fools' Day RFCs. (Peer-to-Peer Communications, 2007.)

Odabrane teme diplomskih radova akademske godine 2020./2021.

Sigurnost mikroservisa {UMS} [Simon Košmrl]

Naslov na engleskom: Microservice security

Opis teme:

U novije vrijeme arhitektura web aplikacija temeljena na mikroservisima dobiva na popularnosti. U tom slučaju se pojedini servisi koji čine web aplikaciju razvijaju ovisno o poslovnim zahtjevima. To omogućuje da se pojedini servisi implementiraju prema potrebi u različitim jezicima i korištenjem različitih okvira te se neovisno razvijaju. Kao i kod monolitnih aplikacija, sigurnost je značajna tema o kojoj treba voditi računa za vrijeme razvoja web aplikacije.

Cilj rada je opisati tehnike napada na mikroservise i web aplikacije, alate koji se za njih koriste i načine obrane od tih napada te u vlastitoj razvojnoj okolini (lokalno ili u oblaku) demonstrirati neke od napada na za tu svrhu razvijenom mikroservisu ili web aplikaciji (za razvoj se može iskoristiti bilo koji od modernih okvira, npr. Express, Lumen, Flask, Sinatra, ASP.NET Core i Spring te relacijska ili nerelacijska baza podataka po želji).

Literatura:

  1. Express
  2. Lumen
  3. Flask
  4. Sinatra
  5. ASP.NET Core
  6. Spring

Odabrane teme završnih radova akademske godine 2019./2020.

Utjecaj pandemije COVID-19 na igranje igara za više igrača putem interneta {RM2} [Ana Novokmet]

Opis teme:

Pandemija koronavirusa SARS-CoV-2 tijekom 2020. godina učinila je da velik broj država uvede izolacijske mjere kako bi se usporilo širenje virusa među populacijom. Dio populacije je iskoristio priliku za konzumiranje multimedijskog sadržaja, prvenstveno strujanje filmova i serija sa servisa kao što su Netflix i HBO te igranje igara za više igrača s platformi kao što su Steam i PlayStation. Zbog iznenadnog povećanja broja korisnika, te su platforme bile primorane uvesti mjere ograničavanja širine pojasa mreže kod preuzimanja igara i njihovih nadogradnji kako bi infrastruktura za igranje igara za više igrača putem interneta ostala stabilna. Cilj rada je analizirati utjecaj pandemije koronavirusa na performanse interneta sa specifičnim naglaskom na performanse igranja igara za više igrača i povezane usluge kao što su strujanje audiovizualnog sadržaja igrača putem platformi kao što su Twitch i YouTube.

Literatura:

  1. UPDATE: Preserving Internet Access for the Entire Community (PlayStation.Blog)
  2. Managing Steam Bandwidth During COVID-19 Pandemic (Steam Blog)
  3. Tracking COVID-19's Impact on Global Internet Performance (Speedtest Insights)

Razvoj HTTP web aplikacije korištenjem okvira Drogon {RM2} [Rikardo Jagnjić]

Opis teme:

Suvremeni pristupi razvoju web aplikacija dijele aplikaciju na dva osnovna dijela, stražnji (tzv. backend) i prednji dio (tzv. frontend) koji komuniciraju putem aplikacijskog programskog sučelja korištenjem protokola HTTP. To omogućuje implementaciju više aplikacija za različite platforme (primjerice, web i mobilna) koje koriste zajednički stražnji dio aplikacije, što skraćuje te olakšava pronalaženje i ispravljanje grešaka. Cilj rada je korištenjem okvira Drogon razviti stražnji dio web aplikacije čija je namjena po izboru studenta te opisati aplikacijsko programsko sučelje koje taj stražnji dio nudi putem protokola HTTP te način korištenja tog aplikacijskog programskog sučelja od strane nekog prednjeg dijela web aplikacije koji u budućnosti može biti razvijen.

Literatura:

  1. REST API Tutorial
  2. Drogon
  3. C++ reference
  4. C++ Core Guidelines

Projekti javnog bežičnog pristupa internetu Wlan slovenija i Otvorena mreža {RM1} [Igor Lipošćak]

Opis teme:

Pristup internetu putem bežične mreže dostupan je na brojnim javnim mjestima. Projekti Wlan slovenija i Otvorena mreža žele proširiti tu dostupnost korištenjem jeftinih kućnih routera i slobodnihg softvera otvorenog koda. Projekti se zasnivaju na softveru za bežične usmjerivače OpenWrt i nekolicini softvera vlastitog razvoja. Cilj rada je opisati tehničke karakteristike i društvene ciljeve oba projekta, te napraviti pregled dosadašnjih postignuća.

Literatura

  1. Wlan slovenija
  2. Otvorena mreža

Tehnike rasterizacije {PPHS} [Mauro Raguzin]

Mentor: v. pred. dr. sc. Vedran Miletić

Komentor: doc. dr. sc. Sanda Bujačić

Opis teme:

Moderni grafički procesori imaju programabilni cjevovod koji koriste za prikaz 3D grafike na računalu. Jedan od koraka u tom prikazu je rasterizacija: proces kojim se objekti u prostoru prikazuju kao pikseli kako bi mogli biti postavljeni na zaslon računala. Cilj rada je objasniti tehnike rasterizacije, specijalno renderiranje koje je manje zahtjevno za resursima račuanala i praćenje zrake (engl. raytracing) koje je zahtjevnije. Od studenta se također očekuje da izvede implementaciju tehnike rasterizacije po želji na modernom grafičkom procesu po želji, uz preferenciju prema korištenju tehnologija otvorenog koda.

Literatura:

  1. What's the Difference Between Ray Tracing and Rasterization? (NVIDIA Blog)
  2. ROCm
  3. NVIDIA CUDA

Problem performansi računalne mreže Bufferbloat {RM2} [Nikola Terihaj]

Opis teme:

Porastom veličine međuspremnika usmjerivača na internetu raste prosječno vrijeme koje paketi čekaju u tim međuspremnicima na putu od izvora do odredišta. Posljednjih 10-ak godina taj se fenomen izučava pod nazivom Bufferbloat pa su vremenom razvijeni alati koji ga mogu mjeriti kao što je Flent i algoritam za aktivno upravljanje redovima čekanja paketa CoDel kojim se Bufferbloat želi izbjeći. Cilj rada je opisati kako dolazi do Bufferbloata, izmjeriti Bufferbloat u konkretnom slučaju po izboru studenta te analizirati način rada algoritma CoDel koji služi za njegovo izbjegavanje i doprinose projekta Make Wi-Fi Fast koji iskustvo stečeno kod rješavanja Bufferbloata prenosi na Wi-Fi.

Literatura:

  1. Bufferbloat
  2. DSLReports Speed Test
  3. Flent
  4. CoDel
  5. Make Wi-Fi Fast
  6. Bozkurt, Ilker Nadi, et al. "Why is the Internet so slow?!." International Conference on Passive and Active Network Measurement. Springer, Cham, 2017. Rad dostupan putem Sveučilišta Illinois Urbana-Champaign; pojednostavljeni opis zaključaka rada dostupan na APNIC-ovom blogu

Predviđanje pristajanja malih molekula na proteine korištenjem tehnika umjetne inteligencije na grafičkim procesorima {PPHS} [Adis Tokalić]

Opis teme:

Porastom procesne moći računala, naročito zahvaljujući računanju na grafičkim procesorima, snažno raste i primjena tehnika strojnog učenja. Jedna od domena primjene strojnog učenja koja se razvija u posljednjih desetak godina je predviđanje molekularnih interakcija. U praktičnoj primjeni vrlo je zanimljivo predviđanje pristajanja malih molekula koje su potencijalni lijekovi na proteine, za što se koriste slobodni softveri otvorenog koda kao što su AutoDock Vina i RxDock i komercijalni softveri kao što je Glide. Cilj rada je dizajnirati analizirati postojeće algoritme strojnog učenja u području predviđanja pristajanja malih molekula na proteine i zatim dizajnirati algoritam koji uči na temelju izlaznih podataka koji daje neki od ranije navedenih softvera pa usporediti predviđanja algoritma za strojno učenje s predviđanjima samog softvera.

Literatura:

  1. NVIDIA CUDA
  2. ROCm
  3. Ballester, P. J. & Mitchell, J. B. O. A machine learning approach to predicting protein--ligand binding affinity with applications to molecular docking. Bioinformatics 26, 1169--1175 (2010).
  4. Kinnings, S. L. et al. A Machine Learning-Based Method To Improve Docking Scoring Functions and Its Application to Drug Repurposing. J. Chem. Inf. Model. 51, 408--419 (2011).
  5. Vina
  6. RxDock
  7. Glide

Paralelizacija predviđanja pristajanja malih molekula na proteine {PPHS} [Maja Abramović]

Opis teme:

Visokoprotočni virtualni pregled molekula koje su potencijalni lijekovi kroz predviđanje pristajanja tih molekula na proteine je tzv. sramotno paralelna operacija; može se trivijalno paralelizirati tako da se pregled svake pojedine molekule vrši na različitom (logičkom) procesoru. Za tu svrhu se na superračunalima uglavnom koriste upravitelji opterećenjem opće namjene kao što je Slurm ili specijalno razvijeni sustavi za skaliranje virtualnog pregleda molekula kao što je Virtual Flow. Na manjim računalnim sustavima kao što su poslužitelji, radne stanice, stolna i prijenosna računala ovakvi sustavi se ne koriste pa je virtualni pregled molekula često ograničen na korištenje samo jednog logičkog procesora i očekuje od korisnika da ručno razdijeli ulazne datoteke s molekulama na više dijelova i pokrene program više puta kako bi iskoristio sve dostupne logičke procesore. Kako suvremena prijenosna računala imaju od 4 do 16 logičkih procesora, stolna računala i radne stanice od 8 do 32 (u nekim slučajevima i do 128), a poslužitelji od 32 do 256, takvo ručno pokretanje zahtijeva izrazito puno rudimentarnog i repetitivnog rada od strane korisnika. Cilj rada je u alatu za visokoprotočni pregled molekula RxDock, forku alata rDock moderniziranom korištenjem C++-a 11, implementirati podršku za višenitni rad korištenjem mehanizmom dostupnim u C++-u po izboru studenta kako bi se olakšalo korištenje dostupnih resursa računalnih sustava s više logičkih procesora.

Literatura:

  1. Slurm
  2. Virtual Flow
  3. Ruiz-Carmona S, Alvarez-Garcia D, Foloppe N, Garmendia-Doval AB, Juhos S, Schmidtke P, et al. rDock: A Fast, Versatile and Open Source Program for Docking Ligands to Proteins and Nucleic Acids. PLoS Comput Biol 10(4): e1003571 (2014). doi:10.1371/journal.pcbi.1003571
  4. RxDock
  5. C++11 thread support library
  6. Taskflow (C++14)
  7. C++17 algorithms library

Rješavanje zadataka iz predmeta Računalne mreže na računalu {RM1} [Andrea Hrelja, preneseno iz 2018./2019.]

Opis teme:

Predmet Računalne mreže jedan od je temeljnih predmeta preddiplomskog studija informatike. Teorijsko gradivo iz predmeta popraćeno je računskim zadacima koji se rješavaju na papiru, ali mogu se rješavati i na računalu korištenjem bilo kojeg alata ili programskog jezika koji podržava osnovne računske operacije. Cilj rada je isprogramirati rješenja odabranih računskih zadataka iz predmeta Računalne mreže u programskom jeziku po želji studenta kako bi se ti zadaci mogli rješavati na računalu i/ili kako bi računalo moglo provjeriti točnost predloženog rješenja. Isprogramirani zadaci moraju raditi tako da daju rješenja budu točna uz varijaciju brojki i drugih postavki u zadacima.

Literatura:

  1. Peterson, L. L. & Davie, B. S. Computer networks: a systems approach. (Morgan Kaufmann, 2012.)
  2. Dokumentacija odabranog programskog jezika

Odabrane teme diplomskih radova akademske godine 2019./2020.

InterPlanetary File System (IPFS) {UMS} [Dario Ognjanović]

Opis teme:

...

Literatura:

  1. IPFS

Mjerenje performansi poslužiteljskih Java aplikacija u virtualnim strojevima {UMS} [Matija Šegović]

Opis teme:

Poslovni sustavi zahtijevaju predvidljiv rad aplikacija o kojima poslovanje ovisi, bez obzira rade li te aplikacije u virtualnom ili u stvarnom okruženju. Jedan od aspekata predvidljivosti rada aplikacije jesu njene performanse koje se najčešće mjere u terminima vremena odziva u ovisnosti o broju korisnika, što se može mjeriti. Povećanjem performansi računala na kojem se aplikacije izvode uglavnom će biti moguće smanjiti vrijeme odziva ili povećati broj korisnika te će ta mjerenja performansi biti vodilja kod odabira računala na kojem će se aplikacija u konačnici izvoditi.

Cilj rada je opisati proces instalacije i konfiguracije poslužiteljskih Java aplikacija na virtualnim strojevima na tipičnom poslužitelju te izmjeriti njihove performanse korištenjem ELK Stacka (Elasticsearch, Logstash i Kibana).

Literatura:

  1. Nemeth, E., Snyder, G., Hein, T. R., Whaley, B. & Mackin, D. Unix and Linux system administration handbook. (Addison-Wesley, 2017)
  2. Apache Tomcat Documentation
  3. JBoss Application Server Official Documentation
  4. IBM WebSphere Documentation
  5. ELK Stack Documentation

Proširenje mogućnosti OpenCL stoga otvorenog koda za grafičke procesore AMD Radeon {PPHS} [Dominik Varelija]

Opis teme:

NVIDIA je vodeća tvrtka u domeni vizualizacije i računanja na grafičkim procesorima. U domeni računanja na grafičkim procesorima s NVIDIA-om se natječu AMD i Intel, nudeći podršku za otvoreni standard OpenCL kao alternativu NVIDIA-inoj vlasničkoj tehnologiji CUDA. AMD, pored korištenja otvorenog standarda OpenCL, nudi stog (program-prevoditelj Clang/LLVM, biblioteke, upravljačke programe) otvorenog koda Clover za grafičke procesore Radeon, temeljen na biblioteci Mesa (Gallium). Zadatak rada je usporediti mogućnosti vlasničkog stoga za grafičke procesore tvrtke NVIDIA i stoga otvorenog koda za grafičke procesore AMD Radeon i proširiti mogućnosti stoga da podržava skup alata za molekularne simulacije OpenMM.

Literatura:

  1. Mesa 3D Graphics Library documentation
  2. Radeon Feature on X.Org Wiki
  3. Gallium Compute on DRI Wiki
  4. zogi/mesa (GitHub)
  5. libclc
  6. LLVM
  7. OpenMM
  8. Make OpenMM OpenCL support work on Clover and RadeonSI
  9. Scarpino, Matthew. OpenCL in Action: How to accelerate graphics and computations. (Manning Publications, 2011).
  10. Khronos OpenCL Registry
  11. Marchesin, Stéphane. Linux Graphics Drivers: an Introduction. (FreeDesktop, 2012).
  12. Linux Graphics Stack Overview (Simon Kitching, The Mine of Information)
  13. Linux graphic stack (Nathan Gauër Blog)
  14. The Linux Graphics Stack (Clean Rinse)
  15. A brief introduction to the Linux graphics stack (Iago Toral Developer Log, Igalia)

Prevođenje programa za sjenčanje u strojni kod grafičkog procesora AMD Radeon {PPHS} [Sanja Božić]

Opis teme:

Programi za sjenčanje neizbježan su dio modernih računalnih igara gdje služe za prikaz svjetla i sjene 3D modela, promjenu zasićenja i tona boje, primjenu efekata kao što su volumetričko osvjetljenje te brojne druge svrhe. Proizvođači grafičkih procesora žele igračima osigurati optimalan ugođaj igranja pa je prevođenje programa za sjenčanje koje se događa dok igrač igra igru jedan od većih izazova za optimizaciju performansi; potrebno je postići i brzo prevođenje koda kako bi isti bio spreman za pokretanje prije nego igrač dođe do dijela gdje se kod pokreće i visoke performanse izvođenja rezultirajućeg strojnog koda. U okviru inicijative GPUOpen, započete u prosincu 2015. godine, AMD je u suradnji sa zajednicom okupljenom oko projekata Mesa i LLVM razvio prevoditelj programa za sjenčanje za vlastite grafičke procesore Radeon. Fokus je bio i ostao optimizacija performansi na konkretnim programima za sjenčanje kakvi se javljaju u igrama koje koriste aplikacijska programska sučelja OpenGL i Vulkan. Tijekom 2019. godine Valve je objavio da razvija alternativni prevoditelj programa za sjenčanje nazvan ACO koji LLVM zamjenjuje vlastitim generatorom strojnog koda i ima za cilj skratiti vrijeme prevođenja programa (koje je ovdje kritično) u aktualnim igrama koje koriste Vulkan (Strange Brigade, Rise of The Tomb Raider, Doom (2016) i sl.). Cilj rada je dati pregled strojnih instrukcija grafičkog procesora AMD Radeon arhitektura Graphics Core Next i/ili Radeon DNA te usporediti AMD-ovu i Valveovu implementaciju programa za sjenčanje u terminima dizajna softvera, vremena, točnosti i brzine izvođenja prevedenih programa. Kod prevođenja programa za sjenčanje moguće je razviti vlastite ili koristiti postojeće iz igara i alata Piglit za testiranje implementacija OpenGL-a i Vulkana.

Literatura:

  1. Help us test ACO, a new Mesa shader compiler for AMD graphics!
  2. Mesa 3D Graphics Library documentation
  3. User Guide for AMDGPU Backend (LLVM)
  4. Piglit
  5. Gallium Hud, the almost definitive guide on how to use and customize it
  6. Marchesin, Stéphane. Linux Graphics Drivers: an Introduction. (FreeDesktop, 2012).
  7. Linux Graphics Stack Overview (Simon Kitching, The Mine of Information)
  8. Linux graphic stack (Nathan Gauër Blog)
  9. The Linux Graphics Stack (Clean Rinse)
  10. A brief introduction to the Linux graphics stack (Iago Toral Developer Log, Igalia)

Odabrane teme završnih radova akademske godine 2018./2019.

Implementacija Kruskalovog algoritma primjenom tehnologije CUDA {PPHS} [Vicenco Tomaš]

Mentor: dr. sc. Draško Tomić

Zamjenski mentor: v. pred. dr. sc. Vedran Miletić

Opis teme:

NVIDIA CUDA je vodeća tehnologija za računanje na grafičkim procesorima i iskorištena je za paralelizaciju brojnih algoritama. Kruskalov algoritam traži minimalno razapinjuće stablo grafa i koristi se kod planiranja brojnih vrsta mreža (cestovne, električne, komunikacijske i drugih). Cilj rada je analizirati različite postojeće pristupe paralelizaciji Kruskalovog algoritma za izvođenje na grafičkim procesorima korištenjem tehnologije CUDA te implementirati algoritam prema odabranom pristupu.

Literatura:

  1. NVIDIA CUDA
  2. Kruskal's algorithm

Odabrane teme diplomskih radova akademske godine 2018./2019.

Performanse upravljačkih programa grafičkog procesora kod izvođenja simulacija molekularne dinamike alatom GROMACS {PPHS} [Mario Ćuro]

Opis teme:

GROMACS je jedan od najkorištenijih alata za simulaciju molekularne dinamike i, zbog vrlo dobrih performansi kod izvođenja na grafičkim procesorima korištenjem CUDA-e, redovito spomenuta aplikacija u NVIDIA-inim katalozima softvera i promotivnim materijalima. Tijekom 2014. godine tvrtka StreamComputing (danas StreamHPC) implementirala je podrška za izvođenje na nekim grafičkim procesorima koji podržavaju tehnologiju OpenCL. Carsten Kutzner i suradnici su u dva rada, jednom objavljenom 2015. i jednom koji je u trenutku zadavanja teme u procesu objave, analizirali performanse GROMACS-a na grafičkim procesorima uglavnom koristeći CUDA-u. Cilj ovog rada je na isti način analizirati performanse GROMACS-a korištenjem OpenCL-a na grafičkim procesorima AMD Radeon. Za tu svrhu može se koristiti i razvojna verzija GROMACS-a koja nudi Python API čime je olakšana automatizacija mjerenja performansi.

Literatura:

  1. GROMACS documentation
  2. We ported GROMACS from CUDA to OpenCL (StreamHPC)
  3. Kutzner, C. et al. Best bang for your buck: GPU nodes for GROMACS biomolecular simulations. Journal of Computational Chemistry 36, 1990--2008 (2015).
  4. Kutzner, C. et al. More Bang for Your Buck: Improved use of GPU Nodes for GROMACS 2018. arXiv:1903.05918 [physics, q-bio] (2019).
  5. A free GROMACS benchmark set (MPI-BPC Theoretical and Computational Biophysics)
  6. gmxapi Python package

Ucjenjivački softver {UMS} [Stefano Berneš]

Opis teme:

Ucjenjivački softver je vrsta zlonamjernog softvera koja šifrira datoteke na računalu korisnika i zatim traži od korisnika plaćanje određene svote novca u zamjenu za ključ koji može dešifrirati šifrirane datoteke. U naglom je porastu od 2012. godine, a postao je poznat zahvaljujući CryptoLockeru koji je od korisnika iznuđivao plaćanje u Bitcoinima. Zadatak diplomskog rada je objasniti kako radi ucjenjivački softver, opisati povijest i neke najpoznatije ransomeware napade, nabrojiti i opisati različite vrste ucjenjivačkog softvera te navesti načine zaštite od mogućih ransomeware napada. Naposlijetku, potrebno je izraditi dokaz koncepta u kojem će biti prikazan način rada ucjenjivačkog softvera.

Literatura:

  1. Ransomware
  2. Ransomware doesn't mean game over (Malwarebytes Labs)
  3. Massive WannaCry/Wcry Ransomware Attack Hits Countries (Trend Micro Research)

Robotska automatizacija procesa {UMS} [Marko Čolak]

Opis teme:

Procesi koje radnik unutar poslovnog sustava često izvodi na računalu i koji se mogu opisati nizom akcija koje treba poduzeti zanimljivi su za primjenu robotske automatizacije (engl. robotic process automation). U okviru robotske automatizacije koristi se niz softverskih alata (koji su metafora za industrijske robote) koji onda zamjenjuju radnika kod izvođenja repetitivnih radnji.

Zadatak rada je opisati robotsku automatizaciju procesa i razloge njene primjene (ušteda vremena, pojednostavljenje procesa koje radnik izvodi i sl.), a zatim odabrati proces kojeg radnik često izvodi na računalu (primjerice, otvaranje određene web stranice, preuzimanje datoteke s određenim strukturiranim sadržajem s nje pa čitanje, odabir i pretvorba sadržaja koji se potom unosi u poslovnu aplikaciju koja generira izvještaj koji treba preuzeti i poslati e-poštom). Za odabrani proces potrebno je napraviti dijagram procesa korištenjem UML-a (Unified Modeling Language) ili BPMN-a (Business Process Model and Notation) te provesti automatizaciju korištenjem rješenja otvorenog koda kao što su programski jezik Python i njegovi moduli (bilo standardne biblioteke, bilo treće strane), TagUI i/ili Robot Framework koji služe kao alternativa komercijalnim rješenjima u iste namjene (npr. UiPath, BluePrism, AutomationAnywhere). Za automatizaciju pokretanja razvijenih i postojećih alata potrebno je koristiti postojeće usluge operacijskog sustava (npr. init i cron ili systemd na Linuxu).

Literatura:

  1. Lacity, M., and Willcocks, L. P.. Robotic process automation: the next transformation lever for shared services. (London School of Economics Outsourcing Unit Working Research Paper Series, 2015). Rad dostupan putem mrežnih stranica Sveučilišta u Missouriju u St. Louisu.
  2. Willcocks, L. P., Lacity M. & Craig, A. Robotic process automation at Xchanging. (London School of Economics Outsourcing Unit Working Research Paper Series, 2015). Rad dostupan putem mrežnih stranica Londonske škole ekonomije.
  3. Robot Framework Documentation

Instalacija i održavanje računalne učionice {UMS} [Pino Zidarić]

Opis teme:

Moderne računalne učionice na fakultetima i u školama rijetko se naivno instaliraju i održavaju računalo po računalo, već je često u pitanju neki oblik centralnog upravljanja instalacijom softvera na svakom pojedinom računalu. Zadatak rada je osmisliti softverski stog i postavke suvremene učionice Odjela zasnovane na operacijskom sustavu Linux. Radi jednostavnosti, može se uzeti da se radi o single-boot sustavu (u praksi to najčešće nije slučaj, ali kako se Linux i Windows na stvarnim računalima na Odjelu za informatiku često stavljaju na različite fizičke diskove, to je dovoljno dobra aproksimacija). Hardver koji se koristi su relativno nove (<5 godina starosti) x86-64 mašine od Intela (i5, rjeđe i7) ili AMD-a (Ryzen 5, možda Ryzen 7). Zahtjevi za učionicom su sljedeći:

  • Temelj je zadnji stabilni Debian (u trenutku zadavanja zadatka: 9) ili zadnji Ubuntu LTS (u trenutku zadavanja zadatka: 18.04).
  • Potrebno je na svakom računalu stvoriti korisnički račun informatičke podrške koji ima sudo pristup (npr. podrska), korisnički račun nastavnika koji ima sudo pristup (npr. predavac) i korisnički račun studenta koji nema sudo pristup (npr. student).
  • Potrebno je omogućiti pristup nastavničkom računalu putem VPN-a (pretpostaviti da negdje postoji VPN poslužitelj na javnoj adresi koji se može koristiti), a osim toga VPN-om se mora omogućiti komunikacija između učionica s nastavničkog računala u jednoj učionici na nastavničko računalo u drugoj učionici) (OpenVPN, SoftEther ili Wireguard).
  • Potrebno je instalirati softver za nadzor studentskog rada (poslužiteljska strana na nastavničkom računalu, klijentska strana na studentskim) (Veyon ili Epoptes).
  • Potrebno je postaviti apt-cacher-ng (poslužiteljska strana na nastavničkom računalu, studentska računala ga koriste).
  • Potrebno je postaviti Ansible na nastavničkom računalu kako bi se moglo upravljati instalacijom softvera na studentskim računalima s jednog mjesta.
  • Potrebno je napraviti skriptu koja kod poziva s nastavničkog računala na svim studentskim računalima putem vatrozida zabranjuje pristup svim stranicama na internetu osim Merlina.
  • Potrebno je napraviti skriptu koja kod poziva s nastavničkog računala na svim studentskim računalima odjavljuje studentskog korisnika ako je prijavljen i zatim briše sve datoteke unutar kućnog direktorija tog korisnika pa kopira sadržaj direktorija /etc/skel na njihovo mjesto.

Literatura:

  1. DigitalOcean Tutorials
  2. nixCraft HowTos and Tutorials

Biblioteke heterogene sustavske arhitekture platforme ROCm {PPHS} [Augustin Sočković]

Opis teme:

Dok se aplikacija izvodi u heterogenom računalnom sustavu, grafički i središnji procesor razmjenjuju podatke koje aplikacija koristi za izvođenje operacija.

Literatura:

  1. W. H. Wen-mei, Heterogeneous System Architecture: A new compute platform infrastructure. Morgan Kaufmann, 2015.
  2. ROCm: Open Platform For Development, Discovery and Education around GPU Computing (GPUOpen)

Odabrane teme završnih radova akademske godine 2017./2018.

Napadi tipa man-in-the-middle na HTTPS i njihovo prepoznavanje {RM2} [Dominik Varelija]

Opis teme:

Širenjem interneta i širenjem broja i vrsta uređaja koji internetu pristupaju sigurnost računalnih mreža sve je veći izazov. Unatoč rastu korištenja šifriranja na webu, sam prijelaz na HTTPS nije dovoljan da se onemoguće napadi presretanjem prometa (engl. man-in-the-middle). Primjerice, kako autoriteti certifikata kojima su označeni kao da im se vjeruje mogu izdavati certifikate po želji za bilo koju domenu na internetu, u slučaju zlonamjernog djelovanja mogu omogućiti presretanje šifriranog prometa bez da korisnik to uoči obzirom da i dalje pristupa web stranici putem HTTPS-a. Zadatak rada je opisati navedeni i druge napade tipa man-in-the-middle na HTTPS i metode njiho0vog prepoznavanja i prevencije.

Literatura:

  1. Half the Web Is Now Encrypted. That Makes Everyone Safer (Wired)
  2. Durumeric, Zakir, et al. "The Security Impact of HTTPS Interception." Network and Distributed Systems Symposium (NDSS'17). 2017. Rad dostupan putem mrežnih stranica J. Alexa Hanldermana.
  3. Detecting HTTPS Interception (Caddy web server)

Nomulus: softver otvorenog koda za upravljanje registrom domena (Nomulus: open source domain registry management software) {RM2} [Sanja Ivić, preneseno iz 2016./2017.]

Opis teme:

Rastom prostora internetskih domena na veći skup ekstenzija vršnog nivoa (engl. top-level domain extensions) od 2011. godine nadalje raste i broj kompanija koje se bave upravljanjem domenama. Posao upravljanja registrom domena, koji su nekoć radili Verisign, Afilias, Neustar i nacionalni registri pojedinih država, danas rade stotine kompanija. Među njima su i, osim kompanija koje nove domene prodaju, kompanije koje nove domene koriste isključivo za vlastite potrebe (BMW za .bmw, Ferrari za .ferrari, Nike za .nike itd.). U takvoj situaciji softver za upravljanje registrom domena umjesto alata koji svaki registar razvija isključivo za internu potrebu postaje potencijalno široko primjenjiv softver, a jedna od mogućnosti razvoja takvog softvera je kroz projekt otvorenog koda. Nomulus je softver otvorenog koda koji Google Registry koristi za upravljanje domenama koje su im dodijeljene (.google, .how, .foo...), a napravljen je tako da ga mogu koristiti i drugi registri domena. Osim Googlea, u razvoju sudjeluje i Donuts, jedan od registara domena nastalih prilikom posljednje ekspanzije prostora internetskih domena. Zadatak rada je analizirati mogućnosti softvera i opisati proces instalacije, konfiguracije i korištenja iz hipotetske perspektive registra domena koji je vlasnik barem dvije nove ekstenzije vršnog nivoa. Literatura

  1. nTLDStats
  2. NameStat
  3. Nomulus
  4. Nomulus na GitHubu
  5. Introducing Nomulus: an open source top-level domain name registry (Google Open Source Blog)
  6. ICANN New gTLDs

Ugradbeni softver za bežične usmjerivače OpenWrt / LEDE (OpenWRT/LEDE embedded wireless router software) {RM1} [Matija Banjan, preneseno iz 2016./2017.]

Opis teme:

OpenWrt / LEDE je distribucija Linuxa koja se koristi kao ugradbeni softver za bežične usmjerivače. Podržava velik broj usmjerivača, a koristi se primarno kao zamjena za često zastarjeli i nesigurni proizvođačev ugradbeni softver. OpenWrt je slobodni softver otvorenog koda. Zadatak rada je opisati mogućnosti, način instalacije i način rada OpenWrt-a ili LEDE-a.

Literatura:

  1. OpenWRT
  2. LEDE

Odabrane teme diplomskih radova akademske godine 2017./2018.

Implementacija TCP-a u jezgri Linuxa i njene primjene (TCP implementation in Linux kernel and its applications) {OS1} [Ana Tomasović]

Mentor: doc. dr. sc. Božidar Kovačić

Komentor: dr. sc. Vedran Miletić

Opis teme:

Transmission Control Protocol (TCP) je protokol koji logički pripada četvrtom, transportnom, sloju OSI modela i pruža pouzdan prijenos podataka: slanje paketa u točnom redoslijedu, provjeru i ispravljanje grešaka nastalih u prijenosu te kontrolu zagušenja veze. Sam protokol je standardiziran, ali implementacija protokola je specifična za svaki operacijski sustav sukladno potrebama njegovih korisnika i interesima njegovih razvijatelja. Jezgra operacijskog sustava Linux je otvorenog koda te je implementacija stoga internetskih protokola, specifično i protokola TCP, dostupna za analizu i prilagodbu. Cilj rada je opisati implementaciju TCP-a u stogu internetskih protokola u jezgri operacijskog sustava Linux te opisati primjene dostupnih mehanizama za pouzdan prijenos paketa.

Literatura:

  1. Benvenuti, Christian. Understanding Linux network internals. O'Reilly Media, Inc., 2006.
  2. Lacage, Mathieu. Experimentation tools for networking research. Diss. Nice, 2010.
  3. Sarolahti, Pasi, and Alexey Kuznetsov. "Congestion Control in Linux TCP." USENIX Annual Technical Conference, FREENIX Track. 2002.

Pogon otvorenog koda za izradu 2D i 3D igara Godot (Godot open source 2D and 3D game engine) {PPHS} [Kristijan Faust]

Mentor: doc. dr. sc. Božidar Kovačić

Komentor: dr. sc. Vedran Miletić

Opis teme:

Godot je pogon otvorenog koda za izradu 2D i 3D igara dostupand pod licencom MIT. Razvojna okolina radi na Linuxu, macOS-u, Windowsima i drugim operacijskim sustavima, a moguće je izrađivati igre za PC, konzole, mobilne i web platforme korištenjem jezika C++, C# ili vlastitog skriptnog jezika GDScript, sintaksom sličnog Pythonu. Cilj rada je dati generalni opis pogona Godot i pregled aktivnosti koje zajednica provodi u procesu njegovog razvoja, zatim analizirati njegov dizajn, opisati razvojnu okolinu s osobitim naglaskom na GDScript te, naposlijetku, prikazati kako se pakiraju stvorene igre za distribuciju na različitim platformama.

Literatura:

  1. Službena dokumentacija pogona Godot
  2. GDScript
  3. Godot 3.0 Open-Source Game Engine Released (Phoronix)
  4. Godot Engine, the open source game engine has evolved with the big 3.0 release (GamingOnLinux)

Odabrane teme završnih radova akademske godine 2016./2017.

Utjecaj interneta na rezultat predsjedničkih izbora 2016. godine u Sjedinjenim Američkim Državama (Impact of the Internet on the result of US Presidential Election 2016) {RM2} [Mihael Orlović]

Poveznica na rad u repozitoriju

Opis teme:

Tijekom izbornog ciklusa u Sjedinjenim Američkim Državama 2015. i 2016. nominaciju Republikanske stranke među 17 kandidata osvojio je Donald John Trump, zvijezda reality TV showa Pripravnik (engl. The Apprentice), a nekoliko mjeseci kasnije je na iznenađenje šire javnosti osvojio i predsjedničke izbore. Među različitim glasačkim blokovima, Trump je vrlo rano zainteresirao korisnike interneta koji koriste Twitter, Facebook, Reddit i 4chan za širenje takozvanih memeja, ideja koje čine internetsku kulturu. Taj glasački blok je počeo vrlo aktivno proizvoditi i distribuirati memeje o "God Emperoru" Trumpu i drugim kandidatima Republikanske, Demokratske i ostalih stranaka, s ciljem da mu pomogne osvojiti izbore. Ne ulazeći u radu u ideološke prepirke i ne birajući stranu, zadatak je analizirati dostupne podatke o čitanosti (putem Alexe, SimilarWeba, Google Trendova i drugih izvora), stavovima, anketama i predviđanjima mainstream medija (MSNBC/NBC News, CNN, ABC News, CBS News, New York Times, Washington Post, Fox News), alternativnih medija (Breitbart, InfoWars, RT, New York Post, The Guardian, HuffPost, The Rebel Media, FiveThirtyEight i drugi manji mediji), društvenih mreža i mjesta za diskusiju (Facebook, Twitter, Reddit /r/the_donald i /r/MrTrump, YouTube/Periscope kanali e-celebrityja i političkih komentatora kao što su Lauren Southern, Gavin McInnes, Mike Cernovich, Stefan Molyneux, Milo Yiannopoulos, Paul Joseph Watson), slikovnih ploča (4chan i ostali chanovi). Student može analizirati detaljnije partikularne događaje ili serije događaja sukladno vlastitim interesima (primjerice, doseg, utjecaj i vijesti iz medija na temu Wikileaksovih objava Podestinih e-mailova, aktivnost Southern Poverty Law Centra, ACLU-a i/ili ADL-a, priču o ruskom utjecaju na izbore, problem lažnih vijesti, aktivnost grupe Correct the Record).

Literatura:

  1. Google Trends Indicate Trump Landslide (Regated)
  2. Hine, Gabriel Emile, et al. "Kek, Cucks, and God Emperor Trump: A Measurement Study of 4chan's Politically Incorrect Forum and Its Effects on the Web." International Conference on Web and Social Media (ICWSM). Association for the Advancement of Artificial Intelligence (AAAI), 2017. Rad dostupan na arXivu
  3. Trump's shrinking electoral map (Politico)
  4. How the Trump Campaign Built an Identity Database and Used Facebook Ads to Win the Election (Joel Winston, posted on Medium)
  5. No, Big Data Didn't Win the U.S. Election (Bloomberg)
  6. Top 10 Trending Keywords in .Com & .Net Registrations in November (Verisign)
  7. Initial D. Trump
  8. How Facebook Saw Trump Coming When No One Else Did (Erin Pettigrew, posted on Medium)
  9. Trump will win the election and is more popular than Obama in 2008, AI system finds (CNBC)
  10. Trump's Big Data Mind Explains How He Knew Trump Could Win (Wired)
  11. App maker: Trump will win election (USA Today)
  12. Clinton vs. Trump: Predicting The Electoral College (HuffPost)
  13. Donald Trump v Hillary Clinton: This Map Predicts Who Wins (Time)
  14. 2016 Election Forecast (FiveThirtyEight)
  15. On A Scale From 1 To 10, How Much Should Democrats Panic? (FiveThirtyEight)
  16. Election Update: Democrats Should Panic ... If The Polls Still Look Like This In A Week (FiveThirtyEight)
  17. Visualizing Clinton, Podesta, and the DNC's Wikileaks E-mail Networks
  18. Zannettou, Savvas, et al. "The Web Centipede: Understanding How Web Communities Influence Each Other Through the Lens of Mainstream and Alternative News Sources." arXiv preprint arXiv:1705.06947 (2017). Rad dostupan na arXivu.

Usporedba Khronos Vulkan i OpenGL API-ja (Comparison of Khronos Vulkan and OpenGL APIs) {PPHS} [Darko Kraljević]

Opis teme:

OpenGL je višeplatformski API za prikaz 2D i 3D vektorske grafiku. Vulkan je višeplatformski API za 3D grafiku i računanje na grafičkim procesorima. Autor oba API-ja je Khronos grupa. Vulkan je dizajniran specifično za moderne grafičke procesore, namijenjen je kao zamjena za OpenGL, a razvijen je na bazi AMD-ovog API-ja Mantle. Vulkan danas koristi nekolicina igara, od kojih je prva na svijetu bila The Talos Principle hrvatske kompanije Croteam. Zadatak rada je opisati i međusobno usporediti značajke oba API-ja, analizirati koje su značajke API-ja i hardvera učinile OpenGL neprikladnim za moderne grafičke procesore i moderne igre, na koje su načine AMD i NVIDIA zaobilazili ograničenja OpenGL-a, opisati nastanak Mantlea i kasnije Vulkana.

Literatura:

  1. OpenGL
  2. Vulkan
  3. Vulkan (Wikipedia)
  4. OpenGL (Wikipedia)
  5. AMD vs NV Drivers: A Brief History and Understanding Scheduling & CPU Overhead

Testiranje implementacija OpenGL-a i OpenCL-a alatom Piglit (Testing OpenGL and OpenCL implementations using Piglit) {PPHS} [Mario Ćuro]

Poveznica na rad u repozitoriju

Opis teme:

Piglit je skup testova za implemetacije OpenGL-a i OpenCL-a neovisan o hardveru, te se koristiti za testiranje grafičkih procesora tvrtki AMD, Intel i NVIDIA. Zadatak rada je prezentirati značajke Piglita i opisati testove koje posjeduje u terminima značajki OpenGL-a/OpenCL-a koje zahtijevaju. Potrebno je izvesti testove na hardveru i driveru po izboru studenta te analizirati rezultate.

Literatura:

  1. Piglit
  2. OpenGL
  3. OpenCL
  4. Dokumentacija upravljačkih programa odabranog hardvera

Ograničenje pokretanja operacijskih sustava tehnologijom UEFI Secure Boot (Restricting operating system boot using UEFI Secure Boot technology) {OS1} [Kristian Nekić, preneseno iz 2015./2016.]

Poveznica na rad u repozitoriju

Opis teme:

S izlaskom operacijskog sustava Microsoft Windows 8 na desktop i laptop računalima pojavljuje se nova tehnologija Secure Boot. Iako u osnovi osmišljena da spriječi pokretanje zlonamjernog softvera na računalima korisnika, Microsoftova gotovo potpuna kontrola nad potpisivanjem softvera pokrenula je brojne kritike. Cory Doctorow nudi viziju sadašnjosti i budućnosti u kojoj su računala samovozeći automobili, medicinska pomagala i kućanski aparati te koriste neku varijantu Secure Boota kako bi spriječili pokretanje nepotpisanih programa, primjerice vlastitog softvera za samovozeći automobil. Doctorowa brine taj izostanak mogućnosti prilagodbe uređaja čiji ste vlasnik, a sam proces uvođenja tehnologija srodnih Secure Bootu naziva "građanskim ratom protiv računarstva opće namjene". S izlaskom operacijskog sustava Windows 10 zabrinutost kritičara raste, obzirom da Microsoft više ne traži od proizvođača računala da omogući isključivanje Secure Boota ukoliko korisnik to želi i time ne osigurava slobodu korisnika. Zadatak rada je opisati tehničke i društvene izazove koje ova tehnologija donosi. Ovisno o interesu studenta, rad može biti više usmjeren na tehničke značajke i obraditi komplementarne tehnologije (konkretno, Intel BootGuard) ili pak na društveni kontekst i obraditi društvene posljedice građanskog rata protiv računarstva opće namjene.

Literatura:

  1. Secure Boot
  2. UEFI Secure Boot
  3. UEFI Secure Boot Criticism
  4. Cory Doctorow: "The Coming Civil War over General-purpose Computing" | Talks at Google
  5. DEF CON 23 - Cory Doctorow - Fighting Back in the War on General Purpose Computers
  6. Windows 10 to make the Secure Boot alt-OS lock out a reality
  7. Secure Boot: the good, the bad, and secureboot.me - Vedran Miletić DORS/CLUC 2015

Operacijski sustav CoreOS (CoreOS operating system) {OS2} [Matija Šegović, preneseno iz 2015./2016.]

Poveznica na rad u repozitoriju

Opis teme:

CoreOS je operacijski sustav otvorenog koda zasnovan na jezgri Linux koji omogućuje pokretanje aplikacija korištenjem kontejnera. Iako inicijalno zasnovan na Dockeru, danas koristi vlastito rješenje za kontejnersku virtualizaciju. CoreOS je primarno namijenjen za velike instalacije u cloudima, gdje se ne administriraju individualne virtualne mašine već se njima upravlja sistemski korištenjem specijaliziranih alata. Zadatak rada je opisati CoreOS i kontejnere te usporediti CoreOS-om s tradicionalnim operacijskim sustavima za cloude.

Literatura:

  1. CoreOS
  2. Project Atomic
  3. Scheepers, Mathijs Jeroen. "Virtualization and containerization of application infrastructure: A comparison." (2014).

Odabrane teme završnih radova akademske godine 2015./2016.

Datotečni sustavi ZFS i Btrfs (Btrfs and ZFS filesystems) {OS1} [Ana Tomasović]

Poveznica na rad u repozitoriju

Opis teme:

ZFS je transakcijski datotečni sustav i LVM razvijen od strane Sun Microsystems za Solaris. Prebačen je na FreeBSD kao dio jezgre, a na Linuxu je implementiran u korisničkom prostoru korištenjem mehanizma FUSE. Btrfs je datotečni sustav razvijen od strane Oracle-a za upotrebu na Linux sustavima. Btrfs ima brojne značajke koje postoje u ZFS-u, kao što su kopiranje kod zapisivanja (copy-on-write), snimke (snapshots) i kompresija. Razvoj Btrfs-a započeo je 2007. godine, a prva stabilna verzija je proglašena 2014. Oba datotečna sustava stavljaju naglasak na skaliranje, te na popravak nedostataka postojećih datotečnih sustava, ali svaki od njih ima jedinstven pristup i koncepte. Pored toga, razlikuju se i u licenci, što onemogućuje da ZFS bude dio jezgre Linuxa. Zadatak rada je opisati oba datotečna sustava, usporediti ih međusobno, te s datotečnom sustavima ext4 (Linux) i UFS2 (FreeBSD).

Literatura:

  1. OpenZFS
  2. ZFS on Linux
  3. Bonwick, Jeff, et al. "The zettabyte file system." Proc. of the 2nd Usenix Conference on File and Storage Technologies. 2003.
  4. Dawidek, Pawel Jakub, and Marshall Kirk McKusick. "porting the Solaris ZFS file system to the FreeBSD operating system." ; login:: the magazine of USENIX & SAGE 32.3 (2007): 19-24.
  5. btrfs Wiki
  6. Rodeh, Ohad, Josef Bacik, and Chris Mason. "BTRFS: The Linux B-tree filesystem." ACM Transactions on Storage (TOS) 9.3 (2013): 9.
  7. Heger, Dominique A.. "Workload Dependent Performance Evaluation of the Btrfs and ZFS Filesystems." CMG (2009).

Intelektualno vlasništvo nad softverom: licence i patenti (Intellectual property rights in software: licences and patents) {OS1} [Milan Petrović]

Poveznica na rad u repozitoriju

Opis teme:

Softver kao autorsko djelo spada pod zakon o autorskom pravu, a pored toga je u pojedinim državama patentabilan. Zakon o autorskom pravu nad softverom uglavnom nije predmet kritike, ali softverski patenti jesu. Iako originalno zamišljeni da štite inovatora od neovlaštenog kopiranja njegove ideje i daju inovatoru prednost pred drugima na tržištu, danas se uglavnom koriste za obračunavanje velikih korporacija s novonastalom konkurencijom, za obranu velikih korporacija od podjednako velike konkurencije, te od strane takozvanih "patent trollova" za stjecanje profita na temelju kršenju patenata od strane korporacija koje su se probile na tržištu. Zadatak rada je opisati, kategorizirati i međusobno usporediti softverske licence te dati pregled zakonskog okvira koji se odnosi na softverske patenate u EU i SAD-u. Pored toga, potrebno je analizirati nekoliko aktualnih primjera prema izboru studenta velikih korporacija, "patent trollova" i patenata oko kojih su se vodili sudski procesi.

Literatura:

  1. GNU Licenses
  2. Licences at Choose a License
  3. Licences and Standards at Open Source Initiative
  4. Copyleft compliance at Software Freedom Conservancy
  5. EFF on Patents
  6. EFF's Patent Busting Project
  7. Open Invention Network
  8. Patent Commons
  9. Munich Intellectual Property Law Center
  10. Mises Institute
  11. Leifeld, Philip, and Sebastian Haunss. "Political discourse networks and the conflict over software patents in Europe." European Journal of Political Research 51.3 (2012): 382-409.
  12. Allison, John R., and Ronald J. Mann. "Disputed Quality of Software Patents, The." Wash. UL Rev. 85 (2007): 297.
  13. Garfinkel, Simson L., Richard M. Stallman, and Mitchell Kapor. "Why patents are bad for software." High Noon in the Electronic Frontier: Conceptual Issues in Cyberspace (1996).
  14. Rychlicki, Tomasz. "GPLv3: new software licence and new axiology of intellectual property law." European Intellectual Property Review 30.6 (2008): 232.
  15. Rosen, Lawrence. Open source licensing. Prentice Hall, 2005.
  16. Evans, David S., and Anne Layne-Farrar. "Software patents and open source: the battle over intellectual property rights." Va. JL & Tech. 9 (2004): 1.

ICANN-ov program novih vršnih imena domena (ICANN's new top level domains program) {RM2} [Iris Babić]

Poveznica na rad u repozitoriju

Opis teme:

U jesen 1984. godine RFC 920 pod naslovom "Domain Requirements" uspostavio je prvih šest vršnih domena: .arpa, .gov, .edu, .com, .mil i .org te najavio uspostavljanje vršnih domena za svaku pojedinu državu (npr. .de za Njemačku, .ch za Švicarsku, .hr za Hrvatsku). Ubrzo nastaje i .net, a 2000. godine nastaju i .aero, .biz, .coop, .info, .museum, .name i .pro, a nekoliko država, uključujući Kolumbiju, Tokelau, Palau i Kokosove Otoke, predaje svoje vršne domene na upravljanje privatnim kompanijama koje ih zatim prodaju kao alternativu prilično zauzetoj .com domeni.

Međutim, prava promjena događa se tek 2012. kad ICANN otvara mogućnost privatnim kompanijama da zauzmu generičku vršnu domenu. Zadatak rada je dati pregled programa novih vršnih domena, usporediti ga s prethodnim komercijalizacijama državnog domenskog prostora i analizirati njegove tehničke i društvene izazove.

Literatura:

  1. ICANN New gTLDs
  2. ICANN Wiki
  3. nTLDStats
  4. Uniregistry
  5. XYZ
  6. Google Registry
  7. Famous Four Media
  8. Minds + Machines
  9. Donuts
  10. DotClub
  11. Radix
  12. Rightside

Slobodni softver za anonimnu komunikaciju Tor (Tor: free software for anonymous communication) {RM1} [Marjana Bjelić]

Poveznica na rad u repozitoriju

Opis teme:

Tor (The Onion Router) je slobodan softver za anonimnu komunikaciju putem interneta. Iako se u medijima najčešće spominje kao alat za distribuiranje ilegalnih sadržaja i prodaju kontroliranih supstanci, njegove primjene su puno šire: omogućuje anonimnost korisnika interneta koji žele zaobići cenzuru, skriti svoj identitet od zlostavljača i novinara koji želi objaviti priču koja sadrži povjerljive informacije čijom objavom bi ugrozio sebe. Usluge unutar Tora nazivaju se skrivenim uslugama i koriste specifičnu domenu .onion koja nije dostupna van Tora (primjerice, Facebook je dostupan putem adrese facebookcorewwwi.onion). Kako .onion domena nema nema centralni registar, potrebno je znati točnu domenu svake usluge kako bi joj se moglo pristupiti. Zadatak rada je opisati način na koji Tor osigurava anonimnost korisnika i način rada skrivenih usluga.

Literatura:

  1. Tor Project
  2. Tor: Hidden Services and Deanonymisation [31c3]
  3. Shari Steele on online anonymity: Tor staff are 'freedom fighters'

Odabrane teme diplomskih radova akademske godine 2015./2016.

Primjena responsive tehnologije za izradu dokumentacije aplikacije CP2K (Application of responisve technology for creating CP2K documentation) {DS} [Kristijan Lenković]

Mentor: doc. dr. sc. Božidar Kovačić

Komentor: dr. sc. Vedran Miletić

Poveznica na rad u repozitoriju

Opis teme:

CP2K je popularan slobodan softver otvorenog koda za molekularnu dinamiku. Dokumentacija alata CP2K koristi neresponzivan web dizajn što otežava njezino korištenje na različitim uređajima. Cilj rada je korištenjem responzivnih tehnologija weba predložiti novi dizajn i strukturu dokumentacije.

Literatura:

  1. Bootstrap
  2. CP2K
  3. Dokumentacija Java Platform SE 7, primjer dizajna korisničkog sučelja
  4. Dokumentacija Doxygena, primjer dizajna korisničkog sučelja

Analiza učinkovitosti paralelnih aplikacija (Performance analysis of parallel applications) {DS} [Tomislav Šubić]

Mentor: doc. dr. sc. Božidar Kovačić

Komentor: dr. sc. Vedran Miletić

Poveznica na rad u repozitoriju

Opis teme:

Za mjerenje performansi paralelnih aplikacija koriste se specijalizirani alati kao VAMPIR, MPPTEST, Allinea MAP i Valgrind. Cilj rada je opisati jedan ili više navedenih alata po izboru studenta te kroz različite primjere pokazati probleme s performansama koje je moguće takvim alatima prepoznati.

Literatura:

  1. Gropp, William, and Ewing Lusk. "Reproducible measurements of MPI performance characteristics." European Parallel Virtual Machine/Message Passing Interface Users' Group Meeting. Springer, Berlin, Heidelberg, 1999. Rad dostupan putem mrežnih stranica Williama D. Groppa
  2. VAMPIR
  3. MPPTEST
  4. Allinea MAP
  5. Valgrind

Author: Vedran Miletić