- Code
- CMP 407
- Name
- Advanced Object Oriented Programming
- Semester
- 1
- Lecture hours
- 3.00
- Seminar hours
- 1.00
- Laborator hours
- 0.00
- Credits
- 3.50
- ECTS
- 6.00
- Description
-
The course is oriented towards developing practical skills for object-oriented design, program implementation, execution, and testing by including object-oriented concepts such as classes and objects, encapsulation, abstraction, inheritance, polymorphism, composition, etc.
- Objectives
-
The main objective of this course is to teach the students fundamental concepts of object-oriented programming. The course aims to teach students the principles and tools to design and implement applications using Java language and object-oriented design and concepts.
- Java
- Tema
- 1
- Using objects. Objects and Classes. Variables. Calling Methods. Method Declarations. Constructing Objects. Accessor and Mutator Methods. The API Documentation. Browsing the API Documentation. Packages. Implementing a Test Program .Testing Classes in an Interactive Environment. Object Reference. (Cay Horstmann, Big Java early objects, 6th edition, p. 31-55)
- 2
- Graphical Applications. Frame Windows. Drawing on a Component. Displaying a Component in a Frame. Ellipses, Lines, Text, and Color. Ellipses and Circles. Lines. Drawing Text. Colors. (Cay Horstmann, Big Java early objects, 6th edition, p. 56-66)
- 3
- Implementing classes. Instance Variables and Encapsulation. Instance Variables. The Methods of the Counter Class. Encapsulation. Specifying the Public Interface of a Class. Specifying Methods. Specifying Constructors. Using the Public Interface. Commenting the Public Interface. Providing the Class Implementation. Providing Instance Variables. Providing Constructors.Providing Methods. (Cay Horstmann, Big Java early objects, 6th edition, p. 79-93)
- 4
- Arrays. Declaring and Using Arrays. Array References. Using Arrays with Methods. Partially Filled Arrays. Methods with a Variable Number of Arguments. The Enhanced for Loop. Common Array Algorithms. (Cay Horstmann, Big Java early objects, 6th edition, p. 308-324)
- 5
- Two-Dimensional Arrays. Declaring Two-Dimensional Arrays. Accessing Elements. Locating Neighboring Elements. Accessing Rows and Columns. Multidimensional Arrays. Array Lists. Declaring and Using Array Lists. Using the Enhanced for Loop with Array Lists. Copying Array Lists. Wrappers and Auto-boxing. Using Array Algorithms with Array Lists. (Cay Horstmann, Big Java early objects, 6th edition, p. 336-352)
- 6
- Designing classes. Discovering Classes. Designing Good Methods. Providing a Cohesive Public Interface. Minimizing Dependencies. Separating Accessors and Mutators. Minimizing Side Effects. Call by Value and Call by Reference. Problem solving patterns for object data. (Cay Horstmann, Big Java early objects, 6th edition, p. 375-389)
- 7
- Static Variables and Methods. Alternative Forms of Instance and Static Variable Initialization. Packages. Organizing Related Classes into Packages. Importing Packages. Programming with Packages. (Cay Horstmann, Big Java early objects, 6th edition, p. 391-404)
- 8
- Inheritance. Inheritance Hierarchies. Implementing Subclasses. Overriding Methods. Calling the Superclass Constructor. Polymorphism. Dynamic Method Lookup and the Implicit Parameter. Abstract Classes. Final Methods and Classes. (Cay Horstmann, Big Java early objects, 6th edition, p. 423-444)
- 9
- The Cosmic Superclass. Overriding the toString Method. The equals Method. The instanceof Operator. Inheritance and the toString. Inheritance and the equals Method. Interfaces. Using Interfaces for Algorithm Reuse. Discovering an Interface Type. Declaring an Interface Type. Implementing an Interface Type. (Cay Horstmann, Big Java early objects, 6th edition, p. 450-469)
- 10
- Comparing Interfaces and Inheritance. Constants in Interfaces. Static Methods in Interfaces. Default Methods. Working with Interface Variables. Converting from Classes to Interfaces. Invoking Methods on Interface Variables. Casting from Interfaces to Classes. The Comparable Interface. The clone Method and the Cloneable Interface. Using Interfaces for Callbacks. (Cay Horstmann, Big Java early objects, 6th edition, p. 471-482)
- 11
- Inner Classes. Anonymous Classes. Event Handling. Listening to Events. Using Inner Classes for Listeners. Lambda Expressions for Event Handling. Building Applications with Buttons. Processing Timer Events. Mouse Events. (Cay Horstmann, Big Java early objects, 6th edition, p. 487-506)
- 12
- Input / output. Reading and Writing Text Files. File Dialog Boxes. Character Encodings. Text Input and Output. Reading Words. Reading Characters. Classifying Characters. Reading Lines. Scanning a String. Converting Strings to Numbers. (Cay Horstmann, Big Java early objects, 6th edition, p. 519-528)
- 13
- Command Line Arguments. Processing Text Files. Exception Handling. Throwing Exceptions. Catching Exceptions. Checked Exceptions. Closing Resources. Designing Your Own Exception Types. The try/finally Statement. Handling Input Errors. (Cay Horstmann, Big Java early objects, 6th edition, p. 533- 549)
- 14
- Object oriented design. Classes and Their Responsibilities. Discovering Classes. The CRC Card Method. Relationships Between Classes. Dependency. Aggregation. Inheritance. Using CRC Cards and UML Diagrams in Program Design. Application: Printing an Invoice. (Cay Horstmann, Big Java early objects, 6th edition, p. 565-581)
- 15
- Graphical user interface. Layout Management. Using Layout Managers. Achieving Complex Layouts. Using Inheritance to Customize Frames. Adding the main Method to the Frame Class. Processing Text Input. Text Fields.Text Areas. Choices. Radio Buttons. Check Boxes. Combo Boxes. (Cay Horstmann, Big Java early objects, 6th edition, p. 883-896)
- 16
- Final Exam
- 1
- Object-oriented programming design
- 2
- Encapsulation
- 3
- Abstract classes and Interfaces
- 4
- Inheritance
- 5
- Applying object-oriented design using Java language
- Quantity Percentage Total percent
- Midterms
- 1 30% 30%
- Quizzes
- 0 0% 0%
- Projects
- 1 10% 10%
- Term projects
- 0 0% 0%
- Laboratories
- 0 0% 0%
- Class participation
- 1 10% 10%
- Total term evaluation percent
- 50%
- Final exam percent
- 50%
- Total percent
- 100%
- Quantity Duration (hours) Total (hours)
- Course duration (including exam weeks)
- 16 4 64
- Off class study hours
- 14 4 56
- Duties
- 1 2 2
- Midterms
- 1 6 6
- Final exam
- 1 10 10
- Other
- 0 0 0
- Total workLoad
- 138
- Total workload / 25 (hours)
- 5.52
- ECTS
- 6.00