Object-oriented design and programming 1000-713PPO
* Object-oriented domain modeling
* Basics of UML notation
* Introduction to object-oriented programming
* Object-oriented programming in Java
* Data hiding, encapsulation
* Creation, initialization and destruction of objects
* Inheritance and polymorphism
* Interfaces
* Exceptions
* Generics and collections
* Streams, serialization
* Design patterns
Course coordinators
Type of course
Learning outcomes
Knowledge
- knows about object-oriented design and programming (encapsulation and information hiding, classes and subclasses, inheritance, polymorphism, class hierarchies) (K_W11),
Skills
- can create object-oriented models of simple systems (for example in UML) (K_U12),
- can design and implement object-oriented programs in a selected programming language (K_U13).
Assessment criteria
The final grade is calculated according to the formula:
H + max((3/2) * E, E + T)
where:
H - number of points from the homework (0..30),
T - number of points from the class test (0..20),
E - number of points from the exam (0..40).
A score of at least 60% (54) is required to pass the exam. The grading scale is linear (thresholds of individual grades are: 54, 61, 68, 75, 82).
To write the exam one has to pass the classes (this is not required in case of the resit).
To pass the classes one has to get:
at least 8 points from the class test (T),
and at least 15 points from the homework (H).
Conditions for admission to the "zero-term": obtaining at least 90% of the points in the test (i.e. in the first term) and at least 90% of the points in homework. The exam itself is conducted and graded just like the (regular) exam. The "zero-term" exam replaces the (regular) exam.
Bibliography
* J. Gosling, B. Joy, G. Steele, G. Bracha, The Java Language Specification, Java SE 8 Edition, Addison-Wesley Professional, 1st ed., 2014.
* J. Gosling, B. Joy, G. Steele, G. Bracha, A. Buckley, D. Smith, G.Bierman, The Java Language Specification, Java SE 19 Edition, https://docs.oracle.com/javase/specs/, 2022.
* C.S. Horstmann, Core Java for the Impatient, 3rd ed., Addison-Wesley Professional, 2022.
* J. Bloch, Effective Java, 3rd ed., Addison-Wesley Professional, 2017.
* G. Booch, J. Rumbaugh, I. Jacobson, The Unified Modeling Language User Guide, Addison-Wesley, 2017.
* E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design patterns : elements of reusable object-oriented software, Addison-Wesley; 1st ed., 1995.
* C. Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition), Prentice Hall, 3rd ed., 2004.
* B. Eckel, Thinking in Java, Prentice Hall, 4th ed., 2006.