Objectives and competences
The goal of this course is for students to be able to demonstrate understanding of object-oriented programming concepts and Java class libraries to develop object-oriented software in Java.
Content (Syllabus outline)
Characteristics of modern programming languages: interdependence of programming language and computer system, key factors for platform independence, virtual machine.
• Basic object-oriented concepts: syntax and semantics, encapsulation, inheritance, interfaces, polymorphism, message passing and delegation.
• Object-based development: declaration and implementation of interfaces and classes, definition of attributes, properties and services, access rights definition, use of inheritance, interface implementation, abstract classes, inner classes, anonymous classes.
• Communication between objects, exception handling, event models, concept of responsibility delegation, use of adapters.
• Components for graphical user interface development: building blocks, containers, layout managers, MVC pattern.
• Object collections, arrays, frameworks, iterators, support for internationalization.
• Concurrent execution: threads, communication and synchronization between concurrent tasks.
• Object persistence: serialization, database access, input/output streams.
• Java networking and web services.
• Java component model (Java Beans)
Learning and teaching methods
• lectures,
• hands on use cases and discussion,
• labs,
• individual work
Intended learning outcomes - knowledge and understanding
After completing this course the student will be able to:
• understand and use object-oriented programming concepts,
• develop new and reuse existing software classes,
• use Java event model and components to develop graphical user interfaces,
• develop standalone object-oriented Java applications for a given design,
• develop simple multi-threaded applications.
Intended learning outcomes - transferable/key skills and other attributes
• Communication skills: documenting source code, oral lab work defence, manner of expression at written and oral examination.
• Use of information technology: use of integrated development environments.
• Problem solving: design and development of simple and semi-complex software solutions.
Readings
• C.S. Horstmann,Core Java Volume I – Fundamentals, Prentice Hall, 2018.
• C.S. Horstmann,Core Java Volume II – Advanced Features, Prentice Hall, 2018.
• M. Heričko et al: Osnove programiranja v Javi, zbrano gradivo, FERI Maribor, 2000.
• B. Eckel: Thinking in Java, Prentice-Hall, 2006.
Prerequisits
Basic programming skills are recommended.
Additional information on implementation and assessment The written exam may be replaced by midterm examinations in the weight of 40%.