The aim of this research is to develop a learning model which blends factors from learning environment and engineering design concept for learning in computer programming course. The usage of the model was also analyzed. This study presents the design, implementation, and evaluation of the model. The research methodology is divided into three phases, they are: reviewing related literatures and surveying needs and problems in teaching computer programming in order to analyze and synthesize the elements of the model, developing a model which blends learning environment and learning activities based on engineering design processes, and evaluating the effects of using implemented environment on the learners' programming conceptual understanding, problem-solving using programming skills, program analytical skills, and attitude in learning programming. The samples in this study include 8 experts who examine the tentative model and 52 undergraduate students of computer science program in Bansomdejchaopraya Rajabhat University, Thailand, to evaluate the implemented model. The student samples were separated into two groups which are control and experiment group. The results of the comparison between pre-test and post-test scores showed that the programming conceptual understanding, problem-solving by using programming skills, and program analytical skills of the students were significantly increased. In addition, in comparing between control and experiment groups, the scores of problem-solving using programming skills and program analytical skills of the experiment group are significantly higher than that of the control group. However, there were no significant differences in the scores of programming conceptual understanding between those groups. It was also found that the students in experiment group have a high attitude in learning programming in high level.