Promoting Distributed Programming Practices Among Computer Science Students

The use of distributed programming has become popular practice among software developers in the last few years. Although, quite a number of researchers has explored the domain but its implementation still poses a lots of problems. Similarly, adoption of the practice in the classroom is not left out as it required additional tools. In this report, I have assessed the use and acceptability of the distributed programming practices among students of computer science using an online questionnaire. The results showed that the level of awareness of distributed programing practice among the students of computer science is very low so also is that of the tools that facilitate it. Therefore introducing the practices into the curriculum of high institution of learning is highly recommended as this will strengthen the inter-university student collaboration.


Introduction
Software development is one of the strong and important aspects of Software Engineering (SE). Traditionally, software development involves a programmer developing software using a particular tool, at the same time following the development process as laid down by his/her company. Most times the traditional waterfall model is being followed by the companies where contracts are signed off with the requirement document to kick start the project. The rigidness of the traditional waterfall approach to software development leads to agile software development (Mohanraj and Sankar, 2014). This approach creates a user-centered process of development through its methodologies such as Extreme Programming (Schwaber and Beedle, 2002). One of the principles of Extreme Programming is pair programming which involves two programmers sitting side by side at the same computer system. Many researchers have proved that this works effectively even among computer science professionals and students (Akinola, 2014;Dietmar et al., 2010;Müller, 2006;Padberg and Müller, 2003;Williams et al., 2000).
Similarly, organizations/software development companies have decentralized their processes taken it to a global village where workforce and experience are readily available and at a lesser cost, this is termed Distributed Software Development (DSD). Interposing the later into DSD present a few issues which are being given more attentions by various expertises, which is probably the best challenge dispersed improvement. Be that as it may, with their equivalent accentuation on visit *Corresponding author: +2348065208913 Email address: ogunrinde.mutiat@fuo.edu.ng correspondence, straightforwardness of progress and short cycles, Agile Methods, indeed, give a successful way to deal with difficulties in a distributed coordinated effort, particularly when enlarged with best practices (Paasivaara et al., 2008). Embracing coordinated techniques in circulated settings is by all accounts on the ascent in a modern pattern, as nimble strategies both give a few benefits, just as methodologies for tending to conveyed programming difficulties (Hanssen et al., 2011;Hossain et al., 2009). Its adoption in the classroom should not be left out. In this manner, programming building educational plans must react by furnishing understudies with information and encounters of internationally conveyed deft techniques and related tasks. Besides, as programming designing analysts and instructors, our locale should build its endeavors in assessing philosophies for showing disseminated distributed software development programming and its best practices (Damian et al., 2006). This work focused on promoting augmented distributed software development practices among students of computer science in high institution of learning. A report of distributed pair programming, agile software development as well as global software engineering among students of computer science were given.

Distributed Software Development
Distributed Software Development (DSD) has recently evolved, resulting in an increase in the available literature. Organizations now have a tendency to make greater development efforts in more attractive zones. The main advantage of this lies in greater availability of human resources in decentralized zones at less cost. Distributed development is a software development model in which its groups spread crosswise over topographical lines work together on programming advancement applications or different programming (Furia, 2012).

Benefits of DSD i.
Cost Savings: The reason for this advantage is that organizations are globalizing their product advancement exercises to use less expensive representatives situated in lower-cost economies. ii.
Access to Large Multi-gifted Workforces: GSD gives the extraordinary probability to use enormous pools of talented work and thousands of gifted specialists, any place they might be situated by planning crosswise over separation. iii.
Reduced Time to Market: A questionable advantage of GSD has been that of the 'pursue thesun' approach, portrayed in detail via Carmel. Time zone viability is how much an organisation oversees assets in numerous time zones; amplifying efficiency by expanding the number of hours during a 24-hour day that product is being created by its groups. The methodology can help organisations which are feeling the squeeze to improve time-to-advertise. iv.
Proximity to Market and Customer: By setting up auxiliaries in nations where the organization's clients are found, GSD enables it to create products near their clients and to expand information on the neighbourhood advertises. v.
Product Complexity: Owing to the expanding multifaceted nature of programming frameworks, organizations draw in into eco-frameworks of providers; appropriated improvement licenses intricacy to be dispersed all through different associations (Ebert, 2010;Portillo-rodríguez et al., 2010;Conchúir, et al., 2009;Herbsleb et al., 2001).

Challenges of DSD
The topographical, fleeting, and socio-social separations influence the three significant procedures of programming improvement: correspondence, coordination, and control (Agerfalk et al., 2005). Correspondence and control issues are perceived just like the most inconvenient and inescapable in programming improvement. A significant check for GSD groups is the absence of casual correspondence which has been seen as a fundamental procedure in generally co-found improvement (Curtis et al., 1988;Conchúir, et al, 2009). Composed documentation is a regular problem when resolving false impressions, for example, mistaken assumptions about necessities or changes in prerequisite particulars (Conchúir, et al, 2009). These separation factors, which were first referenced and have prompted the distinguishing proof of five Problem Areas (PA) in which inquire about endeavors may be made. These problem areas as indicated by Portillo-rodríguez et al., (2010) are the accompanying: PA1: Geographic scattering: Face-to-confront group associations make a lot of focal points that are for the most part lost when these groups need to interface in a topographically scattered way.
PA2: Control and coordination breakdown: Managing the control and coordination in a product venture is troublesome and this trouble increments in a GSD domain.
PA3: Loss of correspondence: Bearing as a top priority that eye to eye correspondence is the most extravagant correspondence medium, there is lost correspondence lavishness in a GSD domain which infers issues identified with joint effort or trust among colleagues.
A4: Loss of camaraderie: Teams make a fitting workplace when there is trust among colleagues and these colleagues know one another. In GSD these groups are geographically scattered, and there are various societies and a low degree of correspondence. Certain advantages of working in co-found groups are hence lost.
PA5: Cultural Differences: When individuals from various societies need to cooperate it is conceivable that errors may happen which can affect the group's presentation.

Related Works
In a work titled Student's Awareness of Cloud Computing: Case Study Faculty of Engineering at Aden University, Yemen. The author researched the understudy's view on utilizing distributed computing synergistic application and that of the University administrator backing to coordinate the innovation which is running as help over the web on an adaptable framework. It was prescribed that tutoring and improving on distributed computing to expand mindfulness and information about this rising innovation and its possibilities will cause the Universities to exploit distributed computing application that provides students and educators with free or ease devices (Samah, 2014).
In his proposition titled Distributed Pair Programming in Global Software Development, Jingchun (2011) saw that Global programming improvement has become a far-reaching business practice over the ongoing years and organizations are looking to apply nimble techniques to the all-inclusive appropriated condition. His work concentrated on improving and expanding learning backing and information sharing between designers in disseminated Pair Programming which is a significant issue. Their outcomes demonstrated that designers with the alternative to utilize the new capacities accomplish preferable learning results over those utilizing the old instrument. Lukosch and Schümmer in 2007 did a work titled Enabling Distributed Pair Programming in Eclipse. The creators are of the assessment that dispersed pair writing computer programs is as yet a difficult field for device engineers. In their paper, the social connections inside the earth and current innovation underpin was explored and broke down. XPairtise, a module for Eclipse that permits moment pair programming among appropriated improvement groups was displayed by the creators. The creators neglected to talk about the appropriation of the device in a homeroom domain.
In a work titled "Assessing Tools that Support Pair Programming in a Distributed Engineering Environment", Winkler et al. (2010) opines that the development and improvement of excellent items in a global programming advancement condition require adaptable practices for joint effort and a device that help these practices. Their orderly instrument assessment for Distributed Pair Programming (DPP) was reviewed with an accessible open-source device. They discovered that DPP was not completely supported by any tool under scrutiny and that a few devices are constrained to particular and individual parts of DPP necessities.
Gonçalves in 2014 described how skilled participant in a distributed pair programming environment may deal with extra opportunity and these extra mindfulness deficiencies and portray the effects on the pair programming process. A contextual investigation was utilized, in light of the direct perception of a solitary, profoundly skillful distributed pair of modern programming designers aimed at a 3-day joint effort. Chronicles of these sessions and conceptualization of the marvels seen were taken. The authors say that gifted sets may connect the mindfulness shortfalls without a noticeable check of the general procedure. Likewise, talented sets may utilize the extra altering opportunity in a valuable restricted design, bringing about the possibly preferred familiarity of the procedure over the side by side pair programming.

Methods
In carrying out this study, an online questionnaire was employed in carrying out the survey. Students of higher institutions of learning were the targeted subject. Simple percentages were used in analyzing the respondents' views. The results were discussed in the next session.

Discussion of Results
The results of the experimental survey carried out among the students to know their level of knowledge and involvement in distributed programming are presented in the following tables and Figures. Table 1 shows the age bracket of the respondent. Majority falls between the ages 15 to 30 years and are students of higher institutions which make them suitable for the survey. As indicated in Table 2, majority of the respondents (74.10%) are familiar with Java programming language, others are familiar with languages such as PHP, ASP.Net and other languages. Table 3 showed that majority of the respondents (64.70%) have not participated in pair programming and only 35.3% of the respondents have participated in pair programming before this experiment, this implied that the practice is not popular among the students of high institution of learning Summarily, table 4 showed that 51% of the respondents have heard about DSD before the experiment while only 5 respondent which amount to 9.8% of the respondents have actually participated in Distributed pair programming experiment as indicated in

Conclusion
The drive behind this study was to appraise and promote the student's involvement in distributed computing and Agile methodology. For this purpose, a survey was conducted through online questionnaires to evaluate the objectives from students of computer science, University of Ibadan, Nigeria. Findings show that most of the students were not familiar with practices due to lack of resources though some of them have heard of it. Despite the increase in software process improvement research especially the area of distributed software development, this study concluded that the level of awareness of the practices is very low among the student of computer science. Also, the use of the DPP tools among the computer sciences student is low. There is, therefore, the need to focus on and raise awareness on its benefits and importance in teaching system to extend the lack of computing resources. Introduction of distributed software development and agile methodology in the University curriculum is highly necessary so that students can take it as a course.