Software development processes, the Unified Modeling Language (UML), and object-oriented concepts such as data and program abstraction, decomposition of large systems into reusable objects, and inheritance encapsulation and polymorphism. Programming projects will be implemented in an object-oriented language such as JAVA and C#.