Semasa pelajar belajar mengatur cara dalam kursus pengenalan sains komputer (CS), ramai yang bersusah-payah untuk menerapkan konsep asas. Cay Horstmann, profesor CS di SJSU, ingin membantu pelajar berlatih pengaturcaraan sendiri agar mereka dapat meningkatkan kemahiran mereka dengan lebih cepat. Malangnya memandangkan masalah pengaturcaraan sering diguna semula tahun demi tahun, pelajar dengan mudah boleh mencari penyelesaian dalam talian. Profesor Horstmann memerlukan cara untuk menyediakan lebih banyak latihan tanpa pelajar dapat mencari jawapan dengan mudah.
San José State University menyokong pelajar untuk mengajar diri mereka sendiri asas pengaturcaraan.
Berdepan dengan kapasiti mesin maya yang terhad, Jabatan Sains Komputer SJSU memerlukan cara untuk memperluas sumber bagi mempermudah latihan pengaturcaraan tanpa had untuk pelajar sains komputer.
"Pada malam Ahad semasa pelajar membuat kerja sekolah mereka, mungkin terdapat 20 mesin maya yang berjalan, jadi apabila beban kerja berubah, mesin berputar naik dan turun secara automatik."
Cay Horstmann, Profesor Sains Komputer, San José State University
Mendayakan latihan secara amali dunia sebenar untuk semua pelajar
Mencipta sistem bagi pelajar untuk mengajar diri mereka sendiri telah menjadi semakin penting kerana pelajar dari bidang bukan CS, seperti biologi dan undang-undang, menjadi berminat dengan pengaturcaraan sebagai cara untuk membantu penyelidikan mereka atau menjadi lebih produktif. Pengaturcaraan bukan lagi semata-mata untuk bakal pembangun.
"Jabatan CS perlu bersedia untuk peralihan minat dalam kemahiran pengaturcaraan ini," kata Horstmann. "Pelajar umum mengambil kelas sains komputer untuk membantu menjadikan diri mereka lebih efektif dalam bidang mereka sendiri. Memandangkan terdapat kekurangan tenaga pengajar CS, pelajar perlu dapat belajar melalui latihan belajar sendiri."
Cay mendengar tentang program Geran Pendidikan Google Cloud menerusi Kumpulan Minat Khusus pada Pendidikan Sains Komputer (SIGCSE) dan memohon geran penyelidikan untuk menerima kredit Google Cloud. Beliau telah dianugerahi kredit untuk digunakan bagi sebarang produk Google Cloud. Beliau menggunakan alat tersebut untuk membangunkan penggred automatik, CodeCheck, dengan ratusan latihan untuk pelajar berlatih pengaturcaraan.
CodeCheck ialah program berasaskan web yang dibina untuk membantu mengajar pelajar cara mengatur cara dalam mana-mana bahasa yang pelbagai. Profesor boleh menyesuaikan masalah pengaturcaraan, jadi pelajar perlu membuat penyelesaian mereka sendiri dan tidak sekadar mencari jawapan dalam talian. Oleh kerana pelayan Jabatan Sains Komputer sudah berjalan pada kapasitinya, Cay membina CodeCheck menggunakan Google Compute Engine, mesin maya dengan kuasa pengkomputeran tanpa had. Beliau memilih Stackdriver untuk pemantauan, log dan diagnostik serta Cloud SQL untuk kebolehskalaan dan kemudahannya.
"Pada malam Ahad semasa pelajar melakukan kerja sekolah mereka, mungkin terdapat 20 mesin maya yang berjalan, jadi apabila beban kerja berubah, mesin berputar naik dan turun secara automatik," kata Horstmann.
Kini, profesor CS di SJSU boleh menggunakan alatan pengkomputeran awan untuk mengajar pengaturcaraan tanpa perlu risau tentang kapasiti pelayan sekolah. Ini memudahkan untuk menampung lebih ramai pelajar, temasuk mereka yang mengikuti ijazah selain sains komputer. Pelajar belajar tentang cara mengurus sistem jauh, pengskalaan beban kerja, log dan pelaksanaan automatik.
Menggalakkan pelajar untuk mengajar diri mereka sendiri
CodeCheck memberikan pelajar maklum balas masa nyata tentang pengekodan mereka, jadi mereka mendapat tahu serta-merta sama ada penyelesaian mereka lulus atau gagal. CodeCheck tidak memberitahu pelajar kesilapan mereka—mereka mesti mencarinya sendiri. Pada masa lalu, pelajar tidak mendapat maklum balas tentang kerja mereka sehingga berminggu-minggu selepas mereka menyerahkan kerja mereka. Pada masa itu, mereka biasanya sudah terlupa proses yang mereka ikuti untuk mendapatkan jawapan.
Hasil tinjauan menunjukkan bahawa pelajar amat menghargai sumber latihan dalam talian. Mereka tidak merasa malu jika membuat kesilapan dan tidak merasa tertekan untuk menyelesaikan latihan dalam masa tertentu.
Menurut Horstmann, CodeCheck juga memperbaik pembelajaran dan prestasi ujian pelajar. Dalam sebuah kursus Java untuk bukan pengkhususan dengan dua bahagian, bahagian yang menggunakan CodeCheck mencapai 50 peratus lebih tinggi daripada kumpulan kawalan. Dalam kelas bahasa pengaturcaraan, bahagian yang menggunakan CodeCheck mendapat markah 20 peratus lebih tinggi dalam soalan pengaturcaraan Scheme berbanding kumpulan kawalan. Untuk satu soalan yang tidak dibincangkan dalam soalan latihan, kedua-dua kumpulan mendapat markah yang sama. Dalam kelas C++ untuk pelajar pindahan, yang memerlukan semua pelajar membuat masalah latihan, purata bilangan percubaan untuk setiap masalah menurun sebanyak satu pertiga di antara permulaan dan penamat kursus serta mengurangkan separuh masa purata untuk penyelesaian.
Mengajar pengaturcaraan kepada semua orang
Pelajar menjadi pengguna awan asli dan alatan pendidikan perlu berkembang untuk memenuhi keperluan pelajar CS serta penuntut bidang lain. Sebagai contoh, apabila pelajar meningkat daripada masalah berasaskan gambar asas kepada mencipta gelung, terdapat lompatan konseptual yang besar memandangkan gelung perlu berfungsi untuk semua input. Ramai pelajar memahami konsep tersebut namun suka untuk menerapkannya. Sebaik sahaja mereka telah mempelajari sesebuah corak, mereka mula memahami cara untuk menerapkan konsep itu untuk mengekod.
Menggunakan penggred automatik, pelajar boleh bermula secara kecil dengan lima baris kod. Apabila pelajar perlu menulis 200 baris kod untuk tugasan kelas, lima baris mungkin kelihatan sangat sedikit, namun matlamatnya adalah agar pelajar dapat belajar perlahan-lahan dan secara beransur-ansur menerapkan perkara yang mereka pelajar pada tugasan yang lebih rumit.
"Pengaturcaraan ialah kemahiran abad ke-21 untuk orang perniagaan, saintis, peguan, wartawan... sesiapa sahaja yang bekerja dengan data," kata Horstmann. "Jika kita mendapat kadar kegagalan yang tinggi apabila mengajar pelajar jurusan CS kita dengan model kuliah-makmal-kerja rumah tradisional, cara itu takkan berkesan untuk pelajar bukan dari jurusan CS. Itulah sebabnya saya menggunakan pendekatan 'mengajar melalui pengulangan' yang telah terbukti."
"Pengaturcaraan ialah kemahiran abad ke-21 untuk orang perniagaan, saintis, peguam, wartawan... sesiapa sahaja yang bekerja dengan data."
Cay Horstmann, Profesor Sains Komputer, San José State University
Menjalankan penggred automatik dengan operasi bahagian belakang yang lancar
Stackdriver menyediakan keupayaan pemantauan dan diagnostik yang bagus yang membolehkan Cay menyelesaikan masalah serta memastikan pelajar menggunakan penggred automatik dengan betul. Sebagai contoh, jika pelajar cuba menjalankan program yang memadam program lain atau mematikan mesin, penggred automatik telah ditetapkan untuk menyekat perintah sedemikian. Pada masa lalu, Cay kadangkala menghabiskan masa berjam-jam untuk menyahpepijat program bagi mencari punca masalah.
Matlamat utama CodeCheck adalah untuk mengurangkan masalah untuk semua pelajar yang ingin berlatih pengaturcaraan. Pelajar tidak perlu mendaftar atau log masuk untuk menggunakan penggred automatik. Profesor boleh menyepadukan CodeCheck ke dalam sistem pengurusan pembelajaran (LMS). Pelajar boleh bekerja terus dalam LMS dan penggred automatik akan menghantar markah pelajar. Cloud SQL menjejaki tempoh pelajar mengerjakan tugasan dan membuat sandaran secara automatik. Penyepaduan ini membolehkan pelajar mengklik "Rekodkan markah saya" untuk menyerahkan tugasan, lantas memudahkan penyerahan program untuk profesor dan pelajar.
"Apabila pengaturcaraan menjadi kemahiran untuk masa depan, bukannya kemahiran untuk pembangun, jabatan sains komputer perlu beradaptasi agar pelajar dapat belajar mengikut kemampuan mereka sendiri," kata Horstmann. "CodeCheck membolehkan pelajar mencabar diri mereka untuk terus belajar di luar bilik darjah."