Source-code Similarity Detection and Detection Tools Used in Academia
Novak, Matija; Joy, Mike; Kermek, Dragutin, (2019), ACM Transactions on Computing Education, vol. 19, issue 3, pp. 1-37, (Top 1%)
Publications
This page gathers journal articles, conference papers, book chapters, and other academic writing. The entries below are currently retrieved from CroRiS database and stats are gathered from OpenAlex service.
Top Papers
Novak, Matija; Joy, Mike; Kermek, Dragutin, (2019), ACM Transactions on Computing Education, vol. 19, issue 3, pp. 1-37, (Top 1%)
Novak Matija, (2016), MIPRO 2016 - 39th International Convention, pp. 796-801, (Top 10%)
Kermek, Dragutin; Novak, Matija, (2016), Informatics in education, vol. 15, issue 1, pp. 103-126, (Top 10%)
Andročec, Darko; Novak, Matija; Oreški, Dijana, (2018), International journal on semantic web and information systems, vol. 14, issue 4, pp. 147-171, (Top 10%)
Novak, Matija; Kermek, Dragutin, (2024), Education sciences, vol. 14, issue 1, pp. 54, (Top 10%)
Novak, Matija; Oreški, Dijana, (2015), Computer applications in engineering education, vol. 24, issue 2, pp. 225-233, (Top 10%)
Note: Top 1% and Top 10% indicate papers whose citation impact is ranked among the top 1% or top 10% of comparable works in OpenAlex.
All papers
Abstract: This research investigates the expanding use of generative AI (Mahmoud et al., 2025) tools among computer programming students. Building on a 2023 study, a 2024 survey of 182 undergraduate and graduate students explored usage patterns, perceived effectiveness, and attitudes towards their academic use. Thematic analysis revealed a significant increase in AI adoption, with students frequently using tools for code generation, debugging, and explanation. While students value the speed and efficiency AI offers, they express significant concerns about output accuracy, over-reliance, and the impact on developing independent reasoning skills. Notably, attitudes shifted from favouring full allowance of AI tools to partial allowance for programming assignments, with distinct usage patterns observed across different study levels. These findings underscore the urgent need for educational institutions to establish clear guidelines. A balanced approach is required to integrate AI tools constructively while mitigating risks to academic integrity and deep learning.
Keywords: Artificial Intelligence; Student perspectives; Computer Programming
Abstract: This paper analyzes the gender pay gap dynamics within the information technology (IT) sector, with a specific focus on the interaction effects of education and work experience. The research was conducted on a sample of 6,446 participants, following the removal of 238 outliers identified using Cook’s distance to ensure model robustness. An Analysis of Covariance (ANCOVA) was employed to test the hypotheses. The results revealed complex nonlinear relationships that deviate from classical Human Capital Theory assumptions. Although men earn significantly higher pay at the beginning of their careers, it was found that women with long-term experience exhibit a steeper pay growth trajectory and, according to the model's estimated marginal means, eventually surpass their male colleagues. Conversely, the analysis of education levels showed that a statistically significant gap in favor of men persists across all educational levels, including the doctoral level. In conclusion, the paper demonstrates that pay inequality in the IT sector cannot be viewed as a static phenomenon but rather as a dynamic process.
Keywords: gender, pay gap, IT sector, interaction effects, ANCOVA
Abstract: Grading student assignments, especially in large classes, is a time-consuming task, making the automation of the assessment process highly desirable. With the rise of Generative Artificial Intelligence (GAI), tools such as ChatGPT, Claude AI, and DeepSeek have emerged as possible solutions for automating this process. This study examines the effectiveness of the three GAI tools in grading three types of student assignments: graphical data models, code quality assignment, and text-based assignments. We conducted experiments across three undergraduate courses, comparing AI-generated grades with those manually assigned by teachers. The results showed that while GAI tools performed well in grading structured assignments like graphical models and code assessments, they struggled with the subjective nature of descriptive text evaluations. Claude AI performed best in evaluating graphical models, while DeepSeek outperformed ChatGPT in assessing code quality. However, deviations were observed in grading descriptive assignments, raising concerns about the reliability of GAI tools for tasks that require deep contextual understanding and creativity. The study highlights the potential of GAI to reduce grading time and provide constructive feedback, but also emphasizes the need for careful integration of these tools into educational practices. Ethical concerns, particularly regarding data privacy, suggest that offline or institutionally hosted GAI models could provide a viable solution.
Keywords: generative AI; higher education; assessment automation; student assignments
Abstract: Rad prikazuje razvoj Arduino sustava za nadzor prostora sa specifičnim uvjetima (temperatura, vlaga, tlak i sl), s više senzora, počevši od osnovne ideje prikupljanja i slanja podataka putem MQTT* na poslužitelj. Kasnije su dodane mogućnosti rada bez Wi-Fi mreže, s lokalnom pohranom podataka te napajanjem s baterijama uz uštedu energije korištenjem dubokog spavanja. Ugrađen je web poslužitelj s REST† podrškom za jednostavno konfiguriranje i upravljanje, omogućujući podešavanje parametara poput vremena spavanja i intervala očitavanja senzora. Implementirana je kalibracija senzora radi smanjenja odstupanja u mjerenjima te OTA‡ ažuriranje programske podrške bez potrebe za USB§ povezivanjem. Za dodatnu praktičnost, razvijena je Android aplikacija koja olakšava konfiguraciju i pregled podataka.
Keywords: Arduino; senzor; MQTT; duboko spavanje; REST API; OTA; ažuriranje; optimizacija potrošnje baterije
Abstract: In the realm of the Internet of Things (IoT), the term "smart" signifies networks of devices engineered to simplify human life, despite lacking inherent intelligence. These smart applications extend from homes to offices and entire cities, with Internet connectivity as a common but not mandatory feature, especially in residential or office settings. Building upon the prevalent technologies in smart homes and cities, this paper narrows its focus to analyze the applications of Raspberry Pi (RPi) devices. While an exhaustive examination of all RPi applications within the broader context of smart technologies is impractical, the paper centers specifically on Smart Home (SH) security applications. The paper analyzes the papers using traditional and bibliographic network analysis. By analyzing the existing papers, it was found that Raspberry Pi's primary applications in Smart Home Security focus on intrusion detection, surveillance, fire detection, and aiding the elderly, emphasizing its cost-effectiveness. Two security considerations arise: the first involves the security of smart home systems, covering attacks, cryptography, authentication, blockchain, cloud, network security, and privacy; the second leverages smart homes for security, including face recognition, intruder detection, solutions for the elderly, real-time systems, cloud services, communication protocols (mostly MQTT), cost-effective system development, and mobile technologies.
Keywords: Overview of Smart Home Security with Raspberry; Security and privacy; Security in hardware; Embedded systems security
Abstract: Phaser and WebAssembly are both excellent options for web game development, each offering unique advantages. This paper specifically focuses on procedural maze generation and compares the performance of WebAssembly (using C++ and SDL) and Phaser across various levels of complexity, defined by maze dimensions. The study aims to assess execution time efficiency and identify performance trends across different scenarios. Using the Depth-First Search (DFS) algorithm, we conducted multiple test runs at increasing maze sizes to evaluate the scalability and computational efficiency of both technologies. The results indicate that WebAssembly enables near-native execution of C++ code in web browsers, leading to significant performance advantages in larger maze dimensions. Specifically, WebAssembly exhibited a more consistent, linear increase in execution time, making it a strong candidate for handling computationally intensive tasks. In contrast, Phaser performed slightly better in smaller maze dimensions but demonstrated greater variability and steeper increases in execution time as complexity grew. The findings suggest that while Phaser is an accessible and user-friendly framework for game development, its performance may not scale as efficiently as WebAssembly when dealing with complex procedural generation tasks. However, the study also acknowledges limitations, such as fewer test runs for larger mazes and potential differences in implementation efficiency between the two technologies. Overall, WebAssembly appears better suited for tasks requiring high-performance execution, whereas Phaser remains a viable option for less demanding applications where ease of use and rapid development are prioritized.
Keywords: phaser, webassembly, performance comparison, experiment, procedural maze generation, web game development, depth-first search
Abstract: Platforma Discord je evoluirala iz komunikacijske platforme za igrače u središte raznovrsnih online zajednica, s više od 600 milijuna registriranih korisnika do 2024. godine. Ovaj rad istražuje razvoj proširenja (eng. extension) za Discord pomoću njegovog robusnog aplikativnog programskog sučelja (eng. aplication programming interface - API), koji omogućuje funkcionalnosti poput automatiziranih robota (eng. bots) i interaktivnih elemenata korisničkog sučelja. Detaljno su opisane glavne značajke HTTP i pristupnog aplikativnog pristupnog API-a, naglašavajući mogućnosti integracije s vanjskim sustavima, poput FastAPI-ja za asinkrone web aplikacije. Praktični primjeri prikazuju kreiranje robota koristeći Python i Pycord knjižnicu, uključujući funkcionalnosti kao što su naredbe kose crte, interakcije s gumbima i integracija multimedijalnih sadržaja. Posebna pozornost posvećena je sigurnom rukovanju tokenima, skalabilnosti i povezivanju Discord robota s vanjskim sustavima radi poboljšanja korisničkog iskustva. Rad također naglašava značaj Discorda u suradničkim okruženjima, posebno u IT sektoru i projektima otvorenog koda, čime ilustrira njegov potencijal kao pristupačne platforme za inovativna softverska rješenja.
Keywords: discord; razvoj; web; dodatak
Abstract: Platforma Discord evoluirala je iz komunikacijskog alata za igrače u središte raznovrsnih online zajednica s više od 600 milijuna registriranih korisnika do 2024. godine. Ovaj rad prikazuje postupak razvoja proširenja za platformu Discord korištenjem njezina aplikativnog programskog sučelja (eng. application programming interface – API), koje omogućuje implementaciju automatiziranih robota i interaktivnih elemenata korisničkog sučelja. Opisane su osnovne značajke HTTP i Gateway API-ja te mogućnosti njihove primjene u integraciji s vanjskim sustavima, poput okvira FastAPI za asinkrone web aplikacije. Kako bi se demonstrirao način izrade i rada proširenja, prikazan je primjer Discord robota razvijenog u programskom jeziku Python uz korištenje knjižnice Pycord, s implementiranim naredbama kose crte i interaktivnim komponentama. Posebna pozornost posvećena je sigurnom rukovanju pristupnim tokenima radi sprječavanja neovlaštenog pristupa, kao i osnovnim aspektima skalabilnosti sustava kroz razdvajanje bot aplikacije i vanjskih servisa. Na prikazanom primjeru također je objašnjeno na koji se način povezivanje Discord robota s vanjskim sustavima može koristiti za poboljšanje korisničkog iskustva. Rad time ukazuje na potencijal Discord platforme kao pristupačnog okruženja za razvoj i integraciju softverskih rješenja u suradničkim i IT zajednicama.
Keywords: Discord; proširenje platforme; API;
Abstract: This study evaluates the SEO performance of three Croatian higher education websites by comparing conventional SEO auditing tools with generative AI-based analysis. The research identifies key technical and on-page deficiencies such as missing meta descriptions, poor heading structures, and a lack of schema markup and XML sitemaps. While AI tools like ChatGPT and ClaudeAI offer valuable strategic and content-level suggestions, they fall short in technical precision compared to traditional tools like RankMath and SpeedTest Insights. The study also highlights the effectiveness of open-source and free SEO tools in low-resource environments. Results suggest that a hybrid approach, combining AI and conventional tools, provides the most comprehensive SEO evaluation. The paper concludes with suggestions for future research to explore long-term SEO improvements and broader institutional comparisons.
Keywords: SEO; generative AI; higher education; Croatia; case study
Abstract: Software engineering (SE) research often involves creating software, either as a primary research output (e.g. in design science research) or as a supporting tool for the traditional research process. Ensuring software quality is essential, as it influences both the research process and the credibility of findings. Integrating software testing methods into SE research can streamline efforts by addressing the goals of both research and development processes simultaneously. This paper highlights the advantages of incorporating software testing in SE research, particularly for research evaluation. Through qualitative analysis of software artifacts and insights from two PhD projects, we present ten les-sons learned. These experiences demonstrate that, when effectively integrated, software testing offers significant benefits for both the research process and itsresults.
Keywords: software testing, research evaluation, lessons learned, SE research
Abstract: There is a shortage of programmers in the labor market and the situation is even more critical when it comes to women. This paper explores the literature related to the involvement of women, specifically female students, in the field of computer programming. The goal is to encourage young women to actively participate in computer programming, so they can contribute not only during their studies, but also in their later careers. The field of computer programming was chosen because of the indispensability of computer programs in everyday life and their wide application. A Systematic Mapping Study (SMS) was conducted, collecting a total of 361 publications from two databases (Scopus and Web of Science). The results showed that most of the researchers are based in the United States. The majority of publications include various observations and explanations regarding gender differences in computer science education. A significant portion of the literature also examines proposals for achieving gender balance in computer science education programs. Regional distributions were identified and ideas for future research were considered.
Keywords: gender, higher education, software engineering, computer science
Abstract: Grading student programming assignments is not an easy task. This task is even more challenging when talking about complex programming assignments at university graduate level. By complex assignments, we mean assignments where students have to program a complete application from scratch. For example, building a complete web application with a client and server side, whereby the application uses multiple threads that gather data from some external service (like the REST service, IoT sensors, etc.), processes these data and store them in some storage (e.g., a database), implements a custom protocol over a socket or something similar, implements their own REST/SOAP/GraphQL service, then sends or receives JMS/MQTT/WebSocket messages, etc. Such assignments give students an inside view of building real Internet applications. On the other hand, assignments like these take a long time to be tested and graded manually, e.g., up to 1 h per student. To speed up the assessment process, there are different automation possibilities that can check for the correctness of some application parts without endangering the grading quality. In this study, different possibilities of automation are described that have been improved over several years. This process takes advantage of unit testing, bash scripting, and other methods. The main goal of this study is to define an assessment process that can be used to grade complex programming assignments, with concrete examples of what and how to automate. This process involves assignment preparation for automation, plagiarism (i.e., better said similarity) detection, performing an automatic check of the correctness of each programming assignment, conducting an analysis of the obtained data, the awarding of points (grading) for each programming assignment, and other such activities. We also discuss what the downsides of automation are and why it is not possible to completely automate the grading process.
Keywords: automation; grading; assessment; programming; education; student
Abstract: The contemporary education landscape has witnessed a notable shift in the early introduction of programming skills among children, indicating a trend toward younger ages. This study describes the experiences of programming professionals who voluntarily engage in educating children about programming during their free time across various associations. Leveraging their expertise in the programming domain, these professionals, with numerous dedicated years, serve as both practitioners and mentors in this educational endeavor. Focusing on their impactful contributions, this paper showcases the achievements of these educators who have attained prominent positions in Croatia’s national programming competitions. Through a survey conducted in this study, insights from these teachers were gathered regarding their pathways to success and their effective approaches in teaching programming skills to young learners. The study aims to address the challenge of successfully teaching programming, which is considered as a complex subject to learn. It is hoped that these findings will aid anyone involved in program
Keywords: programming; children; education; survey
Abstract: Optimizacija za tražilice (eng. Search Engine Optimization - SEO) obuhvaća niz tehnika kojima se utječe na digitalnu prisutnost poduzeća, ali i svih ostalih korisnika na webu. Ovaj proces fokusira se na poboljšanje vidljivosti web stranica i bolje pozicioniranje na tražilicama. Teži se postizanju visokih pozicija u organskim rezultatima pretraživanja (tj. rezultati koji ne uključuju oglase) te ostvarenju zadanih konverzija (npr. realizirana kupnja na web trgovini). Implementacija optimizacije za tražilice uključuje sveobuhvatno optimiziranje strukture i sadržaja web aplikacije. Radi se o procesu kojim treba kontinuirano upravljati kako bi generirao pozitivne učinke, poboljšao konkurentsku poziciju i digitalnu prisutnost. U ovom radu daje se pregled najvažnijih tehnika i alata za mjerenje uspješnosti optimizacije za tražilice.
Keywords: SEO; mjerenje; uspješnost; poslovanje; web; tražilica
Abstract: Students use various methods for solving their programming assignments. Notably, with the widespread adoption of artificial intelligence (AI) tools, it is unsurprising that students have incorporated them into their repertoire. The main question, however, revolves around the permissibility of such utilization. In this study a survey was conducted among university students in Croatia, aiming to clarify their perspectives on the deployment of AI tools. The primary objective is to discern the extent to which students employ these tools in solving programming assignments and investigate the ways in which the students use them.
Keywords: Programming, Assignments, High Education, Artificial Intelligence
Abstract: Razvoj web aplikacija može biti kompliciran. Kako bi se olakšao sam razvoj definirani su različiti načini razvoja i testiranja istih. Jedan od načina je razvoj vođen ponašanjem kojemu je prioritet ostvarivanje poslovnih ciljeva te uspješna implementacija svih značajki aplikacije. U sklopu ovog rada objašnjena su načela i prakse korišteni u provođenju, te su istaknute prednosti i mane korištenja istog. Razvoj vođen testiranjem i razvoj vođen ponašanjem su vrlo slični te je prikazana usporedba ova dva pristupa. Postoje razni okviri koji omogućuju razvoj vođen ponašanjem. U ovom radu prikazan je praktičan primjer korištenjem Behat okvira i programskog jezika PHP
Keywords: PHP, okvir, behat
Abstract: Programirati dobre aplikacije nije lako, a napraviti istu aplikaciju sa kvalitetnim programskim kodom još je teže. Međutim, najteže od svega je održavati aplikacije. Jedna od najstresnijih situacija za programera je kada treba promijeniti programski kod neke aplikacije koja radi. Razlog tome je da uvijek postoji opasnost da nakon izmjene više neće raditi. Kako bi cijeli proces izmjene bio što lakši važno je održavati programski čistim. U tome pomažu razne stvari poput korištenja uzoraka dizajna, poštivanja principa dizajna softvera i sl. Međutim, poprilično je teško, možda i nemoguće, od prve pogoditi najbolji dizajn softvera. Dodatno, nešto što je bio najbolji dizajn jučer više ne mora biti danas. Kako bi poboljšali dizajn i omogućili izmjenu koda da bude čišći važno je poznavanje metoda refaktoriranja. Stoga, poznavanje metoda refaktoriranja je neizbježno znanje potrebno svakom profesionalnom programeru. U ovom predavanju dati će se odgovori na pitanja poput: "Što je refaktoriranje?", "Zašto i kako refaktoriranti programski kod?", "Kada (ne) refaktorirati?" i "Kako prepoznati da je potrebno refaktoriranje?".
Keywords: refaktoriranje, izvorni kod, programiranje
Abstract: Plagiarism is a serious offence and students plagiarise for various reasons. But sometimes students plagiarise and don't even know that they are doing it. In this research a case study was conducted where questions, which describe different situations, were given to students. Questions are taken from an existing study which was conducted in the UK to get the perspective of academics. Similar questions were later given to students in the UK and China to get the student perspective. In this case, Croatian students from three programming courses (at three different levels) were questioned. In this paper the most interesting findings of student perspectives on plagiarism are presented together with some comparisons to the previous studies.
Keywords: plagiarism ; academic offence ; student perspective ; programming
Abstract: U izgradnji Web aplikacija moguće su različite metode autentikacije. U ovom radu opisana je razlika autentikacije i autorizacije, te su opisne različite metode autentikacije, od jednostavne sesije, do kompleksnijih načina korištenjem JSON Web Tokena. Prikazana je i implementacija autentikacije korištenjem JSON Web Tokena. Također, u radu se navode ranjivosti koje se mogu javljati u procesu autentikacije, te koji su načini spriječavanja istih.
Keywords: auentikacija ; web ; programiranje
Abstract: Danas postoji sve više aplikacija otvorenog koda. No razvijati program otvorenog koda i zatvorenog koda nije isto. Postoje razlike u sigurnosti, kompatibilnosti, skalabilnosti i sl. Postoji zabluda da se otvoreni kod smije koristiti bez bilo kakvih restrikcija ili da je otvoreni kod uvijek besplatan, što je pogrešno. Važan dio otvorenog koda su licence koje definiraju ograničenja i u koje svrhe se kod smije koristiti i ažurirati određeni otvoreni kod. U ovom radu dan je pregled razlika aplikacija otvorenog i zatvorenog koda i njihovog razvoja te su opisane razne licence koje postoje kod razvoja otvorenog koda.
Keywords: otvoreni kod ; programiranje ; razvoj aplikacija
Abstract: Modern plagiarism detection tools calculate the percentage of the similarity between two given source code files. In academia, the process of checking for potential plagiarized students solutions can be challenging in terms of resources due to the large number of combinations between many students. In such conditions, the reliability of plagiarism detection tools may be put to risk. Every plagiarism detection tool produces a similarity report as files containing the results of the analysis for each pair of analyzed source code files. While such a report is useful for a one-time checking, sometimes it is needed to store the result data for future use. In our previous work, the results were stored in a relational database and a list of relevant queries was defined for meaningful analysis. Nevertheless, the large number of pair-wise impacts the storage and query execution speeds. In this paper, we present a solution to this problem by importing the similarity analysis data into a graph database and evaluate the difference in the query execution speed between a graph and a relational database.
Keywords: plagiarism, graph databases, similarity detection
Abstract: The Web is full of information that should be accessible to everyone. Unfortunately, many websites are not designed according to the accessibility guidelines and are therefor not very user friendly. Many people that are blind have difficulty accessing the content on websites so this needs to change. Motivated by this, the idea of this article is convert the Web pages to a pure textual form and place it on a separate space where these users can easily access the information and navigate through. Fortunately, there is already a protocol called Gopher that provides just that, pure textual sites with an easy text menu navigation. In addition by using Gopher some other problems that exist on the Web regarding security, privacy and download speed are solved as well. In order to demonstrate how easy it is to convert sites to textual form a tool was developed that can convert any WordPress website to a Gopher site. The tool can easily be extended to other systems as well.
Keywords: Gopher ; Web ; HTML ; protocol ; text
Abstract: Plagiarism detection is a serious problem in higher education. Teachers use similarity (plagiarism) detection systems, which highlight similarities between student documents, to help them find plagiarism. Most systems are built for text but there are special systems to find similarities between source-code files. In most cases the results are presented in table form showing similarities between pairs of documents in descending order by similarity, and then a teacher is responsible for confirming which similar documents represent cases of plagiarism. While most systems present their results in the form of tables, only few of them present the results as a graph. Some studies indicate that using clustering algorithms to represent such data graphically can improve the speed and accuracy of finding potential instances of plagiarism in large collections of source-code files. The purpose of the study is to answer the following research questions. Can visualization of student solutions (of source-code similarities) in collaboration networks form help identify new cases of plagiarism? What are the steps to do so? The study was designed in a form of two case studies where one was performed on a graduate level university course and one on a course in professional studies. The article presents empirical results describing two cases where a collaboration network (based on source-code similarity) representation has been used. The article argues that the graphical presentation is able to identify new clusters of plagiarised sourcecode files that would have been missed using existing tabular presentation of data.
Keywords: Plagiarism ; Visualization ; High Education ; Source-code ; Collaboration Networks
Abstract: Opisano je zašto su Grafovske baze podataka izvrstan odabir kada se radi o podacima nad kojima treba provoditi modeliranje u kojem se odnosi između podataka jednako tretiraju kao i sami podaci. Slijedi opis zašto ne postoji unaprijed definirani model podataka tako da se podaci pohranjuju u svojem prirodnom sadržaju uz mogućnost kasnijeg dodavanja ili brisanja svojstava na razini pojedinačnog zapisa tj. čvora. Opisano je zašto se kod grafovskih baza podataka koristi struktura grafa za semantičke upite. Neo4j je sustav za upravljanje grafovskim bazama podataka koji ima vlastiti grafovski upitni jezik (eng. Graph Query Language) pod nazivom Cypher i preglednik pod nazivom Neo4j Desktop. Prikazan je način na koji se kreira grafovska baza podataka u Neo4j i kako se kreiraju pojedini čvorovi te relacije između čvorova. U nastavku je opisano kako se postavljaju upiti putem jezika Cypher unutar Neo4j Desktop, koji prikazuje rezultate upita u obliku grafa. Posebno se obrađuje prijelaz sa SQL baze podataka na Neo4j u slučaju kada se radi u velikoj količini podataka. Slijedi opis kako je realiziran web servis na bazi Neo4j.Na kraju je kratak zaključak.
Keywords: Neo4j ; grafofska baza podataka ; QGL ; Cypher ; ETL ; web servis
Abstract: Korištenost web servisa u razvoju aplikacija sve je veća. Osim popularnih web servisa baziranih na SOAP i REST tehnologijama danas se sve više koristi GraphQL. GraphQL razvio je Facebook 2011 godine, a od 2015. godine je otvorenog koda i dostupan javnosti. GraphQL kao i svaka druga tehnologija ima svoje prednosti i nedostatke. U ovom radu uspoređen je GraphQL i REST te su dani razlozi zašto koristiti GraphQL. Opisana je implementacija web servisa baziranih na GraphQL tehnologiji, a nakon toga rad se fokusira na sigurnost web servisa baziranih na GraphQL tehnologiji. Opisane su ranjivosti koje GraphQL ima te načini kako učiti GraphQL web servise sigurnijima.
Keywords: sigurnost ; ranjivost ; Web servisi
Abstract: Plagiarism is a serious problem in academia and students cheat for various reasons, but whateverthereasonsuchbehaviourshouldnotbeaccepted. Whileitiseasytocontrolplagiarism in classrooms with few students it can be a challenge to do it in a classroom with one hundred students or more. To help teacher detect plagiarism similarity detection tools are built, usually called plagiarism detection tools. While in academia plagiarism can be done in many areas the two most common are textual and programming assignments. In this thesis, the focus is on detecting plagiarism in student programming assignments. Since the tools are not perfect there is always room for improvement and one possibility to improve the plagiarism detection quality is the usage of preprocessing techniques. Preprocessing techniques have been used in many plagiarism detection tools but there is not much research focusing on the effects of such techniques. To investigate the effect of preprocessing techniques on plagiarism detection tools an experiment was conducted on six tools using five techniques on two different datasets, whereby one dataset is publicly available. To be more precise the six tools were actually three tools whereby each tool had two modes to operatethespecializedmodewhichisspeciallydeveloped toperformasource-codecomparison and textual mode developed for normal text comparison. In this experiment two hypotheses were stated, one focusing on the differences between the preprocessing techniques and when no preprocessing technique is used and other focusing on differences between two different techniques. In addition to the hypothesis one research question was stated to give more insight into the effects of the preprocessing techniques. Resultsoftheexperimentwereanalysedquantitativelyus ingthemultifactoranalysisofvariance and qualitatively by analysing the most interesting cases. The whole process of detection and statistical analysis was automated using the newly developed system called Multiple Plagiarism Checker and the system R. The experimental results confirmed both hypotheses showing that using preprocessing has a positive effect on the quality of plagiarism detection and that some techniques gave better results than others. The most interesting result of this research is that by using preprocessing techniques textual versions of the tools outperformed in some cases the specialized version of the tool developed specifically for source-code similarity detection.
Keywords: plagiarsim detection ; high education ; source-code ; programming assignements ; preprocessing tehniques ; comparison ; program similarity
Abstract: The questionnaire for acquiring student feedback about course satisfaction which have been used in a graduate course for more than ten years is analysed within this study. The questionnaire contains different type of questions, but only multiple choice questions are analysed. Questions were analysed using Exploratory Factor Analysis (EFA) in order to find the core factors which are sufficient for assessment of overall student satisfaction with the course. The process of choosing multivariate analysis technique was automated using the R system. The main motivation to conduct this research is reduction of questions in the questionnaire to those that are the most important. Before we can start analysing one must decide which EFA method to use. Therefore, the research is directed to the comparison of different EFA methods in combination of different types of rotations for finding the most suitable EFA method for analysing student questionnaires. According to the results of the analysis, all methods (i.e. PCA, PAF, ML) perform better in combination with Promax rotation. Although, the Common Factor Analysis methods (i.e. PAF, ML) group the variables better into the factors, the Component Model method (i.e. PCA) explains more of the cumulative variance.
Keywords: course evaluation, efa, principal axis factoring, principal component analysis, promax rotation.
Abstract: Programski jezik Java kao i cijeli eko sustav oko njega zauzima važno mjesto u razvoju softvera. Tijekom njegovih 25 godina došlo je različitih promjena unutar tog sustava pri čemu su vrlo značajne zadnjih nekoliko godina. U radu se polazi od pregleda povijesti razvoja programskog jezika Java i njegovog eko sustava. Nastavlja se analizom kritičnih trenutaka koji su bitno utjecali na pojedine duguročne odluke. Slijedi analiza provedene ankete u vezi programskog jezika Java. Na kraju je kratak zaključak.
Keywords: Java, Java tehnologija, eko sustav, povijest, anketa o korištenju
Abstract: Kratki osvrt na e-učenje na Fakultetu Organizacije i Informatike, Sveučilišta u Zagrebu te primjer organizacije kolegija iz Web programiranja u sustavu Moodle.
Keywords: e-učenje
Abstract: Agilni razvoj (eng. agile development) je metodologija razvoja softvera koja se sve više koristi. Temelji te metodologije bez kojih agilni razvoj nije moguć su: razvoj vođen testiranjem (eng. Test Driven Development - TDD), refaktoriranje (eng. refactoring), jednostavni dizajn (eng. simple design) i programiranje u paru (eng. pair programming). U ovom radu fokus je na razvoju vođenom testiranjem jer bez njega nije moguće ili je vrlo teško provoditi refaktoriranje, a bez refaktoriranja teško je postići jednostavni dizajn. Iako je fokus rada TDD, u radu su ukratko opisane i vezane discipline kao što su: refaktoriranje, uzorci dizajna, programiranje u paru i sl. Kako bi se programerima približilo način funkcioniranja TDD u praksi, dan je primjer korištenja TDD-a u razvoju jednog segmenta web aplikacije u programskom jeziku PHP. No bez obzira što se u primjerima koristi PHP koncepti TDD-a primjenjivi su na bilo kojem drugom programskom jeziku.
Keywords: TDD, programiranje, PHP, Razvoj vođen testiranjem
Abstract: Čisti kod predstavlja sinonim za pisanje koda koji je jednostavan, direktan i čitljiv. Pisanje čistog koda minimalizira potkradanje grešaka koje je teško pronaći u kodu. Kod pisanja čistog koda koriste se određeni koncepti koji poboljšavaju sam kod, kao što su smislena imena, kratke funkcije, minimalan broj parametara, izbjegavanje komentara, korištenje objektno-orijentiranog programiranja, načela dizajna, jedinično testiranje i drugo. Čisti kod potiče višestruku iskoristivost koda te izbjegava ponavljanje koda. Svrha rada je upoznavanje s pojmom čisti kod i navedenim principima koji donose čisti kod kroz izradu web aplikacije korištenjem tih principa. Krajnji cilj je traženje odgovora na pitanje što je to čisti kod i da li je vrijedno utrošiti više vremena kako bi se stekla potrebna znanja i iskustva za pisanje čistog koda.
Keywords: php, web aplikacija, programiranje, testiranje, jedinično testiranje, čisti kod
Abstract: Predstavljanje korištenja e-učenja na predmetu Web Dizajn i programiranje.
Keywords: e-learning
Abstract: Korištenje mehanizama igre u sustavima koji nisu igre nazivamo igrifikacija. Igrifikacijaje postala jako popularna u akademskom svijetu te smo i mi na našem predmetu odlučili je implementirati 2015/2016 godine i od tada je redovito koristimo. Kako bi igrificirali sustav korišteni su razni mehanizmi koje pruža Moodle sustav poput: znački, restrikcije pristupa, foruma, radionica i sl. No za bolji doživljaj korišten je i dodatak (eng. plugin) LevelUP. Kroz više godina promatrali utjecaj igrifikacije i došli do zanimljivih rezultata. U prezentaciji dati ćemo pregled naše implementacije, opis problema sa kojima smo se susreli te kao smo ih riješili i prezentirati naša iskustva s igrifikacijom.
Keywords: igrifikacija, LevelUp, kolegije
Abstract: The most important process, on which most time is spent, when building data warehouses is the Extract Transform Load (ETL) process. Automation of such process is an expected thing to do. In this work the focus is on automation for generating ETL workflows which is currently not very well researched. The idea is to build systems which model the ETL process based on semantics and suggest the needed transformation and mappings for automatic generation of ETL workflows. In this work an architecture is presented to automatically integrate the system which generates mappings and transformations based on ontologies and the traditional ETL tools. The architecture of the prototyped system is message based which enables parallel processing.
Keywords: ETL ; data warehouse ; architecture ; generator ; ontologies ; message based
Abstract: Teachers deal with plagiarism on a regular basis, so they try to prevent and detect plagiarism, a task that is complicated by the large size of some classes. Students who cheat often try to hide their plagiarism (obfuscate), and many different similarity detection engines (often called plagiarism detection tools) have been built to help teachers. This article focuses only on plagiarism detection and presents a detailed systematic review of the field of source-code plagiarism detection in academia. This review gives an overview of definitions of plagiarism, plagiarism detection tools, comparison metrics, obfuscation methods, datasets used for comparison, and algorithm types. Perspectives on the meaning of source-code plagiarism detection in academia are presented, together with categorisations of the available detection tools and analyses of their effectiveness. While writing the review, some interesting insights have been found about metrics and datasets for quantitative tool comparison and categorisation of detection algorithms. Also, existing obfuscation methods classifications have been expanded together with a new definition of “source-code plagiarism detection in academia."
Keywords: Source-code, academia, detection, education, plagiarism, programming, similarity, systematic review
Abstract: Today there are many source-code similarity detection tools. These tools are used for many purposes and one of them is plagiarism detection, in which context this paper is written. Every time a new tool is developed authors want to show that it is better than existing ones and so they perform comparisons. Often these comparisons tend to be unfair towards the existing tools. There can be multiple reasons for that. One such reason is that existing tools are not calibrated. Almost all tools have configuration parameters but often they are not calibrated before the comparison. The paper presents a way of calibrating the tools to keep the comparison more objective.
Keywords: source-code, plagiarsim, similarity detection, calibration
Abstract: Programiranje je ozbiljan posao te mu tako treba i pristupiti. Nažalost, većinom "profesionalni" programeri nisu profesionalni. U ovom predavanju prikazati će se što čini profesionalnog programera, te zašto je fraza "Bitno da radi!" problem. Koji su stavovi koje profesionalni programer mora imati, koja znanja mora imati osim generalnog poznavanja programskog jezika te koje su najveće zablude "profesionalnih" programera.
Keywords: programiranje, profesionalni programer, tesovi, stavovi, zablude
Abstract: U ovom radu opisuju se neke od tehnologija koje se koriste prilikom izrade Web aplikacija. Opisane se usporedbe između dinamičkih i statičkih Web aplikacija, te alat koji služi za asinkronu komunikaciju sa poslužiteljskom stranom aplikacije. Za razvoj korisničkog sučelja korišteni su programski jezici poput HTML - a i CSS – a. Dok je za logiku same aplikacije korišten okvir Vue.js.
Keywords: ajax, programiranje, web aplikacije, javascript, vue.js
Abstract: Gamification has been applied in different levels of education (elementary, high school, university) for roughly last 5 years. Many researches deal with how to improve education process by usage of game mechanics and other game based elements in their teaching activities. One of the important part of research in the area of education is what part of the course is involved in the research. If it covers some smaller part of the course, for example, one topic that correspondents to a chapter from common course literature and the gamification is limited to few weeks then we could not get the full picture of its real good and bad sides. Some students got excited when teacher use new methods and lost interest after few weeks. However, the course lasts much longer then few weeks and it is much harder to apply gamification for the full course content and to keep students’ interest during the whole education process like semester with 15 weeks. The paper presents our experience with gamified course in two consecutive academic years. We gamified whole course content and learning activities. First year we had half students in gamified version of the course as an experimental group and the other half of students as a control group. The experimental group based on their groupings had all gamified experiences that standard Moodle distribution and chosen plugins provide. The control group was not formally and fully included in all aspects of gamified version of the course but the teachers manually record all their earnings (badges, experience points etc.) even the students were not aware of it. We made some comparisons based on those groups and their achievements, usage of the Moodle etc. We analysed the students’ survey they fill at the end of the course, also our remarks we made during the course. Those were inputs to smaller adjustments for next year (for example we provided more information about the best award). In the second year, the whole course student population was using gamified version of the course. Again, we analysed the students’ survey they fill at the end of the course. We compared those two years in many elements. Some of results were expected but some were not. Finally, we compare our experience with other researches in the area of gamification.
Keywords: gamification, e-learning, analysis
Abstract: The main vision of the Internet of Things (IoT) is to enable seamless connection between physical devices and information systems to improve the lives of people. One of the main obstacles to achieve this vision is the current lack of IoT interoperability. In this article, the authors are giving an overview on how semantics is used in IoT interoperability related research. To do this, they performed a systematic literature review and extracted data from 105 selected primary studies dealing with semantics in IoT interoperability. The authors have analysed the maturity level of this research field and when and where the relevant works were published. This article answers five main research questions about the following issues: what are semantics used for ; what types of ontologies exist (which are used to give semantical descriptions) ; what are the main themes and suggestions for future work in these research articles ; and what are other related areas.
Keywords: Semantic Web ; Internet of Things ; systematic review ; interoperability ; IoT integration ; ontology
Abstract: Component-based software engineering and generative programming are common approaches in software engineering. Each approach has some benefits and domain of usage. Component-based development is used to build autonomous components that can be further combined in different ways, while generative programming is more suitable when building systems that have different variants. Before a variable component based system can be build, it needs to be modeled. In this article, a new common metamodel that aims to enable modeling a system which combines both component-based development and generative programming is introduced. The introduced metamodel proposed in this paper combines the component diagram that is used to model systems in component-based development and the feature diagram that is employed in modeling systems in generative programming. The combined metamodel enables modeling of variable systems using components.
Keywords: Metamodel, Component-Based Development, Component Diagram, Generative Programming, Feature Diagram
Abstract: Component based software development has become a very popular paradigm in many software engineering branches. In the early phase of Web 2.0 appearance, it was also popular for web application development. From the analyzed papers, between this period and today, use of component based techniques for web application development was somewhat slowed down, however, the recent development indicates a comeback. Most of all it is apparent with W3C’s component web working group. In this article we want to investigate the current state of web application development with component approach. Most of all we are interested in which way components are used, which web development frameworks are being used, for which domains is component based web development most popular and successful, etc. How many current web development frameworks explicitly refer to component-based approach? To answer this question, we performed a literature review.
Keywords: component based development ; CBD ; web application ; www ; frameworks
Abstract: Korištenje gemificiranih mehanizama u sustavima koji nisu igre nazivamo gemifikacija. Gemifikacija je postala jako popularna u akademskom svijetu te smo i mi na našem predmetu odlučili je implementirati. Kako bi gemificirali sustav korišteni su razni mehanizmi koje pruža sustav Moodle poput: znački, restrikcije pristupa, foruma, radionica i sl. No za bolji doživljaj korišteni su i dodatna proširenja (eng. plugin) kao na primjer LevelUP i sl. Kroz jedan s emestar promatrali smo 50% studenata koji su bili gemificirani te ih uspoređivali sa onima koji nisu bili. Studenti su se mogli dobrovoljno javiti za sudjelovanje u eksperimentu. Prilikom korištenja sustava Moodle u gemificiranoj verziji naišli smo na niz p roblema poput: problema automatskog dodjeljivanja bodova, postavljanje okruženja i nemogućnost implementacije nekih ideja zbog ograničenja sustava kao što je dodjeljivanje bodova na temelju kvalitete rada a ne samo kvantitete. U prezentaciji dati ćemo preg led naše implementacije, opis problema sa kojima smo se susreli te kao smo ih riješili. U svrhu gemificiranja, ali i odvajanja grupa (gemificirani/negemificirani) kreirane su dodatne uloge kojima smo mogli dodjeljivati prava/doz vole pojedi nim elementima. T u također smo naišli na probleme kao na primjer da neke osobine/dozvole može definirati samo administrator sustava, a ne nastavnik na kolegiju. To je predstavljalo jedan manji organizacijski problem.
Keywords: gemifikacija ; e-učenje ; moodle ; LMS
Abstract: Graph databases are becoming more and more popular as they represent a good alternative to relational databases for some problem scenarios. Searching a graph is sometimes very convenient, unlike writing complex SQL queries that require a table to be joined to itself several times. However, graph databases do not support all the constraints that are familiar and used in relational databases. In this paper, we discuss integrity constraints in graph databases and technical implementation issues that prevent these constraints from being specified.
Keywords: Graph databases ; Neo4j ; Gremlin ; Integrity constraints ; UNIQUE
Abstract: The idea of publishing structured and linked data on the Web started in the early stages of the World Wide Web (WWW) development. The original goal of the Semantic Web is creating a global Web of Data that is machine-readable, or as Tim Berners-Lee described it in his book [8]: “The first step is putting data on the Web in a form that machines can naturally understand, or converting it to that form. This creates what I call a Semantic Web”. The integration of various kinds of data is achieved through the adoption of common conceptualizations referred to as ontologies. Ontologies in different fields, including medicine, biology, climatology, ecology and even e-government, have been created to date. Opening and converting government data to Resource Description Framework (RDF) allows the data to become interlinked, making it a part of Linked Open Data (LOD). In this paper an overview of LOD is given, encompassing the presentation of the realization of LOD, its practical applications and current research trends. LOD is realized through Linked Data principles, HTTP protocol, URIs and RDF links. Its main goal is to identify existing data sets available under open licenses, convert them into the RDF format and publish them on the World Wide Web. Furthermore, state of the art of LOD in e-government is examined and discussed. In spite of a number of successful applications of LOD (like DBPedia or BBC), its ultimate goal has not been fully achieved so far. Further research and development projects therefore still need to be carried out to overcome the existing LOD challenges.
Keywords: Linked open data ; government open data
Abstract: Industrija razvoja igara rasla je brzo od samih početaka. U zadnjih par godina se toliko razvila da u nekim trenucima nismo ni svjesno da li gledamo igricu ili stvarni svijet. U ovom refereatu prezentiran je Phaser okvir (eng. Framework) za razvoj web igara. Projekt Phaser je aktivno započet sa razvojem u 2012. godini od strane Richarda Daveya. Phaser je zanimljiv zato što je najviše pažnje bilo posvećeno mobilnim web preglednicima budući da su se svi HTML5 okviri koji su do tada postojali bavili samo dekstop web preglednicima. Glavne značajke Phasera da za razvoj igara koristimo JavaScript ili TypeScript, prema tome imamo jako veliki broj urednika tekstova na izboru. Phaser se ističe svojom jednostavnošću, npr. učitavanje sadržaja kao što su slika i zvuk se može obaviti u jednoj liniji koda. Za renderiranje koristi WebGL ili Canvas, ovisno o tome što web preglednik podržava. Također podržava razne ulaze kao što su tipkovnica miš, dodir na ekran, podržava do 10 točki dodira te ih prati neovisno. Phaser će u budućnosti održavati kao novi okvir pod imenom Lazer (Phaser 3), koji ima novu specifičnu strukturu. Na vlastitom primjeru igre koju smo izradili proći čemo kroz osnovne i važne korake u razvoju igre. Objasnit čemo glavne funkcije te ojasniti kako smo postigli određenu dinamičnost u igri.
Keywords: Phaser; razvoj igara; JavaScript
Abstract: Nova verzija PHP-a, označena brojem 7, nakon neuspješnog i napuštenog projekta 6, bazirana je na novom Zend 3 sustavu (eng. engine). Donosi znatna poboljšanja u odnosu na verziju 5, zadržavajući pri tome kompatibilnost unazad, uz dodatak modernih objektnih koncepata i operatora te naprednog upravljanja iznimkama. Uz to sto je sintaktički unaprijeđen novim operatorima i programskim paradigmama, novi PHP nudi i značajno bolje performanse, veću štedljivost po pitanju resursa te veću pogonsku stabilnost. Iskusni korisnici se gotovo jednoglasno slažu da je brzina izvršavanja web okvira poput Laravela dvostruko veća pod PHP 7 u odnosu na starije verzije PHP-a, sto odgovara i podacima na službenim Zend-ovim stranicama. Novi PHP je dostupan za sve poznatije operacijske sustave, pri čemu omogućava programerima jednostavan prijelaz sa starih verzija. Ugrađen je u XAMP lokalni domaćin te je na taj na čin pristupačan čak i onim korisnicima koji nemaju potrebe za instalacijom pravih web poslužitelja, odnosno onima koji žele samo isprobati novi PHP. U našem istraživanju isprobali smo i LAMP instalaciju unutar Linuxa i XAMP. U radu su prezentirani noviteti te rezultati testiranja nove PHP verzije, razlike u odnosu na njegovu prijašnju verziju te sam prijelaz na verziju 7.
Keywords: PHP7 ; web ; inovacije ; testiranje ; pregled
Abstract: Pojam Internet stvari (eng. Internet of Things, IoT) predstavlja mrežu međusobno povezanih uređaja, iz svakodnevne upotrebe, koja ima sposobnost slanja i primanja informacija o stanju samog uređaja putem IP protokola. Statistički podaci pokazuju iznimno brz rast broja povezanih uređaja koji otvaraju brojne mogućnosti korištenja podataka u mreži. Područje primjene IoT-a pruža mnoštvo usluga, u prvom redu korisničkih aplikacija, koje korisniku omogućuju dijeljenje resursa. Koncept IoT-a treba omogućiti umrežavanje različitih stvari i objekata iz svakodnevnog života te njihovu međusobnu komunikaciju putem Interneta, bez ljudske interakcije, a sve, naravno, s ciljem poboljšanja uvjeta i načina na koji živimo. IoT tako koristi protokole kojima je svrha i cilj upravljati velikom količinom informacija i obraditi velike količine podataka kako bi se osigurala korisna informacija. Protokoli koji su se najviše izdvojili po broju implementacija i otvorenošću su: MQTT, COAP, XMPP, RESTful HTTP i AMQP. Protokoli u modelu arhitekture IoT-a od osam slojeva ostvaruju mogućnost direktnog spajanja na uređaje poput Raspberry Pi-a te rad s čvorovima i mrežama s ograničenim resursima. Uz protokole prikazani su IoT razvojne platforme, alati i servisi.
Keywords: IoT ; protokol ; MQTT ; pregled
Abstract: Usage of game mechanics, dynamics, aesthetics and game thinking in a non-game systems is called gamification and recently becomes very popular in academia. In e-learning systems gamification is mainly used to increase user’s motivation, experience and engagement. When using gamified design elements in e-learning, we must consider various types of learners and learning objectives that have to be set for a course. For a successful implementation, the cooperation of experts in fields of education, technology, pedagogy and design is required. The paper presents our first attempt to convert an e-learning course and its grading systems into gamified version using various gamification design elements (e.g. points, badges, leader boards, levels, progress tracking, feedback, and social engagement). Some of them are supported by popular LMSs, usually through some plugin that must be installed. One of the issues many teachers encounter is the limitation of gamified elements in official LMS that they use and how to get the most out of it.
Keywords: gemification ; e-learning ; moodle ; LMS
Abstract: In programming courses there are various ways in which students attempt to cheat. The most commonly used method is copying source code from other students and making minimal changes in it, like renaming variable names. Several tools like Sherlock, JPlag and Moss have been devised to detect source code plagiarism. However, for larger student assignments and projects that involve a lot of source code files these tools are not so effective. Also, issues may occur when source code is given to students in class so they can copy it. In such cases these tools do not provide satisfying results and reports. In this study, we present an improved process model for plagiarism detection when multiple student files exist and allowed source code is present. In the research in this paper we use the Sherlock detection tool, although the presented process model can be combined with any plagiarism detection engine. The proposed model is tested on assignments in three courses in two subsequent academic years.
Keywords: plagiarism detection ; source-code ; process model ; programming assignments
Abstract: Plagiarism is a big concern in academia and it can be a problem in every course. Plagiarism occurs when someone present others work as their own. Students plagiarize in different areas: homework assignments, essays, projects, etc. In this work focus is on programming courses and plagiarism in programming assignments. While sourcecode plagiarism detection, is in some way very similar to text plagiarism detection, it is very different in other ways. So, a lot of research is done focusing on source-code plagiarism. Some questions that are researched in this field are: what is considered plagiarism in programming assignments, how to perform plagiarism detection in programming assignments, how to do it automatically, what tool(s) to use, how students cheat in programming courses, how they try to obfuscate cheating, and many other questions. This work is a review of important research papers in the field of source-code plagiarism detection in academia. This paper tries to answer some of the mentioned research questions and give indication to future work.
Keywords: source-code ; plagiarsim detection ; academia ; review
Abstract: Automatizacija doma jedan je od dijelova Internet Stvari (eng. Internet Of Things). Pojavom malih uređaja poput Raspberry Pi-a "Sam Svoj Majstor" automatizacija doma sve je popularnija. Korištenjem Raspberry Pi uređaja, prototipne pločice i nekoliko senzora (npr. senzor temperature, vlage, vlažnosti zemlje, senzor pokreta) moguće je na različite načine automatizirati dom. U ovom radu iskorištena je, uz same senzore, infracrvena kamera za snimanje po noći i napravljen kućni video nadzor. Iako sam uređaj i senzori nisu skupi kako bi još više uštedjeli primijenili smo tako zvani „zeleni pristup“. U svakom domu nalaze se uređaji poput televizora, radio prijemnika i sl. čiji se popravak ne isplati. No sami uređaji sadrže dijelove koje je moguće na inovativan način iskoristiti u automatizaciji doma. U ovom radu iskorišten je infracrveni senzor i tv daljinski upravljač kako bi se olakšalo upravljanje automatiziranim kućnim nadzorom. Kao programski jezik za osnovno testiranje i podešavanje rada senzora korišten je Python, dok je konačno rješenje razvijeno u Javi.
Keywords: Automatomazitacija doma ; Raspberry Pi ; Internet stvari ; Java ; programiranje
Abstract: This research aims to develop a knowledge-based system used for calculating course difficulty and producing appropriate learning strategies for students. The system is based on fuzzy reasoning and attempts to contribute to the personalization of the learning process. After the description of the data collection process and the search for regularities in the data, we present the service interface. The knowledge- based system proposed in this paper can yield a number of benefits for both students and institutions: it motivates students to adopt a more practical and personalized approach towards learning and provides an independent learning procedure for both the student and the instructor
Keywords: knowledge-based system ; fuzzy logic ; personalized recommendation ; course difficulty
Abstract: Home automation is becoming a very popular activity with the development of credit cardsized and cheap single-board microcontrollers like arduino and especially single-board computers like Raspberry Pi. Every person which has small knowledge in programming and electronics can start some project to automatize his/her home. With dedicated device (Arduino or Raspberry Pi) and a few sensors for temperature, light (optosensor), humidity, infra-red light, etc. one can automate his home environment. There are various electronic devices in one’s home like radios, television, etc. that are not in use due to obsolescence or malfunction but the repair of such devices is not profitable. Some parts or even modules of such devices can still be of good use then doing home automations and to enforce so called the green approach. The development of home automation project should be based on small modules (hardware and software) that are testable and then gradually integrated into final project. Few decisions must be made about features one would like to have and usually few compromises are set on the path to the solution. This article shows a proof-of-concept that combines home automation using the Raspberry Pi, so called green approach and modular development.
Keywords: Home automation ; Raspberry Pi ; Internet of Things ; green approach ; open source ; Java ; sensors
Abstract: Information society has brought a number of new technologies and modern communication channels. Social networks have become something that is present in everyday lives of most students but also of many members of somewhat older population, especially after smartphones have become highly popular technology. When talking about students, a question that is emerging is whether usage of social networks has some impact on students in the sense of motivating or enabling them to increase their social or academic competencies and how much time they really spend on social networks. This paper presents a survey of the attitudes and usefulness of social networks for students. Data for the research has been collected from representative stratified sample where stratification was performed according to students’ year of study. The data was analyzed by usage of descriptive statistics and correlation analysis. Results of conducted research are presented and discussed in this paper.
Keywords: social networks ; students ; social competencies ; academic comptenties
Abstract: Za provjeru koncepta Interneta stvari primjenom RPi-om kreirana je Java SE aplikacija koja omogućuje upravljanje RPi kamera tako da se uključuje putem raznih senzora (svjetlost, kontakt i sl). Prikazana je priprema razvojne okoline, razvoj i testiranje aplikacije. Osim kupljenih elemenata posebnost razvijenog rješenja je tzv. zeleni pristup.
Keywords: Automatomazitacija doma; Raspberry Pi; Internet stvari; Java; programiranje
Abstract: Plagiarism is a big concern in programming courses. Students can copy-paste source-code parts, change it and present it as their own. It is hard to find plagiarized assignments manually, especially in large student groups and with many possible obfuscation methods. Many tools are built to automatically check for plagiarism. Since no algorithm for calculating similarity that the tools use is perfect, there are various preprocessing techniques that can help improve the quality of detection. In this research the idea is to verify how different preprocessing techniques affect different tool and define new preprocess model to improve the quality of detection.
Keywords: plagiarism detection ; programming assigements ; preprocessing
Abstract: Extract, transform and load (ETL) is a process that makes it possible to extract data from operational data sources, to transform data in the way needed for data warehousing purposes and to load data into a data warehouse (DW). ETL process is the most important part when building the data warehouse. Because the ETL process is a very complex and time consuming, this paper presents a prototype of a web ETL tool that offers step-by-step guidance through the entire process to the end user. This ETL tool is designed as a web application so users can save time (and space) required for installation purposes.
Keywords: ETL; data warehouse; web; ETL tool
Abstract: Every grocery store has data about bills, bought items, etc., usually stored in a database (DB). There is often a need to analyze this data. This is not suitable to do on an operational DB, especially when data from two or more stores must be analyzed. Therefore, data from the operational DB is extract-ed, transformed, and loaded (ETL) into a data warehouse (DW). The ETL process is the most important part of build-ing a data warehouse. It is used to extract data from opera-tional data sources, transform the data (as needed) and to load the data into a data warehouse. Because the ETL pro-cess (as such) is very complex and time consuming, a proto-type of a web ETL tool was built and tested. The results have shown that it is possible to build a completely web-based ETL tool and that it is faster than manual ETL. Also, be-cause it is completely web based, multiple users can use the tool at the same time, with no installation is needed.
Keywords: ETL; data warehouse; web; ETL tool
Abstract: U radu je opisano što su to skladišta podataka, koja je razlika skladišta i baze podataka i opisana je arhitektura i infrastruktura skladišta. Nakon toga je obrađen dimenzijski model, te ukratko prikazana Kimball metodologija životnog ciklusa (eng. Kimball lifecycle methodology) za izgradnju skladišta podataka. Zatim, dan je pregled metapodataka koji se javljaju u skladištu podataka i samom ETL-u, a potom je jedno poglavlje posvećeno ETL-u. Na kraju, prikazan je prototip vlastitog ETL alata.
Keywords: čišćenje podataka; ekstrakcija podatka; etl; skladišta podataka; transformacija podataka; učitavanje podataka
Abstract: Iako prisutna većduži niz godina, posljednjih nekoliko godina skladišta podatka se intenzivno koriste. Korištenje skladišta podatka omogućava veću iskoristivost postojećih podataka, provedbu kvalitetnijih analiza nad istima, te dobivanje korisnih informacija. Izgradnja skladišta podataka je vrlo složen projekt, te je potrebno dosta vremena kako bi se implementiralo samo skladište. Kako čak 70-80 % vremena prilikom izrade skladišta podataka otpada na ekstrakciju, transformaciju i učitavanje podataka (tzv. ETL proces), u ovom radu osvrnuti ćemo se na ETL, reći čemu on služi, te na konkretnom primjeru ukazati na neke probleme koji se javljaju prilikom ETL procesiranja.
Keywords: Skladišta podataka; ETL; Ekstrakcija; Transformacija; Učitavanje
Abstract: Rad se bavi bazama podataka na Webu.
Keywords: Baze podataka; Web