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
Type of course
Course coordinators
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.
Additional information
Information on level of this course, year of study and semester when the course unit is delivered, types and amount of class hours - can be found in course structure diagrams of apropriate study programmes. This course is related to the following study programmes:
Additional information (registration calendar, class conductors, localization and schedules of classes), might be available in the USOSweb system: