Object-oriented Programming and Design 3501-KOG-PPO2
Presentation of fundamental notions in object-oriented design and programming. Such notions as object and class and then encapsulation, inheritance and polymorphism are introduced. Basic formalisms (subset of UML) for designing object-oriented programs are presented. During computer classes students design (using class diagrams) and implement (in Java) small programs illustrating subsequent topics presented in the lecture.
Estimated number of hours which should be devoted by students for achieving learning results: 30h (lecture) + 30h (computer class) + 90h own work.
Object-oriented domain modeling
Introduction to object-oriented programming
Basics of programming in Java
Encapsulation
Introduction to UML
Creation, initialization and destruction of objects
Inheritance and polymorphism
Interfaces
Exceptions
Generic types and collections
Streams and serialization
Design patterns
Type of course
Mode
Prerequisites (description)
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, The Java Language Specification, Java SE 13 Edition, https://docs.oracle.com/javase/specs/, 2019.
G. Booch, J. Rumbaugh, I. Jacobson, The Unified Modeling Language User Guide, Addison-Wesley, 2017.
E. Gamma, R. Helm, R. Johnson, J. Vlissides, Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku, Wydawnictwa Naukowo-Techniczne, 2005.
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
Additional information (registration calendar, class conductors, localization and schedules of classes), might be available in the USOSweb system: