TEACHING DEVOPS AND SOFTWARE ENGINEERING PRACTICES USING AN AUTOMATED PROGRAMMING ASSESSMENT SYSTEM

Main Article Content

Bao-An Nguyen
Thuy-Vi Ha Thi

Abstract

The software industry has seen a shift in recent years, with the adoption of agile development practices, the deployment of cloud-based, and service-oriented applications using DevOps. This has led to increased pressure on educators in higher education institutions to provide students with the best possible preparation for their careers, based on industry best practices. The research proposed a new approach to bridge the gap between in-class exercises and industrial practices by introducing an automated programming assessment system, ProgEdu. ProgEdu simulates the continuous integration pipeline of DevOps, incorporating unit testing and code quality assessment. It is deployed as a service-oriented application on Docker, allowing students to gain practical experience in a real-world setting. Our approach goes beyond simply assessing code, as we have also incorporated the service-oriented architecture, continuous integration pipeline, and Docker of the system to illustrate various DevOps practices in our software engineering classes. By providing hands-on exercises that utilize industry-standard tools and techniques, we can bridge the gap between theoretical knowledge and practical application, helping students to extensively understand fundamental concepts and prepare for the demands of the modern workforce.

Downloads

Download data is not yet available.

Article Details

How to Cite
1.
Nguyen B-A, Ha Thi T-V. TEACHING DEVOPS AND SOFTWARE ENGINEERING PRACTICES USING AN AUTOMATED PROGRAMMING ASSESSMENT SYSTEM. journal [Internet]. 20Jul.2023 [cited 19May2024];13(6). Available from: https://journal.tvu.edu.vn/index.php/journal/article/view/2104
Section
Articles

References

[1] Ouhbi S, Pombo N. Software engineering
education: Challenges and perspectives. In:
IEEE global engineering education conference
(EDUCON), Porto, Portugal. IEEE. 2020. p.202–209.
https://doi.org/10.1109/EDUCON45650.2020.9125353.
[2] Garousi V, Giray, Tuzun E, Catal C, Felderer
M. Closing the Gap Between Software Engineering Education and Industrial Needs. IEEE
Software. 2020;37(2): 68–77, March-April 2020.
https://doi.org/10.1109/MS.2018.2880823.
[3] Ford GA, Gibbs NE. A Master of software engineering curriculum: recommendations from the Software
Engineering Institute. Computer. 1989;2(9): 59–71.
https://doi.org/10.1109/2.35214.
[4] Garousi V, Giray G, Tuz ¨ un E, Catal C, Felderer ¨
M. Aligning software engineering education
with industrial needs: A meta-analysis. Journal
of Systems and Software. 2019;156: 65-83.
https://doi.org/10.1016/j.jss.2019.06.044.
[5] Sommerville I. Software Engineering. 9th ed. Boston,
Massachusetts, United States of America: Pearson
Education India; 2011.
[6] Sommerville I. Engineering Software Products.
Hoboken, New Jersey, United States of America:
Pearson Education; 2020.
[7] Silva L, Mendes AJ, Gomes A. Computer-supported
collaborative learning in programming education: A
systematic literature review. In: 2020 IEEE Global
Engineering Education Conference (EDUCON),
Porto, Portugal. IEEE; 2020. p.1086-1095.
https://doi.org/10.1109/EDUCON45650.2020.9125237.
[8] Dagnino A. Increasing the effectiveness of teaching software engineering: A university and industry partnership. In: 2014 IEEE 27th Conference
on Software Engineering Education and Training
(CSEE&T), Klagenfurt, Austria. IEEE; 2014. p.49–
54, http://dx.doi.org/10.1109/CSEET.2014.6816781.
[9] StackOverflow. StackOverflow
2022 Developer Survey. 2022.
https://survey.stackoverflow.co/2022/#most-loveddreaded-and-wanted-platform-love-dread
[10] Chen HM, Chen WH, Lee CC. An automated
assessment system for analysis of coding
convention violations in Java programming
assignments. Journal of Information Science
and Engineering. 2018;4(5): 1203–1221.
https://doi.org/10.6688/jise.201809_34(5).0006.
[11] Chen HM, Nguyen BA, Yan YX, Dow CR. Analysis of learning behavior in an automated programming assessment environment: A code quality
perspective. IEEE Access. 2020;8: 167341–167354.
https://doi.org/10.1109/ACCESS.2020.3024102.
[12] Chen HM, Nguyen BA, Dow CR. Code-quality
evaluation scheme for assessment of student
contributions to programming projects. Journal
of Systems and Software. 2022;188: 111273.
https://doi.org/10.1016/j.jss.2022.111273.
[13] IEEE Standards Committee. IEEE Standard 2675-
2021. IEEE Standard for DevOps: Building Reliable
and Secure Systems Including Application Build,
Package, and Deployment. IEEE Standards Committee; 2021.
[14] Bobrov E, Antonio B, Capozucca A, Guelfi N,
Mazzara M, Naumchev A, et al. DevOps and its
philosophy: Education matters!. In: Bucchiarone A,
Dragoni N, Dustdar S, Lago P, Mazzara M, Rivera V,
Sadovykh A. (eds.) Microservices: Science and Engineering. Cham: Springer International Publishing;
2020. p.349–361.
[15] Fernandes M, Ferino S, Fernandes A, Kulesza U,
Aranha E, Treude C. DevOps education: An interview study of challenges and recommendations.
In: Proceedings of the ACM/IEEE 44th International
Conference on Software Engineering: Software Engineering Education and Training. New York, NY,
USA: Association for Computing Machinery; 2022.
p.90–101. https://doi.org/10.1145/3510456.3514152.
[16] Schilling W. Wip: Integrating modern development
practices into a software engineering curriculum. In:
2022 ASEE Annual Conference & Exposition. American Society For Engineering Education; 2022.
[17] Demchenko Y, Zhao Z, Surbiryala J, Koulouzis
S, Shi Z, Liao X, et al. Teaching DevOps and
cloud based software engineering in university curricula. In: 2019 15th International Conference on
eScience, San Diego, CA, USA. IEEE; 2019. p.548–
552. https://doi.org/10.1109/eScience.2019.00075.
[18] Jennings RAK, Gannod G. Devops-preparing
students for professional practice. In: 2019
IEEE Frontiers in Education Conference (FIE),
Covington, KY, USA. IEEE; 2019. p.1–5.
https://doi.org/10.1109/FIE43999.2019.9028598.
[19] Kelleher J. Employing git in the classroom.
In: 2014 World Congress on Computer
Applications and Information Systems (WCCAIS),
Hammamet, Tunisia. IEEE; 2014. p.1–4.
https://doi.org/10.1109/WCCAIS.2014.6916568.
[20] Haaranen L, Lehtinen T. Teaching git on the side: Version control system as a course platform. In: Proceedings of the 2015 ACM conference on innovation and
technology in computer science education. New York,
USA: Association for Computing Machinery; 2015.
p.87–92. https://doi.org/10.1145/2729094.2742608
[21] Lawrance J, Jung S, Wiseman C. Git on the
cloud in the classroom. In: Proceeding of the
44th ACM technical symposium on Computer
science education. New York, USA: Association for Computing Machinery; 2013. p.639-644.
https://doi.org/10.1145/2445196.2445386