Web Based Programming Assistance Tool for Novices Anmol More, Jitendra Kumar, Renumol V. G. Division of Information Technology Cochin University of Science & Technology Kochi, India anmolmore@gmail.com, jit.monu@gmail.com, renumolvg@gmail.com Abstract – One of the grand challenges in computing education is to teach programming to novice students. Typically, novices find it difficult to understand compiler error messages. Hence a prototype of web based programming assistance tool has been developed to assist them in the programming process. It is an online program development environment to help beginners to debug programs in C language. The debugger component assists to identify the errors and fix them. Hints will be provided to deal with the compiler error messages. The system comprises of a GUI editor, a GCC compiler and a central database. The database stores a list of almost all compiler error messages, and the corresponding fixes and hints. Based on the error messages generated after compilation, queries are sent to the database and the relevant fixes are presented to the programmer. Keywords-computer programming; novice programmers; debugging; web based interface I. INTRODUCTION Most of the C compilers were developed years ago by professionals; however they lacked the vision for novice programmers. As a result beginners face various problems when they learn to program [1][2][3]. Some of the difficulties are: Installing and setting class paths for compilers. Learning functionalities of programming editors. Understanding programming questions and using programming language syntax knowledge to write code. Describing the program logic and difficulty of translating logic to program. Poor quality of assistance provided by teachers. Lack of knowledge of useful library functions and header files. Understanding compiler error messages. Fix the errors, as specified during debugging process. Debugging is a very important task in programming process. It needs students to understand the errors they make and know how to rectify them during programming process. But novices find it very difficult to understand the compiler generated error messages. Development of a new compiler for debugging programs that would provide simpler error messages and corresponding help and fixes would require a huge effort and technicality. This alone would not solve the learning difficulties of student programmers. Research has been done recently to understand the program learning difficulties of students [1][2][3]. One of the groups has suggested a HiC compiler for C++ programming, but it targets some of the problems only [4]. In a work [5] at Waikato Institute of Technology, kernel++ Integrated Development Environment (IDE) has been developed that can deal with the syntax and syntactic errors to some extent. But the major shortcoming is that each such new IDE requires a lot of testing and updates time to time, it would be difficult to use a desktop based system and update it. This may also require reinstalling the complete product at later stages. With the rapid growth of internet and World Wide Web, web based interfaces for program learning has become popular in recent years. An experimental result on 47 undergraduate students shows that web based program learning environment is helpful to the students [6]. Some of the web based interfaces [7][8][9][10] provide unassisted compilation of C programs. But they do not target the difficulties of student programmers and thus are of very limited use. Therefore this study concentrates on development of a web based interface that helps students to understand the compiler generated error messages and fix the programming errors. A system named as Web Based Programming Assistance Tool (WPAT) is developed, to support them in interpreting various error messages during programming. WPAT provides online coding, debugging and error rectification for C programs. C has been chosen for this project since majority [3] of students use ‘C’ as their first programming language. II. PROGRAMMING METHODOLOGY Programming is the process of writing, testing, debugging and maintaining the source code of computer programs using different programming languages [11]. Students are often asked to write complete programs to solve problems as soon as possible. Nevertheless, researchers have indicated that problem solving is in fact a necessary but not a sufficient criterion for programming [1]. In programming courses there are various issues to be considered, to encourage students. Learning programming 2011 International Conference on Technology for Education 978-0-7695-4534-9/11 $26.00 © 2011 IEEE DOI 10.1109/T4E.2011.55 270 2011 IEEE International Conference on Technology for Education 978-0-7695-4534-9/11 $26.00 © 2011 IEEE DOI 10.1109/T4E.2011.55 270