autograder_oddysseus_itb
DESCRIPTION
asarwaaTRANSCRIPT
Autograder – versi Oddysseus
Presentasi ITB
5 Mei 2015
Inggriani, Adi, Saiful, Fazat
Presentasi Untuk Dosen Programming
IL, Autograder, ITB - 5 Mei 2015 1
Ringkasan
• Presentasi ini memperkenalkan autograder yang dikembangkan oleh KK DSE, dan dioperasikan di lingkungan IF-ITB, yang dinamakan Oddysseus
• Tujuan utama :– Menumbuhkan kesenangan dan passion terhadap
programming
– Menaikkan mutu pengajaran programming dengan memberikan lebih banyak latihan yang diberi feedback
– Men-set suatu standar kompetensi programming di antara Perguruan Tinggi di Indonesia
IL, Autograder, ITB - 5 Mei 2015 2
Autograder
• Sebuah program yang menilai program secara otomatis.
• Penilaian program :– Black box – diperiksa hasil eksekusinya
– White box - diperiksa source code programnya
• Autograder yang dipakai di lingkungan IF ITB diadaptasi dari autograder untuk lomba, dan tersedia di TOKI Learning Center: http://www.tokilearning.org/lx/guest
• Autograder yang dipakai diintegrasikan dengan Moodle, dan diberi nama Oddysseus
IL, Autograder, ITB - 5 Mei 2015 3
Penilaian Pada Lomba Programming
• Blackbox : – Peserta mensubmisi source code dalam bahasa yang
diperbolehkan.
– Source code yang disubmit dirun berdasarkan test cases (input, output, dan untuk beberapa kasus “checker”), yang diorganisasi per subtask
• Output only :– Peserta harus submit hasil run-nya (tanpa source
codenya) saja
• Interaktif :– Program peserta berinteraksi dengan program penilai.
IL, Autograder, ITB - 5 Mei 2015 4
Autograder - Oddysseus
IL, Autograder, ITB - 5 Mei 2015 5
Prinsip Penilaian Black Box
• Program ditest (di-run) dengan test case dan hasilnya dibandingkan dengan hasil run oleh autograder. Jika sama, maka benar
• Autograder bisa menerima program Pasal, C, C++, Java dan menjalankan program submisi di sandbox, untuk menghindari “crash” jika program siswa mengakses sistem yang menyebabkan crash
• Sifat autograder yang dibuat :– Scalable, jika banyak yang harus dinilai, server baru
dihidupkan otomatis. Contoh: IOI2012 memakai 80 komputer dari 170 komputer yang disediakan
– Robust, jika server tempat merun program siswa mati karena program siswa, server lain dihidupkan
IL, Autograder, ITB - 5 Mei 2015 6
Keuntungan
• Penilaian manual :– Asisten menyiapkan test case, mengeksekusi dan mengamati satu per satu
hasil eksekusi.
– Jika ada 400 mahasiswa maka program diakses, dibuka, dieksekusi, siamati hasilnya, dicatat.
• Pemeriksaan oleh program lebih cepat :– Penilaian setiap tugas secara manual membutuhkan 171 detik dibandingkan
oleh komputer yang hanya memerlukan waktu 10 detik, data menurut [Karol Danutama, Tugas Akhir, pembangun Oddysseus]. Berarti penghematan waktu penilaian adalah 161 detik/mahasiswa/program
– Untuk 400 mahasiswa, dihemat waktu 400*161 detik = 64.400 detik yaitu 17,8 jam
– Rata-rata, setiap minggu mahasiswa diminta mengerjakan 3 tugas, maka selama 14 minggu dalam semester (karena ujian juga dinilai oleh komputer), maka penghematan waktu penilaian adalah 400*3*64.400=77.280.000 detik, atau21.466,67 jam
IL, Autograder, ITB - 5 Mei 2015 7
Perbedaan
Pengajaran Programming
• Berkali-kali, latihan. Ujian tidak harus online
• Soal mulai dari belajar (paling sederhana) sampai kompleks
• Tidak cukup dinilai hasil eksekusinya, readability dan syarat-syarat lain seperti standard koding menjadi faktor penilaian
• Time limit dan memory limit hanya perlu untuk soal tertentu, atau di kuliah analisis algoritma
• Proses “koding” menjadi faktor penilaian
Lomba Pemrograman
• Hanya sesaat, harus online
• Soal tingkat tinggi, persoalan
kompleks terutama jika sudah
sampai tingkat dunia
• Program dinilai dari hasil
eksekusinya, tak ada standard
koding atau readability
• Time limit dan memory limit
sangat penting
• Proses koding tak dinilai
IL, Autograder, ITB - 5 Mei 2015 8
Kuliah programming
• Tingkatan kuliah yang disuport oleh black box
autograder yang ada saat ini:
– Dasar Programming
– Struktur Data
– Object Oriented Programming
• Walau hanya mampu menilai blackbox (hasil
eksekusi), saat ini autograder disesuaikan untuk
menilai kuliah struktur data dan object oriented
programming sesuai dengan perkuliahan di IF
IL, Autograder, ITB - 5 Mei 2015 9
Struktur Data dan OOP
• Ada latihan :
– membuat ADT/kelas
– Memakai ADT/kelas
• Untuk latihan membuat ADT/kelas, penilaian dilakukan dengan menggunakan “driver” yang diberikan. Jadi, ada konvensi yang harus dipenuhi.
• Untuk Latihan memakai kelas, akan ditetapkan konvensi koding di mana setiap procedure/function call atau method invocation, harus dituliskan pesan tertentu, atau memakai ADT/kelas yang disediakan.
• Jadi, untuk Struktur data dan OOP perlu sosialisasi
IL, Autograder, ITB - 5 Mei 2015 10
Rencana Peningkatan Autograder
• Autograder akan ditambah kemampuannya untuk melakukan pemeriksaan terhadap source code (white box, static analysis) :
– Checker sederhana (misalnya untuk mengenali keyword, apakah versi harus rekursif, loop memakai bentuk tertentu)
– Challenge : siswa mensubmit test case, jika test case mendeteksi bug maka akan dapet point
– Memeriksa kemiripannya terhadap solusi (“plagiarism”)
– Static Code analysis : deteksi bads mell, ketaatan terhadap coding rules, .... Ada +/- 100 kriteria yang siap ditest oleh berbagai tools yang ada : CPP check, PMD, Findbugs,....
IL, Autograder, ITB - 5 Mei 2015 11
Rencana Peningkatan Penilaian
• Penilaian untuk program reading yang saat ini
memanfaatkan “output only”
• Penilaian untuk menjawab isian singkat, yaitu
kode program yang harus dituliskan untuk
kerangka yang diberikan [akan diberikan
contoh]
IL, Autograder, ITB - 5 Mei 2015 12
Rencana Peningkatan Doppel-Ganger
• Doppel adalah editor yang mampu menangkap proses mengetik kode program:– Banyaknya ketikan versus banyaknya karakter source
code
– Banyaknya kompilasi
– Proses “maju-mundur”
• Ganger adalah objek yang dapat berkomunikasi ke Autograder untuk minta kompilasi & eksekusi
• Kemampuan Dopel akan ditambah dengan beberapa kemampuan menilai proses koding yang lain (akan dipikirkan bersama)
IL, Autograder, ITB - 5 Mei 2015 13
Dopel-Ganger
IL, Autograder, ITB - 5 Mei 2015 14
Rencana Pembentukan Bank soal
• Bank soal akan dipakai bersama, dan diberi meta data :
– Bahasa
– Koding/AP/SD-1/SD-2/OOP-1/Oop-2
– Sulit/Sedang/Mudah
– Bidang [math, parser,...]
– Sumber
– Latihan Wajib (Yes/No)
• Mahasiswa akan diberi latihan wajib yang harus diselesaikan secara mandiri dan dinilai dengan komputer, sebagai bagian dari penilaian
• Ujian dengan soal tertentu.
IL, Autograder, ITB - 5 Mei 2015 15
Persyaratan Untuk Gabung
• Menjaga :
– Kredibilitas
– Integritas
– Cinta programming
– Non profit
– Versi saat ini: hanya dapat diakses di Data Center ITB
• Lisence agreement : prinsip non-komersial
– Sistem Autograder “ kepunyaan” ISEC
– konten “kepunyaan” masing, ISEC mendapat izin memanfaatkan untuk bahan riset
IL, Autograder, ITB - 5 Mei 2015 16
Pengembangan Bank Soal
• Bahan Latihan [wajib, repeatable]
• Bahan latihan khusus
– Kuis
– Test kecil
• Bahan Ujian :
– UTS
– UAS
IL, Autograder, ITB - 5 Mei 2015 17
Soal isian
Inisialisasi
First-elmt
While (.....) do
Begin
(* 2 proses ....*)
(* next elmt *)
End;
Terminasi
IL, Autograder, ITB - 5 Mei 2015 18
Bank Soal
• Soal akan dikelompokkan per tema :
– Koding dalam bahasa tertentu (C, Pascal, C++,..)
– Algoritma dan Programming
• Mudah
• Sedang
• Sulit
– Struktur Data
• Membuat kelas
• Memakai Kelas
IL, Autograder, ITB - 5 Mei 2015 19
Jenis Instruksi
• Menulis kode, dinilai hasil – Blackbox– Tanpa cerita
– Dengan cerita
• Menulis kode dengan syarat tertentu, [checker] misalnya – Tanpa array
– Loop harus salah satu bentuk (while, repeat..)
– Rekursif
– Memakai struktur data tertentu
• Memakai “paket” yang sudah disediakan :– API sistem
– Mesin karakter
– Mesin kata
IL, Autograder, ITB - 5 Mei 2015 20