Basic computer programming is one of the fundamental subjects that students in the departments of computer engineering, computer science, software engineering, information technology, and computer business need to learn. In this subject, students are asked to write a programming code step by step following the textbook without understanding the relationship among concepts, for example, variables and data types are fundamental concepts of array. Due to these reasons, many students who cannot grasp the most fundamental concepts of programming are unable to produce basic programs and also unable to learn and understand more complicated concepts in the future. It might be better if we could find an appropriate way to improve their conceptual learning ability in the topic. Therefore, in this study, a personalized e-learning environment is proposed by basing upon multiple sources of personalized information of students, namely, learning problems, a learning styles, and performance levels. To diagnose the students' learning problems, the test answers are analysed. In addition, a learning styles questionnaire is employed for adjusting the presentation styles of the subject material based on the personalized learning style of the students. The performance levels, classified into high, middle, or low, are used to arrange the learning material for individual students as well. By analyzing the data, the students who learned with the developed e-learning environment could develop understanding of basic computer programming; moreover, they had positive attitude toward the developed e-learning environment which fit with their personalized learning. (C) 2013 The Authors. Published by Elsevier Ltd. Selection and/or peer-review under responsibility of Academic World Education and Research Center.