Using C++ programming language, teach students Object-oriented Programming, including concepts, principle, features, method, and practice. 


<考试时间:2018-12-27(周四) 上午 09:45-11:45, 教室:3C103>


This course is aimed at beginners who have not learnt any programming course or a different language from C++. The course teaches students object-oriented programming (OOP) principles and core methods over C++. Our goal is to guide students to know the philosophy of programming design and the important features of C++ so that they can further self-study others, such as generic programming, design pattern.

The teaching method of this course is to concisely explain most important knowledge points of OOP by real programming and experiments using C++, rather than traditionally introducing all new features one by one. As in most courses, it cannot teach all aspects of C++. Alternatively, we choose to only lecture the important contents that are frequently used in practice. When ending this course, the students are expected to skillfully program mid-level software with C++ to resolve the real problems for research, projects, jobs, etc.

Note that the course is only to guide students programming through principle and practice, and you need and are expected to read more books to learn advanced knowledge if you want to be an expert of C++ Programming. In particular, you may refer to reference books.

Actually, there have been quite many C++ programs developed for various applications in real world. For details, see Stroustrup’s lists or the corresponding Chinese version that provides some typical application scenarios.

If you have any problems, please contact me via E-mail: zlwang AT ustc DOT edu DOT cn or visit my homepage.


We choose the book “Programming: Principles and Practice using C++” (PPP) as the textbook of this course because it is much suitable for beginners and especially emphasizes the practice. The book is written by “the C++ farther” Bjarne Stroustrup, whose another bible book “C++ programming language” is quite classic and can be used for professional study or as a reference handbook.

Here, I also provide an interview page of BS: Chinese version and English version.

About details of this book, see introduce and the author’s support page. In particular, I provide an example and appendix (in Chinese) as following:

Note that the book uses the current ISO standard C++, C++98, rather than the new version C++11 (WikipediaFAQ).


  • Standard library include header: std_lib_facilities.h (right click, and then save target as). Students should use “plain”#include “std_lib_facilities.h” where the header file is in the same directory/folder as the .cpp files.
  • About configure programming environment for different systems, see details.
  • PPP Style Guide for the programming style’s reference in excises and experiments.
  • For other coding materials, visit course supporting page and find Supporting code: section


The following slides are associated with the above textbook. Each set of slides corresponds to a book chapter:

The BS’s lecture slides can be downloaded here. Besides, I provide an archive (7-zip) for easily downloading.

Notes: There are many excises after each chapter in book. Students should complete some of them, and here provide some solution.

If you find any error or have improved advise, don’t hesitate to inform me via Email: zlwang AT ustc DOT edu DOT cn.

【Exercise and Experiment】(Wednesday 6:30pm-9:30pm from Oct. 18 )

Exercise codes:

Experiment list:


Before finish the course, please review our teaching knowledge and techniques. Now, just have a quick review through this slides including the first twenty chapters.

The examination tasks are listed as follows:

  1. Supermarket POS system
  2. Single shooting game — STG
  3. Allocation scheme in Halloween


If you have any good idea, don’t hesitate to inform me via email: zlwang AT ustc DOT edu Dot cn. Thank you very much!