This paper aims to compare active learning and passive learning in a Computer Programming course for the 1st year engineering students. The CDIO standard 7 and 8 was implemented to change teaching methods. The students were divided into two classes. An active learning environment was provided for Class A, while Class B was offered a passive learning classroom environment. The passive learning included a lecture and computer-based materials. Meanwhile, the active learning class focused on designing activities that were suitable for the expected learning outcomes and whether students understood the concept behind programming. Active learning activities were designed to assure students’ learning outcomes from remembering and understanding to applying the knowledge in computer programming. To develop a deeper understanding, the students practiced the algorithms using interactive programs. To improve the thinking process, visual block-based programming language in form of a jigsaw puzzle was introduced. Each specific block has a different color, which can be dragged together to build applications that creates different possible outcomes. Later on, the student applies their knowledge of programming languages to electronic devices that use sensors and microcontrollers, which translates analog input into a software system that controls electro-mechanical devices such as motors, servo, lighting or other hardware. This last phase has engaged students in applying, analyzing, and evaluating ideas with text-based programming language based on active experiential learning. Both classes were evaluated based on their pre-test and post-test performances. The independent sample t-test result found that the outcomes of Class A students were statistically significantly higher than the Class B students at the 0.05 level of significance. It encouraged the instructor to further develop the course, regarding the visual block-based programming language, the text-based programming language, problem-solving skills and other necessary skills.