Leveraging Student Projects for the Development of Open Source Courseware/Software

C Vijaya Lakshmi 
Sridhar Iyer
KR School of Information Technology,
Indian Institute of Technology Bombay
India
{vijaya, sri}@it.iitb.ac.in

Abstract : The growth in the IT sector has led to phenomenal rise in the number of students seeking a career in this field, especially in developing countries. Two major problems faced by many educational institutes in such countries are: the lack of qualified teachers and inadequate opportunities for training students. In this paper we describe an attempt made at the Indian Institute of Technology, Bombay, to train large numbers of students from external institutions in the software development process with real life applications. We use a process similar to eXtreme Programming to develop several open source software and courseware for use in educational institutions, thereby alleviating the aforementioned problems. We present our  process and discuss two of the projects as case studies. We believe the model is easy to replicate for other areas of education and can be easily adopted by other institutions elsewhere. 

Introduction

The growth in the IT sector has led to phenomenal rise in the number of students seeking a career in this field, especially in developing countries. Two major problems faced by many educational institutes in such countries are: the lack of qualified teachers and inadequate opportunities for training students. At the Indian Institute of Technology, Bombay, we have embarked upon some ambitious projects [1], [2], not only to alleviate these problems but also to use them as an opportunity to contribute to various world-wide Open Source efforts [3]. The main goals of our project are:

1.	Provide training opportunities for students from external institutions.
2.	Develop open source software/courseware for use in educational institutes.
3.	Develop simulation resources for teaching .
4.	Provide tools for creating teacher resource CDs.

Our approach is to invite students from other institutes for short-term training in IT, put them through a software development process similar to the eXtreme Programming model [4], leading finally to the development of various open source software and courseware downloadable from the project websites at [1] and [2]. In this paper we describe the software development process (SDP) and describe two of the projects, xNet: a project to develop web based courseware and VWeb: a project to prepare Resource CDs, which assist in self learning and e-learning. Faculty, graduate students and technical staff formed the human resources required for guiding the students and monitoring the projects. A software project management Tool Drona [6] developed in-house by students is used to assist participants in the projects. A sample screen shot of drona is shown in Fig. 3.

Our approach exposes the student to all phases of software development process, as illustrated in Figure 1 and develops the skills required for a software engineer. We also produce useful open source software and thus our approach results in a win-win situation for all concerned. The model is easy to replicate for other areas of IT/engineering/general education. It is scalable and can be easily adopted by other institutions elsewhere.

The Process 

Extreme Programming, or XP, is a lightweight discipline of software development based on principles of simplicity, communication, feedback, and courage [4]. Our XP based Software Development Process  (SDP) follows:

•	First week: Domain knowledge of the project is imparted to the students and computing resources assigned.
•	Second Week: Functional specifications are documented. For example: the requirement of web-based modules of xNet is one of the functionalities and the specification of this function is documented as User Stories [4].
•	Third week: Prototypes without the functionalities are developed. For example: Templates for simulation of network protocol and web interfaces required for xNet project were designed and developed.
•	Fourth week: Total number of releases of the product is planned. For example: xNet planned for four releases with one release in every two weeks and the fourth release being the final working module of the project. 
•	Fifth-Eleventh week: Start of the iterative process [4] of design, writing unit tests, coding, testing and release of each functionality. 
o	CASE tools [5] are used for diagrammatic representations.
o	Coding standards, of the programming language used in implementation, are followed.
o	 Documentation of design, testing, user and installation manual for each functionality is prepared in parallel during iterations.
o	Continuous integration of modules is done. For example: Completed functionality is integrated into the prototype and tested through the web.
•	Twelfth week: Source code release under GNU Public License. 

Figure 1. Student + IIT Resources + SDP                      Software Professional + Open Source Software

Communication between all the participants of the projects, schedule management, monitoring of projects, management of central repository of documents, code and other details related to projects and administrative management was done by using in-house developed software project management tool Drona [6].
We feel that above XP based process is one of self-learning and instills confidence [7]. The student is trained to think systematically and works positively towards the goal of delivering a robust product on schedule. The student also learns to respect intermediate deadlines and importance of teamwork. 

Case Study 1: The xNet project

The main goal of the xNet project [1] is to develop web-based modules for explaining networking concepts and technologies, thereby enabling self-learning and distance education. These modules also serve as resources for instructors dealing with these topics in their teaching curriculum. Although online resources are plentiful on the World Wide Web, one distinguishing feature of xNet is the on-line demonstration of concepts explained. Each module focuses on one concept/protocol and provides the following through a platform-independent, web-interface: 

•	A brief description of the concept/protocol, including links to relevant websites (RFCs) and other references.
•	Some “default/in-built” simulations of the protocol functioning, in pre-defined network topologies.
•	A “custom/user-driven” simulation, wherein the user defines the parameters for the protocol simulation. 
•	Downloading of the source code, for “local” use/study/modification. 

Figure 2. Screen shot of TCP sliding window module of xNet

The xNet system architecture is based on the SDP described earlier. The modules developed can be viewed and downloaded from http://www.it.iitb.ac.in/xnet/. Some of the modules are: Ethernet CSMA/CD protocol, OSPF routing protocol, TCP congestion control mechanisms, Medium access control in IEEE 802.11 and others. A sample screen shot of one of the modules is shown in Fig. 2. 
The modules developed in xNet have been used in networking courses at IIT Bombay. They have been found to be an excellent supplementary resource to classroom teaching. The e-learning nature of the modules also enables them to be easily incorporated into distance education programmes. Finally, we also note that the xNet concept need not be restricted to any one particular subject but can be easily generalized to any area/discipline.

Case Study 2: The vWeb Project

It is a well-established fact that the Internet is an excellent resource for all kinds of information. At the same time navigating Internet to find the appropriate resources is a tedious and time-consuming task. Ideally an instructor would like to collect the resources and make it available to the students locally thereby reducing the network traffic thus generated. This is especially useful for resource-poor and remote institutes. Creating such a repository is not very simple.  Efficient search and indexing mechanisms are required and also the IPR  (intellectual property) issues have to be addressed. 
The aim of the vWeb project is to create a platform independent toolkit that empowers a teacher to manage the process of creation of a resource CD or a repository of resources. The process itself involves the following stages:

•	Collection Phase: In this phase resources are collected and information is categorized.
•	Organizing Phase:  Resources categorized in the previous phase are archived in special formats useful for indexing purposes. Processing of dead links and eliminating duplicate URLs is also undertaken in this phase. 
•	IPR Phase: Obtaining Copyrights and permissions from authors, maintaining the author details and the associated correspondence is taken up in this phase.  

The toolkit was developed by following SDP described earlier. One of the resource CDs prepared using the toolkit is available for download and browsing at http://www.it.iitb.ac.in/vweb. A sample screenshot is given in figure 3. Some of the courses in which the toolkit was used to provide resources are: embedded systems and a GNU/Linux workshop in Distance Education Program at IIT Bombay [8]. 
Some of the advantages of making such resources available are: reduction of Internet traffic, availability to students and institutes that lack infrastructure and saving of time in navigating the Internet.  Finally, we also note that vWeb need not be restricted to preparing resources for students, but can be easily generalized to preparing and distributing resources for any area/discipline.

Figure 3. Screen Shot of Resources CD

Conclusions

In this paper we have described some of the efforts at the Indian Institute of Technology, Bombay, targeted at providing quality software engineering training to large number of students from other institutes. These efforts have also resulted in the development of useful courseware for e-learning and other Open Source software. More than twenty projects have been successfully released under GNU license. About 170 students were trained since the start of this ambitious effort in 2001. At IIT Bombay itself we are successfully using several of the open source products that were developed. The courseware and software developed is available for public download at the project websites [1] and [2]. 
While there exist several similar tools and open source projects, one unique feature of our effort is the use of trainee students resulting in a win-win situation for all concerned. For example, many of the e-learning modules are being used for classroom teaching. Renowned software industries have appreciated the efforts of the students and absorbed several of them, thereby providing ample proof of the efficacy of our approach. 
This model is easy to replicate for other areas of education and can be easily adopted by other institutions  elsewhere.  Our future plans are to continue the ongoing effort, involve teachers of other institutes for similar efforts, and involve industry for identifying other useful projects.

References

1.	http://www.it.iitb.ac.in/xnet/
2.	http://www.it.iitb.ac.in/asl/
3.	http://www.opensource.org/
4.	http://www.extremeprogramming.org/
5.	http://www.rational.com/
6.	http://www.it.iitb.ac.in/drona/
7.	Ahmed Seffah, Peter Gorongo, (2002). Learner-Centered Software Engineering Education: From Resources to Skills and Pedagogical Patterns”, CSEET ’02.
8.	http://dep.iitb.ac.in/
9.	C. Vijayalakshmi,  (2003). Tejas - Indigenous Cost Effective Support System for Distance Education Program, IDEA 2003, Available for download from http://www.it.iitb.ac.in/tejas.

Acknowledgements

The project has been partially funded by Development Gateway Foundation (DGF) project at Kanwal Rekhi School of Information Technology IIT, Bombay. We would like to thank Prof. D. B. Phatak for his support and encouragement in our efforts of providing quality software engineering training to students from external institutions. We would also like to thank the students, staff and technical staff of KReSIT for supporting and providing the necessary resources for the success of this effort.