Saya mendapat kesenangan dan kesempatan untuk melakukan salah satu hobi favorit saya dalam dua tahun terakhir, yaitu mengajar. Saya mendapat kesempatan untuk mengajar beberapa topik berbeda di bidang ilmu komputer, mulai dari kursus pengantar hingga kursus divisi atas, dan saya telah melihat pola yang ada di kalangan siswa yang menjadi teka-teki bagi saya terutama di kelas divisi atas.
Salah satu fakta mengejutkan yang saya perhatikan adalah bahwa sebagian besar siswa memiliki sedikit atau tidak memiliki pengalaman praktis dalam pengembangan perangkat lunak, terutama di kelas divisi atas. Artinya, mereka belum diberi kesempatan yang cukup untuk mengerjakan proyek guna meningkatkan dan menyempurnakan keterampilan pemrograman mereka di kelas divisi bawah, dan ketika mereka mengambil mata kuliah seperti Rekayasa Perangkat Lunak, kebanyakan dari mereka tidak memiliki kemampuan untuk berkreasi. sistem yang berfungsi penuh dari awal.
Sekarang saya dapat memahami jika ini adalah tahun pertama bagi siswa tersebut dan mereka baru saja memulai dan mengenal bahasa komputer pertama mereka serta semua alat dan lingkungan yang tersedia bagi mereka. Dan dapat dimengerti juga bahwa terdapat berbagai tingkat siswa dengan tingkat keterampilan dan motivasi yang berbeda pula. Namun berada di tingkat divisi atas dan masih merasa tidak nyaman dengan dasar-dasarnya sedikit menakutkan bagi saya.
Hal yang juga saya perhatikan dan sejujurnya mengejutkan saya adalah bahwa sebagian besar siswa yang baru memulai kurikulum ilmu komputer tidak memiliki pemahaman tentang apa itu ilmu komputer. Mungkin ini pernyataan yang tidak adil, Anda mungkin berpendapat bahwa mereka masih ragu atau ragu-ragu, tapi menurut saya bukan itu masalahnya. Jika Anda mengikuti kurikulum sains atau teknik, maka ada hal-hal tertentu yang penting untuk diketahui siswa, seperti landasan yang baik adalah matematika dan fisika.
Mungkin sekali lagi, masalahnya adalah bagaimana kita mempersiapkan generasi muda kita di tahun-tahun awal kehidupan mereka.
Misalnya, sebagai bagian dari kurikulum ilmu komputer, siswa diharuskan mengambil mata kuliah Rekayasa Perangkat Lunak. Saya tidak akan membahas apa itu rekayasa perangkat lunak, namun untuk mencerahkan Anda, berikut uraian dari Wikipedia: Rekayasa perangkat lunak (SE) adalah penerapan pendekatan yang sistematis, disiplin, dan terukur terhadap desain, pengembangan, pengoperasian, dan pemeliharaan. perangkat lunak, dan studi tentang pendekatan ini; yaitu penerapan rekayasa pada perangkat lunak. Istilah rekayasa perangkat lunak pertama kali muncul pada Konferensi Rekayasa Perangkat Lunak NATO tahun 1968 dan dimaksudkan untuk memancing pemikiran mengenai “krisis perangkat lunak” yang dirasakan pada saat itu. Pengembangan perangkat lunak, istilah yang banyak digunakan dan lebih umum, tidak selalu mencakup paradigma rekayasa.
Di kelas seperti itu, siswa diharapkan memiliki pemahaman yang baik tentang setidaknya satu bahasa pemrograman seperti JAVA, C#, C++ dan lain-lain… serta pemahaman yang baik tentang Metodologi dan Desain Berorientasi Objek. Selain keterampilan pemrograman, siswa harus memiliki pemahaman yang baik tentang struktur data dan algoritma. Jangan lupa, Program = Struktur Data + Algoritma! Ini juga akan membantu jika siswa memiliki pengetahuan database dan lain-lain…
Ini hanyalah beberapa keterampilan teknis yang harus mereka miliki dan terus sesuaikan setiap hari. Aspek yang lebih penting dari ilmu komputer tidak ada hubungannya dengan pemrograman JAVA atau C# atau semacamnya. Ini ada hubungannya dengan kemampuan ANALISIS dan PEMECAHAN MASALAH!
Di kelas terakhir saya, saya telah membentuk enam tim berbeda yang masing-masing terdiri dari tiga anggota. Setiap kelompok diberi pilihan untuk membuat proyek mereka sendiri untuk dirancang dan dikembangkan selama kursus, dan jika mereka tidak dapat melakukannya, saya akan menugaskan mereka sebuah proyek.
Para siswa sangat pandai dalam mendefinisikan proyek mereka sendiri. Kami memiliki beragam proyek mulai dari Sistem Manajemen Rumah Sakit, Sistem Manajemen Hotel, hingga aplikasi iPAD untuk Belanja Ritel dan Inventaris, hingga aplikasi Android untuk permainan 2D sederhana, hingga Sistem Manajemen Pembelajaran di web, dan pembuatan aplikasi berbasis Windows MIME yang disesuaikan.
Sekarang saatnya untuk memulai transaksi sebenarnya! Mari mulai Merekayasa Produk kita!
Sepanjang kursus siswa bertanggung jawab untuk menentukan: persyaratan dan spesifikasi, desain dan implementasi, dan akhirnya pengujian dan rilis (demo) proyek perangkat lunak mereka.
Hal yang mengejutkan bagi saya adalah sebagian besar siswa tidak tahu harus mulai dari mana! Mengingat suatu masalah tertentu, bagaimana seseorang mengambilnya dan membedahnya menjadi bagian-bagian yang lebih kecil agar dapat menyelesaikannya dalam porsi kecil dan menghasilkan solusi akhir dengan metode bagi dan taklukkan!
Seperti disebutkan, beberapa tim melakukan pekerjaan dengan sangat baik di setiap langkah, dan tim lainnya memulai dengan lemah, lalu meningkatkan upaya dan efektivitas mereka sepanjang kursus. Seperti yang Anda lihat, proyek-proyek itu sendiri agak rumit bagi siswa dan semuanya memerlukan pengetahuan tentang Desain Antarmuka Pengguna yang baik, Desain Berorientasi Objek, Desain Basis Data, dan sebagian besar semacam Komunikasi Jaringan!
Beberapa siswa bahkan tidak memiliki keterampilan pemrograman apa pun, dan faktanya, mereka tidak terlalu peduli dalam menginvestasikan waktu untuk mempelajarinya! Mengandalkan sebagian besar rekan-rekan mereka untuk aspek teknis proyek! Sekarang kita tidak boleh mengharapkan setiap orang menjadi seorang guru, tapi mereka setidaknya harus menunjukkan minat dan memiliki motivasi diri untuk belajar sendiri.
Secara keseluruhan mayoritas siswa di kelas adalah pekerja keras dan mereka benar-benar mencurahkan banyak waktu dan tenaga dalam proyeknya masing-masing. Kebanyakan dari mereka ingin belajar dan tertantang. Mereka hanya kekurangan keterampilan yang diperlukan sebelum mengambil kelas ini.
Ada banyak keterlibatan siswa dalam kelas khusus ini, dan hal ini memberikan banyak tekanan pada siswa untuk mendorong diri mereka sendiri dan menjadi memiliki motivasi diri dan memulai sendiri. Dan itulah tujuan saya tidak hanya di kelas ini tetapi di semua kelas saya. Saya ingin siswa saya bekerja lebih keras dan berpikir lebih besar serta mengeksplorasi lebih banyak bidang dan ide karena ini adalah satu-satunya cara untuk tumbuh dan kompetitif di kemudian hari dalam karier profesional mereka.
Saya sendiri mempelajari cara dan metode yang lebih baik untuk mengajar dan berinteraksi dengan siswa setiap semester. Saya harap para siswa juga melakukan upaya yang diperlukan untuk memperluas wawasan mereka tidak hanya selama kelas, tetapi juga di luar kelas!