Learning professional software development skills by contributing to Open Source projects

被引:0
作者
Montagner, Igor dos Santos [1 ]
Nakayama Kurauchi, Andrew Toshiaki [1 ]
机构
[1] Insper, Comp Sci & Engn Staff, Sao Paulo, Brazil
来源
2022 IEEE FRONTIERS IN EDUCATION CONFERENCE, FIE | 2022年
关键词
Software Engineering Education; Open Source Software; Professional Skills;
D O I
10.1109/FIE56618.2022.9962744
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
This Innovative Practice Full Paper describes Open Development, a Software Engineering advanced course that focuses on building practical development skills by contributing to Free/Libre and Open Source Software (FLOSS). Software Engineering is a broad area that spans many different topics, such as testing, software quality and development methodologies. Typically, entire courses are developed to explore each topic in depth. However, effective participation in real software projects requires the simultaneous application of a wide range of skills and focusing exclusively on each skill one at a time may not be sufficient for students to be able to apply them all in sync. Participation in FLOSS projects offers a unique opportunity to obtain and develop such skills, as many projects follow industry best practices for all contributions and provide documentation to help new contributors. We present the Open Development's design in alignment to Student Centered Learning and the GAPA (Goals, Activities, Projects, Assessment) framework. We also analyze student contributions from the last three offerings (N=50), studying characteristics such as type of contribution (test, bug fix or new feature), complexity of the code, approval ratio and project size. The design and outcomes of the course are validated by examining Student Evaluations conducted by the institution's Teaching and Learning Office. Students from all offerings (N=34) strongly agree that "This course's contents will help me in a future job or internship". Combined with accepted contributions to well-known projects such as Pandas, Matplotlib and Pygame, we conclude that Open Development fulfils the objective of providing practical software development skills.
引用
收藏
页数:7
相关论文
共 14 条
[1]  
Ambrose S., 2010, LEARNING WORKS 7 RES
[2]   Pragmatic Software Testing Education [J].
Aniche, Mauricio ;
Hermans, Felienne ;
van Deursen, Arie .
SIGCSE '19: PROCEEDINGS OF THE 50TH ACM TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION, 2019, :414-420
[3]  
[Anonymous], 2016, P 47 ACM TECHN SAMP, DOI DOI 10.1145/2839509.2844664
[4]   Challenges of Database Systems Teaching Amidst the Covid-19 Pandemic [J].
Canedo, Edna Dias ;
Bandeira, Ian Nery ;
Teixeira Costa, Pedro Henrique .
2021 IEEE FRONTIERS IN EDUCATION CONFERENCE (FIE 2021), 2021,
[5]   Using Gamification to Orient and Motivate Students to Contribute to OSS projects [J].
Diniz, Guilherme C. ;
Graciotto Silva, Marco A. ;
Gerosa, Marco A. ;
Steinmacher, Igor .
2017 IEEE/ACM 10TH INTERNATIONAL WORKSHOP ON COOPERATIVE AND HUMAN ASPECTS OF SOFTWARE ENGINEERING (CHASE 2017), 2017, :36-42
[6]   Teaching the Art of Functional Programming using Automated Grading (Experience Report) [J].
Hameer, Aliya ;
Pientka, Brigitte .
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2019, 3 (ICFP)
[7]  
Krutz DE, 2014, PROCEEDINGS OF THE 45TH ACM TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION (SIGCSE'14), P49
[8]  
Marmorstein R., 2011, P 16 ANN JOINT C INN, P268
[9]  
Nandigam J, 2008, PROC FRONT EDUC CONF, P1584
[10]  
Nascimento DM, 2013, PROC FRONT EDUC CONF