摘要:AbstractComputer programming learning requires declarative and procedural knowledge. Novice learners acquire programming declarative knowledge via lectures, tutorials, and self-assessment. Cognitive overload within programming learning materials is one of several learning barriers. Self-assessing is important to assist learners to identify misconceptions and to encourage the correct construction of knowledge. Self-Test Questions (STQ) and solutions in print are common learning methods used in a typical programming learning environment. Comparatively, Self-Assessment Object (SAO) is a type of learning object used to examine usefulness in order to impart declarative knowledge. One hundred and three foundation engineering students, enrolled in a C programming module, took part in this study and were randomly assigned to two groups. A control group used STQ and an experimental group used SAO in a programming lab over seven teaching weeks. Post-test and supporting survey results suggest that SAO was able to support programming learning and mitigate the learning difficulties addressed in this study.