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
• M. Heričko et al: Osnove programiranja v Javi, zbrano gradivo, FERI Maribor, 2000
• Mesojedec, U., & Fabjan, B. (2004). Java 2: temelji programiranja (p. 596). Pasadena.
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%.