Mostly based on Java, so you want to have at least a basic understanding going in. Most of the class is lecturing on specific design patterns using UML for visual diagramming, and then going into the Java code. Find a reliable partner for labs/assignments/group projects early on. I wish this class had a lab to reinforce lecture material n practice.