Browsing by Author "Vojdani, Vesal, juhendaja"
Now showing 1 - 13 of 13
- Results Per Page
- Sort Options
Item Adapting an Alarm Repositioning Algorithm to Data Races(Tartu Ülikool, 2023) Holter, Karoliine; Vojdani, Vesal, juhendaja; Saan, Simmo, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutThis master’s thesis addresses the challenge of enhancing the usability of sound static analyzers, specifically focusing on the state-of-the-art data race verifier Goblint. The aim is to soundly post-process the warnings generated by Goblint to make them more understandable for developers, thereby increasing the adoption of sound analyzers in practice. The thesis adapts and extends the warning repositioning algorithm of Muske et al. for data race warnings in multi-threaded C programs. Contributions include identifying and implementing a potential solution within the Goblint analyzer, extending the method for data races, and evaluating and analyzing the adapted algorithm in terms of the reduced distance between possible causes and warnings, as well as the impact on the quality of data race warnings.Item Automatic Error Correction for Elixir(Tartu Ülikool, 2022) Sisask, Aron; Vojdani, Vesal, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutCode linting is the practice of automatically checking source code for errors, usually those related to consistency. Most programing languages have linters that come with a set of rules, each one targeting a specific kind of error. To reduce programmer effort, some linters employ autocorrect, meaning that where possible, the linter fixes the mistake for the programmer. Linters are also used in Elixir ecosystem; however, there is no linter for Elixir with autocorrect capabilities. In this thesis, autocorrect is added to one of the most frequently used Elixir linters, Credo. The developed extension can be integrated with Credo seamlessly, and it can automatically correct several types of errors.Item Developing a Course on Teaching Functional Programming in JavaScript(Tartu Ülikool, 2021) Tinn, Kaarel; Vojdani, Vesal, juhendaja; Niitsoo, Margus, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutThis thesis describes the design and development process of a course teaching functional programming in JavaScript. The course is targeted at third-year BSc or first-year MSc students who are familiar with at least the basics of JavaScript. The course will be taught at the University of Tartu. This paper discusses the motivation behind the creation of the course. It also reviews problems with learning functional programming and argues how learning functional programming could be made more efficient by focusing on practical examples. The topics covered in materials - lecture slides and home assignment descriptions - are explained in depth. The overall course structure and delivery process is described. The thesis serves as helpful documentation to the course’s future lecturer.Item Evaluating CodeQL for Automated Runtime Complexity Approximation(Tartu Ülikool, 2023) Hlebnikov, Tõnis Hendrik; Vojdani, Vesal, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutAjaline keerukus kirjeldab programmi käitusaega funktsioonina tema sisendi pikkuse suhtes. Selle käsitsi hindamine on keerukas ning ajamahukas. Tulenevalt on loodud mitmeid tööriistu, mille kasutamine on vähem keerukas ning ajamahukas. Eesmärk on hinnata kas turvalisuse analüüsi tööriista CodeQL-i, saaks kasutada ajalise keerukuse hindamiseks. See saab tuvastatud läbi minimaalse tööriista loomise, mis suudab korrektselt hinnata lihtsamate Java programmide ajalist keerukust. Järgneb arutelu tööriista ning loomisprotsessi ümber.Item Fully automatic Self-Organizing Maps package for data visualization(2009-12-02T11:04:05Z) Tint, Hando; Tartu Ülikool. Matemaatika-informaatikateaduskond; Vojdani, Vesal, juhendaja; Arvutiteaduse instituutIseorganiseeruvad kujutised (self-organizing maps, SOMs) on tehislikud neurovõrgud, mida kasutadakse kõrg-dimensionaalsete andmete kujutamiseks madaladimensionaalsesse neuronite massiivi. Saadud kujutist võib kasutada andmete pakkimiseks ja andmete visualiseerimiseks, mistõttu on SOM algoritm kasutuses paljudes statistika- ja monitoorimisrakendustes. Keskendudes andmete visualiseerimisele, on magistritöö eesmärk välja pakkuda juhtnöörid, mille alusel saaks SOM algoritmi tuua kasutusele väiksematesse ja täielikku automatiseeritust eeldavatesse tarkvara-rakendustesse. Töös antakse ülevaade SOM ja hilisemast PLSOM algoritmist, pakutakse välja ühine sõnavara ja klassifikatsioon erinevat tüüpi visualiseerimismeetoditele. Selle põhjal tuuakse välja soovituslik raamistik tarkvarapaketile, mis oleks võimeline haldama kõiki andmetest visuaalse pildi saamiseks vajalikke samme. Raamistiku eesmärk on olla lihtsalt laiendatav, tehes lihtsaks ja arusaadavaks uute andmete importimise/töötlemise ja uute visualiseerimismeetodite lisamise. Magistritööga tuleb kaasa tarkvarapakett, mis järgib töös väljatoodud juhtnööre. Tarkvarapakett on kasutatav nii musta kastina, võttes vastu juhtnööre XML kujul kui ka valge kastina, ehk siis integreeritav otse mõnda teise rakendusse.Item Funktsionaalprogrammeerimise õpetamine Idrises(Tartu Ülikool, 2021) Holter, Karoliine; Apinis, Kalmer, juhendaja; Vojdani, Vesal, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutViimase kümne aasta jooksul on funktsionaalprogrammeerimine palju arenenud ja edasi liikunud. Bakalaureusetöö eesmärk on uurida, kas sõltuvate tüüpidega keel Idris on sobilik keel bakalaureuseastmes klassikaliste ja tänapäevaste funktsionaalprogrammeerimise teemade õpetamiseks. Selleks kohandati Haskelli baasil eelkõige klassikalist funktsionaalprogrammeerimist õpetava kursuse „Programmeerimiskeeled“ praktikumiülesanded Idrisesse ning uuriti, milliseid uusi teemasid saab Idrise kasutusele võtmisega kursuse kavva lisaks võtta. Töös tutvustatakse Haskelli ja Idrise põhilisi erinevusi „Programmeerimiskeelte“ aines käsitletud teemade ulatuses ning sõltuvate tüüpidega programmeerimist Idrises. Töö põhjal jõuti järeldusele, et Idris on sobilik keel bakalaureuseastmes funktsionaalprogrammeerimise õpetamiseks.Item Interaktiivne Abstraktne Interpretaator IntelliJ IDEA jaoks(Tartu Ülikool, 2021) Viil, Alex; Vojdani, Vesal, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutAbstraktne interpreteerimine on arvutiprogrammi osati täitmine eesmärgiga aru saada, kui-das programm käitub, ilma et peaks kõiki arvutusi tegema. Selle abil saab tuvastada, kas rakendus käitub nagu oodatud. Vastasel juhul saab arendaja teada vea olemasolust ja selle parandamisega tööle asuda. IntelliJ IDEA on arenduskeskkond, kus arendaja saab Java programmeerimiskeele koodi näol programme kirja panna ja samas neid kompileerida ja jooksutada. Peaaegu kõik prog-rammid kasutavad oma töös muutujaid, millele omistatakse vähemalt ühe korra mingi väär-tus ning mida hiljem loetakse. Tihti hargneb programmi töö olenevalt nende muutujate väär-tustest ning olenevalt arendaja tööst võib tekkida olukordi, kus kindlatel väärtustel tekib programmi töös erind ehk tõrge. Java hea tava puhul sellised olukorrad püütakse tavaliselt kinni ja lastakse programmil vastavalt reageerida, kuid keerulisemates süsteemides on tihti keeruline kõiki juhte ette näha. Eelnimetatud arenduskeskkond toetab pistikprogramme, mis on eraldi tööd soodustavad programmid. Interaktiivse abstraktse interpretaatori pistikprogramm tagab võimaluse aren-dajal programmeerimise ajal teostada programmi kohta analüüs staatilise analüüsi raamis-tiku Põder abil. Selle bakalaureusetöö uuritakse olemasolevaid raamistikke ja võimalikku teostust, mis võimaldaks lihtsamaid omaduse kontrolle teostada, näiteks kas täisarvulise muutuja väärtus jääb mingisse vahemikku piiritletud või mitte.Item Modulaarne staatiline programmianalüüs(Tartu Ülikool, 2021) Mägi, Karl Marten; Apinis, Kalmer, juhendaja; Vojdani, Vesal, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutStaatiline programmianalüüs on viis uurida programmi käitumist ja omadusi. Modulaarne analüüs viitab programmi osade eraldi analüüsimisele ja saadud tulemuste kombineerimisele. See aitab mahukate analüüside korral aega säästa, sest on võimalik tükeldatud analüüsi osi taaskasutada. Töö käigus antakse eestikeelne ülevaade modulaarsest analüüsist, selle impleementatsioonist programmianalüüsi raamistikus Põder ning täiendatakse raamistiku Põder. Esmalt parandati vigu, mis tekkisid tulemuste laadimisel. Lisati laetavate tulemuste verifitseerimine, et nendes saaks kindlam olla, ning versioonihaldus, et oleks võimalik ohutult laadida tulemusi kasutaja arvuti välistest allikatest. Tulemusena on raamistik Põder kasutajale mugavam ja tulemuste salvestamine ning laadimine on töökindlam.Item Mudelipõhise testimise õppematerjalide ja koduülesande loomine ainele ,,Automaadid, keeled ja translaatorid”(Tartu Ülikool, 2022) Põllumäe, Alexandra; Vojdani, Vesal, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutBakalaureusetöö eesmärk on koostada õppematerjalid mudelipõhisest testimisest kursusele “Automaadid, keeled ja translaatorid” ning leida vastus uurimusküsimusele, kas mudelipõhiselt sobib testida kursuse neid ülesandeid, mille taga peituvad olekumasinad? Töös kasutati mudelipõhise testimise tööriista GraphWalker, mille olemus sarnaneb olekumasinatele.Item Praktiliste kodutööde loomine ainele “Automaadid, keeled ja translaatorid”(Tartu Ülikool, 2023) Surva, Kristen; Vojdani, Vesal, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutSee bakalaureusetöö kirjeldab alternatiivsete praktiliste kodutööde loomisprotsessi Tartu Ülikooli kursusele “Automaadid, keeled ja translaatorid”. Kodutööde laiem eesmärk on näidata, et kursusel käsitlevatel teemadel on ka kasutust väljaspool programmeerimiskeelte konteksti. Töö käigus loodi kaks kodutööd. Esimene kodutöö õpetab JSON parsimist kasutades Java GSON teeki. Teine kodutöö tutvustab ärireeglite mõistet ning kasutust läbi JsonLogicu ja Easy Rulesi. Mõlemad kodutööd on käesoleval semestril kasutusele võetud. Ainekorraldajate ning tudengite tagasiside põhjal täidavad loodud kodutööd oma eesmärki. Suurem osa kursusel osalenud tudengite arvates on alternatiivsete kodutööde pakkumine hea täiendus kursusele.Item Programmianalüsaator Goblinti hindamine Juliet testkomplektiga(Tartu Ülikool, 2021) Lebbin, Raner; Vojdani, Vesal, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutStaatiline programmianalüüs võimaldab programme uurida käitusaja väliselt ja aitab avastada lähtekoodis leiduvaid turvanõrkuseid. Andmevooanalüüsi rakendav analüsaator Goblint, millega analüüsitakse staatiliselt mitmelõimelisi C-keelseid programme, suudab tuvastada andmejooksul põhinevaid turvanõrkuseid. Käesoleva töö eesmärk on hinnata Goblinti analüüsi võimekust ning pakkuda välja võimalusi analüsaatori tegevusvälja laiendamiseks. Töös kasutatakse Goblinti testimiseks Juliet testkomplekti, mis on kogum erinevaid nõrkuseid sisaldavatest testprogrammidest. Selle protsessi tarvis luuakse skript (Pythoni keeles), mis automatiseerib Goblinti rakendamist suurel hulgal testfailidel ja kuvab tulemused mugavaks ülevaatuseks HTML-failis. Tulemuste põhjal analüüsitakse Goblinti sooritust. Edasiarenduseks pakutakse välja turvanõrkused, mille kohta analüsaator võiks anda hoiatusi, ning luuakse uued testid, mille alusel implementeerida uute nõrkuste tuvastamist.Item Töövahendi CoOpeRace loomine(Tartu Ülikool, 2024) Haavasalu, Epp; Vojdani, Vesal, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutThe objective of this Bachelor’s thesis is to create CoOpeRace, a tool that combines the principles of cooperative verification with identifying data races. This work gives an overview of the concepts of data races and cooperative verification, describes the three analyzers used in the created tool - Goblin, Locksmith and Relay - and introduces the usage of CoOpeRace.Item Veebipõhise automaatide õppevahendi loomine ainele “Automaadid, keeled ja translaatorid”(Tartu Ülikool, 2024) Mägi, Artur Hendrik; Vojdani, Vesal, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutAs a result of this bachelor's thesis, a new web-based automata learning tool called AktFLAP was created for the University of Tartu course “Automata, Languages and Compilers”. The thesis provides an overview of automata simulators and their use in teaching. Additionally, the requirements set for the web application and the technologies used are outlined. Finally, the components of the developed learning tool and the details of the application testing process are described.