Memahami Konsep Asas Algoritma: faham bahawa algoritma ialah satu siri langkah yang jelas dan berurutan untuk menyelesaikan sesuatu masalah. Anda juga mungkin sedar akan kepentingan ketertiban dalam langkah-langkah tersebut.
Mampu Mengenal Pasti Masalah untuk Algoritma: berupaya mengenal pasti jenis masalah yang sesuai untuk diselesaikan menggunakan algoritma, seperti masalah yang memerlukan langkah-langkah yang boleh diulang atau terstruktur.
Keupayaan Membaca dan Memahami Algoritma Ringkas: boleh membaca dan memahami algoritma yang mudah yang dipersembahkan dalam bentuk pseudokod atau carta alir.
Kesukaran Membina Algoritma Kompleks: menghadapi cabaran dalam membina algoritma anda sendiri untuk masalah yang lebih kompleks atau yang memerlukan logik bersyarat dan gelung yang lebih rumit.
Aplikasi Pseudokod/Carta Alir ke Pengekodan Sebenar: bergelut untuk menterjemahkan algoritma yang dirancang (dalam pseudokod atau carta alir) ke dalam bahasa pengaturcaraan sebenar (contohnya, Python), menunjukkan jurang antara reka bentuk dan implementasi.
Pengoptimuman Algoritma: kurang mahir dalam menganalisis dan mengoptimumkan algoritma untuk menjadikannya lebih cekap dari segi masa pelaksanaan atau penggunaan sumber.
Kesukaran Mengendalikan Kes-Kes Luar Biasa (Edge Cases): cenderung untuk tidak mempertimbangkan semua kemungkinan input atau "edge cases" apabila mereka bentuk algoritma, yang boleh menyebabkan algoritma anda gagal dalam situasi tertentu.
Memahami Konsep Asas Struktur Kawalan: Faham dengan konsep asas struktur kawalan jujukan, pilihan, dan ulangan.
Mengenali Struktur Jujukan dan Pilihan Mudah: cekap dalam menggunakan jujukan (langkah demi langkah) dan pilihan ringkas (if-else asas) untuk situasi yang jelas dan mudah.
Keupayaan Membaca Kod dengan Struktur Kawalan Mudah: boleh membaca dan memahami kod program yang mengandungi struktur kawalan jujukan dan pilihan yang tidak terlalu kompleks.
Kesukaran Menggunakan Struktur Pilihan Bersarang/Kompleks: menghadapi cabaran dalam membina atau memahami kod yang melibatkan struktur pilihan bersarang (nested if-else) atau pilihan berganda (if-elif-else) untuk menyelesaikan masalah yang mempunyai banyak syarat.
Penggunaan Struktur Ulangan yang Tidak Efisien: bergelut dalam memilih jenis gelung yang sesuai (for atau while) untuk masalah tertentu, atau mengawal syarat penamatan gelung yang boleh menyebabkan gelung tak terhingga atau ralat logik.
Menterjemah Logik Masalah ke Struktur Kawalan:Sukar untuk menterjemahkan logik penyelesaian masalah anda (dalam bentuk algoritma) ke dalam penggunaan struktur kawalan yang betul dan efisien dalam kod sebenar.
Kesukaran dalam Penyahpepijatan Aliran Kawalan: Apabila terdapat ralat, menghadapi kesukaran dalam menjejaki aliran kawalan program untuk mengenal pasti di mana kesilapan logik atau penggunaan struktur kawalan berlaku.
Mengetahui Kepentingan Pengujian: Faham bahawa pengujian adalah fasa kritikal dalam pembangunan algoritma dan program untuk memastikan ia berfungsi dengan betul.
Mampu Mengesan Ralat Sintaks Asas:Cekap dalam mengenal pasti ralat sintaks yang jelas, seperti salah ejaan kata kunci atau tanda baca yang hilang dalam pseudokod atau kod ringkas.
Keupayaan Menguji Kes Mudah: Menguji algoritma menggunakan set data input yang mudah atau kes-kes yang dijangka berfungsi dengan lancar.
Kesukaran Mengesan Ralat Logik:menghadapi cabaran yang signifikan dalam mengenal pasti ralat logik dalam algoritma, iaitu apabila algoritma berjalan tanpa ralat sintaks tetapi menghasilkan output yang salah atau tidak diingini.
Kurang Sistematis dalam Pengujian: tidak mempunyai pendekatan yang sistematik untuk menguji algoritma, contohnya, tidak mencipta senarai kes ujian yang komprehensif (termasuk "edge cases" atau input yang tidak dijangka) untuk memastikan semua kemungkinan senario telah diuji.
Kekurangan Teknik Penyahpepijatan: kurang mahir dalam menggunakan teknik penyahpepijatan seperti trace table (jadual surih) untuk menjejaki nilai pemboleh ubah pada setiap langkah algoritma, yang penting untuk mengenal pasti punca ralat.
Kesukaran Membaiki Ralat Kompleks:Bergelut untuk mengenal pasti punca sebenar ralat dan membaiki ralat yang lebih kompleks, terutamanya apabila ralat tersebut melibatkan interaksi antara beberapa bahagian algoritma.
Memahami Konsep Asas Pemboleh Ubah: Faham apa itu pemboleh ubah dan peranannya sebagai tempat menyimpan data dalam algoritma.
Mampu Mengenal Pasti Pemboleh Ubah dalam Algoritma: Berupaya mengenal pasti pemboleh ubah yang digunakan dalam algoritma yang diberikan (dalam pseudokod atau carta alir).
Keupayaan Mengesan Nilai Pemboleh Ubah dalam Langkah Mudah: Boleh mengesan perubahan nilai pemboleh ubah bagi algoritma yang ringkas, terutamanya jika tiada gelung atau syarat yang kompleks.
Kesukaran Menggunakan Jadual Surih (Trace Table): Menghadapi cabaran dalam membina dan menggunakan jadual surih dengan berkesan untuk menjejaki nilai pemboleh ubah, terutamanya apabila algoritma melibatkan gelung berulang atau syarat bersarang.
Cabaran dalam Menjejaki Logik Kompleks: Bergelut untuk mengesan dan memahami bagaimana nilai pemboleh ubah berubah dalam algoritma yang mempunyai logik yang lebih kompleks, seperti operasi matematik yang rumit, atau ketika pemboleh ubah saling bergantung.
Kecenderungan untuk Ralat Semasa Pengesanan Manual: Apabila mengesan nilai secara manual, mudah melakukan kesilapan atau terlepas pandang perubahan nilai, terutamanya jika langkah-langkah algoritma sangat banyak atau melibatkan banyak pemboleh ubah.
Kurang Pemahaman tentang Kesan Kumulatif Perubahan: Menghadapi kesukaran untuk memahami kesan kumulatif perubahan nilai pemboleh ubah sepanjang algoritma, yang kritikal untuk mencari ralat logik.
Pemahaman Hubungan Input-Output Asas: Faham bahawa output algoritma adalah hasil langsung daripada input yang diberikan dan operasi yang dilakukan.
Mampu Memproses Algoritma Linear Mudah: Cekap dalam mengikuti langkah-langkah algoritma yang linear dan ringkas untuk mendapatkan output yang betul apabila inputnya mudah.
Keupayaan Mengesan Ralat Ketara: Boleh mengenal pasti output yang jelas-jelas salah jika ia jauh menyimpang dari jangkaan logik.
Kesukaran Mengesan Output dalam Algoritma Kompleks:Menghadapi cabaran yang signifikan dalam menentukan output yang betul apabila algoritma melibatkan gelung bersarang, struktur pilihan yang kompleks, atau operasi matematik yang rumit.
Tidak Teliti dalam Pengesanan Nilai Pemboleh Ubah: kurang teliti dalam menjejaki perubahan nilai pemboleh ubah pada setiap langkah, terutamanya apabila terdapat banyak pemboleh ubah yang berinteraksi. Ini akan menyebabkan ralat dalam penentuan output akhir.
Kekurangan Penggunaan Alat Bantuan (Contohnya, Jadual Surih): tidak memanfaatkan sepenuhnya jadual surih (trace table) sebagai alat untuk menjejaki aliran algoritma dan nilai pemboleh ubah secara sistematik, yang boleh membantu mengurangkan kesilapan.
Cabaran dengan "Edge Cases" dan Input Tidak Jangkaan: Terlepas pandang atau sukar untuk meramalkan output yang betul apabila algoritma diuji dengan input yang merupakan "edge cases" (nilai di sempadan julat) atau input yang tidak dijangka yang boleh mengubah aliran logik algoritma secara drastik.
Pemahaman Konsep Asas Penterjemahan:Faham bahawa tujuan utama penterjemahan adalah untuk mengubah reka bentuk logik (algoritma dalam pseudokod/carta alir) kepada arahan yang boleh difahami dan dilaksanakan oleh komputer (kod program).
Mampu Mengenal Pasti Struktur Asas Kod:Berupaya mengenal pasti elemen asas seperti pemboleh ubah, operator, dan struktur kawalan mudah (jujukan, pilihan if-else asas) dalam bahasa pengaturcaraan.
Keupayaan Menterjemah Algoritma Ringkas: Boleh menterjemah algoritma yang sangat mudah dan linear ke dalam kod, seperti pengiraan asas atau cetakan output.
Kesukaran Menterjemah Struktur Kawalan Kompleks: Menghadapi cabaran dalam menterjemah struktur kawalan yang lebih kompleks seperti gelung bersarang (nested loops), atau syarat bersarang (nested if-else) dengan tepat ke dalam sintaks bahasa pengaturcaraan.
Penguasaan Sintaks Bahasa Pengaturcaraan yang Terhad:Masih tidak mahir dengan sintaks khusus bahasa pengaturcaraan yang digunakan (contohnya, Python), menyebabkan ralat sintaks yang kerap dan kesukaran dalam menulis kod yang bebas ralat.
Tidak Efisien dalam Pilihan Struktur Kod: tidak selalu memilih struktur kod atau fungsi yang paling efisien untuk menterjemah sesuatu bahagian algoritma, menyebabkan kod yang lebih panjang atau kurang berprestasi.
Kesukaran Menyahpepijat Ralat Terjemahan: Apabila kod tidak berfungsi, menghadapi masalah untuk mengenal pasti sama ada ralat itu berpunca daripada kesilapan logik algoritma asal atau kesilapan dalam proses penterjemahan itu sendiri (sintaks atau struktur).