Teaching tools

Teaching tools and approaches
Over the years, while teaching programming at the University of Zagreb, Faculty of Organization and Informatics in Varaždin, Croatia, we have faced some problems inherent in the teaching itself as well as those specific for learning programming. From this reason, we have made some software tools to help our students in achieving programming skills.


Verifikator is our software tool aimed at helping students to more easily acquire programming skills, and improving the process of teaching programming at the university beginners’ level. We started from our teaching experiences in building of C++ learning programming inteface, later named as Verifikator. Students often tend to adopt some bad programming habits in their attempt to pass the exam. There were cases in which students would learn big fragments of program code by rote, without any or with hardly any understanding. There were also students who wrote large program code without any syntax and logical testing, which produced a huge number of errors, discouraging the students from programming altogether. Verifikator works together with DevC++ IDE.

The main functionalities of Verifikator are:

- Personalization of programs. Students enter basic information about themselves (name, index number, program name and description) into the appropriate form. These data are included into program code in the form of comments, together with a checksum with the help of which can be checked whether the program is actually completely written in the Verifikator.

- Time limitation for making of programming tasks. Students are given the finishing time until which the task have to be accomplished that is controlled by time servers on Internet. After time elapse, student still can start the program, but can't modify it.

- Preventing copying programs from colleagues. Verifikator prevents copying program code from external sources. So, the whole code, except the given library must be entered by the student.

- Adopting of good programming habits. Based on many years of teaching experience in teaching of programming, it was shown that students using a standard programming environment to some extent tend to adopt some bad programming habits like learning programming code by heart, programming without syntax and logical checks, etc. Verifikator requires from students to syntax check their programs after every 10 new instructions which is graphically illustrated with semaphore (red light means that the program is no longer possible to translate). Except this, program has to be checked logically within the given intervals (expressed in the number of program blocks) in a way that all program blocks have to be reached during execution.

- Help for easier detection of syntax and logic errors. Besides the standard printing errors and warnings given by compiler, Verifikator provides further explanation of possible causes of these errors (e.g. unmatched curly brackets or parentheses, incorrect use of certain operators, etc.). Also, there is a tool for analysis of the program structure as well as the debugging tool.

More about the concept: here (pdf)



Verifikator comes bundled with the GCC compiler, so you just need to extract it from the zip file and it’s ready to use. Note for students: do not use any of these versions of Verifikator for submitting your student tasks! For that, you have the current version of Verifikator available on Moodle.

DOWNLOAD - English version: 4.00b; updated 28.02.2018.
DOWNLOAD - Croatian version: 5.09 Demo; updated 30.05.2024.

If you are a teacher who wants to test Verifikator in the classroom, feel free to contact us at gpml@foi.hr .

Generators used in teaching
On-line generators written in Python:
Automatic On-line Generation of Student's Exercises (C++ source code + questions) in Teaching Programming [2]

Our references about teaching tools and approaches

15. Bernik, Andrija; Radošević, Danijel; Dvorski, Jasmina:"Gamification After Almost a Decade: Is it Still Relevant? A Case of Non-STEM Hybrid E-learning University Course", Journal of Computer Sciences, 16 (2020), 5; 626, 631 doi:10.3844/jcssp.2020.626.631
14. Dvorski, Jasmina; Bernik, Andrija; Radošević, Danijel:"Synergy of innovation procedures and communication skills as a success predictor in IT supported management", Proceedings of 43rd International Convention – Mipro 2020 / Skala, Karolj (ur.)., Opatija: Croatian Society for Information and Communication Technology, Electronics and Microelectronics, 2020. 6170, 6
13. Bernik, A.; Radošević, D.; Wattanasoontorn, V.:"Influence, principles and good practice of computer game elements: Mechanics and Dynamics", Proceedings 23rd International Computer Science and Engineering Conference (ICSEC), 2019 IEEE / Kamolphiwong, Sinchai (ur.)., Phuket, Thailand: IEEE, 2019. str. 241-245 doi:10.1109/ICSEC47112.2019.8974708
12. Bernik, A.; Radošević, D.; Bubaš, G.:"Achievements and Usage of Learning Materials in Computer Science Hybrid Courses" // Journal of Computer Science, 15 (2019), 3; 247-257 doi:10.3844/jcssp.201
11. Bernik, A.; Bubaš, G.; Radošević, D., "Measurement of the effects of e-learning courses gamification on motivation and satisfaction of students"Zbornik radova konferencije Mipro 2018 / Biljanović, Petar (ur.).Opatija, 2018. str. 882-887
10. Bernik, A., Radošević, D., Strmečki, D.:"Research on Efficiency of Applying Gamified Design into University’s e-Courses: 3D Modeling and Programming", Journal of Computer Science, ISSN:1549-3636, 13 (11), 2017.
9. Bernik, A., Radošević, D., Bubaš, G.:"Introducing Gamification into e-Learning University Courses", zbornik radova konferencije "Mipro 2017", Opatija, 22-26.05.2017., str. 817-822, 2017.
8. Fara, V., Radošević, D.:"Integrating Technology Into Vocabulary Building", I. International Conference: From Theory to Practice in Language for Specific Purposes (Conference Proceedings), ISSN: 1849-9279, Zagreb, 19.-20. February 2016.
7. Strmečki, D., Bernik, A., Radošević, D.:"Gamification in E-Learning: Introducing Gamified Design Elements into E-Learning Systems", ), Journal of Computer Science, ISSN:1549-3636, 11 (12), 1108-1117, 2015.
6. Orehovački, T., Radošević, D., Konecki, M.:"Perceived Quality of Verificator in Teaching Programming", 37th International convention on information technology, electronics and microelectronics (MIPRO 2014), Opatija, 26.-30. May 2014.
5. Orehovački, T., Radošević, D., Konecki, M.:"Acceptance of Verificator by Information Science Students", 34th International Conference on Information Technology Interfaces (ITI 2012), Cavtat, 25.-28. June 2012.
4. Radošević, D., Orehovački:"An Analysis of Novice Compilation Behavior using Verificator", 33th International Conference on Information Technology Interfaces (ITI 2011), Cavtat, 27.-30. June 2011.
3. Đanić, M., Radošević, D., Orehovački, T.:"Evaluation of Student Programming Assignments in Online Environments", Central European Conference on Information and Intelligent Systems (Ceciis 2011), Varaždin, 21.-23.09.2011.
2. Radošević, D., Orehovački, T., Stapić, Z.:"Automatic On-line Generation of Student´s Exercises in Teaching Programming", Central European Conference on Information and Intelligent Systems, CECIIS 2010, Varaždin, 22-24 September 2010.
1. Radošević, D., Orehovački, T., Lovrenčić, A:"Verificator: Educational Tool for Learning Programming", Informatics in Education, Vol. 8, No. 2, pg. 261-280, ISSN 1648-5831, Institute of Mathematics and Informatics, Vilnius, Lithuania, 2009.