After passing the exam, students will be able to understand the basic concepts of object oriented programming. They will be able to develop the applications of small and medium complexity in Java on their own. They will be able to apply the learnt concepts of object oriented paradigm when working in other programming languages.
- Describe the principles of the object oriented programming paradigm
- Apply the concepts of abstraction, data encapsulation, inheritance and polymorphism to software design
- Use an object oriented programming language, and associated class libraries, to develop programs
- Design, develop, test, and debug programs using object oriented principles in conjuncture with an integrated development environment
- Design and develop programs with Graphical User Interfaces capabilities
- Apply multi-threading for creation of responsive user interfaces
- Describe and explain the factors that contribute to a good object oriented solution
Forms of Teaching
Materials and presentations are on course web page.Exams
Midterm exam and final examLaboratory Work
complex laboratory assignments which includes object oriented programming in JavaExperiments
inside the lectures are demonstrations of program solutions and toolsConsultations
consultations are conducted by all professors and teaching assistants every weekAcquisition of Skills
Searching Web and finding work in the field of the courseProgramming Exercises
Personal tools for programming in Java, independent specification and programming programs in JavaE-learning
independent finding video tutorials and experimenting with themOther
|Type||Threshold||Percent of Grade||Threshold||Percent of Grade|
|Laboratory Exercises||50 %||50 %||0 %||50 %|
|Mid Term Exam: Written||50 %||25 %||0 %|
|Final Exam: Written||50 %||25 %|
|Exam: Written||50 %||50 %|
Week by Week Schedule
- Java programming language. Java as a machine independent platform. Programming tools. Command line tools. Coding conventions. Refactoring.
- Abstraction. Encapsulation. Classes and objects. Static members. Access modifiers.
- Constructors. Class relationships.
- Inheritance. Polymorphism.
- Abstract classes. Interfaces.
- Nested and anonymous classes. Exceptions.
- Files and streams.
- Midterm exam.
- Collections. Basics of collections, sets and implementations, lists and implementations. Maps. Other collections.
- General collection algorithms. Generics. Simple and complex comparators.
- Development of applications with graphical user interface. Basics, windows, visual component layout and supporting managers. Simple graphical components.
- Introduction to multithreading and multithreaded applications: basics, working with thread pools.
- Components for complex data display: models and views. Menus. Development and use of custom graphical components. User interfaces and multithreading.
- Program testing. Program performance analysis. Program optimization.
- Final exam.