Introduction to object oriented programming. Java programming language, similarities and differences with C. Variable types. Operators. Loops. Branches. Classes and objects. Methods. Overloading. Constructors. Encapsulation. Standard methods. References. Arrays. Inheritance. Abstract classes and methods. Interfaces. Polymorphism. Design patterns. Package (libraries) construction and usage. Integrated development environments (IDE). Generic classes and methods. Lists. Inner classes. Exceptions. Files. Graphical user interfaces (GUI). Applets. Multithreading. Other object oriented programming languages, e.g., C++, C#. Android applications.
The objective of this course is to familiarize students with the concepts of object oriented programming, and to provide theoretical and practical knowledge on methods and tools used for object oriented design and development of reusable and extensible software. The course has both theoretical and practical aspects. The students have the opportunity to learn techniques for object oriented software design and development, and many examples with the use of object oriented programming languages, such as C++ and Java.
Upon successful completion of this course, students should be able to: