skip to main content
10.1145/3183377.3183394acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Open-source software in class: students' common mistakes

Published:27 May 2018Publication History

ABSTRACT

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.

References

  1. Shoaib Akbar, Edward Gehringer, and Zhewei Hu. 2018. Poster: Improving Formation of Student Teams: A Clustering Approach. In Proceedings of the 40th International Conference on Software Engineering: Software Engineering Education and Training Track. ACM, To appear.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Boris B Baltes, Marcus W Dickson, Michael P Sherman, Cara C Bauer, and Jacqueline S LaGanke. 2002. Computer-mediated communication and group decision making: A meta-analysis. Organizational behavior and human decision processes 87, 1 (2002), 156--179.Google ScholarGoogle Scholar
  3. Judith Bishop, Carlos Jensen, Walt Scacchi, and Arfon Smith. 2016. How to use open source software in education. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education. ACM, 321--322. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Joseph Buchta, Maksym Petrenko, Denys Poshyvanyk, and Václav Rajlich. 2006. Teaching evolution of open-source projects in software engineering courses. In Software Maintenance, 2006. ICSM'06. 22nd IEEE International Conference on. IEEE, 136--144. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. David Carrington and S-K Kim. 2003. Teaching software design with open source software. In Frontiers in Education, 2003. FIE 2003 33rd Annual, Vol. 3. IEEE, S1C-9.Google ScholarGoogle ScholarCross RefCross Ref
  6. HJC Ellis, RA Morelli, and GW Hislop. 2008. WIP: Challenges to educating students within the community of open source software for humanity. In The 2008 Frontiers in Education Conference.Google ScholarGoogle ScholarCross RefCross Ref
  7. Heidi JC Ellis, Gregory W Hislop, Josephine Sears Rodriguez, and Ralph Morelli. 2012. Student software engineering learning via participation in humanitarian FOSS projects. In American Society for Engineering Education. American Society for Engineering Education.Google ScholarGoogle Scholar
  8. Heidi JC Ellis, Ralph A Morelli, Trishan R De Lanerolle, Jonathan Damon, and Jonathan Raye. 2007. Can humanitarian open-source software development draw new students to CS?. In ACM SIGCSE Bulletin, Vol. 39. ACM, 551--555. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Edward Gehringer, Luke Ehresman, Susan G Conger, and Prasad Wagle. 2007. Reusable learning objects through peer review: The Expertiza approach. Innovate: Journal of Online Education 3, 5 (2007), 4.Google ScholarGoogle Scholar
  10. Edward F Gehringer. 2011. From the manager's perspective: Classroom contributions to open-source projects. In Frontiers in Education Conference (FIE), 2011. IEEE, F1E-1. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Georgios Gousios, Andy Zaidman, Margaret-Anne Storey, and Arie Van Deursen. 2015. Work practices and challenges in pull-based development: the integrator's perspective. In Proceedings of the 37th International Conference on Software Engineering-Volume 1. IEEE Press, 358--368. Google ScholarGoogle ScholarCross RefCross Ref
  12. Andrew Hunt and David Thomas. 2000. The pragmatic programmer: from journeyman to master. Addison-Wesley Professional. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Andrew M St Laurent. 2004. Understanding open source and free software licensing: guide to navigating licensing issues in existing & new software. " O'Reilly Media, Inc.". Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Chang Liu. 2005. Enriching software engineering courses with service-learning projects and the open-source approach. In Proceedings of the 27th international conference on Software engineering. ACM, 613--614. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Source Making. 2017. Switch Statements. (2017). Retrieved June 25, 2017 from https://sourcemaking.com/refactoring/smells/switch-statementsGoogle ScholarGoogle Scholar
  16. Robert McCartney, Swapna S Gokhale, and Thérèse M Smith. 2012. Evaluating an early software engineering course with projects and tools from open source software. In Proceedings of the ninth annual international conference on International computing education research. ACM, 5--10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Debora MC Nascimento, Roberto Almeida Bittencourt, and Christina Chavez. 2015. Open source projects in software engineering education: a mapping study. Computer Science Education 25, 1 (2015), 67--114.Google ScholarGoogle ScholarCross RefCross Ref
  18. Gustavo Pinto, Fernando Figueira Filho, Igor Steinmacher, and Marco A Gerosa. 2017. Training software engineers using open-source software: the professors' perspective. In The 30th IEEE Conference on Software Engineering Education and Training. 1--5.Google ScholarGoogle ScholarCross RefCross Ref
  19. Rajendra K Raj and Fereydoun Kazemian. 2006. Using open source software in computer science courses. In Frontiers in Education Conference, 36th Annual. IEEE, 21--26.Google ScholarGoogle ScholarCross RefCross Ref
  20. Therese Mary Smith, Robert McCartney, Swapna S Gokhale, and Lisa C Kaczmarczyk. 2014. Selecting open source software projects to teach software engineering. In Proceedings of the 45th ACM technical symposium on Computer science education. ACM, 397--402. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Yang Song, Zhewei Hu, and Edward F Gehringer. 2015. Closing the Circle: Use of Students' Responses for Peer-Assessment Rubric Improvement. In International Conference on Web-Based Learning. Springer, 27--36.Google ScholarGoogle Scholar
  22. Yang Song, Zhewei Hu, and Edward F Gehringer. 2015. Pluggable reputation systems for peer review: A web-service approach. In Frontiers in Education Conference (FIE), 2015 IEEE. IEEE, 1--5. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Yang Song, Zhewei Hu, and Edward F Gehringer. 2017. Collusion in educational peer assessment: How much do we need to worry about it?. In 2017 IEEE Frontiers in Education Conference (FIE). IEEE, 1--8.Google ScholarGoogle ScholarCross RefCross Ref
  24. Yang Song, Zhewei Hu, Edward F Gehringer, Julia Morris, Jennifer Kidd, and Stacie Ringleb. 2016. Toward Better Training in Peer Assessment: Does Calibration Help?. In EDM (Workshops).Google ScholarGoogle Scholar
  25. Kal Toth. 2006. Experiences with open source software engineering tools. IEEE software 23, 6 (2006). Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Jason Tsay, Laura Dabbish, and James Herbsleb. 2014. Influence of social and technical factors for evaluating contribution in GitHub. In Proceedings of the 36th international conference on Software engineering. ACM, 356--366. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Wikipedia. 2017. Test-driven development. (2017). Retrieved June 25, 2017 from https://en.wikipedia.org/wiki/Test-driven_developmentGoogle ScholarGoogle Scholar

Index Terms

  1. Open-source software in class: students' common mistakes

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        ICSE-SEET '18: Proceedings of the 40th International Conference on Software Engineering: Software Engineering Education and Training
        May 2018
        187 pages
        ISBN:9781450356602
        DOI:10.1145/3183377

        Copyright © 2018 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 27 May 2018

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Upcoming Conference

        ICSE 2025

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader