C is actually one of the most versatile (and probably the most powerful, in terms of ability) languages in existence. Modern OS's, including pretty much every Linux kernel in existence, and Windows, are built on C. C++ is a simple derivative of C that is heavily object-oriented. C programming is, however, considerably more difficult. Memory leaks and segmentation faults are the most common and frustrating problems you will encounter when programming in C.
Since OP is taking this as a tech elective, he's probably not going to be using most of the object-oriented features of C++. Which is unfortunate, because object-orientation is the whole point of C++.
cin/cout are easily my favorite C++ keywords. It just pipes shit to stdout. So yes,
does the same thing as
but is far simpler to type. (endl is "end line")
Note you can still use all your standard C functions like printf in C++.
Namespaces are a bit different from header files. You can #include header files as you do in C, with slightly different syntax.
A namespace is a predefined library of functions you can use. If you know any Java, "using namespace std" would be like "import java.lang.*" or something. The latter is not necessary to explicitly put into code, though.
Namespaces are specific to object-oriented languages like C++ and C#. Java uses what are called libraries that are pretty much the same thing.