# Course Pre-Requisites (should you be here?)

Pre-Requisites: what you need to know before taking this class.

Officially the prerequisites are:

(MATH 222 or MATH 276) and (COMP SCI 367 or 400) or graduate/professional standing or declared in the Capstone Certificate in Computer Sciences for Professionals

## The Programming requirements

We require CS400. Not necessarily because we want all the specific things they teach you in the class, but rather, we expect you to be a mature enough programmer that you can write non-trivial programs. You should be comfortable enough with programming that learning a new language or picking up a new development environment isn’t such a big deal.

Programming in CS559 will be in JavaScript (see the Javascript in CS559 page for a lot of details). We do not expect students to have programmed in JavaScript prior to class - the pre-requisite is that you’ve done programming in *some* programming language (CS400 is Java). You should be a mature enough programmer that learning a new language shouldn’t be a major issue (see “Learning a new language in CS559” on the Javascript in CS559 page).

We will expect you to learn how to make web pages (e.g., basic HTML stuff) and use GIT for source control. If you don’t already know it, we’ll give you some chance to learn enough of the basics.

Officially, CS400 (the pre-req for this class) covers some GIT, HTML, and JavaScript. But, we realize you might not have learned that much about them. Our intent is to help you learn the basics of these things enough that you can learn about graphics. You may want to put some extra effort in before the beginning of the semester (or in the first weeks of class) to learn these things.

## The Math Requirements

The topics in Computer Graphics require some degree of fluency with basic vector mathematics (i.e., the ideas of vectors, matrices and the basic operations on them). The mathematics classes that cover this material thoroughly (e.g., Math 234 and Math 340) have this as only a small part before moving on to more complex topics, and even then often do not provide the basic intuitions valuable for the class. Therefore, the higher level math classes are both over-kill (i.e., provide far more advanced material than necessary) and insufficient (i.e., we typically need to review the material to connect the important aspects for the class to the mathematical concepts).

Therefore, we feel it is wrong to require Math 234 or 340 (as the previous pre-reqs did) as it excludes too many students who do not need the majority of the material in those classes. Instead, we will provide some review of the basic mathematical concepts required - which is both useful for students who have not taken the classes (as it may be their first formal introduction) as well as those who have (as it will help connect the formalisms taught in the classes to the practical intuitions required for the class). We have unofficially had this policy before 2014 (when we changed the official pre-requisites).