Yıl 2019, Cilt 3 , Sayı 2, Sayfalar 42 - 51 2020-01-16

Yükseköğretimde Programlama Derslerine Yönelik Bir Otomatik Ödev Notlandırma Sistemi Önerisi
An Automatic Grading System for Programming Assignments in Higher Education

Ahmet ARSLAN [1] , Nilgün ÖZDAMAR [2]


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.

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.

  • 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
Birincil Dil tr
Bölüm Makaleler
Yazarlar

Orcid: 0000-0003-4376-2278
Yazar: Ahmet ARSLAN (Sorumlu Yazar)
Kurum: Eskişehir Teknik Üniversitesi
Ülke: Turkey


Yazar: Nilgün ÖZDAMAR
Kurum: ANADOLU ÜNİVERSİTESİ
Ülke: Turkey


Tarihler

Yayımlanma Tarihi : 16 Ocak 2020

Bibtex @araştırma makalesi { eetd639391, journal = {Ege Eğitim Teknolojileri Dergisi}, issn = {}, eissn = {2667-4270}, address = {egeegitimteknolojileridergisi@gmail.com}, publisher = {Tarık KIŞLA}, year = {2020}, volume = {3}, pages = {42 - 51}, doi = {}, title = {Yükseköğretimde Programlama Derslerine Yönelik Bir Otomatik Ödev Notlandırma Sistemi Önerisi}, key = {cite}, author = {Arslan, Ahmet and Özdamar, Nilgün} }
APA Arslan, A , Özdamar, N . (2020). Yükseköğretimde Programlama Derslerine Yönelik Bir Otomatik Ödev Notlandırma Sistemi Önerisi . Ege Eğitim Teknolojileri Dergisi , 3 (2) , 42-51 . Retrieved from https://dergipark.org.tr/tr/pub/eetd/issue/51876/639391
MLA Arslan, A , Özdamar, N . "Yükseköğretimde Programlama Derslerine Yönelik Bir Otomatik Ödev Notlandırma Sistemi Önerisi" . Ege Eğitim Teknolojileri Dergisi 3 (2020 ): 42-51 <https://dergipark.org.tr/tr/pub/eetd/issue/51876/639391>
Chicago Arslan, A , Özdamar, N . "Yükseköğretimde Programlama Derslerine Yönelik Bir Otomatik Ödev Notlandırma Sistemi Önerisi". Ege Eğitim Teknolojileri Dergisi 3 (2020 ): 42-51
RIS TY - JOUR T1 - Yükseköğretimde Programlama Derslerine Yönelik Bir Otomatik Ödev Notlandırma Sistemi Önerisi AU - Ahmet Arslan , Nilgün Özdamar Y1 - 2020 PY - 2020 N1 - DO - T2 - Ege Eğitim Teknolojileri Dergisi JF - Journal JO - JOR SP - 42 EP - 51 VL - 3 IS - 2 SN - -2667-4270 M3 - UR - Y2 - 2020 ER -
EndNote %0 Ege Eğitim Teknolojileri Dergisi Yükseköğretimde Programlama Derslerine Yönelik Bir Otomatik Ödev Notlandırma Sistemi Önerisi %A Ahmet Arslan , Nilgün Özdamar %T Yükseköğretimde Programlama Derslerine Yönelik Bir Otomatik Ödev Notlandırma Sistemi Önerisi %D 2020 %J Ege Eğitim Teknolojileri Dergisi %P -2667-4270 %V 3 %N 2 %R %U
ISNAD Arslan, Ahmet , Özdamar, Nilgün . "Yükseköğretimde Programlama Derslerine Yönelik Bir Otomatik Ödev Notlandırma Sistemi Önerisi". Ege Eğitim Teknolojileri Dergisi 3 / 2 (Ocak 2020): 42-51 .
AMA Arslan A , Özdamar N . Yükseköğretimde Programlama Derslerine Yönelik Bir Otomatik Ödev Notlandırma Sistemi Önerisi. EETD. 2020; 3(2): 42-51.
Vancouver Arslan A , Özdamar N . Yükseköğretimde Programlama Derslerine Yönelik Bir Otomatik Ödev Notlandırma Sistemi Önerisi. Ege Eğitim Teknolojileri Dergisi. 2020; 3(2): 42-51.
IEEE A. Arslan ve N. Özdamar , "Yükseköğretimde Programlama Derslerine Yönelik Bir Otomatik Ödev Notlandırma Sistemi Önerisi", Ege Eğitim Teknolojileri Dergisi, c. 3, sayı. 2, ss. 42-51, Oca. 2020