Mengajarkan Computational Thinking dan Coding Pada Anak-Anak

Saya tidak akan menjelaskan panjang lebar apa itu Computational Thinking. Sudah ada banyak materi online, bahkan kursus online dari Google juga ada. Computational Thinking adalah cara berpikir untuk menyelesaikan masalah yang diinspirasi dari cara orang menyelesaikan masalah di ilmu komputer. Computational thinking perlu dipakai untuk membuat program komputer, tapi juga bisa diaplikasikan ke berbagai bidang lain.

Computational thinking bisa dan perlu diajarkan pada orang di berbagai usia, tapi saya hanya akan berfokus pada anak-anak di posting ini.  Mungkin sebagian akan langsung berpikir: anak-anak kok diajari seperti itu, harusnya diajari seni, kreativitas, agama, sopan-santun, dsb. Pencetus istilah computational thinking pernah menyatakan ini:

I FEEL VERY DEEPLY COMMITTED TO THE IDEA that, although rationality isn’t everything, and passion and interests and faith of various sorts count as much–nevertheless, rationality is a force for the good, and the more people that are capable of rational, critical thinking–the better the world will be; the more that have access to knowledge about the rest of the world–the better the world will be.”

–Seymour Papert, Mathematician, Computer Scientist, Educator

Computational thinking menurut saya adalah life skill yang berguna untuk mempermudah hidup. Berbagai pendekatan menyelesaikan masalah dalam computational thinking bisa diaplikasikan dalam kehidupan sehari-hari. Misalnya bagaimana menyusun buku secara terurut, bermain sudoku, bermain catur, merencanakan perjalanan, menyusun jadwal. Bahkan membaca cerita detektif dan misteri akan lebih menyenangkan jika kita memiliki cara berpikir yang logis.

Saat ini ada inisiatif internasional yang bernama Bebras yang memperkenalkan computational thinking kepada pelajar mulai sekitar kelas 3 SD sampai usia SMU. Berbeda dengan olimpiade informatika atau coding challenge yang perlu memprogram, dan olimpiade matematika yang sangat teoretis, tantangan Bebras berada di antara keduanya.

Walaupun saya tidak meminta Jonathan jadi programmer, tapi karena dia melihat saya tiap hari berada di depan komputer, ngoprek segala macam hardware, termasuk membuatkan dia berbagi mainan, dia jadi curious. Jadi pelajaran yang saya berikan pada Jonathan lebih banyak untuk menjawab keingintahuannya. Hal penting bagi saya saat ini adalah: saya tidak ingin memaksakan kemampuan Jonathan dan membebaninya dengan hal yang kompetitif.

Saya memakai layar di kiri, sambil membuka file PDF di layar kanan untuk diketik ulang oleh Jonathan di laptop kecil.

Topik seperti matematika dianggap sulit, tapi sebenarnya bisa dijelaskan pada anak-anak dengan banyak pengalaman sehari-hari. Hal-hal kecil seperti menghitung benda yang kita miliki, menghitung kembalian, dan menghitung waktu bisa diajarkan. Misalnya kita bisa bertanya seperti ini “kira-kira butuh 10 menit untuk pergi ke sana, jadi kita perlu berangkat jam berapa?”.

Joshua berlari dari kami sambil mempraktikkan matematika: menghitung ada berapa bus yang bisa diparkir di tempat parkir ini.

Demikian juga halnya computational thinking: pada anak-anak ini bisa diajarkan dengan hal-hal praktis. Supaya tidak terlalu banyak hal yang sifatnya teori, contoh hal praktis yang bisa diajarkan dari sejak kecil yang merupakan aplikasi dari computational thinking misalnya:

  •  belajar berpikir mengenai urutan, dan apa konsekuensinya jika kita melakukan sesuatu dalam urutan tertentu
  • belajar melihat suatu masalah dari belakang atau tengah (tidak harus selalu dari depan)
  • belajar membagi masalah menjadi bagian yang lebih kecil

Coding Apps

Computational thinking tidak butuh komputer. Meskipun demikian banyak hal akan lebih mudah dijelaskan menggunakan komputer. Coding merupakan aplikasi dari computational thinking dalam bentuk membuat kode program. Cara termudah (dan juga termalas) dalam mengajarkan coding adalah melalui berbagai aplikasi yang ada, baik di PC maupun tablet. Contoh aplikasi semacam ini misalnya: Code Spark Academy with the Foos, Scratch, Scratch Jr.

Beberapa aplikasi, seperti Scratch (ini aplikasi Desktop) sangat serius, dan perlu dasar matematika (aritmatika, sistem koordinat). Pendekatan visual kadang bagus untuk menyelesaikan kelas masalah tertentu, tapi sulit di kelas masalah yang lain (misalnya substitution cipher). Saya bisa menunjukkan bahwa program yang saya buat (program beneran) juga menggunakan “if”, “while”, dsb dan membandingkannya dengan notasi Scratch.

Sementara Scratch jr lebih ditujukan untuk menyampaikan cerita.  Misalnya jika saya menceritakan lelucon ke Jonathan, dia bisa membuat ulang joke-nya dalam bentuk cerita di Scratch Junior. Tapi ada batasan kerumitan cerita yang bisa dibuat oleh seorang anak dengan medium seperti ini.

Beberapa aplikasi terlalu menekankan pada aspek “fun” (misalnya Code Spark Academy with the Foos) yang akhirnya anak-anak jadi bermain tapi tidak belajar, dan ilmu yang didapat terbatas. Bahkan sejak usia Joshua lewat 2 tahun dia sudah bisa menyelesaikan banyak level di Code Spark Academy dengan “brute force” (nggak bisa ke kanan? kalau begitu dicoba ke atas. nggak bisa ke atas ? kalau begitu dicoba ke kiri).

Kami juga memiliki mainan Osmo. Benda ini pernah kami bahas di posting ini. Osmo memberikan aspek interaksi fisik pada aplikasi iPad. Salah satu permainannya adalah coding. Ini juga terlalu sederhana, sekedar berpikir beberapa langkah ke depan.

Permainan

Pendekatan offline yang paling sederhana dan bagus adalah melalui permainan yang mengajarkan berpikir. Contohnya: sudoku, catur, dan berbagai board game. Cara ini bagus, tapi membutuhkan investasi waktu yang cukup banyak dari orang tua.

Jonathan tidak memiliki niat untuk belajar sangat dalam mengenai catur, tapi dia cukup suka untuk memahami berbagai gerakan biji catur dan aturan catur. Ini merupakan contoh baik mengenai aturan (“if” di dunia komputer). Komputer bisa diajak bermain catur, tapi untuk tujuan belajar input dari orang lain ketika bermain catur akan lebih berguna. Misalnya: kamu yakin kamu mau menggerakan pion itu?

Sudoku ukuran kecil untuk belajar. DI baliknya ada ukuran penuh 9×9.

Ketika saya mencobakan soal bebras, ada beberapa soal yang pada dasarnya mirip sudoku. Begitu mengenali ini, dia bisa menyelesaikannya dengan cepat. Untuk anak-anak ada versi sudoku yang lebih kecil (bukan 9×9). Aturan sudoku sangat sederhana, dan bisa diajarkan dengan cepat. Tapi yang dibutuhkan oleh anak-anak adalah input dari orang tua untuk mengenal berbagai strategi yang ada, misalnya: coba kamu cari dulu, mana baris atau kolom yang punya 1 kotak kosong.

Board game yang kami miliki yang berusaha mengajarkan pemrograman adalah: Code Monkey Island. Menurut saya game ini cukup fun, tapi dari sisi programming kurang berhasil mengajari programming selain masalah kondisi (“if”).

 

Buku

Pendekatan offline lain  adalah melalui buku. Ada banyak buku menarik yang bisa dibaca oleh anak-anak, berikut ini review singkat dari beberapa buku yang kami miliki (mungkin di lain waktu kami akan menuliskan lebih dalam).

Buku Lift-the-flap computers and coding mengajarkan tentang dasar komputer. Isinya hanya fakta-fakta dan cerita yang menurut Jonathan cukup lucu.

Buku Coding for beginners using Scratch. Jonathan sudah meniru beberapa program dari buku ini, tapi sejauh ini kurang berkesan.

Buku seri micro adventures. Ini buku sangat lama, dan bentuknya novel yang disisipi kode dalam bahasa BASIC. Entah kenapa Jonathan justru sangat tertarik dan terkesan dengan berbagai program BASIC. Contohnya dia mengetik program BASIC untuk mendecode string (caesar cipher), dan ketika dia melihat ada puzzle semacam itu di buku lain, dia ingat programnya, dia ingin memakai programnya, dan juga dia mengerti untuk memodifikasi program dari enkrip menjadi dekrip dengan mengubah plus atau minus N.

Selain buku untuk anak-anak, buku  Mindstorms: Children, Computers, And Powerful Ideas patut dibaca oleh guru dan orang tua. Buku ini ditulis tahun 1980 dan direvisi tahun 1993. Buku ini ditulis oleh Seymour Papert, salah satu pionir AI, yang pernah bekerja sama bertahun-tahun dengan Jean Piaget, seorang psikolog dan filosofer yang terkenal karena studi epistemologi pada anak-anak (epistemologi adalah teori  mengenai pengetahuan). Jadi buku ini dituliskan oleh orang yang benar-benar mengerti ilmu perkembangan anak, dan yang benar-benar mengerti mesin.

Materi online

Sudah ada banyak materi online untuk mengajarkan pemrograman dan computational thinking. Berikut ini beberapa linknya (sebagian saya tahu ini dari Bu Inge yang terlibat aktif di Bebras Indonesia).

Untuk yang berbahasa Indonesia situs Bebras Indonesia berisi berbagai informasi Bebras dan, Olympia.id berisi materi dan contoh soal bebras.

CS Unplugged (dari University of Canterbury, New Zealand)  berisi berbagai kurikulum dan materi untuk berbagai usia. Sesuai namanya “unplugged”, tidak dibutuhkan komputer untuk belajar materi di situs tersebut. Materi yang ada perlu dibaca oleh pengajar dan diajarkan ke anak-anak, bukan kita serahkan langsung materinya ke anak-anak.

Dari jaman dulu BBC memiliki misi edukasi yang sangat baik. Di situs BBC ada topik Computational Thinking. Sama seperti CS Unplugged, materi yang ada perlu dibaca oleh pengajar dan diajarkan ke anak-anak.

Untuk pemrograman yang praktis, ada banyak situs, salah satunya adalah code.org. Di sini beberapa pelajaran langsung bisa diberikan ke anak (ada video dan teks yang bisa dibaca oleh anak-anak).

Banyak situs lain juga yang sangat abstrak tapi mungkin cocok untuk para guru agar lebih memahami konsep belajar di abad yang baru.

Penutup

Sebagai homeschooler kami tidak perlu menunggu sekolah untuk mengupdate dirinya dengan ilmu computational thinking.  Bagi kami topik ini juga cukup natural karena kami berdua memiliki background teknik informatika, jadi lebih mudah bagi kami menyisipkan topik computational thinking ini dalam pelajaran sehari-hari.

Di posting lain saya akan mencoba lebih banyak memberikan contoh-contoh praktis mengajarkan computational thinking dan mungkin juga akan membahas lebih detail berbagai aplikasi, buku, dan website yang pernah kami coba.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.