(C++ is an engineering development language that is difficult to learn and easy to use. The complex syntax of C++ often makes developers overemphasize the details and lack the overall view of the software architecture. Especially the lack of object-oriented software design ability is an important factor restricting the transformation of practitioners from developers to designers. Design patterns are important development experiences derived from industrial practice. It is actually an object-oriented data structure. Mastering design patterns is a basic requirement for mastering object-oriented design. This course explains design patterns based on the C++ language.)