Article

Open-Source Software in the Classroom: Empowering Students to Self-Select Projects to Contribute

Authors:
To read the full-text of this research, you can request a copy directly from the authors.

Abstract

Contribution: Instructors are leveraging open-source software (OSS) as a way to experience authentic examples of software problems with their students. Recommender engines might assist students in selecting the right project based on metrics mined from project repositories (e.g., GitHub). This vision is realized through GitMate, a GitHub-based recommender for supporting students in their OSS selection. Background: Contributing to OSS is a valuable way to immerse students into the realities of software development. When it comes to OSS selection, self-selection seems to be the most engaging alternative. Yet, students lack the time (and skills) to analyze project facets and draw comparisons among OSS projects. Research Questions: How can students be assisted to select a good OSS project to contribute to? Specifically, how would a recommender system might help? The envisioned intervention should be useful not only in finding the right project but also challenging students’ initial selections with other alternatives, spurring reflection. Methodology: The aim is to act upon a dependent variable (mind changing in project selection) through an independent variable (project comparison). This is achieved through GitMate, a recommender system on top of GitHub. Its search facilities are used for students to locate three projects at their wish. Next, GitMate recommends similar projects based on the project facets (e.g., number of committers, commits, and stars), mined from GitHub. Pondering the importance of distinct facets, students can now tradeoff different projects. The experiment checks whether students change their first choice. Findings: The results indicate that GitMate helps students compare GitHub projects to the extent of making them change their first choice. Nearly, 80% of the students changed at least one project as a result of using GitMate. This seems to suggest GitMate being effective on its goal: facet-based comparison thinking during OSS selection.

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the authors.

... The works of Silva et al. (2020a) and Pereira and Díaz (2022) focused on a specific aspect of OSS project usage, which is the selection of suitable projects. Silva et al. (2020a) presented FlossSearch.Edu, a tool that supports students searching for appropriate projects to work on Lessa and von Flach G. Chavez (2020), based on the combination of technical and social criteria. ...
... They found that the tool played an important role in the project selection process, and most students stated that the tool was useful, easy to use and intended to use it in the future, and can be a strong ally in the selection of projects, both for students and instructors of Software Engineering. A tool similar to FlossSearch.Edu was developed in the work of Pereira and Díaz (2022), also focusing on assisting in the selection of OSS projects for students to work on. The developed tool was GitMate, a recommendation system based on GitHub, where students can search for three projects according to the characteristics they desire. ...
... The developed tool was GitMate, a recommendation system based on GitHub, where students can search for three projects according to the characteristics they desire. According to Pereira and Díaz (2022), the results of using GitMate showed that the tool can help students make comparisons to choose OSS projects. ...
Article
Full-text available
Software Engineering is continually evolving, with new techniques, tools, and processes emerging to enhance software development. However, finding real-life examples that reflect this evolution can be challenging for instructors. Open Source Software (OSS) projects offer a valuable resource in this context, as they provide access to actual development projects and environments. Despite their potential, integrating these projects into the classroom involves several hurdles, including selecting suitable projects, preparing classes, and adapting to the open-source environment. This study aims to alleviate the challenges instructors face in adopting OSS projects for teaching Software Engineering. We developed an open portal to catalog worked examples from OSS projects, thereby supporting instructors in demonstrating real-world Software Engineering concepts and techniques. Utilizing Design Science Research, we followed the Relevance, Design, and Rigor cycles to construct this solution. The primary contribution of this work is the portal itself, which helps reduce the time instructors spend searching for relevant materials and resources. Additionally, we proposed a template to create, structure, and catalog these examples and developed guidelines to assist instructors in using the worked examples effectively. We conducted a series of studies with experienced Software Engineering instructors, which indicated that the portal could significantly mitigate the challenges associated with sourcing and updating real examples. The effectiveness of the examples was also assessed based on student perceptions, revealing that exposure to worked examples from OSS projects could engage students with real projects and challenges.
Article
Open source software (OSS) follows a software development paradigm whereby self‐motivated volunteers scattered all around the globe contribute to the development in the form of code, documentation, feedback, feature recommendations, bug reporting, and bug resolution. These volunteers, commonly referred to as OSS project community, serve as the foundation of the OSS project, fostering its creation and sustenance and providing long‐term support. The quality and sustainability of the OSS project is reliant upon the development and structure of the self‐governing community. When a business organization plans to acquire an OSS solution, it not only takes into consideration the factors such as reliability, security, and scalability but also attaches significant importance to the likelihood of the OSS project being maintained and supported in the future so that it can rely on it as a stable and secure technology solution. Modern cloud‐based software hosting platforms, such as GitHub, offer a range of options for automatically and freely accessing the complete development history of millions of OSS projects. This easy availability of detailed development history has enabled researchers to analyze and draw quantitative and scientific inferences about the quality of an OSS project which generally involves assessing three aspects, namely, software product, development process, and project community. With focus on project community part, a Framework for Assessment and Ranking of OSS Community is being presented in the current research work, following a detailed examination of the largest source code hosting and project collaboration platform, GitHub. Technique for Order of Preference by Similarity to Ideal Solution from Multi‐Criteria Decision‐Making toolkit has been utilized for assessing the quality of the project community. The framework has been validated by applying it on nine OSS projects and comparing the results with the outcomes obtained through an existing OSS evaluation methodology. The comparative analysis demonstrated that the proposed framework aligns with the aforementioned evaluation methodology while offering an opportunity for in‐depth analysis on the dynamics of volunteer communities, which is lacking in previous evaluation methods. These insights can prove valuable for both potential adopters and project maintainers, aiding them in making informed strategic decisions.
Article
Full-text available
Context: GitHub hosts an impressive number of high-quality OSS projects. However, selecting the "right tool for the job" is a challenging task, because we do not have precise information about those high-quality projects. Objective: In this paper, we propose a data-driven approach to measure the level of maintenance activity of GitHub projects. Our goal is to alert users about the risks of using unmaintained projects and possibly motivate other developers to assume the maintenance of such projects. Method: We train machine learning models to define a metric to express the level of maintenance activity of GitHub projects. Next, we analyze the historical evolution of 2,927 active projects in the time frame of one year. Results: From 2,927 active projects, 16% become unmaintained in the interval of one year. We also found that Objective-C projects tend to have lower maintenance activity than projects implemented in other languages. Finally, software tools--such as compilers and editors--have the highest maintenance activity over time. Conclusions: A metric about the level of maintenance activity of GitHub projects can help developers to select open source projects.
Conference Paper
Full-text available
Context: Free/Libre/Open Source Software (FLOSS) projects have been used in Software Engineering Education (SEE) to address the need for more realistic settings that reduce the gap between software engineering (SE) courses and industry needs. A systematic mapping study (SMS) performed in 2013 structured the research area on the use of FLOSS projects in SEE. Objective: Update the 2013 SMS with studies published in the last five years, classifying and summarizing them to discuss trends and identify research gaps in the context of the use of FLOSS projects in SEE. Method: We retrieved and analyzed a set of 4132 papers published from 2013 to 2017, from which 33 papers were selected and classified. We analyzed the new results and compared them with those from the previous SMS to confirm or discover trends. Results: The updated mapping summarizes the studies published in the last five years, most of them in conferences. Our analysis confirmed trends previously observed for three facets (SE area, curriculum choice and assessment type) and discovered new trends for other facets. Conclusion: Studies report the use of FLOSS projects in regular, comprehensive SE courses. The prevalence of experience reports over solution proposals in the last five years may indicate that researchers are more concerned with the use and evaluation of existing proposals, although there are still opportunities for more empirical work based on sound educational research methods.
Conference Paper
Full-text available
Introducing Open Source Software (OSS) projects into a software-engineering course has many advantages, for instance, allowing students to learn good coding practices from real-world projects, and giving students a glimpse of a real project. However, it is not easy for instructors to induce one or more OSS core teams to lend support for course projects. The alternative is to have students work on "toy features"---features for these projects not specified by OSS core teams, but by teaching staff. However, the project may be unimportant to the OSS project or may disrupt its design, making those code contributions unlikely to be integrated into the OSS code repository. In this paper, we, as both teaching staff and the core team for one OSS project called Expertiza, discuss our experience in supporting 700 students on 313 OSS-based course projects in the past five years. We manually checked these course projects, and summarize 13 common mistakes that frequently occur in students' contributions, such as not following the existing design or messy pull requests. We propose five suggestions to help students reduce the frequency of common mistakes and improve the quality of their OSS pull requests.
Conference Paper
Full-text available
Traditional software engineering courses often prioritize methodologies and concepts in small, controlled environments: naive projects used as a proof of concept instead of full-fledged real software systems. Although this strategy has clear benefits, it does not place enough care in training students to face complex, non-trivial legacy software projects. To bridge this gap, novel software engineering courses are leveraging the rich variety of open-source software (OSS) to illustrate how these methodologies and concepts are applied into existing, non-trivial software systems. To better understand the benefits, challenges, and opportunities of this transition, in this paper, we interview seven software engineering professors that changed their academic setting to aspire students to comprehend, maintain, and evolve OSS systems as part of their software engineering course. We found that there are different ways to make use of OSS projects in SE courses in terms of project choice, assessment, and learning goals. Moreover, we evidence clear benefits of this approach, including improving students' social and technical skills and helping students enhancing their resume. Also, we observed that this strategy comes with costs: the activity demands effort and time from the professor and the barrier for one getting involved with and, therefore, placing a meaningful contribution, in an OSS community is often high.
Conference Paper
Full-text available
GitHub is one of the most commonly used web-based code repository hosting service. Majority of projects hosted on GitHub are really small but, on the other hand, developers spend most of their time working in medium to large repositories. Developers can freely join and leave projects following their current needs and interests. Based on real data collected from GitHub we have tried to predict which developer will join which project. A mix of carefully selected list of features and machine learning techniques let us achieve a precision of 0.886, in the best case scenario, where there is quite a long history of a user and a repository in the system. Even when proposed classifier faces a cold start problem, it delivers precision equal to 0.729 which is still acceptable for automatic recommendation of noteworthy projects for developers.
Article
Full-text available
Software popularity is a valuable information to modern open source developers, who constantly want to know if their systems are attracting new users, if new releases are gaining acceptance, or if they are meeting user's expectations. In this paper, we describe a study on the popularity of software systems hosted at GitHub, which is the world's largest collection of open source software. GitHub provides an explicit way for users to manifest their satisfaction with a hosted repository: the stargazers button. In our study, we reveal the main factors that impact the number of stars of GitHub projects, including programming language and application domain. We also study the impact of new features on project popularity. Finally, we identify four main patterns of popularity growth, which are derived after clustering the time series representing the number of stars of 2,279 popular GitHub repositories. We hope our results provide valuable insights to developers and maintainers, which could help them on building and evolving systems in a competitive software market.
Article
Full-text available
With the development of sophisticated e-learning environments, personalization is becoming an important feature in e-learning systems due to the differences in background, goals, capabilities and personalities of the large numbers of learners. Personalization can achieve using different type of recommendation techniques. This paper presents an overview of the most important requirements and challenges for designing a recommender system in e-learning environments. The aim of this paper is to present the various limitations of the current generation of recommendation techniques and possible extensions with model for tagging activities and tag-based recommender systems, which can apply to e-learning environments in order to provide better recommendation capabilities.
Conference Paper
Full-text available
Nowadays Open-Source Software is developed mostly by decentralized teams of developers cooperating on-line. GitHub portal is an online social network that supports development of software by virtual teams of programmers. Since there is no central mechanism that governs the process of team formation, it is interesting to investigate if there are any significant correlations between project quality and the characteristics of the team members. However, for such analysis to be possible, we need good metrics of a project quality. This paper develops two such metrics, first one reflecting project’s popularity, and the second one - the quality of support offered by team members to users. The first metric is based on the number of ‘stars’ a project is given by other GitHub members, the second is obtained using survival analysis techniques applied to issues reported on the project by its users. After developing the metrics we have gathered characteristics of several GitHub projects and analyzed their influence on the project quality using statistical regression techniques.
Article
Full-text available
Likert scale is applied as one of the most fundamental and frequently used psychometric tools in educational and social sciences research. Simultaneously, it is also subjected to a lot of debates and controversies in regards with the analysis and inclusion of points on the scale. With this context, through reviewing the available literature and then clubbing the received information with coherent scientific thinking, this paper attempts to gradually build a construct around Likert scale. This analytical review begins with the necessity of psychometric tools like Likert scale andits variants and focuses on some convoluted issues like validity, reliability and analysis of the scale.
Conference Paper
Full-text available
For the past several years, students in computer-science courses have been assigned work on open-source project development. The literature is replete with examples. Yet an instructor desiring to incorporate OSS into a course often has difficulty finding a suitable project and developing a fruitful interaction with its personnel. This paper reports on a survey of managers of OSS projects on how they have interacted with classes and students, and on what faculty can do to work with them effectively. Our findings indicate that instructors need to seek out projects weeks or months in advance, and need to be personally involved in OSS development themselves, and that they need to give their students a good background in design and testing. As a help for instructors looking for a project, we describe several OSS projects that have benefited from student contributions.
Conference Paper
Full-text available
Context: It is common practice in academia to have students work with “toy” projects in software engineering courses. One way to make such courses more realistic and reduce the gap between academic courses and industry needs is getting students involved in Open Source Projects with faculty supervision. Objective: This study aims to summarize existing information on how open source projects have been used to facilitate students' learning of software engineering. Method: A systematic mapping study was undertaken by identifying, filtering and classifying primary studies using a predefined strategy. Results: 53 papers were selected and classified. The main results were: a) most studies focus on comprehensive software engineering courses, although some papers deal with specific areas; b) the most prevalent approach was the traditional project method; c) surveys are the main learning assessment instrument, especially for student self-assessment; d) conferences are the typical publication venue; and e) more than half of the studies were published in the last five years. Conclusions: The resulting map gives an overview of the existing initiatives in this context and shows gaps where further research can be pursued.
Article
Full-text available
While the technology acceptance model (TAM), introduced in 1986, continues to be the most widely applied theoretical model in the IS field, few previous efforts examined its accomplishments and limitations. This study traces TAM's history, investigates its findings, and cautiously predicts its future trajectory. One hundred and one articles published by leading IS journals and conferences in the past eighteen years are examined and summarized. An open- ended survey of thirty-two leading IS researchers assisted in critically examining TAM and specifying future directions.
Chapter
With the recent upsurge in the development, use, and adoption of free/libre open source software (FLOSS) across all sectors of business, it is critical that graduates of computing degree programs gain an understanding of FLOSS development tools, processes, and culture. However, many faculty members are not fluent in FLOSS development and have little experience in teaching FLOSS. This paper reports on a faculty development program designed to bring instructors up to speed on how to support student learning within FLOSS projects. The paper discusses the challenges to FLOSS education from the instructor’s perspective, describes the Professors’ Open Source Software Experience (POSSE) workshop, and presents the results of a study into the impact of POSSE on instructors based on semi-structured interviews. This work is part of a larger study into instructor experiences when incorporating Humanitarian Free Open Source Software (HFOSS) into their curriculum.
Chapter
Software engineering education is challenged by the need to convey practical experience in the context of a rich and large body of theoretical knowledge. This study investigates whether the use of open source projects can reduce the gap between theory and practice in undergraduate software engineering courses. Two qualitative case studies were conducted with students performing activities in an open source project, each one in a different course: software testing and software requirements. Results point out that the use of open source projects provides a concrete experience similar to industry experience, allows high cognitive engagement when performing tasks, favors understanding and content retention, and leads to the recognition of the usefulness of software engineering principles, techniques and methods.
Article
Diversification has become one of the leading topics of recommender system research not only as a way to solve the over-fitting problem but also an approach to increasing the quality of the user's experience with the recommender system. This article aims to provide an overview of research done on this topic from one of the first mentions of diversity in 2001 until now. The articles ,and research, have been divided into three sub-topics for a better overview of the work done in the field of recommendation diversification: the definition and evaluation of diversity; the impact of diversification on the quality of recommendation results and the development of diversification algorithms themselves. In this way, the article aims both to offer a good overview to a researcher looking for the state-of-the-art on this topic and to help a new developer get familiar with the topic.
Conference Paper
Volunteers to Open Source Software (OSS) projects contribute not only to help creating software that they use, but also to gain skills and enrich their expertise and resumes. However, newcomers to OSS face several challenges when joining a project. Particularly, they do not know where to start, or choose tasks that they can be successful at. Here, we describe our vision towards BugExchange, a system that curates tasks from OSS projects and helps train newcomers. While evaluating and executing these tasks, newcomers can gain an understanding about the project, its technology, and concepts. There are many challenges in designing such a system. For example, identifying the information needs of newcomers, creating task recommendations that match newcomers’ skills and career goals, and providing mentoring and networking support. We plan to leverage our previous work to conceive and prototype our system, which will include multiple research lines. BugExchange has the potential to improve newcomer learning experiences, reduce dropouts, and foster community building.
Article
The almost unlimited access to educational information plethora came with a drawback: finding meaningful material is not a straightforward task anymore. Recommender algorithms can be used to make smart decisions in complex information systems and help the users decide upon useful materials; therefore, they become a promising area in academia and industry. The current paper presents a survey on educational recommender systems (RS): a set of analysis criteria are exposed and the technological specifications and challenges of each analysed system are provided, in the context of the main trends in the development of RS. Also, an ontology-based educational recommendation mechanism is proposed and its application to lifelong learning is highlighted, proving that RS can successfully support new learning paradigms.
Conference Paper
Aspiring software engineers must be able to comprehend and evolve legacy code, which is challenging because the code may be poorly documented, ill structured, and lacking in human support. These challenges of understanding and evolving existing code can be illustrated in academic settings by leveraging the rich and varied volume of Open Source Software (OSS) code. To teach SE with OSS, however, it is necessary to select uniform projects of appropriate size and complexity. This paper reports on our search for suitable OSS projects to teach an introductory SE course with a focus on maintenance and evolution. The search turned out to be quite labor intensive and cumbersome, contrary to our expectations that it would be quick and simple. The chosen projects successfully demonstrated the maintenance challenges, highlighting the promise of using OSS. The burden of selecting projects, however, may impede widespread integration of OSS into SE and other computing courses.
Article
The World Wide Web and email are used increasingly for purchasing and selling products. The use of the internet for these functions represents a significant departure from the standard range of information retrieval and communication tasks for which it has most often been used. Electronic commerce should not be assumed to be information retrieval, it is a separate task-domain, and the software systems that support it should be designed from the perspective of its goals and constraints. At present there are many different approaches to the problem of how to support seller and buyer goals using the internet. They range from standard, hierarchically arranged, hyperlink pages to “electronic sales assistants”, and from text-based pages to 3D virtual environments. In this paper, we briefly introduce the electronic commerce task from the perspective of the buyer, and then review and analyse the technologies. A framework is then proposed to describe the design dimensions of electronic commerce. We illustrate how this framework may be used to generate additional, hypothetical technologies that may be worth further exploration.
Article
For software engineering (SE) and computer science (CS) programs to deliver on their promises, they must go beyond teaching students about principles, processes, models, and strategies and offer them realistic, practical experience as well. Although industry has been pressing to increase the emphasis on practical aspects, many CS programs continue to give students relatively simple problems focused on selected computing and software concepts and theories. Open source software offers CS and SE educators an opportunity to give their students practical, hands-on software engineering experience
A List of Awesome Beginner-Friendly Projects
  • T Sarkar
T. Sarkar. "A List of Awesome Beginner-Friendly Projects." 2020. [Online]. Available: https://github.com/MunGell/awesome-for-beginners (accessed Jan. 26, 2022).
Considerations for adapting real-world open source software projects within the classroom
  • kim
H. Kim, "Considerations for adapting real-world open source software projects within the classroom," in Proc. 13th Int. Conf. Softw. Eng. Adv., Oct. 2018, pp. 95-98.
Compare & Contrast: Teaching Comparative Thinking to Strengthen Student Learning
  • H F Silver
H. F. Silver, Compare & Contrast: Teaching Comparative Thinking to Strengthen Student Learning. Alexandria, VA, USA: Assoc. Supervision Curriculum Develop., 2010.