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.

Verificator

Verificator 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 Verificator. 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. Verificator works together with DevC++ IDE.

The main functionalities of Verificator 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 Verificator.

- 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. Verificator 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. Verificator 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, Verificator 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)

Installation:

install DevC++ at the default folder (C:\Dev-Cpp)
DOWNLOAD Verificator (actual english version: 3.23; updated 12-29-2013) and extract it in any free folder (must not to be write protected)
read short_instructions.txt
Videos about Verificator are available at YouTube video channel (laboratory4gpml).

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:
Student's entry
Teacher's entry

Our references about teaching tools and approaches

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.