Course code 07 67 4010 20
ECTS credits 6
Course title in the language of instruction
Component Programming
Course title in Polish Component Programming ( Programowanie komponentowe)
Course title in English
Component Programming
Language of instruction English
Course level first-cycle programme
Course coordinator dr inż. Marcin Kwapisz, dr hab. inż. Adam Niewiadomski
Course instructors dr inż. Łukasz Chomątek, dr inż. Marcin Kwapisz
Delivery methods and course duration
Lecture Tutorials Laboratory Project Seminar Other Total of teaching hours during semester
Contact hours 30 30 0 60
E-learning No No No No No No
Assessment criteria (weightage) 0.40 0.60 0.00
Course objective
  1. To make students familiar with the idea of component programming
  2. Application of Java programming language and related: products, tools, libraries and technologies dedicated for component oriented software development (in the sense of object oriented programming).
Learning outcomes
  1. EXPLAINS SPECIFICATIONS of the three-layer application architecture, i.e. data, application logic and user interface,
  2. APPLIES TECHNICAL DOCUMENTATION of standard packages/libraries in a device-independent language, especially, the most frequently used components representing data structures and algorithms,
  3. RECOGNIZES BASIC MECHANISMS AND METHODS of communication between software and external data sources, e.g. databases,
  4. IS ABLE TO project hierarchies of classes and packages to develop a reusable components that complete requirements of the three-layer architecture and tasks assigned to each layer,
  5. CAN USE sample codes and components and create his/her own using libraries, packages and /or components, classes and methods to develop application logic and data layers,
  6. APPLIES packages and components with open-source techniques to create and develop application logic layer and data layer,
  7. ADAPTS CHOSEN MECHANISMS AND METHODS of communication in software projected and implemented according to the three-layer-architecture model using components
  8. CAN COMMUNICATE developed software with users and with external data sources using chosen components and libraries via graphical user interfaces (GUI) via ODBC,
  9. EVALUATES compatibility of own and other sample projects with the requirements of the three layer architecture of applications,
  10. DISCUSSES AND JUDGES usability and compatibility of sample components, libraries or packages in a chosen technology and IS ABLE TO IMPROVE them via overriding classes and methods and other object oriented methods.
Assessment methods
Learning outcomes 1-7 -> Evaluation of laboratory exercises, evaluation of the laboratory practical test, evaluation of the exam

The laboratory grade is an average of grades from the practical laboratory test and laboratory exercises
The final grade is the weighted mean of grades from the lecture exam (40%) and from the laboratory (60%)
        50%-59.99% - 3
        60%-69.99% - 3.5
        70%-79.99% - 4
        80%-89.99% - 4.5
        90%-100% - 5
Completed courses in: Methods and Languages of Basics of Programming,
Algorithms and Data Structures and Object Oriented Programming
Course content with delivery methods
Introduction to Java programming language
Test-Driven Development 
Access control and inheritance, overloading and overriding of methods
Examples of design patterns
Generic types. Collections and Maps and their hierarchies
Standard Java interfaces
Maven and project hierarchies, software modules
Multilayered architecture
Advanced I/O operations
Internationalization and localization of applications
DI/IoC containers on CDI example


Installation and configuration of software development environment
Design and implementation of algorithms for solving simple problems
Project configuration - coding styles and standard adherence, test code coverage
Component based architecture with interfaces
Object oriented data model
Maps and collections
Basic I/O operations. Data access components (DAO, repository, facade) - serialization
Application of standard Java interfaces
Multi-module and multi-layered project with GUI. Internationalization and localization mechanisms
Laboratory practical test
Custom exception hierarchies and writing to logging facilities
Data access components - DBMS, JDBC/JPA
Basic reference materials
  1. Cay S. Horstmann, Core Java Volume I--Fundamentals, 10th Edition, 2017 (11th Ed. available in 2018)
  2. Cay S. Horstmann, Core Java, Volume II--Advanced Features, 10th Edition, 2017 (11th Ed. available in 2018)
  3. Martin Fowler, Kent Beck, Refactoring: Improving the Design of Existing Code, 1999 (2nd Ed. available in 2018)
  4. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Pearson, 2000
  5. Bloch J.: Effective Java, 3rd Ed., Pearson Education, 2017
  6. Java Language Specification
  7. Java Community Process
Other reference materials
Average student workload outside classroom
Last update