The common question for this class is “what language is the class taught in.” I know they mean what programming language, but the literal answer is still instructive:
The class is taught in English. Not that there’s any connection between graphics and English – it’s just convenient for this class. We could use French, but my French skills aren’t very good, so the lectures would be indecipherable. We could try Esperanto, but I doubt many more people have experience with that, and it would be even harder to find a good text book. And sorry, I don’t speak Mandarin.
So, we’ll teach the class in English. Yes, this means that some students have an advantage over others because they have more experience with it. If you’re not a native English speaker, this class will be good practice for you. Lots of non-native English speakers have done really well in the class.
So… this class isn’t “taught in” a programming language. It’s taught “in” English and mathematics. However, graphics is not a spectator sport – you will learn best by doing it. And that means writing some programs. Which means we need to use some programming language. I am working on making the class programming language agnostic, but that didn’t quite happen yet.
But to the real question…
In this class there will be two “mini programming projects.” (see the discussion of class activities). The reason they will be “mini” is that we will give you a lot of framework code, so that you can focus on the interesting parts of the project. This framework code will be written in C++. (it is possible, but unlikely, that we will also create a version in another language). You will have the option of not using the framework code, writing your own framework (possibly in another language). But this is ill-advised, since you will spend a lot of time re-creating the un-fun parts and missing out on the practice of figuring out.
The framework code doesn’t use any of the newer/fancier features in C++. (In fact, I kindof advise against trying to use those things unless you really know what you’re doing) So, if you’re a C programmer, you’re probably OK, there will only be a little bit of stuff to pick up. The hard parts (like having to manage your own memory) are the same.
The mini-projects won’t happen until later in the class. However, you might want to be prepared for them. Make sure you have access to the compiler/development environment on your machine of choice (if you’re working in the windows labs, you’re OK). If you don’t have C++ experience, try to write some simple programs and read up on the language. Even though you are not required to do the programming assignments in C++, you might want to do it that way for practice.
We will provide you with some suggestions and resources. I have started a Piazza discussion topic (pinned at the top – I am not sure how to make a permalink to a piazza topic) for this. If you have suggestions, please contribute!