This text aims to teach students fundamental programming skills and the basics of object-oriented design and implementation using C++. It also shows how to develop interesting software projects using a portable, object-oriented graphical library named Ez Windows. This provides a simple interface allowing beginning programmers to write realistic programs that display graphical objects and to use the mouse as an input device. Among the features of this teaching tool are: early coverage of classes and objects; more than 25 classes deigned and developed; software engineering concepts are introduced using case studies and software projects; Appliocation Programmer Interface (API) is used to support the software projects, allowing students to design exciting programs while learning the fundamentals. A lab manual is also available.