0% found this document useful (0 votes)
121 views4 pages

Object Oriented Programming Course Guide

The document outlines the course details for Object Oriented Programming (ECEg3101) at Haramaya University, including objectives, learning outcomes, and course content. Students will learn key OOP concepts using languages like Java, focusing on classes, inheritance, polymorphism, and GUI programming. The course is compulsory for BSc. in Electrical and Computer Engineering and includes various teaching methods and assessment criteria.

Uploaded by

enda667788
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
121 views4 pages

Object Oriented Programming Course Guide

The document outlines the course details for Object Oriented Programming (ECEg3101) at Haramaya University, including objectives, learning outcomes, and course content. Students will learn key OOP concepts using languages like Java, focusing on classes, inheritance, polymorphism, and GUI programming. The course is compulsory for BSc. in Electrical and Computer Engineering and includes various teaching methods and assessment criteria.

Uploaded by

enda667788
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Haramaya University

Haramaya Institute of Technology


School of Electrical & Computer Engineering
Course Code ECEg3101
Course Title Object Oriented Programming
Degree Program BSc. in Electrical and Computer Engineering
Module Name Computer Architecture and Programming
Module Code ECEgM3103
ECTS Credits 5
Student work load Lecture Tutorial Laboratory/Practical Home Study
32 -- 32 80
Course Objectives/ By the end of this course, students will be able to:
Leaning Outcomes  Familiarize themselves with key concepts and terminologies in object-oriented
programming (OOP).
 Understand the differences and relationships between classes and objects.
 Apply knowledge to work with pure object-oriented programming languages
such as Java
 Differentiate between application programs and applet programs.
 Develop classes for real-world objects based on their behaviors and states.
 Create subclasses and identify the behaviors and states of the superclass that
can be inherited.
 Implement mechanisms to safeguard superclasses from unauthorized access.
 Gain foundational skills in web and Windows programming, including the use
of graphical user interfaces (GUIs).
 Use the Unified Modeling Language (UML) to represent complex real-world or
software systems in a simplified model.
 Prepare for software development projects utilizing the object-oriented
paradigm.
Course Description The main focus of this course is to study and understand the object oriented
programming concepts: objects, classes, interfaces and packages. In doing so we
need to use any object oriented programming language that helps us to implement
the essential features of object oriented programming, namely Encapsulation
(Information hiding or data abstraction), Polymorphism and Inheritance. After these
basics the course then aims to help the students understand the nuts and bolts of a
pure object oriented programming language, e.g. JAVA, C++ or C#, by writing
some application and applet programs. Then using any of these languages we need
to know how could we create class, object, interface and package also need to
understand some useful predefined classes, interfaces and packages. Model real-
world objects using their state and behaviour Then it deals with web design in
HTML and how could we add some programmable features using Java Applets into
the web page that will help us solve the problem. Finally to provide a solid
foundation for developing software using the object-oriented paradigm it is
important to know the Unified Modelling Language (UML) and the different class
relations and their UML representation
 Ability to understand and use key concepts and terminologies in object-
oriented programming (OOP).
Skills (such as on  Proficiency in distinguishing and relating classes and objects within OOP.
software) to acquire or  Competence in designing and developing classes for real-world objects based
required on their behaviors and states.
 Capability to create subclasses and manage inheritance of behaviors and states
from superclasses.

1|Page
Haramaya University
Haramaya Institute of Technology
School of Electrical & Computer Engineering
Course Code ECEg3101
Course Title Object Oriented Programming
 Implementation of secure mechanisms to protect superclasses from
unauthorized access.
 Practical skills in web and Windows programming, including the development
of graphical user interfaces (GUIs).
 Readiness to develop software using the object-oriented programming
paradigm.
Contact
Week Course Contents
Hrs
2 10
Chapter One: Introduction to OOP
1.1 Overview of Object-Oriented Programming
 History and evolution of OOP
 Key principles: Encapsulation, Abstraction, Inheritance, Polymorphism
 Comparison between structured / procedural programming and OOP.
1.2 Development Environment Setup: Java: JDK installation
1.3 Introduction to Java elements: variables and their declaration; Introduction to
classes and objects; input/output
2 10
Chapter Two: Basic Concepts of OOP
2.1 Classes and Objects: Definition and syntax in Java; Creating and using objects
and Methods; conditional statements and loops; Arrays; The Static and final
key words; Composition
2.2 Encapsulation
2.2.1 Data Hiding and Access Modifiers
 Java: Public, private, protected
2.2.2 Getters and Setters
 Implementing getters and setters in Java
 Benefits of encapsulation
2 10
Chapter Three: Inheritance and Polymorphism
3.1. Inheritance
3.1.1. Concept of Inheritance
3.1.2. Super-classes and Subclasses;
 Types of inheritance: Single, multiple, multilevel, hierarchical
3.1.3. Implementing Inheritance
 Java: Using the extends keyword
3.1.4. Method Overriding
 Overriding methods and the super keyword in Java
3.2. Polymorphism

2|Page
Haramaya University
Haramaya Institute of Technology
School of Electrical & Computer Engineering
Course Code ECEg3101
Course Title Object Oriented Programming
3.2.1. Understanding Polymorphism
 Compile-time (method overloading) vs. runtime (method overriding)
3.2.2 Implementing Polymorphism
 Method overloading in Java
 Method overriding in Java
 Final Methods and Classes;
3.2.3. Interfaces and Abstract Classes
 Java interfaces and abstract classes
2 10
Chapter Four: Composition vs. Inheritance and Error Handling & Exceptions
4.1. Understanding Composition
 Differences between composition and inheritance
 Benefits of composition
4.2. Practical Examples
 Building a class using composition
 Real-world scenarios
4.3. Error Handling and Exceptions
4.3.1. Exception Handling Basics
 Java: try-catch-finally blocks
 Exception classes
4.3.2. Creating Custom Exceptions
 Defining and raising custom exceptions
2 10
Chapter Five: Advanced OOP Concepts and GUI Programming
5.1 Design Patterns Overview
5.2 Practical Implementation
 Implementing design patterns in Java
 Comparison of pattern implementations
5.3 UML (Unified Modeling Language)
 Introduction to UML
 Creating class diagrams for Java
5.4. GUI Programming
5.4.1. Introduction to GUI Concepts
 Event-driven programming principles
5.4.2. GUI in Java

3|Page
Haramaya University
Haramaya Institute of Technology
School of Electrical & Computer Engineering
Course Code ECEg3101
Course Title Object Oriented Programming
 Using Swing or JavaFX for GUI development

 Overview of Swing Components; Swing vs Awt; Introduction to Event


Handling; Common GUI Even Types and Listener Interfaces; Using the
swing componens(JButton, JTextfield, JList etc)
 Building a simple application
2 10
Chapter Six: File I/O
6.1 Reading and Writing Files
 File handling in Java ([Link])
6.2. Practical Examples
 Implementing file I/O in a project

Pre-requisites SECT 1082: Computer Programming


Semester V

Status of Course Compulsory


Teaching & Learning
Lectures, Lab, tutorial, class exercises
Methods
Assessment/Evaluation&
 Mid 30%, Project (20%), Final 50 %
Grading System
 All students are expected to abide by the code of conduct of students Senate
Legislation of our University throughout this course.
 Academic dishonesty, including cheating, fabrication, and plagiarism will not
be tolerated
 Class activities will vary day to day, ranging from lectures to discussions.
Students will be active participants in the course.
Course policy  You are required to submit and present the assignments provided according to
the time table indicated.
 80 % of class attendance is mandatory! Please try to be on time for class. I will
not allow you enter if you are late more than five minutes
 Active participation in class is essential and it will have its own value in your
grade
 Cell phones MUST be in flight mode or off before entering the class.
 Java How to Program, 6th edition, [Link]- [Link], Pearson
Education, 2005

References  Java: An Introduction to Problem Solving and Programming, 5th ed. W.


Savitch and F. Carrano, Prentice Hall, 2008 3
 Absolute Java, 5th Edition, [Link], Addison Wesley,2012

4|Page

You might also like