This course develops the students’ ability to continue understanding and writing programs using Java programming language. Students will deeply understand the architecture of Object-Oriented programming and utilization. Inheritance, Encapsulation, Abstraction and Polymorphism will be thoroughly explained and utilized. Dealing with files and streams will be covered as well.