My question is, has anyone taken any C++ College Courses? I would ideally like to get a good grasp on the basics before I get thrown into a fast paced class.
College / university studies are generally NOT job training.
If I am reading the web site correctly, it looks like your school has two options: Computer Science (curriculum) and Software Development (curriculum). Going over their requirements, the first looks like the traditional CS degree, the second looks like a trade school degree.
Not that either of the choices are bad, they are just different. The world needs many types of people.
In my own studies in undergrad and grad school, there were some 100-level and 200-level courses that focused on programming languages. Everything after that they assumed you would pick up the languages on your own as you studied more fundamental topics. Languages come and go, new ones are invented every day. Looking around at three local CS programs, I only found one with a language course in the third year, it was an optional course on "assembly language and computer internals". In compiler theory we needed to not only implement two different languages but also devise our own. It looks like your CS program follows a similar philosophy.
CS usually focuses on algorithms, data structures, analysis of systems, mathematics, and computer theory. Trade degrees tend to focus on using specific languages, moving data from place to place, transforming from database tables and disk into displayed content and back again, and otherwise converting specifications from human code to computer code.
Different jobs call for different skills. The world needs people who encode human specifications into computer code. The world needs people who analyze problems to create and adapt algorithms in unexpected ways.
I would hopefully be able to create something other than just display a triangle or rectangle to the screen, which I have heard some people have taken programming classes and this seems like their big final project (though some of these people were in Information Systems and not strictly a software based degree)
3D computer graphics is more about mathematics than code. Arguments about a structure-of-arrays or an array-of-structures are implementation details that depend on your hardware and usage patterns.
The manipulation of points and vectors and matrices is math, not code.
In my computer graphics course back when I was in school (CS450) the prerequisites included linear algebra and discrete mathematics.
You need to know the topics well enough to describe them to another before you explain them to a computer. If you don't know how to manipulate matrices and vectors, if you don't understand the reasoning behind projecting from R3 to R2, how do you expect to explain it to a computer? If you can't understand the relationship between dot products and vector angles, how will you manipulate the algorithms you don't understand?
I dont expect to have some insane computer game in 13 weeks but Id hopefully get a better grasp than just getting a shape to print to screen.
In CS450 mentioned above we studied computer graphics. In CS455 the following semester each team of three built a networked 3D game in 10 weeks.
I don't know why you chose "Computer Programming" instead of "Computer Science". Job prospects are still good, but the things you learn over the years of education are quite different.
Knowing how to translate someone's algorithm into code is the job of a coder. Coming up with the algorithms is the job of a computer scientist.
I don't expect someone who is "just a coder" to understand the concepts behind a view frustum and the transformations involved in positioning point clouds through transformation matrices. I don't expect "just a coder" to understand how to effectively use the basis vectors inside the transformation. I don't expect "just a coder" to understand the relationship between surface normals, silhouette edges, and shadow volumes.
I do expect the same "just a coder" who didn't understand the math concepts could take an algorithm using those features and translate them into computer code in an efficient manner.
It is just a question of which job you want. Do you want to be a person who encodes algorithms previously designed by others, or do you want to be a person who invents and discovers new algorithms to problems that haven't been imagined yet? Or do you want a different job entirely?
What is a good, easy to read book or tutorial to help
C++ Primer (latest edition) by Lippman, Lajoie, and Moo (starts at beginners, works you through to intermediate skills)
Accelerated C++ by Koenig and Moo (similar to above, starts simple, works up through intermediate)
Effective C++, More Effective C++, Effective STL by Meyers
Exceptional C++, More Exceptional C++, Exceptional C++ Style, by Herb Sutter (Explains many subtle insights and also gotcha's)
The C++ Standard Library by Josuttis. (Dated, but still extremely instructive. Expects a lot of knowledge, gets very in depth.)
C++ Coding Standards by Sutter and Alexandrescu
Modern C++ Design by Alexandrescu
C++ Templates: The Compete Guide by Vandevoorde and Josuttis
You'll note that several of the co-authors are duplicated in those books. Several of these people are heavily involved in the C++ language committee, such as Herb Sutter who has been in charge of the committee for most of its life. Koenig, among other things, helped with several important language features including what is referred to as "Koenig lookup". Alexandrescu's work has helped improve consistency among a bunch of features along with a lot of pioneering work on features most of us take for granted. Other authors on that list are similarly well-regarded.
Many people also recommend The C++ Programming Language (4th edition) by Stroustrup so I'll mention it, but I wouldn't put it with the others above. While the first and second editions (1986 and 1992) were effectively the C++ language standard during that era, those days are long past. There is a standards committee and he is on it. While the language stems from his work at AT&T and he continues to guide it through the committee as a member, it is not him but the committee in charge of the modern standard that was released 1998 and updated in 2003, 2007, 2011, 2014, and another expected in 2017. While this book has the occasional insight and covers some history, if you're at the point where you'd use this as a reference you are probably better off going directly to the actual current standard instead.