Course description:
The purpose of the course is to study concepts and techniques necessary to write high-quality programs, including advanced concepts of object-oriented programming, modular design. Some advanced topics such as reflection, distributed programming, multi-threading, Graphical User Interface (GUI), working with databases and sockets libraries are also covered. All of the mentioned concepts and techniques are studied using any language programming.