The courses that we enjoyed most when we were students were those that emphasized design. In design-oriented courses, we used the concepts taught in lecture to solve practical problems. The process of applying ideas made it easier to understand them and understand how they could be applied in a real-world setting. This emphasis on learning by doing is used throughout A Laboratory Course in C++ Data Structures. In each laboratory, you will explore a particular data structure by implementing it. As you create an implementation, you will learn how the data structure works and how it can be applied. The resulting implementation is a working piece of software that you can use in later laboratories and programming projects.