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.

SumbuPertanyaan intinyaYang diukur
ConditionalJalur mana yang dieksekusi berdasarkan kondisi ini?Penalaran alur percabangan majemuk dan guard clauses.
IterativeKapan proses ini berhenti dan berapa kali berjalan?Siklus akumulasi, batas terminasi, dan konvergensi loop.
Data StructureBagaimana bentuk dan lokasi data saat ditransformasi?Akses elemen deret dan asosiasi key-value dictionary.
TracingApa nilai variabel X pada langkah ke-N?Pelacakan timeline mutasi variabel tanpa compiler.
DebuggingDi 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.

  1. 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.
  2. Level 2, notasi baku. Instruksi ditulis sebagai teks dengan kosakata terbatas berbahasa Inggris, misalnya SET dan OUTPUT. Bentuknya menyerupai kode tanpa membawa kerumitan satu bahasa tertentu.
  3. 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.

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.

JalurDipakai untukCatatan
Email dan kata sandiMasuk sehari hariKata sandi minimal 12 karakter. Tidak ada aturan huruf besar, angka, atau simbol: panjang yang menentukan kekuatannya.
Kode sekali pakaiMendaftar dan mengatur ulang kata sandiEnam digit, berlaku sepuluh menit, maksimal tiga kali percobaan.
Google atau GitHubMasuk sekaligus mendaftarPenyedia 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.

RuteAksesKegunaan
/PublikHalaman muka: ringkasan tujuan platform, lima sumbu, dan contoh soal.
/dokumentasiPublikDokumen ini.
/materiPublikDaftar seluruh pelajaran, dikelompokkan per tingkat. Terbuka tanpa akun.
/materi/[slug]PublikSatu pelajaran: perumpamaan, jejak memori yang dapat dilangkahi, dan kuis. Terbuka tanpa akun.
/leaderboardPublikPapan peringkat. Dapat dibaca tanpa akun.
/papan-peringkatPublikNama lain untuk /leaderboard, isinya sama persis.
/daftarPublikMembuat akun: alamat email dibuktikan lewat kode, lalu kata sandi dipasang.
/masukPublikMasuk dengan email dan kata sandi, atau lewat Google dan GitHub.
/lupa-sandiPublikMengatur ulang kata sandi lewat kode yang dikirim ke email.
/privacyPublikKebijakan privasi: data apa yang disimpan dan untuk apa.
/termsPublikSyarat, ketentuan, dan kode etik.
/onboardingButuh akunMelengkapi nama tampilan dan tanggal lahir, lalu meneruskan ke tujuan asal. Terlewati bila sudah lengkap.
/kalibrasiButuh akunPlacement test lima soal. Hanya dapat diambil satu kali per akun.
/berandaButuh akunBeranda aplikasi: pengenalan untuk pemula, tiga tujuan berikutnya, dan catatan kemajuan.
/petaButuh akunPeta 25 konsep inti beserta prasyarat dan status pengerjaannya.
/arena/[slug]Butuh akunRuang kerja satu soal: kanvas representasi, jejak eksekusi, dan hasil uji.
/dailyButuh akunTantangan harian, satu soal per hari, tanpa batas waktu.
/profilButuh akunRadar lima sumbu, riwayat, dan sumbu yang menahan kenaikan level.
/error/[code]PublikHalaman 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


Dokumen ini bagian dari halaman publik ClassOfCode. Kembali ke halaman muka, atau langsung buat akun.