Department of Information & Communication Systems Engineering
University of the Aegean
SCHOOL OF ENGINEERING

Department of Information
& Communication Systems Engineering

Information & Communication Systems Security
Information Systems
Artificial Intelligence
Computer & Communication Systems
Geometry, Dynamical Systems & Cosmology
 
Αντικειμενοστραφής Προγραμματισμός ΙΙ

Title: Αντικειμενοστραφής Προγραμματισμός ΙΙ
Lesson Code: 321-3652
Semester: 3
ECTS: 5
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. 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; to familiarize students with the basic features of the language API and knowing how to use them correctly and efficiently; to cover the usage principles of encapsulation, coupling, cohesion, inheritance, polymorphism and method overloading/overriding; to create applications using 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.

 
Prerequisites

321-1204 Structured programming
321-2104 Object-oriented programming I

 
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

Lab exam, Final exam, multiple choice, short-answer questions, problem solving.

 
Assessment/Grading Methods

 Lectures, Laboratory, Lab. exercises, Study.

 
Language of Instruction
Greek, English (for Erasmus students)
 
Μode of delivery

 Face-to-face



Home | Contact

University Of The Aegean

SCHOOL OF ENGINEERING
Department of Information & & Communications Systems Engineering

© Copyright ICSD :: 2008 - 2017