In this paper, we describe an agent based a programming language learning support system for novice programmers in a distance-learning environment. The intention of this research work is to construct a learning support system, which enables learners to efficiently study a programming language. Generally, agent systems for a pedagogical purpose have a special role of adapting learners' needs, arranging collaboration among learners and making the system to be easy to author, etc. The present agent system follows such matters, however, this system mainly deals with programming principles and concepts to be taught based on the result of automatic diagnoses of students' psychological factors during learning. Usually self-study is one of the inextricable problems for novice students who are generally unmotivated to learn it, or even too complex language is a big obstacle for students who are motivated to learn programming languages. The agent system, reported in this paper attempts to understand students' behavior by observing their typing events, behaviors on different purpose of web browser of lessons, tasks and examples, error types made by students and debugging events on a programming editor, then support students with relevant information. The system has a special programming language environment to provide students with lessons, tasks, and examples of tasks in a web integrated environment.