Abstract | Ovaj rad bavi se razvojem i primjenom automatiziranog sustava za ocjenjivanje programskih zadataka, poznatog kao autograder. Autograder je implementiran korištenjem Python programskog jezika i Flask web okvira, te pruža platformu za automatsku evaluaciju studentskih rješenja putem niza definiranih zadataka. Rad započinje uvodom u koncept autograderskih sustava, njihovom funkcionalnošću i značajem u obrazovanju, s posebnim naglaskom na prednosti i izazove u usporedbi s tradicionalnim metodama ocjenjivanja. Jedan od ključnih dijelova rada posvećen je tehničkoj implementaciji autogradera. Detaljno su opisane komponente sustava, uključujući korisničko sučelje, mehanizme za testiranje rješenja te načini na koje se rezultati prikazuju studentima. Pored same implementacije, rad se osvrće na važnost odabira tehnologija, gdje su istaknute prednosti korištenja Python programskog jezika i Flask okvira. Navedene su detaljne upute za instalaciju i korištenje sustava, kako bi čitatelji mogli replicirati ili dalje razviti autograder. U zaključku, diskutira se o budućem razvoju autogradera, mogućnostima njegove nadogradnje i uvođenju novih funkcionalnosti poput prepoznavanja stilskih grešaka u kodu. Također su istaknute prednosti sustava, poput brzine i preciznosti ocjenjivanja, ali i slabosti, među kojima je ograničena fleksibilnost u prepoznavanju alternativnih rješenja. Unatoč tim izazovima, autograderi predstavljaju važan korak naprijed u modernizaciji obrazovnog procesa u području računalnih znanosti. |
Abstract (english) | This thesis focuses on the development and application of an automated grading system for programming tasks, commonly known as an autograder. The autograder is implemented using the Python programming language and the Flask web framework, providing a platform for the automatic evaluation of student solutions through a series of predefined tasks. The thesis begins by introducing the concept of autograding systems, their functionality, and their significance in education, with particular emphasis on the advantages and challenges compared to traditional grading methods. A key section of the thesis is dedicated to the technical implementation of the autograder. It provides a detailed explanation of the system’s components, including the user interface, mechanisms for testing solutions, and how the results are presented to students In addition to the implementation, the thesis discusses the importance of technology selection, highlighting the benefits of using the Python programming language and the Flask framework. Detailed instructions for installing and using the system are provided, allowing readers to replicate or further develop the autograder. In the conclusion, the future development of the autograder is discussed, exploring possibilities for upgrades and the introduction of new features, such as recognizing coding style errors. The advantages of the system, such as grading speed and accuracy, are highlighted, as well as its weaknesses, including limited flexibility in recognizing alternative solutions. Despite these challenges, autograders represent a significant step forward in modernizing the educational process in the field of computer science. |