Object-Oriented Programming (OOP)
                                      
Home
Home
Theory
Labs
Labs

Theory
Aims and Objectives
Software engineering (SE) is concerned with developing and maintaining software systems that behave reliably and efficiently, are affordable to develop and maintain, and satisfy all the requirements that customers have defined for them. It is important because of the impact of large, expensive software systems and the role of software in safety-critical applications.
Within this framework, the course is concentrating in Object Oriented technology, and particularly in advanced concepts, providing the students with background, ability and skills to perform as professionals in systems' development, as well as, in education and research.

Main subjects: Object Oriented methods and techniques, Evaluation, Testing, Agile methods

 Key Contents
 Bibliography
Software Engineering II (Advanced)
5602
6
5 Theory
Compulsory
6
Greek
Panagiotis Sfetsos,Associate Professor
http://aetos.it.teithe.gr/~sfetsos/
Ignatios Deligiannis, Professor
http://aetos.it.teithe.gr/~ignatios/

1st - Course Description:

Title                        
Course code                
Semester                
Hours per Week        
Course Category        
Credits ECTS        
Language                
Teaching Staff                
2nd - Course Description:

Title                        
Course code                
Semester                
Hours per Week        
Course Category        
Credits ECTS        
Language                
Teaching Staff                
Algorithms and Programming
5102
1
4 Theory, 2 Lab
Compulsory
6
Greek
Panagiotis Sfetsos, Associate Professor  http://aetos.it.teithe.gr/~sfetsos/

Aims and Objectives
Course 4102 will take a student who has never programmed before and introduce her/him to fundamental concepts in algorithms and programming. The aims of this course are:
On completion of this course, students should be able to:

 
Key Contents
 Bibliography
 3rd - Course Description:

Title                        
Course code                
Semester                
Hours per Week        
Course Category        
Credits ECTS        
Language                
Teaching Staff                
Object Oriented Programming
5201
2
4 Theory, 2 Lab
Compulsory
6
Greek
Panagiotis Sfetsos, Associate Professor  http://aetos.it.teithe.gr/~sfetsos/

Panagiotis Adamidis, Professorsociate
http://aetos.it.teithe.gr/~adamidis/


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