Weekly outline

  • General

    Course Description

    • This course introduces JAVA to students as an example of an object oriented programming language. The course starts with a briefing on Java history and the classifications of different Java editions. The concepts of classes and objects are introduced followed by a description of various types of class members. The course describes the concepts of abstraction and encapsulation and how to apply these concepts when creating classes. The course describes the object-oriented relationships: association, aggregation, composition, inheritance and implementation. Also the concept and role of polymorphism are introduced covering method overloading, method overriding, and dynamic method dispatching. Exception handling and the usage of Java API are presented with a concern to using javax.swing to build GUI applications.

    Course Learning Objectives

    • Understand object oriented design principles and programming using Java as an OOP language.

    • Using Java API (Math , String, Date, ArrayList, I/O, File,... etc.)

    • Understand method definition, invocation, overloading, encapsulation and information hiding.

    • Understand the class members, access modifiers, and Object instantiation.

    • Understand object oriented relations (associations, aggregation, composition, inheritance and interface, .... etc).

    • Understand class inheritance, reusability, method overriding, and polymorphism.

    • Understand abstraction, interfaces and inner classes.

    • Build user interfaces using Java swing package, and event driven programming. 

    • Handle runtime exceptions.

    • Create simple software system using Java

    Grading Scheme 

    •Week 7: (30)

    Quiz 1 = 5 marks

    Assignment 1= 5 marks

    Midterm 1 = 20 marks

    •Week 12: (20)

    Quiz 2 = 5 marks

    Assignment 2 = 5 marks

    Midterm 2 = 10 marks

    أعمال السنة (10):

    Project  = 10 marks

    Final Exam = 40 marks


    Y Daniel Liang, Introduction to JAVA Programming, 9th Edition, Prentice Hall, 2013. 


  • 29 September - 5 October

    Week 1:  Revision of Problem Solving & Introduction to Java Language - Ch 1, 2, 3, 4, 6, 7. 


    • Differentiate between the different Java Editions.

    • Describe Java Characteristics.

    • Install JDK, compile and run your first java program.

    • Revise Problem Solving using Java Language. 

  • 6 October - 12 October

    Week 2: OOP Concepts:


    • State the reasons for the complexity involved in the development of software
    • Define the following terms
    1. Objects
    2. Classes
    3. Messages
    4. Methods
    • Explain benefits of the object-oriented approach 
    • State the significance of the activities involved in object-oriented analysis and design
    • Create classes in Java
  • 13 October - 19 October

    Week 3: Methods - Ch - 5


    • Understand methods' formal parameters and actual parameters
    • Use methods with and without return value
    • Pass arguments by value and by reference
    • Determine the scope of variables
    • Use method overloading and understand ambiguous overloading
    • Develop reusable code that is modular, using method abstraction
    • Solve mathematics problems using the methods in the Math class

  • 20 October - 26 October

    Week 4: Objects and Classes - Ch 8.


    • Define and use objects and classes, and use classes to model objects
    • Create objects using constructors
    • To distinguish between instance and static variables and methods
    • Understand object reference variables. declaration, initialisation, and argument passing
    • Use arrays of objects
    • To use the Java library classes Date, Random, and JFrame

  • 27 October - 2 November

    Week 5: Strings and Text I/O - Ch 9


    • Use Strings and string functions
    • Understand how they are created in memory, Interned
    • Differentiate Strings, StringBuilder, StringBuffer
    • Use Character Class
    • Use File Class
    • User PrintWriter and Scanner classes to I/O from and to files
  • 3 November - 9 November

    Week 7: Midterm 1

    • 10 November - 16 November

      Week 8: Objects Aggregation and Class Inheritance - Ch 10, 11


      • Understand Object Aggregation and how to implement the various aggregation relationships in Java
      • Understand Class Inheritance, Java Inheritance Syntax, and Constructor Chaining
      • Differentiate Method Overloading and Overriding
      • Understand what is inherited and what is not
    • 17 November - 23 November

      Week 9: Polymorphism - Ch 10, 11


      • Understand polymorphism and dynamic binding
      • Understand casting between different classes
      • Use ArrayList Class
      • Understand protected and final modifiers
    • 24 November - 30 November

      Week 10: Abstract Classes and Interfaces - Ch 13


      • To design and use abstract classes and methods
      • To use abstract classes from the JAVA API such as the Calendar, Number Classes and others,
      •  To design and use Interfaces
      • To use Interfaces from the JAVA APIs such as the Comparable and Clonable
      • To understand the Object Oriented Design Requirements to choose the required level of abstraction