The aim of this course is to present in detail  a  modern, general purpose, fast, secure, robust, object-oriented programming language Java in details.  In addition to the concepts related to specific programming elements (data types, variables, expressions, operators, memory access,  ...), students will learn programming techniques used in practice and ways of solving problems. They will learn about files, exceptions, collections, and GUI programming.

This course is practically oriented. For each theoretical concept or programming construct that is presented during the semester, a practical usage is also given. Through tasks that students solve within this course, they have the opportunity to consolidate their knowledge and to go deeper into the subject.