In response to the question of what you will be able to do after completing the course; if it’s any good, and you want to spend some effort, you’ll be able to figure out how to make very basic games and graphics if you can find a nice & simple graphics/multimedia library to go with your C++ environment. Something like libsdl might work for you.
Speaking for myself, it took me the best part of 3 years to really “get” OO. You’re right that it’s easy to get the basic concepts and start using them - if you’re already a programmer - meaning you’ve already ran into the problems that OO tries to solve. But using OO the right way is pretty complex - it only works if you spend the time to do keep the class / instance / inheritance / composition “meta” design straight with your actual needs. Which distracts from the basic algorithmic stuff that you need to know first. If you don’t know how to do that yet, you’re adding useless boiler-plate code at best.
See the gang of four book for examples of stuff that you really do not want to have to teach in an introduction course. - I’m actually quite wary of people who’ve just read that book. It’s an interesting book, but in new readers it tends to cause an explosion of classes and reduces the clarity of the code they’re working on - they seem to forget that you can actually use plain functions for some constructs, for example. Usually, they get better after a while
Based on the students I get in my class, the answer is “not a lot”. They teach Java at the university here, yet a surprising number of students somehow make it into the second year without being able to write a simple method, or understanding anything of the basics of the language (i.e. why main is a static method).
To echo what the others have said, C++ isn’t a very nice choice for a first language. The matter’s made even worse by the fact that it’s almost a given that what you’ll be taught won’t be idiomatic C++ (i.e. some terrible mix of C and C++, char arrays vs. std::strings, C style casts vs. C++'s safer casting mechanisms etc.), and I’m willing to bet that the vast majority of C++ programs are actually undefined, with respect to the standard (how many times have you seen a* = i++; or similar, in a C++ program?)
No, no, no. Teaching to write OO is idiotic, but teaching a language that makes use of OO libraries is very wise. At first, people will be pleased with its ease of use. Eventually, when they want to write their own OO code, they will have a much easier time doing so and know why they are doing it.
C++ is just the language. To make games, or produce graphical applications, you would need to learn a library or a platform - SDL is one of the more popular one for graphical applications, while QT 4 is good for GUI. However, C++ is a very deep language and OOP is a really vast topic. The course is just a starting point; at most at the end you know encapsulation, polymorphism and inheritance; more usefully, you know how to manage memory.
Knowing how to do it is one thing though; learning when to apply those principles is a long process of practice, practice and more practice.