IC211: Object Oriented Programming IC211 teaches students about the fundaments of object-oriented programming. Topics include the use of classes, inheritance, and polymorphism within Java and other languages. Imported libraries support the brunt of the program's weight, just as the frame of the car gives it strength it needs to act. Custom classes defined by the programmer give flexibility to the program, in much the same way that a car's suspension handles the bumps in the road. Encapsulation allows a programmer to divide a program into objects called “classes”, in order to control how they are accessed/modified. Inheritance enables these classes to acquire attributes and behaviors from each other. Combine these two skills and you’ll really be firing on all cylinders!