Iseng di Kelas Praktikum Algoritma dan Pemrograman

Semester lalu alhamdulillah saya diberi kepercayaan oleh dosen mata kuliah Algoritma & Pemrograman di kampus saya (Bapak Harry T. Y. Achsan) untuk jadi asisten. Senang sekali tentunya, karena mata kuliah ini adalah mata kuliah favorit saya.ūüėČ

Ngomong-ngomong, mengajar di kelas itu sangat menyenangkan sebenarnya. Hal yang membuatnya jadi agak kurang menyenangkan adalah kewajiban di akhir untuk memberikan penilaian. Selain sulit dan ribet, kadang-kadang agak khawatir juga bahwa terjadi subjektifitas dalam penilaian saya.

Karena itu kemarin waktu melakukan asistensi saya sempat membuat UTS yang penilaiannya otomatis berdasarkan jumlah soal yang berhasil diselesaikan.

Namun tentunya, melakukan hal ini butuh pengorbanan yang lain juga. Saya harus menciptakan sejenis grader yang akan melakukan pengujian input dan output yang nantinya kemudian akan menilai hasil pekerjaan peserta kelas saya.

Dengan meluangkan waktu sejenak, akhirnya saya membuatnya juga. Ini tampilannya:

Tampilan Score Board UTS Algoritma dan Pemrograman

Tampilan Score Board UTS Algoritma dan Pemrograman

Kalau dipikir-pikir, jatuhnya sama seperti kontes pemrograman.ūüėõ

Sebenarnya, kalau fasilitasnya mendukung, saya tidak perlu capek-capek melakukan pembuatan aplikasinya, karena sudah banyak programming contest management system yang sudah mumpuni seperti PC^2 atau DOMjudge. Kendalanya, saya tidak punya server sendiri, sehingga saya menggunakan cara lain untuk melakukan penilaian.

Oh iya, soal yang saya buat bisa di-download di sini.

Kelas pemrograman ini menggunakan bahasa pemrograman Java. Jadi, untuk melakukan penilaian, saya membuat sebuah library yang disimpan dalam format JAR yang kemudian dapat digunakan untuk melakukan penilaian sekaligus untuk men-submit nilai ke server. Server yang saya maksud bukan server beneran sih. Saya menaruh score board tadi di website yang saya miliki di alamat http://muslihat.net.

Library yang saya implementasikan sebenarnya sederhana. Seluruh input dan output yang benar untuk setiap testcase yang diujikan ke program buatan peserta diletakkan di dalam array. Karena saya tidak mungkin menganalisis output yang dihasilkan program peserta (berhubung saya tidak bisa sekonyong-konyong mengubah hosting server menjadi grader server), maka setiap soal yang saya buat merupakan soal OOP yang tiap method-nya tinggal di-override saja.

Hasilnya lumayan juga ternyata. Saya jadi tidak perlu capek menilai pekerjaan mahasiswa peserta praktikum. Cukup santai saja melihat scoreboard. Hihi.

Barangkali, seharusnya mata kuliah algoritma dan pemrograman diubah modelnya menjadi seperti ini saja. Selain lebih fun, hal ini mempermudah dosen juga.

Bayangkan kalau seorang dosen memberikan tugas pemrograman. Setelah men-download source code dari masing-masing muridnya, sang dosen harus melakukan compile dan kemudian menguji input dan output dari program tersebut. Selain melelahkan, kadang-kadang jadi kurang teliti. Akan lebih baik kalau ada proses yang terautomatisasi untuk melakukan hal tersebut.

Nantinya kalau sang murid mau yang lebih serius, ada banyak kompetisi pemrograman yang model pengujiannya juga seperti ini. Buat programnya, submit untuk dinilai, dan kemudian lihat hasilnya. Kompetisi seperti International Collegiate Programming Contest (ICPC) menggunakan model seperti ini. Kompetisi yang berskala nasional seperti COMPFEST dari UI atau ITB-PC juga menggunakan model yang seperti ini.

Bayangkan, dari yang sekedar iseng-iseng mencoba kode, bisa sekalian keliling dunia kalau berhasil. Kenapa tidak?ūüėČ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s