Research Article
BibTex RIS Cite

An Automatic Grading System for Programming Assignments in Higher Education

Year 2019, Volume: 3 Issue: 2, 42 - 51, 31.12.2019

Abstract

The number of university students in Turkey is increasing rapidly in recent years. Due to the increasing number of students, it is getting difficult to plan education and training activities; thus, more teaching staff and physical resources are needed. The faculty members spend reasonable time to grade each and every assignment and sometimes they have to put in a lot of effort under the burden of hundreds of assignments that need to be graded. Therefore, the feedback given to the students by the instructor is annoyingly prolonged, and these periods begin to exceed the reaction time required for learning. Therefore, the students are dissatisfied with this compelling process, which causes disappointment and frustration.

However, it is possible to reduce the labor and physical resource requirements by using the new information and communication technologies (ICTs) in assigning and evaluating assignments. In this respect, GitHub Classroom is the cutting-edge technology that has been widely used in educational institutions worldwide for the distribution and collection of homework assignments. In this study, it is explained how to build an automatic grading system on top of the GitHub Classroom system, which is traditionally used for distributing and collecting programming assignments. The approach adopted in automatic grading is a mechanism that is similar to that of the unit testing (a type of software testing), which is a subfield of software engineering. The study also introduces the required and desirable criteria that a programming assignment must meet in order to be auto gradable.

The implementation of such automatic grading system will not only reduce the workload of the instructor, but will also provide rapid feedback to students, which facilitate their learning process. Motivated by this rationale, the main purpose of this study is to introduce an automatic grading system for programming assignments, which can be used in programming courses in higher education.

For proof of concept, the proposed automatic grading system was used in two different programming courses at Department of Computer Engineering in Anadolu University. The Apache Maven, a build automation tool, was used to compile and run the programming assignments submitted by the students on a standalone server. Moreover, the script files used for automatic grading of programming assignments are shared publicly at https://education.github.community/t/automatic-grading-script/6940 for the benefit of the education community.

We believe that the system introduced in this study will make the educational activities supported by the GitHub Classroom more prevalent among not only computer science, but also social sciences.

References

  • Cheang, B., Kurnia, A., Lim, A., & Oon, W.-C. (2003). On automated grading of programming assignments in an academic institution. Computers & Education, 41(2), 121-131. doi:10.1016/S0360-1315(03)00030-7
  • Feliciano, J., Storey, M.-A., & Zagalsky, A. (2016). Student experiences using GitHub in software engineering courses: a case study. Paper presented at the Proceedings of the 38th International Conference on Software Engineering Companion, Austin, Texas.
  • Fiksel, J., Jager, L. R., Hardin, J. S., & Taub, M. A. (2019). Using GitHub Classroom To Teach Statistics. Journal of Statistics Education, 27(2), 110-119. doi:10.1080/10691898.2019.1617089
  • Heckman, S., & King, J. (2018). Developing Software Engineering Skills using Real Tools for Automated Grading. Paper presented at the Proceedings of the 49th ACM Technical Symposium on Computer Science Education, Baltimore, Maryland, USA.
  • Helmick, M. T. (2007). Interface-based programming assignments and automatic grading of java programs. Paper presented at the Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education, Dundee, Scotland.
  • Liu, X., Wang, S., Wang, P., & Wu, D. (2019). Automatic grading of programming assignments: an approach based on formal semantics. Paper presented at the Proceedings of the 41st International Conference on Software Engineering: Software Engineering Education and Training, Montreal, Quebec, Canada.
  • Morris, D. S. (2003, 5-8 Nov. 2003). Automatic grading of student's programming assignments: an interactive process and suite of programs. Paper presented at the 33rd Annual Frontiers in Education, 2003. FIE 2003.
  • Parihar, S., Dadachanji, Z., Singh, P. K., Das, R., Karkare, A., & Bhattacharya, A. (2017). Automatic Grading and Feedback using Program Repair for Introductory Programming Courses. Paper presented at the Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education, Bologna, Italy.
  • Raibulet, C., & Arcelli Fontana, F. (2018). Collaborative and teamwork software development in an undergraduate software engineering course. Journal of Systems and Software, 144, 409-422. doi:10.1016/j.jss.2018.07.010
  • Rodríguez-Pereira, J., Fernández, E., Laporte, G., Benavent, E., & Martínez-Sykora, A. (2019). The Steiner Traveling Salesman Problem and its extensions. European Journal of Operational Research, 278(2), 615-628. doi:10.1016/j.ejor.2019.04.047
  • Runeson, P. (2006). A survey of unit testing practices. IEEE Software, 23(4), 22-29. doi:10.1109/MS.2006.91
  • Soundarajan, N., Joshi, S., & Ramnath, R. (2015). Collaborative and cooperative-learning in software engineering courses. Paper presented at the Proceedings of the 37th International Conference on Software Engineering - Volume 2, Florence, Italy.
  • Zamani, H., Schedl, M., Lamere, P., & Chen, C.-W. (2019). An Analysis of Approaches Taken in the ACM RecSys Challenge 2018 for Automatic Music Playlist Continuation. ACM Trans. Intell. Syst. Technol., 10(5), 1-21. doi:10.1145/3344257

Yükseköğretimde Programlama Derslerine Yönelik Bir Otomatik Ödev Notlandırma Sistemi Önerisi

Year 2019, Volume: 3 Issue: 2, 42 - 51, 31.12.2019

Abstract

Türkiye’de eğitim gören üniversite öğrencisi sayısı son yıllarda hızla yükselmektedir. Artan öğrenci mevcudu sebebiyle eğitim – öğretim faaliyetlerinin planlanması zorlaşmakta, böylece daha fazla öğretim elemanı ve fiziksel imkâna ihtiyaç duyulmaktadır. Öğretim elemanları, bir dönem süresince öğrencilerden neredeyse haftalık gelen ödevleri tek tek değerlendirmek için zamana ihtiyaç duymakta, bazen yüzlerce notlandırılması gereken dosyaların yükü altında fazlaca çaba göstermek zorunda kalmaktadır. Bu nedenle de öğretim elemanı tarafından öğrencilere verilen geribildirim süreleri can sıkıcı bir şekilde uzamakta, bu süreler öğrenme için gerekli tepki sürelerini aşmaya başlamaktadır. Dolayısıyla, yaşanan zorlayıcı bu süreç, öğrenciler açısından memnuniyetsizlikle karşılanmaktadır. 

Oysaki ödevlerin verilmesi ve değerlendirilmesinde yeni enformasyon ve iletişim teknolojilerinden faydalanarak fiziksel ve insan gücü kaynaklarına olan gereksinimleri azaltmak mümkündür. Bu doğrultuda, GitHub Classroom ev ödevlerinin dağıtımı ve geri toplaması için son zamanlarda dünya çapında eğitim kurumlarında yaygın olarak kullanılmaya başlanan bir teknolojidir. Bu çalışmada, programlama ödevlerini dağıtma ve geri toplamanın yanı sıra otomatik olarak notlandırılabilmesi için GitHub Classroom sisteminin üzerine ne tür eklentiler yapılması gerektiği anlatılmaktadır. Otomatik notlandırmada benimsenen yaklaşım Yazılım Mühendisliği alanında kullanılan birim testine benzer bir mekanizmadır. Çalışmada bir programlama uğraşının otomatik notlandırılabilmesi için sağlaması gereken özelliklerin üzerinde de durulmaktadır. 

Bu tarz bir otomatik notlandırma sisteminin uygulanması, öğretim elemanının iş yükünü azaltacağı gibi oldukça hızlı geribildirim sağlayarak öğrencilerin öğrenmelerini kolaylaştırabilecektir. Bu düşünceden motive olan bu çalışmanın temel amacı yükseköğretim kurumlarında yürütülen programlama derslerinde kullanılabilecek bir otomatik programlama ödevi notlandırma sisteminin tanıtılmasıdır.  

Bu bağlamda Anadolu Üniversitesi Bilgisayar Mühendisliği bölümü müfredatında bulunan iki ayrı programlama dersi tasarlanan otomatik notlandırma sisteminin uygulanması için örnek ders olarak seçilmiştir. Derslere kayıtlı öğrencilerin gönderdikleri ödevlerin bağımsız bir sunucu üzerinde derlenip çalıştırılması için otomatik derleme aracı olan Apache Maven kullanılmıştır. Dahası, programlama ödevlerini otomatik notlandırmak için kullanılan betik dosyaları diğer eğitimcilerinde faydalanabilmesi amacıyla https://education.github.community/t/automatic-grading-script/6940 adresinden umuma açık halde paylaşılmıştır. 

Çalışmada tanıtılan bu sistem, yükseköğretimde Bilgisayar Mühendisliği programlama derslerinin yanı sıra, sosyal bilimler gibi diğer disiplinlerde de GitHub Classroom platformuyla destekli eğitim – öğretim faaliyetlerinin yaygınlaşması için yol gösterici olacaktır.

References

  • Cheang, B., Kurnia, A., Lim, A., & Oon, W.-C. (2003). On automated grading of programming assignments in an academic institution. Computers & Education, 41(2), 121-131. doi:10.1016/S0360-1315(03)00030-7
  • Feliciano, J., Storey, M.-A., & Zagalsky, A. (2016). Student experiences using GitHub in software engineering courses: a case study. Paper presented at the Proceedings of the 38th International Conference on Software Engineering Companion, Austin, Texas.
  • Fiksel, J., Jager, L. R., Hardin, J. S., & Taub, M. A. (2019). Using GitHub Classroom To Teach Statistics. Journal of Statistics Education, 27(2), 110-119. doi:10.1080/10691898.2019.1617089
  • Heckman, S., & King, J. (2018). Developing Software Engineering Skills using Real Tools for Automated Grading. Paper presented at the Proceedings of the 49th ACM Technical Symposium on Computer Science Education, Baltimore, Maryland, USA.
  • Helmick, M. T. (2007). Interface-based programming assignments and automatic grading of java programs. Paper presented at the Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education, Dundee, Scotland.
  • Liu, X., Wang, S., Wang, P., & Wu, D. (2019). Automatic grading of programming assignments: an approach based on formal semantics. Paper presented at the Proceedings of the 41st International Conference on Software Engineering: Software Engineering Education and Training, Montreal, Quebec, Canada.
  • Morris, D. S. (2003, 5-8 Nov. 2003). Automatic grading of student's programming assignments: an interactive process and suite of programs. Paper presented at the 33rd Annual Frontiers in Education, 2003. FIE 2003.
  • Parihar, S., Dadachanji, Z., Singh, P. K., Das, R., Karkare, A., & Bhattacharya, A. (2017). Automatic Grading and Feedback using Program Repair for Introductory Programming Courses. Paper presented at the Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education, Bologna, Italy.
  • Raibulet, C., & Arcelli Fontana, F. (2018). Collaborative and teamwork software development in an undergraduate software engineering course. Journal of Systems and Software, 144, 409-422. doi:10.1016/j.jss.2018.07.010
  • Rodríguez-Pereira, J., Fernández, E., Laporte, G., Benavent, E., & Martínez-Sykora, A. (2019). The Steiner Traveling Salesman Problem and its extensions. European Journal of Operational Research, 278(2), 615-628. doi:10.1016/j.ejor.2019.04.047
  • Runeson, P. (2006). A survey of unit testing practices. IEEE Software, 23(4), 22-29. doi:10.1109/MS.2006.91
  • Soundarajan, N., Joshi, S., & Ramnath, R. (2015). Collaborative and cooperative-learning in software engineering courses. Paper presented at the Proceedings of the 37th International Conference on Software Engineering - Volume 2, Florence, Italy.
  • Zamani, H., Schedl, M., Lamere, P., & Chen, C.-W. (2019). An Analysis of Approaches Taken in the ACM RecSys Challenge 2018 for Automatic Music Playlist Continuation. ACM Trans. Intell. Syst. Technol., 10(5), 1-21. doi:10.1145/3344257
There are 13 citations in total.

Details

Primary Language Turkish
Journal Section Reviews
Authors

Ahmet Arslan 0000-0003-4376-2278

Nilgün Özdamar

Publication Date December 31, 2019
Submission Date October 29, 2019
Published in Issue Year 2019 Volume: 3 Issue: 2

Cite

APA Arslan, A., & Özdamar, N. (2019). Yükseköğretimde Programlama Derslerine Yönelik Bir Otomatik Ödev Notlandırma Sistemi Önerisi. Ege Eğitim Teknolojileri Dergisi, 3(2), 42-51.

Ege Journal of Educational Technologies
is indexed and abstracted by
Index Copernicus, Asos Index, WorldCat, OpenAIRE, ROAD, BASE, Google Scholar, Academia.edu, Türk Eğitim İndeksi, IAD, EuroPub, Academindex

Publisher
Izmir Academy Association
www.izmirakademi.org