Department of Information & Communication Systems Engineering
University of the Aegean

Department of Information
& Communication Systems Engineering

Information & Communication Systems Security
Information Systems
Artificial Intelligence
Computer & Communication Systems
Geometry, Dynamical Systems & Cosmology
Object-oriented Programming II

Title: Object-oriented Programming II
Lesson Code: 321-3652
Semester: 3
Theory Hours: 3
Lab Hours: 2
Faculty: Kambourakis Georgios
Content outline

- Introduction to OOP and UML.

- Java Language Fundamentals: Data types, Variable declarations, Operators and Assignment, Control structures, Strings, Arrays, Collections, Wrapper classes.

- Java as an OOP language: Classes, Constructors, Access modifiers, Packages, Interfaces, Garbage collection, Encapsulation, Cohesion, Coupling.

- Exception Handling: Basics, Exception Hierarchy, The Throwable class, Unchecked and checked exceptions, Exception and Inheritance, User defined Exceptions, Redirecting and Re-throwing Exceptions

- Introduction to Concurrent programming and Multithreading: Introduction, Thread Creation, Thread Life cycle, priorities and scheduling, Synchronization, Communication of Threads.

- Files and I/O Streams: File Input stream and File output stream, Serialization.

- AWT: Basics, The Graphics class, Class hierarchy of AWT, Layout Managers, Java 2D API.

- Swings: Introduction, Swing packages, Hierarchy of swing classes, Advanced layout Managers.

Introduction to networking with Java: Introduction, Stream Socket Connections.

Learning outcomes

This course covers the fundamentals of Object Oriented Programming (OOP) using Java. The main learning objectives for this course are:

- To build and develop OOP thinking: Learn to think in objects.

- Τo familiarize students with the basic features of the language API and the know-how to use them correctly and efficiently

- Τo cover the usage principles of encapsulation, coupling, cohesion, inheritance, polymorphism and method overloading/overriding

-Τo teach and demonstrate sound OOP practices and program structuring

-To develop analytical programming thinking and reasoning skills.

The aforementioned objectives are achieved through course lectures and extensive laboratory exercises.


Not required.

Basic Textbooks

- Liang D. Y., Java, 10th ed.
- Deitel Harvey M., Deitel Paul J., Java Programming, 10th ed.
- Cadenhead R, and Lemay L., Java 7, 6th ed.
- Kavouras, Ι. Κ., Roukounaki, Java Programming, Klidarithmos Pubs., (in Greek).
- Horton, I., Beginning Java 2.
- Horstmann, K. Big Java, Wiley.
- Horstmann, C. S., Cornell, G., Core Java, Prentice Hall.
- Eckel, B., Thinking in Java, Prentice Hall, 2nd Edition.
- Naughton, P., Java Handbook, Osborne.
- Burns, J., Javascript Goodies, Earthweb press.
- Kathy Sierra and Bert Bates, SCJP Sun Certified Programmer for Java.
- Cay S. Horstmann, Java 8 for the Really Impatient.
- Brian Goetz and Tim Peierls, Java Concurrency in Practice.
- Kathy Sierra and Bert Bates, Head First Java, 2nd Edition.
- Joshua Bloch, Effective Java, 2nd Edition.
- Craig Walls, Spring in Action, 4th edition.
- Christian Bauer and Gavin King, Java Persistence with Hibernate.
- Bear Bibeault and Yehuda Katz, jQuery in Action.
- Eric Freeman and Bert Bates, Head First Design Patterns.
- Erich Gamma and Richard Helm, Design Patterns: Elements of Reusable Object-Oriented Software.
- Robert C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship.
- Robert Sedgewick and Kevin Wayne, Algorithms, 4th Edition.
- Narasimha Karumanchi, Data Structures and algorithms Made Easy in Java, 2nd edition.
- Jon Bentley, Programming Pearls, 2nd Edition.
- Yegor Bugayenko, Elegant Objects (Vol. 1).

Learning Activities and Teaching Methods

Written examinations (70%) which includes:

- Multiple choice questions.
- Short-answer questions.
- Problem solving.

Laboratory examination (30%) which includes:

- 3 programming projects.
- Oral examination.

Assessment/Grading Methods
Activity Semester workload
Lectures 39 hours
Laboratory Exercises 26 hours
Personal study 56 hours
Πρόοδος 1 hour
Final exams 3 hours
Course total 125 hours (5 ECTS)
Language of Instruction
Greek, English (for Erasmus students)
Μode of delivery


Home | Contact

University Of The Aegean

Department of Information & & Communications Systems Engineering

© Copyright ICSD :: 2008 - 2017