This intermediate programming course is designed for students who have had some experience with a programming language. Although the course is taught using the C++ programming language, a background in C or C++ is not required. The knnowledge of the basics of computer programming: variables, control structures (if/else, while loops, switch), and functions is essential, however these topics will be reviewed at the beginning of the course. The new material that the YSP students will cover in this class includes: pointers and strings, classes and data abstraction, dynamic memory allocation, inheritance, and possibly polymorphism. There will be some flexibility in the course to cope with the speed and overall background of the students. In this computer course, students can experience a challenging opportunity to try new programming tactics which in turn facilitate the YSP participants' interest in this crucial facet of computer science.