Aims and Objectives
This course continues developing Object Oriented Programming concepts and principles that have been introduced in the course "Algorithms & Programming". It aims to provide an extensive understanding of object-oriented programming and the development of object-oriented thinking to solve computational and programming problems. Emphasis is given on teaching basic principles of object-oriented programming and their application using the JAVA programming language as well as understanding the capabilities of JAVA compared with other programming languages.It also includes an overview of recursion and other advanced algorithms and techniques. Programming is not just writting code. Developers should also make some compromises, to choose among alternative designs, different algorithms and different implementations.
At the same time they have to deal with compatibility issues, performance and reliability and must also satisfy the specifications.
Key Contents
- Composition and Inheritance: composition, recursive classes, subclasses/derived classes, access modifiers, overloading and overriding fields and methods, class hierarchies, polymorphism, comparison of inheritance and composition
- Exceptions and Error Handling
- Enhanced class design: abstract classes and methods, interfaces, packages
- Generics
- General approaches to the construction of efficient solutions to problems, recursion, searching and sorting.
Alternative Evaluation Methods
Module Objectives
Upon completion of this course, students should know basic searching and sorting algorithms and also be able to:
- develop, transform, verify, correct and execute Java applications using object-oriented features of Java,
- produce object-oriented programs using the basic library of Java,
- describe the object-oriented concepts and principles and their implementation using Java,
- have knowledge of the hierarchy of Java classes,
- use Java classes and derived classes in program development
- judge the quality of other proposed solutions
- co-operate with their fellow students in the joint development and implementation of programming solutions.
Bibliography
- Liang D.Y., Introduction to JAVA Programming, 10th ed., in greek by Tziolas Pub.,
- Savitch Walter, JAVA, An Introduction to Problem Solving and Programming, 7η Έκδοση, in greek by Tziolas Pub.,
- Deitel, Deitel, "Java: How to Program", in greek by Giourdas Pub., 2010
- Bruce Eckel, "Thinking in Java", Paperback, Prentice Hall Computer Books
- Savitch Walter, "Java: An introduction to problem solving and programming", in greek by Tziolas Pub., 2015
- Zakhour S. Hommel S., Royal J. Rabinovitch I., Risser T. Hoeber, M, "The Java Tutorial: A Short Course on the Basics", in greek by Tziolas Pub., 2007
- Thrampoulidis Kleanthis, "Object Oriented Programming", in greek by Tziolas Pub., 2005
- Robert Sedgewick, "Algorithms in Java, Parts 1-4", in greek by Kleidarithmos, 2005