Course code |
07 67 4010 19 |
Number of ECTS points |
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 |
Form of classes |
|
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 |
|
|
Unit running the course |
Instytut Informatyki |
Course coordinator |
dr inż. Marcin Kwapisz |
Course instructors |
dr inż. Łukasz Chomątek, dr inż. Marcin Kwapisz |
Prerequisites |
Object Oriented Programming |
Course learning outcomes |
- EXPLAINS SPECIFICATIONS of the three-layer application architecture, i.e. data, application logic and user interface,
- DISCUSSES AND JUDGES usefullnes and compatibility of sample components, libraries or packages in a a chosen technology and IS ABLE TO IMPROVE them via overriding classes and methods and other object oriented methods.
- APPLIES TECHNICAL DOCUMENTATION of standard packages/libraries in a device-independent language, especially, the most frequently used components representing data structures and algorithms,
- RECOGNIZES BASIC MECHANISMS AND METHODS of communication between software and external data sources, e.g. databases,
- IS ABLE TO design hierarchies of classes and packages to develop a reusable components that complete requirements of the three-layer architecture and tasks assigned to each layer,
- 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,
- APPLIES packages and components with open-source techniques to create and develope application logic layer and data layer,
- ADAPTS CHOSEN MECHANISMS AND METHODS of communication in software projected and implemented according to the three-layer-architecture model using components
- CAN COMMUNICATE developed software with users and with external data sources using chosen components and libraries via grahical user interfaces (GUI) via ODBC,
- EVALUATES compatibility of own and other sample projects with the requirements of the three layer architecture of applications,
|
Programme learning outcomes |
- design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the programme’s discipline
|
Programme content |
LECTURE
1. Introduction to programming in Java language: data types, statements, expressions, algorithms
2. Custom collections, iterator design pattern, interfaces and components. Unit testing in software development prosess
3. Generic types - generic programming in classess and interfaces, reusable code, modular design
4. Collections and maps in Java API - properties and variants: unmodifieble, synchronized. Data streams in collections, streams processing, elements of functional programming
5. Inheritance and access modifiers, overloading and overriding of methods, polimorphism
6. Standard object serialization. Components, multi-layered models, interfaces as a method for components binding
7. Standard interfaces in Java API - natural ordering in a sto of objects, object equality, hashing algorithms in collections and maps, sorting. Anonymous, inner and local classes. Comparatora as an example of functional interface, direct references to methods
8. Internationalization and localization of applications in computer systems. Support for i18n and l10n in Java API
9. Integrated development environments for Java development
10. Advanced operations on files and file systems, buffering, direct access to operating systems resources.
11. Java API Exceptions and custom exceptions hierachies
12. DI, IoC, observer, delegate, decorator, interceptor, factory design patterns on an example of CDI container (JBoss Weld), loose coupling of components.
LABORATORY CLASSES
Development of GUI application based on component architecture with TDD techiques that solves simple information technology problem:
1. Installation and configuration of tools supporting software development process and validating programming style
2. Iterative and recursive algorithms for examplary information technology problems
3. Development of custom classes and methods
4. Object class, its methods and overriding of toString(), equals(), hashCode()
5. Software development with Java API standard collections and maps. Variants of collection and maps with different features
6. Standard interfaces Serializable, Comparable, Cloneable and Comparator
7. Data persistence with standard and custom serialization
8. External libraries in software development
9. Internationalization and localization of applications. Correct formatting and parsing Strings to date/time, currency, percent, numbers. Formatting and parsing of string mesages
11. Exception handling and development of exception hierarchies
12. GUI implementation with usage of architectural and design patterns: mvc, adapter, listener, delegat, fabryka
13. Application of elements of functional programming |
Assessment methods |
Learning outcomes 1-10: Evaluation of laboratory exercises, evaluation of the practical laboratory test, evaluation of the written lecture exam
|
Grading policies |
The lecture grade is a grade acquired during an exam written in the form of quiz (multichoice answer test) on the Wikamp platform
The laboratory grade is an average of grades from the laboratory test (50%) and laboratory exercises (50%)
The final grade is the weighted mean of grades from the lecture exam (40%) and from the laboratory (60%)
To take the exam a student must pass laboratory classes
The laboratory classes and the exam is deemed passed if a grade is above 50% |
Course content |
LECTURE
1. Introduction to programming in Java language: data types, statements, expressions, algorithms
2. Custom collections, iterator design pattern, interfaces and components. Unit testing in software development prosess
3. Generic types - generic programming in classess and interfaces, reusable code, modular design
4. Collections and maps in Java API - properties and variants: unmodifieble, synchronized. Data streams in collections, streams processing, elements of functional programming
5. Inheritance and access modifiers, overloading and overriding of methods, polimorphism
6. Standard object serialization. Components, multi-layered models, interfaces as a method for components binding
7. Standard interfaces in Java API - natural ordering in a sto of objects, object equality, hashing algorithms in collections and maps, sorting. Anonymous, inner and local classes. Comparatora as an example of functional interface, direct references to methods
8. Internationalization and localization of applications in computer systems. Support for i18n and l10n in Java API
9. Integrated development environments for Java development
10. Advanced operations on files and file systems, buffering, direct access to operating systems resources.
11. Java API Exceptions and custom exceptions hierachies
12. DI, IoC, observer, delegate, decorator, interceptor, factory design patterns on an example of CDI container (JBoss Weld), loose coupling of components.
LABORATORY CLASSES
Development of GUI application based on component architecture with TDD techiques that solves simple information technology problem:
1. Installation and configuration of tools supporting software development process and validating programming style
2. Iterative and recursive algorithms for examplary information technology problems
3. Development of custom classes and methods
4. Object class, its methods and overriding of toString(), equals(), hashCode()
5. Software development with Java API standard collections and maps. Variants of collection and maps with different features
6. Standard interfaces Serializable, Comparable, Cloneable and Comparator
7. Data persistence with standard and custom serialization
8. External libraries in software development
9. Internationalization and localization of applications. Correct formatting and parsing Strings to date/time, currency, percent, numbers. Formatting and parsing of string mesages
11. Exception handling and development of exception hierarchies
12. GUI implementation with usage of architectural and design patterns: mvc, adapter, listener, delegat, fabryka
13. Application of elements of functional programming |
Basic reference materials |
- Fowler M., Beck K., Brant J., Opdyke W., Roberts D.: Refactoring: Improving the Design of Existing Code, 1999 (2nd Ed. available in 2018)
- Horstmann Cay S. , Core Java Volume I--Fundamentals, 10th Edition, 2017 (11th Ed. available in 2018)
- Horstmann Cay S., Core Java, Volume II--Advanced Features, 10th Edition, 2017 (11th Ed. available in 2018)
- Booch G., Rumbaugh J., Jacobson I.:The Unified Modeling Language User Guide, 2nd Ed., Addison Wesley, 2005
- Martin R.C.: Clean Code:A Handbook of Agile Software Craftsmanship, Prentice Hall, 2008
- Bloch J.: Effective Java, 3rd Ed., Pearson Education, 2017
- Java Language Specification https://docs.oracle.com/javase/specs/
- Java Community Process http://jcp.org
|
Other reference materials |
- https://gluonhq.com/products/javafx/
- http://code.makery.ch/library/javafx-8-tutorial
- http://docs.oracle.com/javase/8/javase-clienttechnologies.htm
- http://www.mkyong.com/all-tutorials-on-mkyong-com/
- https://dzone.com/refcardz/javafx-8-1
|
Average student workload outside classroom |
90 |
Comments |
|
Updated on |
2021-05-30 18:41:02 |
Archival course yes/no |
no |