4 poin oleh GN⁺ 2023-11-23 | 1 komentar | Bagikan ke WhatsApp
  • Pickcode adalah IDE online untuk kelas ilmu komputer di sekolah menengah pertama dan atas, yang bertujuan menjadi platform sederhana dan stabil untuk mengurangi waktu yang dihabiskan guru dalam mengelola kelas
  • Dukungan Chromebook, pemantauan pekerjaan siswa, kolaborasi real-time, dan pemeriksaan riwayat kode adalah fitur utama untuk manajemen kelas
  • Guru dapat menyesuaikan dan mengatur materi pelajaran serta tugas, dan Pickcode secara eksplisit menyatakan tidak memiliki fitur bantuan kode AI
  • Ada penilaian dari guru bahwa alat ini membantu siswa menjadi lebih mudah mengakses dan bekerja secara mandiri dalam kelas Java, Web Development, Python, dan AP Computer Science Principles
  • Karena lebih berfokus pada pembuatan kelas dan manajemen siswa daripada IDE profesional yang kompleks, alat ini dapat dilihat sebagai opsi untuk mengurangi distraksi di lingkungan kelas

IDE online yang disesuaikan untuk ruang kelas

  • Pickcode adalah IDE online untuk kelas CS di sekolah menengah pertama dan atas
  • Menekankan platform yang sederhana dan stabil agar guru dapat menghemat waktu pengelolaan kelas
  • Menyediakan jalur masuk dasar menuju halaman mulai, login, dan paket harga

Fitur operasional kelas dan respons guru

  • Fitur utama Pickcode disesuaikan untuk menjalankan pelajaran dan memeriksa pekerjaan siswa
    • Berjalan di Chromebook
    • Dapat memantau pekerjaan siswa
    • Mendukung kolaborasi real-time
    • Dapat memeriksa riwayat kode
    • Dapat menyesuaikan materi pelajaran
    • Dapat mengatur tugas
    • Tidak memiliki fitur bantuan kode AI
  • Para guru menilai antarmukanya sederhana tetapi dapat diperluas, dan disukai siswa dari berbagai kelompok usia
  • Ada contoh penggunaan dalam kelas Java, Web Development, Python, dan AP Computer Science Principles
  • Tanggapan yang disertakan menyebutkan bahwa alat ini membantu siswa menggunakan alat dengan lebih mudah, melacak pekerjaan, dan maju secara mandiri
  • Ada juga penilaian bahwa tim dukungannya cepat merespons dan membantu, serta banyak saran telah diimplementasikan

1 komentar

 
GN⁺ 2023-11-23
Komentar Hacker News
  • Saya penasaran apakah ada alasan bagus untuk benar-benar mewajibkan kata kunci var, set, dan call. BASIC tidak punya hal semacam itu, dan dari ingatan samar saya saat pertama kali belajar pemrograman waktu kecil, kata kunci seperti ini rasanya akan menjadi kompleksitas yang tidak perlu
    Misalnya di LOGO, cukup menulis forward 10, left 90, tetapi call paint.forward(10), call paint.left(90) terasa berlebihan dan berisik

    • Kata kunci itu dimasukkan agar setiap baris mudah dibaca sebagai kalimat. Khususnya pada set x = 7, kata kunci membuat jelas apakah maksudnya mengubah variabel atau menyatakan kesetaraan
      Secara teknis, dalam konteks program menggambar, forward() bisa saja dibuat sebagai metode tingkat atas, tetapi kami memutuskan membuatnya lebih berorientasi objek untuk mempersiapkan saat nanti siswa beralih ke engine game 2D dan mengendalikan beberapa sprite
    • Di sini namanya terasa agak kurang intuitif. forward dan left terlihat seperti arah gerak, terutama membingungkan ketika ingin “memindahkan” pelukis ke kiri
      Sebenarnya forward adalah menggambar/bergerak dan left adalah rotasi berlawanan arah jarum jam yang juga menerima argumen negatif, jadi call paint.draw(10), call paint.rotate(90), atau rotate("up") terasa lebih masuk akal
    • Ini mungkin menunjukkan usia saya, tetapi BASIC pertama yang saya pelajari punya perintah gosub untuk memanggil subrutin
      Sebagai catatan, karena katanya BASIC awal memang begitu, saya juga membuat nomor tautan dimulai dari 1 :)
      [1] https://picaxe.com/basic-commands/program-flow-control/gosub...
      [2] https://alandix.com/blog/2021/07/27/a-brief-history-of-array...
    • Basic yang saya pakai punya LET X=10
    • Kesan pertama saya juga sama. Saya melihat kode yang jauh lebih rumit sepanjang hari, tetapi kalau membayangkan dari sudut pandang anak kecil, rasanya noise yang tidak perlu seperti ini bisa cukup menyesatkan
  • Saya sedang memperkenalkan Godot kepada anak 10 tahun. Selama 6 bulan terakhir ia membuat game dengan Scratch dan menyukai Scratch, tetapi juga frustrasi dengan keterbatasannya
    Saya kira ia akan lebih suka memakai bahasa skrip sungguhan, tetapi begitu mulai memakai GDScript, ia cepat frustrasi karena banyaknya hal yang harus diketik. Tangannya kecil sehingga sulit belajar touch typing, dan mengetik nama variabel serta pemanggilan metode memakan waktu terlalu lama
    Ini tampaknya keseimbangan yang pas, jadi saya akan mencobanya

    • Batasan kecepatan mengetik adalah poin yang sangat bagus, dan anehnya sama sekali belum pernah terpikir oleh saya
      Saya sedang menjalankan pelajaran Python yang sangat ringan dengan anak 3 tahun, dan sempat bertanya-tanya mengapa progresnya lambat dibanding pemahamannya. Sekarang saya sadar, mengetik hal-hal seperti tanda kurung dan tanda kutip saja sudah memakan waktu lama
      Saya suka proyek ini dan tidak sabar mencobanya. Pandangan saya mulai bergeser ke arah bahwa untuk pemrograman anak-anak, semakin banyak semakin baik. Sepertinya bagus juga mengekspos mereka pada dinamika memilih di antara berbagai bahasa dan alur kerja
    • Saya penasaran, kenapa tidak memakai keyboard berukuran anak-anak?
    • Pengalaman saya juga mirip. Saya memperkenalkan Scratch kepada putra saya saat ia berusia 8 tahun, dan sekarang, 2 tahun kemudian, ia membuat game yang jauh lebih canggih dari yang saya duga
      Namun ketika saya menunjukkan bahasa pemrograman “sungguhan”, ia bilang semua itu juga bisa dilakukan di Scratch dan tidak perlu mengetik sebanyak itu
      Kami juga mencoba GameMaker bersama dan menghasilkan sesuatu yang keren, tetapi begitu saya lengah sebentar, ia kembali lagi ke proyek Scratch-nya sendiri. Kadang saya bertanya-tanya apakah akan lebih baik kalau ia, seperti saya dulu, memulai langsung dari kode sejak awal ;-)
    • Saya merasa keterbatasan Scratch ada pada tidak jelasnya bagi anak bagaimana mengelola kompleksitas ketika program menjadi terlalu besar
      Namun hanya dengan menunjukkan masalahnya dan menanyakan apa yang bisa dilakukan, anak jadi memikirkan masalah itu dan menemukan berbagai cara yang mungkin dilakukan di dalam Scratch. Misalnya membagi program menjadi beberapa objek atau agen
      Scratch jauh lebih kuat daripada yang tersirat dari kesan pertama atau program pertama
    • GDScript adalah bahasa yang sangat bagus secara mengejutkan. Dalam banyak hal lebih baik daripada Python, misalnya punya var dan const
  • Selamat atas peluncuran Pickcode. Detail penyelesaiannya bagus, dan terlihat jelas dibuat dengan perhatian
    Menurut saya, setidaknya ada dua aliran dalam pemrograman visual yang mencoba membuat pemrograman lebih mudah diakses oleh non-developer
    Sebagian upaya mengurangi beban belajar sintaks lewat antarmuka visual, tetapi tidak menyembunyikan sifat imperatif atau kebutuhan berpikir algoritmis. Pada dasarnya ini bisa dilihat sebagai IDE dengan tingkat aksesibilitas berbeda, dan saya pikir Pickcode serta Scratch masuk kategori ini
    Sisi lainnya mengeksplorasi paradigma pemrograman lain yang sampai batas tertentu bisa lebih cocok dengan metafora visual. Ini juga mendorong cara berpikir yang berbeda dari pemrograman imperatif bagi pengguna. Node-RED adalah contoh bagus untuk mengeksplorasi pemrograman berbasis alur, yang merupakan kerabat dekat pemrograman reaktif fungsional. LabVIEW juga kerabat dekat berbasis aliran data, tetapi punya lebih banyak unsur yang terasa seperti sihir. Dalam praktiknya, itu adalah default yang cukup cerdas dan penamaan variabel internal. Apple Automator juga terlintas di pikiran
    Saya tidak melihat salah satunya pasti lebih baik atau lebih buruk, tetapi saat melihat bahasa visual, berguna untuk memikirkan perbedaan antara imperatif dan reaktif karena itu sangat memengaruhi pengalaman pengguna akhir

    • Saya ingat bahwa mengajar lokakarya bahasa fungsional seperti Elm kepada pemula justru lebih mudah daripada mengajarkannya kepada para ahli. Karena pikiran pemula belum terkontaminasi semacam cara berpikir imperatif ala C
  • Poin bahwa “pengalaman mengedit kode sepenuhnya terstruktur, dan alih-alih mengetik kita memilih dari menu” itu sangat keren
    Saya berharap ada hal semacam ini untuk programmer dewasa, yaitu editor terstruktur serbaguna yang bisa dipakai untuk berbagai bahasa pemrograman. Saat memrogram, niat yang pertama muncul biasanya bersifat semantik. Mendefinisikan fungsi di sini, memeriksa kondisi di sana, dan seterusnya
    Kalau begitu, saya tidak tahu kenapa niat semantik itu tidak langsung disampaikan ke editor. Saya bertanya-tanya kenapa niat itu harus lebih dulu diserialisasi menjadi string, lalu editor harus mem-parsing-nya lagi dengan cara yang rentan error. Ruang untuk kesalahan sintaks konyol seperti salah ketik, tanda kurung tidak cocok, atau kesalahan prioritas operator jadi ikut terbuka; bukankah lebih baik kalau yang tersisa hanya error semantik?
    Editor seperti ini juga tidak harus tidak ramah keyboard. Mirip seperti Excel yang bukannya tidak ramah keyboard. Sepertinya ini juga bisa bekerja seperti input method untuk bahasa Asia Timur: mengetik di “jendela komposisi” lalu memilih dari “jendela kandidat” untuk menyisipkannya

    • Upaya seperti ini sudah banyak dilakukan. Ini lebih dekat ke “ide yang sudah dipikirkan dan dicoba oleh sangat banyak orang, tetapi langsung menabrak masalah besar” daripada “ide yang belum pernah terpikirkan siapa pun”
      Sejauh pemahaman saya, masalah besarnya dalam kasus ini adalah kita jadi ingin memberi batasan bahwa semua status perantara yang dilalui kode harus valid secara semantik. Di permukaan itu menarik, tetapi dalam praktiknya menjadi batasan yang fatal. Bahkan orang-orang hebat pun berpikir agak longgar lalu memperbaiki kode belakangan, bahkan pada level satu baris. Memaksa semuanya selalu 100% valid sangat bertentangan dengan cara berpikir nyata
      Saya cenderung melihat ketidaksesuaian ini sebagai sesuatu yang mendasar. Saya tidak tahu apakah ada sebagian kecil manusia yang berpikir dengan cara seperti ini. Bahkan matematikawan profesional pun konon dalam pekerjaan nyata sering berpikir melompat ke depan lalu mengisi ketelitian belakangan. Kalau mereka saja tidak bergerak maju secara ketat langkah demi langkah, siapa yang akan melakukannya?
      Pemrograman akhirnya menetap pada autocomplete yang memahami makna dan saran, dan besar kemungkinan itu bukan sekadar hasil dari kemalasan, melainkan titik optimal yang nyata
      Kalau ada orang yang mendorongnya sampai tuntas, mungkin masalahnya bisa terpecahkan, tetapi saya ingin mengatakan bahwa kalaupun ada buah di sini, itu bukan buah yang tergantung rendah
      Seperti yang dikatakan saurik, dunia Lisp yang menggunakan Emacs paling mendekati hal ini, tetapi tetap saja kita bisa melakukan apa pun yang kita mau. Hanya saja ada banyak alat yang membantu bekerja dengan cara yang lebih semantik, bukan sesuatu yang dipaksakan secara absolut
    • Rasanya hal seperti ini cukup banyak. Ada Scratch atau kerabatnya, Snap(https://snap.berkeley.edu/snap/snap.html), editor alur visual untuk React(https://app.flowhub.io/#project/c111454c9fd2f74d37d1e8a4e739...), serta yang mirip seperti https://retejs.org/
    • Anda bilang menginginkan hal seperti ini untuk programmer dewasa, tetapi Blythe Omnis 7 sudah ada pada 1996 atau sebelumnya. Itu adalah platform/solusi RAD yang mendukung Windows dan Macintosh
      Saya mendapat pekerjaan karena menjadi satu-satunya pelamar yang pernah mendengar tentang perangkat lunak itu. Itu berkat pernah membaca satu tulisan pendek di majalah
      https://en.wikipedia.org/wiki/Omnis_Studio
      Cara memrogram dengan mengklik daftar dropdown dan popup tidak bisa dibilang dirancang dengan baik. Programnya tampak seperti daftar, dan saat ingin mengedit satu baris, sebuah dialog modal muncul sehingga hanya baris itu saja yang bisa diperbaiki. Tentu saja tidak ada IntelliSense atau code completion
      Membayangkannya saja rasanya PTSD muncul lagi, sampai-sampai saya butuh alkohol atau rokok
    • Misalnya https://github.com/nocode-js/sequential-workflow-designer dirancang dengan cara seperti ini. Kita memrogram logika dengan menempatkan tindakan yang sudah didefinisikan sebelumnya dalam urutan yang benar, sehingga memrogram pada level tinggi
    • Sejauh yang saya tahu, orang-orang yang menangani Lisp dengan Emacs mengalami hal seperti ini. Karena mereka bisa berpikir dan bekerja dalam bentuk form, bukan sekadar teks biasa
  • Salah satu fitur favorit saya di Scratch adalah tidak bisa membuat kesalahan sintaks. Blok hanya punya dua kemungkinan: saling cocok, atau tidak cocok. Karena itu, menurut saya anak-anak bisa lebih mudah mulai bermain-main tanpa penjelasan tambahan atau les privat
    Setelah mengikuti beberapa langkah awal tutorial persegi, saya mencoba-coba sendiri dengan mengklik ini-itu, lalu terbentuk call math paint.forward() dan terjadi kesalahan sintaks. Tentu saja baris itu sampah, tetapi saya tidak berhasil memahami bagaimana perintah math seharusnya bekerja. Mungkin akan dijelaskan kalau saya mengikuti tutorial lebih lanjut, tetapi menurut saya kemudahan ditemukan juga penting

    • Scratch memang tidak memungkinkan membuat kesalahan sintaks, tetapi juga tidak protes ketika sesuatu berada di luar tempatnya. Misalnya saat memanipulasi blok lalu salah satunya terlepas, program tetap berjalan tetapi tidak bekerja dengan benar
      Kalau bloknya bertambah banyak, blok-blok itu juga bisa saling menumpuk, sehingga cukup sulit ditemukan. Ada juga masalah argumen blok yang terlewat. Program tetap berjalan, tetapi tidak berfungsi
      Pemrograman visual jelas lebih baik untuk anak-anak, tetapi menurut saya dibutuhkan pendekatan yang lebih ketat daripada Scratch dan kemampuan debugging yang lebih baik
    • Keunggulan lain dari Scratch, lebih tepatnya blok, adalah cukup mudah disesuaikan ke bahasa baru. Kami menggunakan blok agar pelanggan IoT dapat mengatur perangkat untuk bereaksi terhadap event dan mengirim event ke perangkat lain, dan semuanya diterjemahkan menjadi konfigurasi JSON yang diunggah
  • Kelihatannya sangat bagus. Ini mengingatkan saya pada masa ketika Khan Academy membuat versi berbasis blok dari editor ProcessingJS
    UI-nya agak kasar dan sulit dipelihara, jadi akhirnya dihentikan, tetapi yang ini tampak cukup mulus. Saya suka karena ini menyediakan lebih banyak jalan bagi programmer baru untuk masuk ke pemrograman bertipe. Menurut saya sebagian besar block coding juga terlalu jauh dari kode sungguhan

    • UI editor blok seperti ini semestinya bisa dihasilkan otomatis dari deskripsi abstrak tata bahasa seperti yang digunakan oleh parser tree-sitter
      Kadang pengeditan berbasis blok seperti ini juga digabungkan dengan type checking sehingga “lubang” dapat diisi secara cerdas berbasis kueri. Mungkin ini paling jelas terlihat pada editor untuk bahasa fungsional murni seperti Agda
  • Teringat BASIC di ZX81. Tidak mengetik keyword; keyboard khusus punya tombol untuk tiap keyword
    Editornya context-sensitive, atau dengan kata lain penggunanya sendiri adalah lexer yang dipandu parser. Saat itu, rasanya agak seperti sulap untuk mengetahui apakah kita sedang memasukkan kata/angka atau keyword, dan keyword jenis apa. Sebenarnya bagian yang penting secara edukatif adalah bahwa saya memahami hal itu
    Yang penting di ZX81 adalah menyimpan token untuk menghemat memori, bukan representasi teks. RAM-nya 1KB, dan itu sudah termasuk memori display. Tidak ada GPU terpisah. Karena parsing dilakukan saat input, eksekusinya kemungkinan juga menjadi lebih cepat

  • Situsnya sangat rapi, tetapi saya tidak sepenuhnya setuju dengan tujuannya. IDE-nya memang mengesankan, tetapi saya mungkin akan berfokus pada subset Python ketimbang bahasa baru
    Kalau tidak, ia bisa diabaikan karena Scratch lebih mudah diajarkan, sementara Python lebih berguna untuk dipelajari. Yang pertama berlaku di sekolah dengan guru yang juga developer, yang kedua untuk orang tua programmer yang mengajari anaknya
    Sebagai developer perangkat lunak, saya pernah membantu kelas pemrograman SD/TK istri saya, jadi saya cukup memahami masalah di area ini

    • Saya penasaran apakah ada alternatif yang bisa disebut “subset Python”. Menarik kalau ada jembatan alami menuju pemrograman “sungguhan”
  • Artikel terkait:
    Show HN: Pickcode – A new way to introduce programming to kids - https://news.ycombinator.com/item?id=33562193 - November 2022, 14 komentar
    Show HN: PickCode – An educational coding environment for students after Scratch - https://news.ycombinator.com/item?id=32230329 - Juli 2022, 32 komentar
    Show HN: Pickcode – A graphical code editor for education - https://news.ycombinator.com/item?id=31426331 - Mei 2022, 4 komentar
    Repost setelah kira-kira 1 tahun tidak masalah, dan tautan ke thread sebelumnya ditujukan untuk pembaca yang ingin tahu lebih jauh

  • Saya sedang mengerjakan konsep serupa untuk pemrograman musik:
    https://glicol.org
    Akan bagus kalau ada beberapa contoh langsung di landing page
    Saat mencoba pelajarannya, saya jadi mentok; memang ada petunjuk di sebelah kanan, tetapi tidak terlalu terlihat. Mungkin bisa ditata ulang seperti Svelte Tutorial(https://learn.svelte.dev/tutorial/welcome-to-svelte)
    Saya belum yakin dengan sintaksnya. Saya penasaran apakah pernah mempertimbangkan memakai LOGO