184 W C. Chang and K C. Chen share files with other members within a conversation. Files are shared using the Shared Files collaboration channel visible within each conversation window. Our tool has some elements that are differ from the above-mentioned tool. Now, we will address some difference elements as follows: (1) Voice communication: Besides text conversation, we also provide voice com- munication mode to improve the efficiency of communication. Because users communicate with each other in text mode, they may type too many word for conversation, and they will waste too much time. For this reason, we join voice communication mode to assist with text mode. (2) Share information faster: Our tool can present users’ mutual editor panel more immediately, and show each member's progress. It does not need to open other windows or channels to share the progress and information presently in addi- tion, and then it can be faster to discover and solve the problem. Table 1. The comparison with other similar tools Our tool NetBeans Project Developer Collaboration Tu r b o C Dev C++ Visual C++ C++ Builder Programming Editor Has Has Has Has Has Has Voice communication Has NONE NONE NONE NONE NONE Text communication Has Has NONE NONE NONE NONE Share information Has Has NONE NONE NONE NONE Problem- solving Has Has NONE NONE NONE NONE Following above topics, we compare our developed tool to other tools as show in Table 1. The traditional programming editor only has editor; it doesn’t have voice and text communication, and also can’t share information synchronously. We compare some programming tools, such as Turbo C, Bloodshed Dev-C++, Microsoft Visual C++ and C++ Builder. Turbo C is an Integrated Development Environment and com- piler for the C programming language. It was first introduced in 1987 and was noted for its integrated development environment, small size, extremely fast compile speed, comprehensive manuals and low price. Bloodshed Dev-C++ is a full-featured Inte- grated Development Environment (IDE) for the C/C++ programming language. It uses Mingw port of GCC (GNU Compiler Collection) as it's compiler. Dev-C++ can also be used in combination with Cygwin or any other GCC based compiler. Micro- soft Visual C++ (often abbreviated as MSVC) is a commercial integrated develop- ment environment (IDE) product engineered by Microsoft for the C, C++, and C++/CLI programming languages. It has tools for developing and debugging C++ code, especially code written for the Microsoft Windows API, the DirectX API, and Collaborative Learning Tool Applying to C Programming Language 185 the Microsoft .NET Framework. C++ Builder is a popular rapid application develop- ment (RAD) environment produced by the CodeGear subsidiary of Borland for writ- ing programs in the C++ programming language. C++ Builder combines the Visual Component Library and IDE as found in Delphi with a C++ compiler. C++ Builder includes tools that allow true drag-and-drop visual development, making program- ming easier by incorporating a WYSIWYG GUI builder into its IDE. The NetBeans project “Developer Collaboration” has editor and text communication, but it does not have voice communication mode. Our developed tool can help learner solve their problem and share their knowledge or information immediately. 5 Conclusion and Future Works In this paper, we develop a tool to support group collaborative learning, which com- bines voice and text communication mode to assist with the teamwork more effective. Learners will learn more problem-solving skills and more knowledge of C program- ming language when they interact with other users using our application. Through real time discussion and information sharing, users are going to complete their homework and project more and more. Our tool has not passed the actual test and use of learners yet at present, we will examine the influence on the user of the system in the future. We expect to test user's satisfaction to the system through the way of user's questionnaire. Acknowledgements We would like to thank National Science Council and Chung Hua University. This research was supported in part by a grant from NSC 96-2520-S-216-001 and CHU 96- 2520-S-216-001, Taiwan, Republic of China. We would like to thank Dr. Wong Wai- Tak for his insightful comments and suggestions on an earlier version of this paper. This paper owes much to the thoughtful and helpful comments of the reviewers. References 1. Wong, W.T., Chou, Y.M.: An Interactive Bomberman Game-Based Teaching/Learning Tool for Introductory C Programming. In: Hui, K c., Pan, Z., Chung, R.C k., Wang, C.C.L., Jin, X., Göbel, S., Li, E.C L. (eds.) EDUTAINMENT 2007. LNCS, vol. 4469, pp. 433–444. Springer, Heidelberg (2007) 2. Kao, F.C., Feng, T.H., Kuo, C.L.: The Design of Internet Collaborative Learning System Structure with the Integration of 3D Virtual Instruments. In: 4th IEEE International Work- shop on Technology for Education in Developing Countries(TEDC 2006), Iringa, pp. 71– 75 (2006) 3. Luo, S., Sun, S., Pan, Y.: An Object-Oriented Integrated Knowledge Approach to Internet- Based Product Collaborative Conceptual Design. In: 9th International Conference on Computer Supported Cooperative Work in Design, vol. 2, pp. 1129–1134 (2005) 4. Björck, U.: Theoretical foundations of Computer Supported Sustainable Learning Proc- esses (CSSLP). In: Nuldén, U., Hardless, C. (eds.) CSCL, A Nordic Perspective. Papers From the Nordic Workshop on Computer Supported Collaborative Learning, Göteborg, Sweden, pp. 11–17 (1999) 186 W C. Chang and K C. Chen 5. Caballe, S.: On the Advantages of Using Web & Grid Services for the Development of Collaborative Learning Management Systems. In: First International Conference on Com- plex Intelligent and Software Intensive Systems (CISIS 2007), Vienna, pp. 263–270 (2007) 6. Turani, A., Calvo, R.: Sharing Synchronous Collaborative Learning Structures using IMS Learning Design. In: 7th International Conference on Information Technology Based Higher Education and Training (ITHET 2006), Ultimo, NSW, pp. 25–34 (2006) 7. Yu, D., Chen, X.: Supporting Collaborative Learning Activities with IMS LD. In: 9th In- ternational Conference on Advanced Communication Technology (ICACT 2007), Gang- won-Do, vol. 1, pp. 316–320 (2007) 8. Hong, H.C., Chen, Y.C.: Design and Implementation of a Web-based Real-time Interac- tive Collaboration Environment. In: Ninth IEEE Workshop on Future Trends of Distrib- uted Computing Systems (FTDCS 2003), pp. 295–300 (2003) 9. Wijekumar, K.J.: Implementing Collaborative Learning Research in Web-Based Course Design and Management Systems. In: IEEE International Conference on Advanced Learn- ing Technologies, Madison, WI, pp. 86–89 (2001) 10. Deshpande, N., de Vries, B., van Leeuwen, J.P.: Building and Supporting Shared Under- standing in Collaborative Problem-solving. In: Ninth International Conference on Informa- tion Visualisation (IV 2005), pp. 737–742 (2005) 11. Liu, Z., Jin, H., Fang, Z.: Collaborative Learning in E-Learning based on Multi-Agent Sys- tems. In: 10th International Conference on Computer Supported Cooperative Work in De- sign, Nanjing, pp. 1–5 (2006) 12. Asensio, J.I., Dimitriadis, Y.A., Heredia, M., Martinez, A., Alvarez, F.J., Blasco, M.T., Osuna, C.A.: Collaborative Learning Patterns: Assisting the Development of Component- Based CSCL Applications. In: 12th Euromicro Conference on Parallel, Distributed and Network-Based Processing (EUROMICRO-PDP 2004), pp. 218–224 (2004) 13. Howell, K.: First Computer Languages. J. Computing Sciences in Colleges archive, Con- sortium for Computing Sciences in Colleges, USA 18(4), 317–331 (2003) 14. Ge, Z., Hillenbrand, M., Müller, P.: Facilitating the Interoperability among Different VoIP Protocols with VoIP Web Services. In: First International Conference on Distributed Frameworks for Multimedia Applications (DFMA 2005), pp. 39–44 (2005) 15. Butcher, D., Li, X., Guo, J.: Security Challenge and Defense in VoIP Infrastructures. IEEE Transactions on Systems, Man, and Cybernetics-Part C: Application and Reviews 37(6), 1152–1162 (2007) 16. Ko, C.S.: Voice Application On Multi-Player Online Game. Chung Hua University, Hsihchu, Taiwan [text in Chinese] (2007) 17. Liu, H., Mouchtaris, P.: Voice over IP signaling: H.323 and beyond. IEEE Communica- tions Magazine 38, 142–148 (2000) 18. Chen, C.H.: VoIP Support on Massive Multi-player Online Game Architecture. Chung Hua University, Hsihchu, Taiwan [text in Chinese] (2006) 19. Voice Over IP 101 Understanding the Basic Networking Functions, Components, and Sig- naling Protocols in VoIP Networks, pp. 9-11(2007), http://www.juniper.net/ solutions/literature/white_papers/200087.pdf 20. OpenH323 Project, http://www.openh323.org 21. NetBeans Collaboration Project, http://collab.netbeans.org/index.html F. Li et al. (Eds.): ICWL 2008, LNCS 5145, pp. 187–195, 2008. © Springer-Verlag Berlin Heidelberg 2008 Design and Implementation of an Internet-Based Platform for C Language Learning * Jianxin Wang, Ling Chen, and Weiwei Zhou School of Information Science and Engineering, Central South University, ChangSha, 410083, China jxwang@mail.csu.edu.cn,chenboo_cn@126com Abstract. A designing model and implementing method of an Internet-based system for C Language Learning is proposed in the paper, which based on .NET platform. The communication between the system and the compiler of C Lan- guage is implemented by using redirect technology. More powerful compile and logic error-check function are provided in the system, which adopts C# Multi-thread technology and synchronous control theory. Object-Oriented de- sign methods and C# Reflection technology are used to solve the problem of dynamic test-case scheduling, which makes the system be extensible and robust. In the platform, users can learn C language knowledge and do C program. Es- pecially, they can find out the logic errors which are bugs and can not be dis- covered by the compiler in programs. Once the users can gain access to the Internet, they can get hints and extra help easily through the interactive system at anytime and in anyplace. Keywords: logic error checking; compile error checking; distance education; C language learning. 1 Introduction Long-distance education is a teaching channel in full swing in the world which breaks through time limit by using computer technology and the Internet [1]. One key point to the success of distance education is Internet-based learning platforms. As far as we know, developing interactive systems of time-free, resource-sharing, system-opening and Internet-based is a hot research at present [2]. These platforms make the long-distance education be effective. So the design and development of virtual learning platform is a necessary part of distance education system [3]. Furthermore, C language is a required course for computer professionals. Though it is powerful and flexible, but it’s difficult to learn [4]. Especially in long-distance education, the teachers are unable to face-to-face teach students. Meanwhile, in computer pro- gramming, a compile error occurs when the compiler encounters some problems in the * This work was partially supported by the National Natural Science Foundation of China (60673164), Provincial Natural Science Foundation of Hunan (06JJ10009), Program for New Century Excellent Talents in University (NCET-05-0683), the Program for Changjiang Scholars and Innovative Research Team in University No. IRT0661. 188 J. Wang, L. Chen, and W. Zhou code. And a logic error is a bug that causes the program to operate incorrectly or achieve the function incompletely. As a C-language learner, lacking of programming experience, the student will lose learning interest easily because of the huge number of compile and logic errors. Besides, the compile errors provided by TC are not all exact. They always contain many correlate errors. And the logic errors are hard to be solved. They usually hide in deep and can not be discovered by compiler. These factors make learning C language be difficult. In recent years, different types of learning platforms used to distance education are being researched and designed. An Internet-based system for Java language learning is proposed in Ref. [6], which can compile the student’s program and view the error messages through the student’s workplace in the online system. A component-based Virtual Laboratory Platform is introduced in Ref.[7] and [8]. It uses Java Bean to im- plement the virtual experimental equipments, which improves the developing effi- ciency and achieves the software reuse. Ref.[9] and [10] proposes an interactive learning environment for teaching and learning of computer programming. Although these platforms are interactive and timely, they only offer a simple compiling and debugging environment, but without logic error-check function. If learners meet logic errors and difficult compile errors, the systems are unable to provide effective help. Therefore, an Internet-based system for C Language Learning is proposed in this paper which provides more powerful compile and logic error-check function. The system is robust, timely and extensible. It can improve the teaching and learning of computer programming in distance education. The remainder of this paper is structured as follows. In section 2, we introduce the system architecture and function. Section 3 describes the design and implementation of compile Error-check. Section 4 shows the design and implementation of logic error-check. Section 5 gives an example in the system, and the last section is the conclusion. 2 System Architecture and Function The Internet-based Platform for C Language Learning is composed of two parts: the client and the server. Its architecture is shown in Figure 1. The client mainly provides C language learning and doing programming environment, which based on .NET plat- form. The server based on .NET and SQL Server 2005, it is mainly responsible for managing users, documents and databases and achieving logic error-check function. The server contains three databases: User DB, Test-case DB and Question DB. These databases are managed by DB management module in standard. The system module is shown in Figure 2. The client contains user login, compile and logic error-check, TC programming and auxiliary modules. The server contains user management, DB management, logic error-check service and auxiliary service mod- ules. The compile error-check model offers programming environment and powerful compile error-check function. The logic error-check model provides safety-test, com- piling and debugging for the .C source files received from the client, which is imple- mented by redirect technology and DB management technology. The auxiliary module in client mainly provides a large number of learning materials and tools, which will be updated timely. And the multithreading and process management, document man- agement and interface management are offered by the auxiliary service module. . Building and Supporting Shared Under- standing in Collaborative Problem-solving. In: Ninth International Conference on Informa- tion Visualisation (IV 2005), pp. 737–742 (2005) 11. Liu, Z., Jin,. Calvo, R.: Sharing Synchronous Collaborative Learning Structures using IMS Learning Design. In: 7th International Conference on Information Technology Based Higher Education and Training (ITHET. An Interactive Bomberman Game-Based Teaching/Learning Tool for Introductory C Programming. In: Hui, K c., Pan, Z., Chung, R.C k., Wang, C.C.L., Jin, X., Göbel, S., Li, E.C L. (eds.) EDUTAINMENT