The objective of this research is to describe the implementation of project-based learning (PJBL) in improving computer programming competency in a higher education setting. The method applied in this study is action research with a one-cycle framework with four phases of development: a) planning, b) action, c) observing, and d) reflection phases. This research tries to answer two questions: how to implement PJBL in a programming course to improve programming competency and how to ensure students’ satisfaction in the learning process. The PJBL applied in this research consists of seven steps, including a) a challenging problem or question; b) sustained inquiry; c) authenticity; d) student voice & choice; e) reflection; f) critique and revision; and g) public product. We found that the PJBL implementation for the course, Introduction to Programming, supports the attainment of programming competence. We found that PJBL helps students retain programming knowledge and transfer the programming skills into real-life projects. The research also found that with the implementation of PJBL in Introduction to Programming, students’ satisfaction with the learning experience increases. The result shows that PJBL is not only effective in improving computer programming competency, but also in increasing the student’s engagement and passion for lifelong learning.