- Dalam 12 sesi pelajaran pemrograman untuk siswa SMP dan SMA, dipilih Forth, bahasa konkatenatif berbasis stack yang muncul pada 1970, agar fokus pada konsep dasar daripada sintaks
- Dengan piring kertas, siswa menjalankan sendiri struktur last-in first-out dan operasi sebelum memindahkannya ke komputer, sehingga mereka memahami cara kerja interpreter Forth secara fisik
- Di Easy Forth yang tidak perlu instalasi, gambar, animasi, dan game dijadikan tugas akhir; siswa mengubah aturan dan warna Snake atau menyelesaikan karya berbasis piksel
- Forth memiliki beban sintaks yang rendah, tetapi pemula harus sejak dini berurusan dengan struktur level rendah seperti stack; untuk kelas pengantar, Scratch yang memberi umpan balik visual langsung mungkin lebih baik
- Yang penting bukan bahasa tertentu, melainkan lingkungan yang memungkinkan hasil cepat dilihat dan dieksplorasi sendiri; seiring meningkatnya risiko ketergantungan pada LLM membuat orang tidak mempelajari atau mempertahankan keterampilan, pendidikan yang berpusat pada manusia makin dibutuhkan
Alasan Memilih Forth
- Alih-alih Python atau Scratch, dipilih Forth, bahasa konkatenatif berbasis stack, untuk menjajaki jalur pendidikan yang jarang dicoba
- Dengan waktu kelas yang terbatas, tujuannya adalah menghindari beban mengajarkan sintaks agar bisa membahas konsep dasar
- Python terbaca seperti pseudocode bagi orang yang sudah berpengalaman memrogram, tetapi tetap sulit dipahami bagi orang yang baru belajar
- Kandidat bahasanya adalah Forth dan Haskell
- Forth menarik karena menjalankan perintah sesuai urutan penulisannya, sehingga jika memahami stack, seseorang dapat membuat program
- Haskell cocok dengan konsep variabel dan fungsi yang dipelajari dalam matematika, sehingga dapat menghindari kebingungan dari cara pemrograman umum yang memperlakukan variabel sebagai kotak penyimpan nilai
- Pada akhirnya Forth dipilih karena dua alasan
- Mudah diintegrasikan ke lingkungan belajar khusus
- Untuk demonstrasi akhir di kelas, pemrograman prosedural dinilai lebih mudah dipahami daripada pemrograman fungsional
- Menggunakan bahasa yang kurang dikenal memungkinkan siswa yang sudah punya pengalaman pemrograman tetap belajar hal baru, sementara pemula juga tidak merasa tertinggal
Perancangan Kurikulum 12 Jam
- Kelas berlangsung seminggu sekali, masing-masing 1 jam, total 12 sesi, dan tidak diharapkan banyak tugas di luar kelas
- Tujuan akhirnya adalah membuat sendiri salah satu dari gambar, animasi, atau game di lingkungan Forth
- Setelah proses selesai, ingin meninggalkan hasil yang bisa dilihat dan disimpan
- Ini untuk menghindari situasi ketika siswa merasa telah mempelajari banyak hal teknis tetapi tidak memiliki sesuatu yang nyata di tangan
- Karena tiap siswa memakai sistem operasi berbeda dan sebagian perangkat tidak bisa dipasangi software eksternal, kode harus bisa dijalankan di komputer masing-masing tanpa unduhan atau instalasi terpisah
- Awalnya ada rencana mengimplementasikan sendiri Forth dengan Rust dan menanamkannya ke situs web kelas lewat WASM, tetapi perbaikan bug memakan waktu lebih lama dari perkiraan sehingga rencana diubah
- Easy Forth dari Nick Morgan diadopsi sebagai kurikulum sekaligus interpreter, lalu slide per kelas, rencana pelajaran, dan salinan Easy Forth diunggah ke portal online
Kelas yang Dimulai dari Konsep Komputer
- Pada pelajaran pertama, pembahasan dimulai dari sejarah komputasi dan apa itu komputer
- Berbagai alat, termasuk sempoa, ditunjukkan lalu siswa ditanya apakah itu komputer; kemudian komputer didefinisikan sebagai “apa pun yang menghitung angka”
- Dengan definisi ini, hampir apa saja bisa menjadi komputer, termasuk para siswa sendiri
- Setelah memperluas pemahaman awal tentang cakupan komputer, Forth, bidang penggunaan nyata, dan aplikasi embedded diperkenalkan
- Easy Forth mengasumsikan pembaca sudah mengetahui setidaknya satu bahasa pemrograman dan struktur data stack, tetapi siswa belum memiliki pengetahuan tersebut sehingga perlu penjelasan terpisah
Memahami Data Stack dengan Piring Kertas
- Sebelum menggunakan komputer, data stack yang menjadi dasar Forth divisualisasikan dengan piring kertas
- Angka yang dipisahkan spasi masuk ke stack sesuai urutan input
- Jika memasukkan
1 2 3lalu mencetak dengan. . ., item terakhir yang masuk keluar lebih dulu sehingga menjadi3 2 1 - Stack adalah struktur last-in first-out; operasinya berpusat pada push, yaitu memasukkan item ke atas, dan pop, yaitu mengambil item dari atas
- Jika memasukkan
- Setiap siswa menerima piring kertas dan menjalankan operasi Forth secara langsung
- Saat melakukan push angka, mereka menulis angka di piring dan menaruhnya di paling atas
- Saat penjumlahan, mereka mengambil dua piring teratas, menjumlahkannya, lalu menaruh piring baru berisi hasil di atas
8 6 +adalah operasi yang memasukkan dua nilai, menjumlahkannya, dan menaruh14di stack2 3 *menaruh hasil perkalian dua nilai, yaitu6, di stack
- Dengan mengulang berbagai operasi, siswa sendiri berperan sebagai interpreter Forth
- Setelah memahami bahwa komputer mengotomatiskan pekerjaan ini, kelas beralih ke perangkat sungguhan
Praktik Easy Forth dan Karya Akhir
- Setiap minggu, kelas mengikuti pelajaran Easy Forth dengan penjelasan konsep, soal latihan, dan tanya jawab; seluruh proses berjalan tanpa masalah khusus
- Sebagai proyek akhir yang harus selesai dalam total 12 jam sekaligus menunjukkan materi yang dipelajari, digunakan framework grafis Easy Forth
- Siswa bisa membuat gambar, animasi, atau game
- Karena waktu mungkin tidak cukup untuk menyelesaikan game baru, mereka disarankan memodifikasi game Snake bawaan agar menghasilkan karya orisinal
- Kode playground Easy Forth diekstrak ke halaman terpisah dan diperluas agar satu sisi menampilkan kode sementara sisi lain menampilkan area grafis besar
- Pada pelajaran terakhir, siswa cepat menemukan bahwa dengan sedikit mengubah kode Snake saja, aturan dan warnanya ikut berubah
- Mereka belum berada pada tingkat melakukan refactoring besar, tetapi sudah cukup terbiasa untuk mengeksplorasi dan memodifikasi Forth tanpa takut
- Ditunjukkan cara menggambar objek dengan grafis bawaan serta contoh membuat kata baru yang memudahkan menggambar bentuk seperti garis
- Semua siswa memilih karya masing-masing, dan sebagian besar membuat gambar pada tingkat piksel
- Setelah proses selesai, lingkungan tersebut tetap dipertahankan online selama beberapa waktu agar siswa dapat terus bereksperimen dan belajar jika mau
Penilaian dari Pengajaran Forth
- Forth adalah bahasa pendidikan yang menarik, tetapi belum pasti apakah itu pilihan terbaik
- Meski tidak memiliki sintaks yang rumit, pemula harus memikirkan sendiri elemen sistem yang oleh banyak programmer biasanya ditempatkan di bawah abstraksi
- Stack adalah struktur data dasar dalam ilmu komputer, tetapi tidak harus ditempatkan paling awal dalam pendidikan awal
- Kemampuan menulis kode sebagai rangkaian kata sangat kuat, dan bahasa konkatenatif dengan komponen yang lebih tingkat tinggi juga bisa berguna untuk pendidikan
- Bahasa seperti Factor atau pendekatan yang sepenuhnya berbeda bisa menjadi kandidat
- Jika harus memilih lagi, media yang berfokus pada umpan balik visual yang jelas dan langsung, bukan struktur internal, mungkin akan dipertimbangkan
- Scratch dapat mengajarkan control flow, variabel, fungsi, dan sebagainya tanpa detail level rendah, serta memudahkan menggerakkan sprite
- Bahasa pemrograman tertentu itu sendiri tidak terlalu penting, dan dalam proses singkat pun siswa dapat mempelajari Forth secara efektif
- Paradigma yang cocok bisa berbeda untuk setiap siswa, sehingga sulit menyetel proses belajar secara sempurna
- Lingkungan yang memungkinkan hasil dilihat dengan cepat dan berulang serta dieksplorasi secara mandiri itu penting
- Siswa mendapatkan pengalaman pengantar level rendah yang memberi pemahaman mendalam tentang struktur data dasar ilmu komputer
- Bagi pengajar, ini juga menjadi kesempatan memperbaiki metode mengajar lewat jenis pembelajaran iteratif yang sama seperti yang diminta dari siswa
Pembelajaran Berpusat pada Manusia yang Dibutuhkan di Era LLM
- Semakin pemrograman digerakkan oleh otomatisasi probabilistik, semakin penting mengajarkan manusia cara memrogram secara langsung
- Orang yang sudah tahu pemrograman pun jika bergantung pada LLM dapat mengalami kemunduran keterampilan, dan orang yang tidak belajar sejak awal mungkin tidak pernah membentuk keterampilan tersebut sama sekali
- Orang yang ingin mempelajari keterampilan baru juga makin sering menggunakan LLM alih-alih materi bereputasi
- LLM bisa tidak akurat, memiliki kecenderungan menjilat pengguna, dan dalam sebagian kasus dapat memperparah gangguan mental secara serius
- Bagi anak-anak yang sedang berada pada tahap belajar cara berinteraksi dengan dunia, karakteristik semacam ini jauh lebih berbahaya
- Kita harus menyediakan lingkungan yang berpusat pada manusia agar siapa pun, apa pun latar belakangnya, terutama anak-anak, dapat mempelajari keterampilan seperti pemrograman
- Orang-orang dari berbagai latar belakang perlu meluangkan waktu dan energi untuk berbagi pengetahuan, sekaligus mengajarkan cara memperoleh pengetahuan tambahan dengan aman
- Meski bukan guru profesional, kita perlu belajar cara mengajar dan menciptakan ruang tempat pengetahuan dapat mengalir bebas antarmanusia
1 komentar
Opini di Lobste.rs
Easy Forth tampak seperti materi yang bagus, dan saya merekomendasikan semua programmer meluangkan 10 menit untuk mencoba Forth. Bahasa ini sangat sederhana untuk dipelajari, sekaligus terasa akrab namun mengguncang cara berpikir, dan juga mudah diimplementasikan saat harus buru-buru membuat bahasa tingkat tinggi dari nol
DOES>tidak demikianMengimplementasikan Forth itu menyenangkan, tetapi semakin banyak kode yang saya tulis, semakin saya tidak menyukainya. Karena kata-kata noise seperti
DUP,ROT,SWAP, sulit mengikuti alurnya, dan bahasa ini juga cenderung mendorong penggunaan variabel global yang tidak saya sukaihttps://archive.ph/0ZOVa