Ketika mahasiswa belajar menulis program dalam mata kuliah ilmu komputer (CS) pengantar, banyak yang mengalami kesulitan untuk menerapkan konsep dasarnya. Cay Horstmann, dosen Ilmu Komputer di SJSU, ingin membantu mahasiswa berlatih pemrograman secara mandiri agar keterampilan mereka dapat meningkat lebih cepat. Sayangnya, karena soal latihan coding sering digunakan kembali dari tahun ke tahun, mahasiswa dapat mudah mencari solusi di internet. Profesor Horstmann membutuhkan cara untuk memberi lebih banyak soal latihan yang jawabannya tidak mudah ditemukan.
San José State University mendukung mahasiswanya untuk belajar dasar-dasar pemrograman secara mandiri
Dihadapkan dengan permasalahan kapasitas mesin virtual yang terbatas, Jurusan Ilmu Komputer SJSU mencoba mencari cara untuk memperluas resource agar dapat memfasilitasi aktivitas latihan pemrograman yang tidak terbatas bagi mahasiswa ilmu komputer.
"Pada Minggu malam di saat mahasiswa mengerjakan pekerjaan rumah, diperkirakan ada 20 mesin virtual yang beroperasi, sehingga pada saat beban kerja berubah-ubah, mesin otomatis diaktifkan atau dinonaktifkan sesuai kebutuhan."
Cay Horstmann, Dosen Ilmu Komputer, San José State University
Mewujudkan pelatihan praktis yang nyata bagi semua mahasiswa
Membuat sistem agar mahasiswa dapat belajar mandiri kini semakin penting karena mahasiswa dari bidang selain Ilmu Komputer, seperti biologi dan hukum, akan lebih tertarik pada pemrograman untuk membantu penelitian atau untuk meningkatkan produktivitas. Pemrograman saat ini tidak hanya untuk developer pemula.
“Jurusan Ilmu Komputer perlu mempersiapkan diri terhadap perubahan dalam minat untuk belajar keterampilan pemrograman,” kata Horstmann. “Mahasiswa umum mengambil kelas ilmu komputer untuk membantu mereka agar lebih efektif dalam bidangnya sendiri. Karena kurangnya instruktur CS, mahasiswa harus bisa belajar melalui praktik autodidak.”
Cay mendapat info tentang program Hibah Pendidikan Google Cloud melalui Special Interest Group on Computer Science Education (SIGCSE) dan mengajukan proposal penelitian agar dapat menerima kredit Google Cloud. Dari sana, dia diberi kredit yang dapat digunakan untuk produk Google Cloud apa pun, kemudian menggunakan solusi tersebut untuk mengembangkan autograder, CodeCheck, yang berisi ratusan soal latihan bagi mahasiswa untuk belajar pemrograman.
CodeCheck adalah program berbasis web yang dirancang untuk membantu mahasiswa belajar pemrograman dalam beberapa bahasa. Dosen dapat menyesuaikan soal latihan pemrograman, sehingga mahasiswa harus menciptakan solusi sendiri, bukan hanya menemukan jawabannya di internet. Karena kapasitas server Jurusan Ilmu Komputer tidak lagi mencukupi, Cay membuat CodeCheck menggunakan Google Compute Engine, yaitu mesin virtual dengan daya komputasi tak terbatas. Cay memilih Stackdriver untuk memantau, melakukan logging serta diagnostik, dan Cloud SQL karena skalabilitas dan kemudahannya.
"Pada Minggu malam di saat mahasiswa mengerjakan pekerjaan rumah, diperkirakan ada 20 mesin virtual yang beroperasi, sehingga pada saat beban kerja berubah-ubah, mesin otomatis diaktifkan atau dinonaktifkan sesuai kebutuhan," kata Horstmann.
Sekarang, dosen Ilmu Komputer di SJSU dapat menggunakan solusi cloud computing untuk mengajarkan pemrograman tanpa harus mengkhawatirkan kapasitas server kampus. Solusi ini dapat mengakomodasi lebih banyak mahasiswa untuk belajar, termasuk yang sedang mengejar gelar selain ilmu komputer. Mahasiswa dapat mempelajari pengelolaan sistem jarak jauh, penskalaan beban kerja, logging, dan penerapan otomatis.
Memotivasi mahasiswa untuk belajar mandiri
CodeCheck memberi masukan secara real-time kepada mahasiswa mengenai aktivitas coding yang mereka lakukan, sehingga dapat langsung diketahui apakah solusi mereka lulus atau gagal. CodeCheck tidak memberi tahu kesalahan yang dialami, mahasiswa harus mampu menemukannya sendiri. Dulu, mahasiswa tidak mendapatkan masukan mengenai pekerjaannya selama berminggu-minggu setelah dikirim. Pada saat itu, mereka sering lupa dengan proses yang mereka ikuti untuk sampai pada jawabannya.
Hasil survei menunjukkan bahwa mahasiswa merasa lebih positif dengan resource latihan online. Mereka tidak malu jika melakukan kesalahan dan tidak merasa tertekan untuk menyelesaikannya dalam batas waktu tertentu.
Menurut Horstmann, CodeCheck juga dapat meningkatkan proses belajar dan performa ujian mahasiswa. Di kelas Java untuk mata kuliah non-jurusan, mahasiswa dibagi menjadi 2 kelompok, kelompok yang menggunakan CodeCheck berhasil menunjukkan performa 50 persen lebih tinggi dibandingkan dengan kelompok kontrol. Dalam kelas bahasa pemrograman, kelompok yang menggunakan CodeCheck berhasil memperoleh skor 20 persen lebih tinggi untuk pertanyaan pemrograman Scheme dibandingkan dengan kelompok kontrol. Untuk 1 pertanyaan yang tidak tercakup dalam pertanyaan latihan, kedua kelompok memiliki skor yang sama. Dalam kelas C++ untuk mahasiswa transfer yang semuanya diwajibkan untuk mempraktikkan masalah, jumlah rata-rata percobaan per masalah turun sepertiga dari awal hingga akhir kursus, dan waktu rata-rata penyelesaian berhasil terpangkas setengahnya.
Mengajarkan pemrograman kepada semua orang
Seiring dengan transisi mahasiswa menjadi pengguna native cloud, pengembangan solusi pendidikan sangat diperlukan agar dapat digunakan oleh mahasiswa yang mengejar gelar Ilmu Komputer dan juga bagi mahasiswa yang mempelajari disiplin ilmu lainnya. Misalnya, ketika level mahasiswa naik dari mengerjakan masalah berbasis gambar dasar ke pembuatan loop, di sana terdapat lompatan konseptual yang besar karena loop harus dapat bekerja untuk semua input. Banyak mahasiswa yang memahami konsepnya, namun mengalami kesulitan saat berusaha menerapkannya. Begitu mempelajari sebuah pola, mahasiswa akan mulai mengerti cara menerapkan konsep tersebut ke dalam kode.
Dengan menggunakan autograder, mahasiswa dapat memulai dari hal yang kecil dengan 5 baris kode terlebih dahulu. Ketika mahasiswa harus menulis 200 baris kode untuk tugas kelas, 5 baris mungkin tampak sangat sedikit, namun hal ini bertujuan agar mahasiswa dapat belajar sedikit demi sedikit dan secara bertahap menerapkan hal yang telah dipelajari ke tugas yang lebih rumit.
“Pemrograman adalah keterampilan abad ke-21 bagi pengusaha, ilmuwan, pengacara, wartawan, atau siapa pun yang bekerja dengan data,” tutur Horstmann. “Jika pengajaran jurusan Ilmu Komputer dengan model kuliah-kerja-laboratorium konvensional mengalami tingkat kegagalan yang sangat besar, metode ini tidak akan berhasil bagi mahasiswa jurusan lain. Itulah alasan saya menggunakan pendekatan ‘mengajar dengan pengulangan’ yang telah teruji.”
"Pemrograman adalah keterampilan abad ke-21 bagi pengusaha, ilmuwan, pengacara, wartawan, atau siapa pun yang bekerja dengan data."
Cay Horstmann, Dosen Ilmu Komputer, San José State University
Menjalankan autograder dengan operasi backend tanpa hambatan
Stackdriver memberikan kemampuan pemantauan dan diagnostik canggih yang memungkinkan Cay untuk memecahkan masalah dan memastikan mahasiswa menggunakan autograder dengan benar. Misalnya, jika seorang mahasiswa mencoba menjalankan program yang dapat menghapus program lain atau mematikan mesin, autograder sudah terprogram untuk memblokir perintah tersebut. Dulu, Cay terkadang harus menghabiskan waktu berjam-jam untuk melakukan proses debug agar dapat mengetahui penyebab suatu masalah.
Tujuan utama CodeCheck adalah untuk mengurangi proses yang rumit bagi mahasiswa yang ingin berlatih pemrograman. Mereka tidak perlu mendaftar atau login untuk menggunakan autograder. Dosen dapat mengintegrasikan CodeCheck ke dalam sistem pengelolaan pembelajaran (LMS). Kemudian mahasiswa dapat langsung bekerja di LMS dan autograder yang akan memberikan skornya. Cloud SQL akan terus melacak berapa banyak waktu yang digunakan oleh seorang mahasiswa dalam mengerjakan tugas dan secara otomatis melakukan backup. Integrasi ini berhasil berjalan dengan baik, sehingga mahasiswa dapat mengklik “Catat skor saya” untuk menyerahkan tugas dan memudahkan pengiriman program bagi dosen dan mahasiswa.
“Karena pemrograman menjadi keterampilan untuk masa depan, bukan lagi hanya untuk developer, jurusan ilmu komputer perlu beradaptasi sehingga mahasiswa dapat belajar sesuai dengan kemampuan masing-masing,” ujar Horstmann. “Dengan CodeCheck, mahasiswa dapat menantang diri untuk terus belajar di luar kelas.”