Dokumentasi ClassOfCode
Ruang publik untuk melatih fundamental logika pemrograman secara bahasa-agnostik.
1. Ikhtisar
ClassOfCode adalah ruang publik untuk melatih fundamental logika pemrograman secara bahasa-agnostik. Yang dilatih bukan sintaks satu bahasa, melainkan lima kemampuan yang tetap sama di bahasa mana pun: penalaran percabangan, loop, struktur data, pelacakan keadaan, dan deteksi cacat logika.
Platform ini terbuka tanpa biaya. Satu akun diperlukan untuk mengerjakan soal, sebab kemajuan dan skor lima sumbu disimpan per akun. Papan peringkat dan dokumentasi dapat dibaca tanpa akun.
2. Mengapa bahasa-agnostik
Kecerdasan buatan sudah membuat penulisan teks kode menjadi murah. Yang tidak menjadi murah adalah menjawab pertanyaan berikut ketika kodenya salah: pada langkah mana asumsinya meleset. Menjawab itu menuntut model mental atas eksekusi, dan model mental tidak dapat dihasilkan alat bantu.
Karena itu soal ditulis dalam notasi pseudo, bukan dalam satu bahasa nyata. Menuliskannya dalam satu bahasa akan mengubah ukurannya menjadi keakraban dengan bahasa itu. Pada tingkat tertinggi, notasi yang sama diterjemahkan ke JavaScript atau Python, sehingga peralihan ke bahasa sungguhan terjadi setelah penalarannya terbentuk, bukan sebelum.
Bisa menulis kode belum tentu memahami eksekusi. Yang kedua itulah yang diukur di sini.
3. Lima sumbu kemampuan
Setiap soal diberi label satu sumbu utama dan beberapa sumbu pendukung. Skor dihitung per sumbu, bukan sebagai satu angka rata-rata. Konsekuensinya penting: satu sumbu yang tertinggal menahan kenaikan level walau empat sumbu lain sudah tinggi. Sistem penilaian ini disebut non-kompensasi.
| Sumbu | Pertanyaan intinya | Yang diukur |
|---|---|---|
| Conditional | Jalur mana yang dieksekusi berdasarkan kondisi ini? | Penalaran alur percabangan majemuk dan guard clauses. |
| Iterative | Kapan proses ini berhenti dan berapa kali berjalan? | Siklus akumulasi, batas terminasi, dan konvergensi loop. |
| Data Structure | Bagaimana bentuk dan lokasi data saat ditransformasi? | Akses elemen deret dan asosiasi key-value dictionary. |
| Tracing | Apa nilai variabel X pada langkah ke-N? | Pelacakan timeline mutasi variabel tanpa compiler. |
| Debugging | Di baris mana asumsi logika mulai meleset? | Isolasi bug logika dan optimasi langkah penalaran. |
4. Tiga level representasi
Satu konsep yang sama disajikan dalam tiga bentuk. Level Anda ditentukan hasil kalibrasi, dan naik hanya bila kelima sumbu melewati ambangnya. Perhatikan bedanya dengan tingkat pada materi. Level adalah bentuk soal yang Anda terima; tingkat adalah kedalaman bacaan. Keduanya berjalan terpisah dan tidak pernah saling menentukan.
- Level 1, blok visual. Instruksi disusun sebagai blok yang dapat dipindahkan. Tidak ada yang perlu diketik, sehingga kesalahan ketik tidak pernah tercampur dengan kesalahan penalaran.
- Level 2, notasi baku. Instruksi ditulis sebagai teks dengan kosakata terbatas berbahasa Inggris, misalnya
SETdanOUTPUT. Bentuknya menyerupai kode tanpa membawa kerumitan satu bahasa tertentu. - Level 3, bahasa sungguhan. Solusi ditulis dalam JavaScript atau Python dan dijalankan di sandbox berbatas waktu dan memori.
Contoh notasi Level 2 untuk menukar dua nilai: SET temp = a, SET a = b, SET b = temp, OUTPUT [a, b].
5. Materi dan cara membacanya
Materi adalah bacaan yang menjelaskan modelnya lebih dulu, sebelum satu soal pun dikerjakan. Terbuka tanpa akun, dan itu disengaja: dilempar langsung ke soal tidak mengajarkan apa pun kepada yang belum pernah menulis kode.
Tiga tingkat, dan tingkat di sini bukan level representasi. Pemula menjelaskan tiap konsep inti lewat perumpamaan benda sehari hari lalu jejak memori yang dapat dilangkahi satu langkah demi satu langkah, dan setiap pelajarannya menaut ke satu soal arena. Lanjut membahas kerapian kode. Expert membahas keputusan yang tidak punya jawaban tunggal.
Pelajaran tingkat lanjut dan expert tidak menaut ke soal, dan itu pernyataan, bukan kelalaian. Kelima sumbu rating mengukur penalaran atas logika; keduanya tidak dapat mengukur kualitas penamaan maupun ketepatan batas satu unit kode, jadi menautkannya ke soal apa pun akan berpura pura sebaliknya.
Menandai satu pelajaran selesai menuntut seluruh interaksinya dikerjakan lebih dulu, yaitu jejak memori dilangkahi sampai langkah terakhir dan kuisnya dijawab. Kuisnya hanya menuntut jawaban, bukan jawaban benar: yang menjawab salah justru yang paling membutuhkan penjelasannya. Prosa tidak dihitung, sebab tidak ada cara jujur mengetahui apakah satu paragraf sudah dibaca.
6. Kalibrasi dan penempatan
Sebelum peta konsep terbuka, setiap akun mengerjakan lima soal kalibrasi, satu per sumbu. Hasilnya menentukan level representasi awal beserta skor dasar kelima sumbu.
Kalibrasi hanya dapat diambil satu kali. Mengulanginya akan mengatur ulang rating kelima sumbu, dan seluruh riwayat kemampuan sesudahnya kehilangan artinya. Perpindahan level selanjutnya ditentukan performa di arena, bukan oleh kalibrasi ulang.
Hasil kalibrasi adalah titik awal, bukan penilaian tetap atas diri Anda. Mendapat Level 1 berarti latihannya dimulai dari bentuk yang paling tidak menghukum kesalahan ketik.
7. Arena dan penilaian
Arena adalah ruang kerja satu soal. Isinya tiga bagian: uraian soal beserta batasannya, kanvas representasi sesuai level Anda, dan panel jejak yang menampilkan perubahan nilai variabel langkah demi langkah setelah solusi dijalankan.
Penilaian tidak hanya melihat keluaran akhir. Kasus uji tersembunyi memuat nilai kosong, negatif, dan ekstrim, sehingga solusi yang kebetulan benar pada contoh tetap dapat gagal. Petunjuk tersedia dan pemakaiannya tercatat, sebab yang dinilai kemandirian penalaran.
8. Tantangan harian
Satu teka-teki terkurasi terbit setiap pukul 07:00 WIB, dengan fokus sumbu yang berputar sepanjang pekan. Tidak ada batas waktu pengerjaan, dan tidak ada penghitung detik yang berjalan: yang dikejar ketepatan penalaran, bukan kecepatan mengetik, dan hitungan detik justru mendorong menebak.
Dua jenis ronde, dan yang menentukan bentuk jawabannya. Lima hari memakai ronde tulis solusi, sama bentuknya dengan arena. Dua hari memakai ronde baca lalu jawab, dan di sana tidak ada yang perlu ditulis sama sekali.
- Kamis, melacak eksekusi. Menentukan nilai variabel pada langkah tertentu tanpa menjalankan programnya. Dinilai per nomor, jadi menebak keadaan akhir saja tidak cukup.
- Jumat, menemukan bug. Kode yang berjalan tanpa galat tetapi memberi jawaban salah. Yang diminta menunjuk baris tempat asumsinya meleset, lalu menyusun masukan yang membuktikannya. Kasus uji yang tidak dapat gagal tidak membuktikan apa pun.
Pada ronde baca lalu jawab, nomor yang dilewati dihitung salah, dan rangkaian hari hanya bertambah bila seluruh nomor benar. Penjelasan setiap nomor tetap ditampilkan setelah dikirim, termasuk untuk yang salah: yang menjawab salah adalah yang paling membutuhkan alasannya.
Rangkaian hari berurutan dicatat sebagai streak. Melewatkan satu hari mengakhiri rangkaiannya tanpa menghapus skor sumbu yang sudah terkumpul.
Batas hari sama untuk semua orang, bukan mengikuti zona waktu perangkat. Kalau mengikuti zona perangkat, orang yang berpindah zona bisa mendapat dua hari sekaligus atau kehilangan satu tanpa melakukan kesalahan apa pun.
9. Papan peringkat
Peringkat dihitung dari skor komposit kelima sumbu dan dapat dibaca tanpa akun. Angkanya diambil dari profil kemampuan yang sudah dihitung sebelumnya, bukan dihitung ulang pada setiap pembacaan.
10. Akun dan cara masuk
Tersedia tiga jalur, semuanya bermuara pada satu bentuk sesi yang sama.
| Jalur | Dipakai untuk | Catatan |
|---|---|---|
| Email dan kata sandi | Masuk sehari hari | Kata sandi minimal 12 karakter. Tidak ada aturan huruf besar, angka, atau simbol: panjang yang menentukan kekuatannya. |
| Kode sekali pakai | Mendaftar dan mengatur ulang kata sandi | Enam digit, berlaku sepuluh menit, maksimal tiga kali percobaan. |
| Google atau GitHub | Masuk sekaligus mendaftar | Penyedia sudah membuktikan alamat email, jadi tidak ada kode yang perlu dimasukkan. |
Sesi berlaku 30 hari dan diperpanjang selama dipakai. Ketika berakhir, Anda diarahkan ke halaman masuk dan kembali ke halaman yang sedang dibuka setelah berhasil masuk.
Kata sandi disimpan sebagai hash scrypt bersalt pada penyimpanan terpisah dari profil, dan tidak dapat dibaca kembali oleh siapa pun, termasuk pengelola platform.
11. Peta rute situs
Daftar halaman yang tersedia beserta syarat aksesnya. Halaman internal pengelolaan sistem tidak dicantumkan dan tidak dapat diakses akun biasa.
| Rute | Akses | Kegunaan |
|---|---|---|
/ | Publik | Halaman muka: ringkasan tujuan platform, lima sumbu, dan contoh soal. |
/dokumentasi | Publik | Dokumen ini. |
/materi | Publik | Daftar seluruh pelajaran, dikelompokkan per tingkat. Terbuka tanpa akun. |
/materi/[slug] | Publik | Satu pelajaran: perumpamaan, jejak memori yang dapat dilangkahi, dan kuis. Terbuka tanpa akun. |
/leaderboard | Publik | Papan peringkat. Dapat dibaca tanpa akun. |
/papan-peringkat | Publik | Nama lain untuk /leaderboard, isinya sama persis. |
/daftar | Publik | Membuat akun: alamat email dibuktikan lewat kode, lalu kata sandi dipasang. |
/masuk | Publik | Masuk dengan email dan kata sandi, atau lewat Google dan GitHub. |
/lupa-sandi | Publik | Mengatur ulang kata sandi lewat kode yang dikirim ke email. |
/privacy | Publik | Kebijakan privasi: data apa yang disimpan dan untuk apa. |
/terms | Publik | Syarat, ketentuan, dan kode etik. |
/onboarding | Butuh akun | Melengkapi nama tampilan dan tanggal lahir, lalu meneruskan ke tujuan asal. Terlewati bila sudah lengkap. |
/kalibrasi | Butuh akun | Placement test lima soal. Hanya dapat diambil satu kali per akun. |
/beranda | Butuh akun | Beranda aplikasi: pengenalan untuk pemula, tiga tujuan berikutnya, dan catatan kemajuan. |
/peta | Butuh akun | Peta 25 konsep inti beserta prasyarat dan status pengerjaannya. |
/arena/[slug] | Butuh akun | Ruang kerja satu soal: kanvas representasi, jejak eksekusi, dan hasil uji. |
/daily | Butuh akun | Tantangan harian, satu soal per hari, tanpa batas waktu. |
/profil | Butuh akun | Radar lima sumbu, riwayat, dan sumbu yang menahan kenaikan level. |
/error/[code] | Publik | Halaman penjelasan untuk setiap kode galat HTTP yang dipakai platform. |
12. Data yang disimpan
Yang disimpan hanya alamat email untuk autentikasi, riwayat pengerjaan soal, skor lima sumbu, dan waktu sesi. Tidak ada penjualan data dan tidak ada pelacak iklan pihak ketiga. Rinciannya ada pada Kebijakan Privasi, dan aturan pemakaian ada pada Syarat dan Ketentuan.
Penghapusan akun beserta seluruh riwayatnya dapat diminta melalui kanal dukungan yang tercantum di halaman kebijakan privasi.
13. Daftar istilah
- Sumbu: satu dari lima dimensi kemampuan yang dinilai terpisah.
- Non-kompensasi: aturan bahwa sumbu yang tinggi tidak menutupi sumbu yang rendah.
- Tracing: memprediksi nilai variabel pada langkah tertentu tanpa menjalankan programnya.
- Representasi: bentuk penyajian soal, dari blok visual sampai bahasa sungguhan.
- Prasyarat: simpul konsep yang wajib selesai sebelum simpul lain terbuka.
Dokumen ini bagian dari halaman publik ClassOfCode. Kembali ke halaman muka, atau langsung buat akun.