This course guides students to understand the core spirit of object-oriented language (they are encapsulation, Inheritance, and Polymorphism) and accordingly to learn programming. This course introduces not only the syntax and libraries of the programming language but especially the techniques for solving problems. Thus, many interesting problems, ranging from easy to difficult, are recommended to arouse students’ interest in programming and develop their logical thinking abilities.