Banyak yang akrab dengan Scratch - sebuah lingkungan pemrograman anak-anak, pelatihan di mana biasanya bermula untuk menciptakan proyek-proyek kreatif dengan prinsip "dari yang sederhana sampai yang kompleks". Pada saat yang sama, "pendekatan klasik" untuk mempelajari pemrograman (variabel β cabang β loop β fungsi β struktur β objek β ...) di Scratch sulit.
Namun, mengubah urutan konsep belajar (sebut saja konsep) pemrograman struktural, objek dan acara, menyembunyikannya di balik sprite cerah dan animasi interaktif tidak berarti bahwa konsep tidak boleh ditekankan. Apalagi jika tujuannya bukan pengembangan kemampuan kreatif seperti pelatihan dalam pemrograman.
Saya mencoba untuk merefleksikan ide ini dalam
kursus saya.
Hal pertama yang dihadapi oleh seorang scratcher pemula adalah sprite. Meskipun Scratch sendiri tidak memiliki pemrograman berorientasi objek, sprite dapat dianggap sebagai objek. Pada tahap ini, siswa melihat bahwa ada banyak objek dalam program yang perilakunya dikendalikan oleh skrip di luar mereka. Sprite menerima perintah atau mengirimkan informasi tentang statusnya sesuai permintaan, yaitu pemrograman untuk mengelola objek.
Hal kedua yang langsung jatuh ke Scratch di kepala seorang programmer muda adalah konsep multithreading. Setiap sprite dapat memiliki beberapa skrip dieksekusi secara bersamaan. Beberapa sprite juga dapat menjalankan program mereka secara bersamaan satu sama lain. Dan ternyata menjadi lebih sulit untuk mengatur eksekusi berurutan.
Sudah dalam pelajaran pertama, kita tidak bisa menghindari untuk mengetahui siklusnya. Kalau tidak, kucing tidak akan lari. Pada tahap ini, kenalan harus dibiarkan intuitif dan dangkal. Kami membatasi itu pada siklus "selalu ulangi" dan "ulangi ... kali", yang lebih mudah dimengerti. Loop bersyarat dipelajari dalam pelajaran yang khusus didedikasikan untuk loop. Pelajaran ini membutuhkan pengetahuan tentang ekspresi dan variabel logis.
Karena Scratch adalah lingkungan yang digerakkan oleh peristiwa, lebih mudah untuk mempelajari blok pernyataan bersyarat sebelum variabel. Suatu kondisi dapat berupa peristiwa-peristiwa tertentu.
Menurut saya, urutan seperti itu lebih baik, karena untuk setiap pelajaran kami memperkenalkan konsep minimum. Dan tidak abstrak, tetapi langsung melihat manfaat praktisnya.
Jika Anda mempelajari variabel terlebih dahulu, maka tujuan dan manfaatnya sulit ditunjukkan, karena operator bersyarat, entri data, dan pembuatan angka acak belum pernah dipelajari sebelumnya.
Dalam Scratch, terlepas dari daftar, seorang programmer dihadapkan dengan tiga tipe data: angka, string, dan tipe boolean. Dalam hal ini, jenisnya terkait dengan nilai, bukan variabel. Mengubah string ke angka dan sebaliknya tidak diperlukan. String tidak terlampir dalam tanda kutip.
Blok yang mengembalikan nilai logis dan memiliki bentuk sudut karakteristik dapat dimasukkan ke bidang bulat. Kebalikannya tidak benar: di mana ekspresi logis diasumsikan, Anda tidak bisa memasukkan variabel biasa.
Scratch diimplementasikan sehingga tidak ada kesalahan kritis yang terjadi selama eksekusi. Karena itu, jika Anda mencoba menggunakan string dalam operasi aritmatika, itu diganti dengan nol (lihat layar pertama).
Programmer harus tahu bahwa kemampuan bahasa pemrograman diperluas oleh perpustakaan. Saat bekerja di Scratch, seorang siswa dapat menambahkan ons yang menambahkan tim baru ke lingkungan.
Fungsi dalam Gores diimplementasikan di bagian "Blok Lain", di mana di satu sisi Anda membuat blok Anda sendiri yang dapat dimasukkan ke dalam skrip lain. Di sisi lain, mereka harus merakit fungsi unit ini, yaitu, apa yang akan dilakukannya.
Tidak ada nilai balik dari fungsi awal.
Dengan demikian, studi konsep pemrograman dalam lingkungan yang berorientasi peristiwa meninggalkan jejaknya. Faktanya, pertama-tama kita mempelajari konsep yang lebih kompleks dan abstrak dan, hanya mempelajari prosesnya, beralih ke elemen pemrograman struktural. Plus atau minus untuk kenalan pertama adalah titik diperdebatkan.