Teaching and learning are two major aspects of education. Since everyone needs to learn even after graduation, it is in particular important to learn during the university studies how to learn. Teachers should not only teach the course materials, but should also guide the students towards active learning methods. I strongly believe that, to be a good teacher, one should be able to teach students how to learn by themselves.

Undergraduate education is normally conducted through lectures and tutorials. The lectures are to improve the students' ability to learn and the tutorials to train their skills at solving problems.

In the lectures, I spend most of the time on explaining the basic concepts and algorithms, and providing detailed proofs of those theorems that are fundamental, or whose proof techniques are widely used. I leave details of the proofs of other theorems to the students, merely giving the major steps of the proofs and pointing out the difficult steps in the proofs. I strongly encourage students to come to me whenever they have any difficulty in understanding the details. When students come to me with questions, I use this opportunity to initiate a discussion with them and try hard to guide them to think of the problems in the right way, instead of just giving them answers. In some high level courses, I give students projects to supplement what they had learned.

For the tutorials, I require that the students try all questions given to them, before the tutorials. In the tutorials, I help them to review some key facts needed to answer the questions. Then, I give them some hints (or the outline of the answers) for the difficult questions. I encourage the students to ask questions and to answer other students' questions and present their own ideas of how to solve the problems. Often, I give the students a few minutes to discuss difficult questions among themselves in small groups.

At the graduate level, research becomes the major part of the education. I start students' research projects by giving them problems. I encourage them to use adaptive learning skills to learn, namely learning according to the problems that are to be solved. By this adaptive learning process, I lead them into an area gradually. Then, I encourage them to look for scientifically interesting problems to solve. For the better students, I will do nothing more than encourage them to establish and develop their own theory and methods, after leading them into an area.

These are the methods that I have used in the last few years. Students learned how to learn through this process. Although not all students necessarily like this process, I will keep improving these methods in order to attract more students to this active learning process.