This is the first of two courses that will present Object-Oriented methodologies and programming concepts using the Java programming language. Students will apply Agile tools and techniques, as well as the Unified Modeling Language (UML) within the software development process. The course examines Object-Oriented concepts such as abstraction, encapsulation, generalization, and polymorphism. Students will exercise these concepts with hands-on programming practice and define testing procedures. Additionally, students will use Integrated Development Tools and determine the role of software design frameworks. Recommended prerequisite: ICT 4300.