ISSN 2286-4822 www.euacademic.org EUROPEAN ACADEMIC RESEARCH Vol. IV, Issue 10/ January 2017 Impact Factor: 3.4546 (UIF) DRJI Value: 5.9 (B+) Design and Development of an Intelligent Tutoring System for C# Language BASHAR G. H. AL-BASTAMI Department of Information Technology Faculty of Engineering & Information Technology Al-Azhar University, Gaza, Palestine SAMY S. ABU NASER1 Professor of Artificial Intelligence Department of Information Technology Faculty of Engineering & Information Technology Al-Azhar University, Gaza, Palestine Abstract: Learning programming is thought to be troublesome. One doable reason why students don't do well in programming is expounded to the very fact that traditional way of learning within the lecture hall adds more stress on students in understanding the Material rather than applying the Material to a true application. For a few students, this teaching model might not catch their interest. As a result, they'll not offer their best effort to grasp the Material given. Seeing however the information is applied to real issues will increase student interest in learning. As a consequence, this may increase their effort to be taught. In the current paper, we try to help students learn C# programming language using Intelligent Tutoring System. This ITS was developed using ITSB authoring tool to be able to help the student learn programming efficiently and make the learning procedure very pleasing. A knowledge base using ITSB authoring tool style was used to represent the student's work and to give customized feedback and support to students. 1 Corresponding author: abunaser@alazhar.edu.ps Bashar G. H. Al-Bastami, Samy S. Abu NaserDesign and Development of an Intelligent Tutoring System for C# Language EUROPEAN ACADEMIC RESEARCH Vol. IV, Issue 10 / January 2017 8796 Key words: Intelligent Tutoring System, Authoring Tool, ITSB, C# Language INTRODUCTION C# language is a general-purpose and object-oriented programming language. It was designed and developed by Microsoft together with the .NET platform. There is many various software designed with C# language and on the .NET platform such as desktop applications, web applications, office applications, websites, games, mobile applications, and many more [1, 2]. C# language is a high-level language that is like C++ and Java, embarcadero Delphi, C, VB.NET. All programs written in C# are object-oriented styled. They involve of a group of definitions in classes that include methods and the methods include the logic of the program [1, 2]. C# language is one of the most common programing languages. It is used by many developers worldwide. Because C# language is developed by Microsoft as part of their new platform for development and execution of software, the language is extensively spread amongst Microsoft-oriented businesses, the .NET Framework, individual and organizations developers. The C# language and the .NET platform are upheld and managed completely by Microsoft and are not open to third parties [1,2]. Intelligent Tutoring System is computer software designed to simulate a human instructor's skills behavior and guidance. Such ITS systems are capable of interpreting complex student responses and can learn as they work, they are able to distinguish where and why a student understands has gone amiss and to give it hints to aid the student understand of the material given. Intelligent tutoring system delivers numerous of the benefits of a human instructor to very large numbers of Bashar G. H. Al-Bastami, Samy S. Abu NaserDesign and Development of an Intelligent Tutoring System for C# Language EUROPEAN ACADEMIC RESEARCH Vol. IV, Issue 10 / January 2017 8797 students. Intelligent tutoring systems can also deliver real-time data to instructors and developers looking to improve their teaching styles [3-10]. LITERATURE REVIEW Various ITS deliver step-by-step monitoring of the student's solution as it is being produced [23], while others offer feedback on the final solution [3]. Several ITS select the next stage for the students [4], others let the student do that. An Intelligent tutoring system (ITS) provides customized computer-based instruction to students [23 ]. There are many ITS system designed for : educational purposes [8-15,25], ITS called JOTutor for helping students to learn Java Programming language [28], ITS which called CPP-Tutor for helping student to learn C++ Programming Language[14], a comparative study between Animated Intelligent Tutoring Systems (AITS) and Video-based Intelligent Tutoring Systems (VITS) [24], An agent based ITS for Parameter Passing In Java Programming[17], Java Expression Evaluation [13], Linear Programming[10,31], effectiveness of e-learning[26], computer aided instruction[9], effectiveness of the CPP-Tutor[29], teaching AI searching algorithms[15], teaching database to sophomore students in Gaza[12], and Predicting learners performance using NT and ITS [8], design and development of diabetes ITS[30 ], ITS teaching grammar English tenses [27], ITS for teaching advanced topics in information security[19], development and evaluation of the Oracle Intelligent Tutoring System (OITS)[20], ITS for learning Computer Theory[21], e-learning system[11,18,27], an Intelligent Tutoring System for Entity Relationship Modeling[16], an Knowledge-based Intelligent Tutoring System for Teaching Mongo Database[22], and ITS for learning Software Patterns [7]. Bashar G. H. Al-Bastami, Samy S. Abu NaserDesign and Development of an Intelligent Tutoring System for C# Language EUROPEAN ACADEMIC RESEARCH Vol. IV, Issue 10 / January 2017 8798 INTELLIGENT TUTORING SYSTEM. There are a few questions about intelligent tutoring systems that everyone should know: What are intelligent tutoring systems? An intelligent tutoring system is a system designed to be similar to teacher's behavior in teaching. It can help students studying set of subjects by series of lessons, many questions on each lesson, and offering specific instruction with feedback. It can explain complex student responses and learn as they want. The system makes a profile for each student and estimate the student's degree of skill. This type of system can change its tutoring behavior in real time. The aim is not merely to know a response is correct or not, but to understand which response of student had incorrect How does intelligent tutoring system work? These tools contain a base system, which controls the comprehensive structure and reasoning, and the discrete tutor itself, which are created when experts provide specific material for each lesson. Although tutoring systems vary in how they function, generally the software give questions to be solved and show him the result. Why is intelligent tutoring system significant? The tutoring system is effective in guiding the students through the learning process. Intelligent tutoring systems attempt to find the best methods derived from the old-style human model and move after it to determine new methods for teaching and learning. These tutors suggestion a mechanism for students to understand and learn subject in a new way by lessons, Examples and exams with their result at the end. Bashar G. H. Al-Bastami, Samy S. Abu NaserDesign and Development of an Intelligent Tutoring System for C# Language EUROPEAN ACADEMIC RESEARCH Vol. IV, Issue 10 / January 2017 8799 Where is intelligent tutoring systems going? Intelligent tutoring system technology in education seemed to make it stress-free to teach and study. The system we are presenting in this paper is desktop application to help in self education but one day we will found online application work on the same approach, so it will allow the tutors to edit and add new information to the tools. It can allow the tutors to provide some instructions to the students that might the students don't know it. Also, utilization Intelligent tutoring system increase day by day, larger amount of data retrieved from student can help to improve the system. on the other hand some researchers are working to make tutoring system contain voice & video lessons and simulate education environment with feedback cycle between tutors and students. Intelligent systems might one day be able to respond the student's words, facial expression, or body language. What are the intelligent tutoring systems effects for teaching and learning? Intelligent tutoring systems are not designed to replace human instructors, who convey multifaceted social interaction into the learning process. On the other hand, an intelligent tutor can work with a vast number of students both together at the same time and be available all time and everywhere. If the student doesn't like an instructor or don't understand of him, he can use intelligent tutor to understand the course or the lesson. An intelligent tutoring system can also provide real-time data to teachers and developers looking to improve teaching methods. Because educational institutions cannot allocate a human tutor to every student, intelligent tutoring systems are a useful alternative to give any student individualized assistants. Bashar G. H. Al-Bastami, Samy S. Abu NaserDesign and Development of an Intelligent Tutoring System for C# Language EUROPEAN ACADEMIC RESEARCH Vol. IV, Issue 10 / January 2017 8800 ITS ARCHITECTURE Figure 1: ITS architecture for C# Language C# Language architecture has four major components: expert nodule, student model, tutoring module, and user interface. A brief discussion on each of these components follows: STUDENT MODEL Before a new student can use the C# intelligent tutoring system, he/she must have a profile in the system. The profile contains information about the student like :last session date the ITS system was used, student name, student number, current score, overall score, level difficulty completed for every lesson, and problem number during the each session. The current score represents student score for the current level. The overall score represents student score for all levels. TUTORING MODULE Tutoring module works as a coordinator that controls the functionality of the C# language intelligent tutoring System. Through this model, a student can answer questions generated in every difficulty level of each lesson and if the student gets more than 70% mark, he/she can move to the second difficulty level. But if he/she got mark between 50% and less than 70% then he/she repeats to the exercises of the same difficulty level; however, if he/she gets a mark less than 50%, he/she will be Bashar G. H. Al-Bastami, Samy S. Abu NaserDesign and Development of an Intelligent Tutoring System for C# Language EUROPEAN ACADEMIC RESEARCH Vol. IV, Issue 10 / January 2017 8801 taken back to lesson to study it well then come back to try the exercises again. USER INTERFACES The ITSB authoring tool used for building the C# system supports the user interface and teacher interface. When the teacher's log in the system, the he/she can add initial information about the student, lessons, exercises, answers, font name, and size of all buttons, menus, combo configure and adjust the fonts, background color, and text color for all forms in the systems, boxes etc. Thus, this interface provides the system with the needed flexibility to be used by both teacher and students. A screenshot of the student and teacher's interfaces are shown in Fig 2 to Fig 9. EXPERT MODULE This component is called sometimes the domain module of other ITS architectures. It contains the material to be taught for the students. In our current tutoring system, the material consists of the following topics in C# language:  Introduction to Programming  Primitive Types and Variables  Operators and Expressions  Console Input and Output  Conditional Statements  Loops  Arrays  Numeral Systems  Methods  Recursion  Creating and Using Objects Bashar G. H. Al-Bastami, Samy S. Abu NaserDesign and Development of an Intelligent Tutoring System for C# Language EUROPEAN ACADEMIC RESEARCH Vol. IV, Issue 10 / January 2017 8802  Exception Handling  Strings and Text Processing  Defining Classes  Text Files  Linear Data Structures  Trees and Graphs  Dictionaries, Hash-Tables and Sets Figure 2: login screen Figure 3: In the following interfaces student choose the lesson he/she wants to study Bashar G. H. Al-Bastami, Samy S. Abu NaserDesign and Development of an Intelligent Tutoring System for C# Language EUROPEAN ACADEMIC RESEARCH Vol. IV, Issue 10 / January 2017 8803 Figure 4: In this interface, the student chose an example of the lesson that he/she want to study. Figure 5: After the student read the lesson, the tools offer many questions about the lesson if the student wants to evaluate himself. 1. Correct answer: 2. Wrong answer: Figure 6: After he/she answered the question, he should click on check button to know if his/her answer correct or wrong. The tool will show the result. Bashar G. H. Al-Bastami, Samy S. Abu NaserDesign and Development of an Intelligent Tutoring System for C# Language EUROPEAN ACADEMIC RESEARCH Vol. IV, Issue 10 / January 2017 8804 Figure 7: This interface to add new student into the tool with some information to work on it. Figure 8: This interface shows the students status, problem, difficulty of the questions, his/her score and the title of lesson. Figure 9: This message appears when the student fails the current difficulty level of a specific lesson. EVALUATION We have asked a group of teachers and students to try the C# intelligent tutoring system. Furthermore, we asked them to Bashar G. H. Al-Bastami, Samy S. Abu NaserDesign and Development of an Intelligent Tutoring System for C# Language EUROPEAN ACADEMIC RESEARCH Vol. IV, Issue 10 / January 2017 8805 give their opinion about the system. The overall impression of both students and teachers were positive. Some of the comment we got from the teachers and students as follows: "go ahead", "The system will help number of students", "good but you should make it more flexible to add lessons, examples and questions", "the system will not improve the education and that will make students doesn't focus in classes but just depends the system", "your system will make student lazy to go to the classes, because he has a tutor to understand the lesson". CONCLUSION There is an increasing interest in the new trend of Intelligent Tutoring System for high quality teaching and training because it uses Artificial Intelligent, Cognitive Science and Education to enhance the aptitude of computer supported education to autonomously offer students with effective educational capabilities. In this paper, we have provided the design and development of an Intelligent Tutoring System for C# language to help student better learn programming languages. An initial evaluation of the system was carried out and the findings were positive. REFERENCES 1. Jon Skeet, C# in Depth, 3rd edition, Manning Publications;, 2013. 2. Dilyan Dimitrov and others, Fundamentals of Computer Programming With C#, Svetlin Nakov & Co., 2013. 3. Aleven, V. & Koedinger, K. 2002. An effective metacognitive strategy: Learning by doing & explaining with a computer-based cognitive tutor. Cognitive Science, 26(2), 147-179. Bashar G. H. Al-Bastami, Samy S. Abu NaserDesign and Development of an Intelligent Tutoring System for C# Language EUROPEAN ACADEMIC RESEARCH Vol. IV, Issue 10 / January 2017 8806 4. Conati C., Gertner A., VanLehn K., 2002. Using Bayesian Networks to Manage Uncertainty in Student Modeling. User Modeling and User-Adapted Interaction. 12(4) p. 371-417. 5. Mitrovic, A., Martin, B., Suraweera, P. Constraint-based tutors: past, present and future. IEEE Intelligent Systems, special issue on Intelligent Educational Systems, vol. 22, no. 4, pp. 38-45, July/August 2007. 6. Professor Glenn D. Blank, Fall 2007: CSE 497: Intelligent Tutoring Systems. http://www.cse.lehigh.edu/~glennb/497Tutoring/. 7. Jeremić, Z. (2005). An Intelligent Tutoring System for learning Software Patterns (in Serbian), Master Thesis, Belgrade, Serbia. 8. Naser, S. S. A. (2012). Predicting learners performance using artificial neural networks in linear programming intelligent tutoring system, International Journal of Artificial Intelligence & Applications, Academy & Industry Research Collaboration Center (AIRCC), 3,2, 65-73. 9. Naser, S.S A., & Sulisel, O. (2000). The effect of using computer aided instruction on performance of 10th grade biology in Gaza. 10. Naser, S. A., Ahmed, A., Al-Masri, N., & Abu Sultan, Y. (2011). Human Computer Interaction Design of the LP-ITS: Linear Programming Intelligent Tutoring Systems, International Journal of Artificial Intelligence & Applications (IJAIA), 2(3),60-70. 11. Chrstan Wolf, "I-Weaver: Towards learning style-base elearning in computer science education", proceedings of the Australian Computing Education Conference, 2003. 12. Naser, S. S. A. (2006). Intelligent tutoring system for teaching database to sophomore students in Gaza and its effect on their performance, Information Technology Journal, Scialert,5(5),916-922. Bashar G. H. Al-Bastami, Samy S. Abu NaserDesign and Development of an Intelligent Tutoring System for C# Language EUROPEAN ACADEMIC RESEARCH Vol. IV, Issue 10 / January 2017 8807 13. Abu Naser, S. (2008). JEE-Tutor: An Intelligent Tutoring System for Java Expression Evaluation, Information Technology Journal, Scialert , 7(3),528-532. 14. Naser, S.S. A. (2008). Developing an intelligent tutoring system for students learning to program in C++, Information Technology Journal, Scialert,7(7),1055-1060. 15. Naser, S.S.A. (2008). Developing visualization tool for teaching AI searching algorithms, Information Technology Journal, Scialert,7(2), 350-355. 16. Pramuditha Suraweera & Antonija Mitrovic. KERMIT, An Intelligent Tutoring System for Entity Relationship Modeling. Private Bag 4800, Christchurch, New Zealand 17. Naser, S. A. (2008). An Agent Based Intelligent Tutoring System For Parameter Passing In Java Programming, Journal of Theoretical & Applied Information Technology, 4,7. 18. Mahmoud, A. Y., Barakat, M. S., & Ajjour, M. J. (2016). Design and Development Of ELearning University System. (Journal of Multidisciplinary Engineering Science Studies (JMESS), 2(Issue 5, May 2016), 498-504. 19. Mahdi, A. O., Alhabbash, M. I., & Abu Naser, S. S. (2016). An intelligent tutoring system for teaching advanced topics in information security, WWJMRD, 2(12), 1-9. 20. ALDahdooh, R., & Abu Naser, S.S. (2017). Development and Evaluation of the Oracle Intelligent Tutoring System (OITS), European Academic Research, 4(10). 21. Al-Nakhal M.A., & Abu Naser, S. S. (2017). An Intelligent Tutoring System for learning Computer Theory, European Academic Research, 4(10). 22. Hilles, M. M., & Abu Naser, S.S. (2017). Knowledge-based Intelligent Tutoring System for Teaching Mongo Database, European Academic Research, 4(10). 23. Abu Naser, S. S. (2016). ITSB: An Intelligent Tutoring System Authoring Tool. Journal of Scientific and Engineering Research, 3(5), 63-71.‏ Bashar G. H. Al-Bastami, Samy S. Abu NaserDesign and Development of an Intelligent Tutoring System for C# Language EUROPEAN ACADEMIC RESEARCH Vol. IV, Issue 10 / January 2017 8808 24. Abu Naser, S.S. (2001). A comparative study between Animated Intelligent Tutoring Systems (AITS) and Videobased Intelligent Tutoring Systems (VITS), Al-Aqsa University Journal,5,1 Part,1. 25. C. J. Butz, S. Hua, R. B. Maguire, "A web-based Bayesian intelligent tutoring system for computer programming", Web Intelligence and Agent Systems, Vol.4, No.1, pp.77-97 * January 2006. 26. Abu-Naser, S., Al-Masri, A., Abu Sultan, Y., & Zaqout, I. (2011). A prototype decision support system for optimizing the effectiveness of e-learning in educational institutions, International Journal of Data Mining & Knowledge Management Process (IJDKP),1, 1-13. 27. Alhabbash, M. I., Mahdi, A. O., & Abu Naser, S.S. (2016). An Intelligent Tutoring System for Teaching Grammar English Tenses, European Academic Research, 4(9). 28. Abu-Naser, S., Ahmed, A., Al-Masri, N., Deeb, A., Moshtaha, E., & AbuLamdy, M. (2011). An Intelligent Tutoring System for Learning Java Objects, International Journal of Artificial Intelligence and Applications (IJAIA), 2(2). 29. Naser, S. (2009). Evaluating the effectiveness of the CPPTutor an intelligent tutoring system for students learning to program in C++, Journal of Applied Sciences Research, 5(1), 109-114, http://www.aensiweb.com/JASR/. 30. Almurshidi, S. H., & Abu Naser, S. S. (2016). Design and Development of Diabetes Intelligent Tutoring System, European Academic Research, 4(9). 31. Naser, S. S. A. (2012). A Qualitative Study of LP-ITS: Linear Programming Intelligent Tutoring System, International Journal of Computer Science & Information Technology, 4(1),209-220, Academy & Industry Research Collaboration Center (AIRCC). 32. Alnajjar, M., & Naser S.S.A. (2015). Improving Quality Of Feedback Mechanism In Un By Using Data Mining Bashar G. H. Al-Bastami, Samy S. Abu NaserDesign and Development of an Intelligent Tutoring System for C# Language EUROPEAN ACADEMIC RESEARCH Vol. IV, Issue 10 / January 2017 8809 Techniques‏, International Journal of Soft Computing, Mathematics and Control, 4(2). 33. Abu Naser, S. (1993). A methodology for expert systems testing and debugging, North Dakota State University, USA 1, 1-130 34. Naser, S.S.A. (1999). Big O Notation for Measuring Expert Systems complexity, Islamic University Journal Gaza 7 (1), 77-