0% found this document useful (0 votes)
106 views34 pages

OOP Chapter 0

The document provides information about an Object Oriented Programming course including course details, instructor details, learning outcomes, assessment criteria, required software and references. The course aims to introduce object-oriented design methodology using Java and covers topics like classes, inheritance, polymorphism and exception handling.

Uploaded by

beshahashenafe20
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)
106 views34 pages

OOP Chapter 0

The document provides information about an Object Oriented Programming course including course details, instructor details, learning outcomes, assessment criteria, required software and references. The course aims to introduce object-oriented design methodology using Java and covers topics like classes, inheritance, polymorphism and exception handling.

Uploaded by

beshahashenafe20
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
You are on page 1/ 34

1

OBJECT ORIENTED
PROGRAMMING
COURSE CODE: INSY2042
ECTS: 5
LECTURE : 48 HRS(3HRS/WEEK)
LAB : 32 HRS (2HRS/WEEK)
TUT : 16 HRS(1HR/WEEK)
INSTRUCTOR INFORMATION
NAME: ANDARGACHEW A.
OFFICE LOCATION : ESHETU CHOLE BUILDING #319
EMAIL: [email protected]

4/6/2024 Outline
Course Information
2

 Academic Year: 2013E.C.


 Semester: II
 Class Schedule:
Lec/Tut Lab
Section 1 Section 2
M1,2 Th1,2
M7,8 Th7,8
 Class Room: -
Lecture Room Lab Room
512 413
 Course Telegram Channel
 AAU_SIS_OOP_2013
4/6/2024
Course Description
3

 Students’ previous exposure to and skills in


structured programming is assumed (although a
review of the necessary basic programming notions
is included).
 The course is designed to introduce how to develop
business applications using object-oriented
design methodology with Java as an illustration
programming language. It includes
 Object Oriented Programming paradigm and its use;
 Classes, Objects, Abstraction and Encapsulation;

4/6/2024
4

 Inheritance,Polymorphism, Creating Graphical User


interfaces (GUIs), Data Structures,
 Exceptions(Try, catch, and throw, finally how exceptions
affect the design of an application),
 File input/output (I/O), Threads and Java Database
Connectivity.

4/6/2024
Learning Outcome
5

 At the end of the course students will be able to


 Understand the principles of software engineering with
emphasis on the various phases of the software
development life cycle.
 Understand major concepts of object-oriented
programming
 Understand the programming environment as defined by
compilers, interpreters, editors, and other system software
providing support for the programming activity.
 Develop skills in OO design and program development
within an integrated development environment
4/6/2024
6

 Use arrays and other data structures


 Implement I/O functionality to read from and write to
data and text files.
 To be familiar with object-oriented design concepts,
and have had practical experience of designing and
implementing object-oriented software.

4/6/2024
Course Contents
7

1. Introduction to Object Oriented Programming


2. More on OOP concepts
3. Inheritance
4. Polymorphism
5. Exception handling
6. File and Streams
7. Java GUI and Database

4/6/2024
Teaching Strategy
8

 The course will be delivered in the form of


 Lectures

 Demonstration

 Student presentations
 Group discussions, and

 Individual and group project works.

4/6/2024
Assessment Criteria
9

Assessment Forms % of credit Given Submission


allotted Week week

Lecture and Practical (100%)

• Quiz and Assignment 10


(All the quizzes will be unannounced and there will
be no makeup quizzes)
• Lab and Project
30
• Test 20
• Final examination 40

4/6/2024
Required SW/HW
10

 Hardware
 Desktop Computer or Laptop
 Software
 NetBeans (Java compilers)

4/6/2024
References
11

 Deitel, P. J., & Deitel, H. M. (2012). Java: How to program.


Upper Saddle River, N.J: Pearson Prentice Hall.
 Paul Deitel and Harvey Deitel, 2012, Java for Programmers
Second edition. Prentice Hall
 Y. Daniel Liang, 2009. Int. to Java Programming
Comphrensive version, Seventh Edition. Atlantic State
University
 Deitel, 2004. JAVA how to program. 5th Ed. New Delhi:
Prentice-Hall of India
 R. Sahoo & G. Sahoo, 2001. JAVA 2 The complete
reference book; New Delhi: Prentice-Hall of India
…

4/6/2024
Laboratory Class
12

 Each laboratory includes three parts:


1. Pre-lab exercises
2. In-lab exercises and
3. Post-lab exercises.

4/6/2024
Pre-lab
13

 The Pre-lab exercise is a homework assignment that


links the lecture with the laboratory period.
 In the Pre-lab, students explore and create on their own and
at their own pace.
 A Pre-lab assignment–including a review of the
relevant lecture and textbook materials–typically
takes an evening to complete (that is, two to three
hours).
❖ You should complete the Pre-lab exercise before coming
to the lab.
 Your work need not be perfect, but your effort must be
real (roughly 80% correct).

4/6/2024
In-lab
14

 Each In-lab consists of one, two or three exercises, and


each exercise has a distinct role.
 We use the first hour of the laboratory period to
resolve any problems the students might have
experienced in completing the Pre-lab exercises.
 The intention is to give constructive feedback so that students
leave the lab with working Pre-lab software - a significant
accomplishment on their part.
 During the second hour, the students complete one/two
of the In-lab exercises to reinforce the concepts learned
in the Pre-lab.

4/6/2024
Post-lab
15

 The last phase of each laboratory is a homework


assignment to be done following the laboratory
period.
 In the Post-lab, students analyze the efficiency or utility of
a given data structure or algorithm.
 Each Post-lab exercise should take roughly thirty minutes to
complete.
❖ After the lab, the students complete one of the Post-lab
exercises and turn it in during their next lab period.
 Late submission is not acceptable

4/6/2024
16

BASIC AND OVERVIEW

OBJECT ORIENTED
PROGRAMMING
4/6/2024 OOP- CH-0
Basics of Computer Programming
 Computer programming is a step by step process
of designing and developing various sets of
computer programs to accomplish a specific
computing outcome.
 The process contains several tasks like analysis,
coding, algorithm generation, checking accuracy and
resource consumption of algorithms, etc.
 The purpose of computer programming is to find a
sequence of instructions that solve a specific problem
on a computer.
4/6/2024
4/6/2024
 Computer Programming is very easy if it is
appropriately managed.
 There are many computer programming languages
available so finalizing the right programming language
is not an easy task.
 Just like any other language we use to communicate
with others, a programming language is a special
language or a set of instructions to communicate
with computers.

4/6/2024
 Most important basic elements for programming
languages are:
 Programming Environment
 Data Types, Variables, Keywords

 Logical and Arithmetical Operators

 If else conditions

 Loops

 Numbers, Characters and Arrays

 Functions

 Input and Output Operations


4/6/2024
 How to choose a programming language?
 Computer programming is a set of written instructions
that the computer follows.
 These instructions can be written in various languages.

 Each programming languages have their unique ways


of organizing the commands which are called syntax.
 Multiple programming languages can help you solve
the same programming problem.

4/6/2024
 However, you need to select a language that you
feel is relevant to perform your task.
1. If you decide that a language does not suit your
business requirement, you can always move on to a
new language.
2. Your skill in the chosen language will also be a
deciding factor.
3. Expected software system response time, a number
of simultaneous users, security, maintains, compatibility
with web, mobile, devices are few other factors to
consider while choosing a language.

4/6/2024
4/6/2024
Programming paradigms
 A paradigm is a way of doing something (like
programming), not a concrete thing (like a language).
 Very often a programming language is created to help
people program in a certain way.
 A programming paradigm is a style, or “way,” of
programming.
 Some languages make it easy to write in some paradigms
but not others.
 Now, it’s true that if a programming language L happens to
make a particular programming paradigm P easy to express,
then we often say “L is a P language” (e.g. “Haskell is a
functional programming language”)
4/6/2024
 Here are the list of common programming paradigms
 Imperative: Programming with an explicit sequence of
commands that update state.
 Declarative: Programming by specifying the result you want,
not how to get it.
 Structured: Programming with clean, goto-free, nested
control structures.
 Procedural: Imperative programming with procedure calls.
 Functional (Applicative): Programming with function calls
that avoid any global state.
 Function-Level (Combinator): Programming with no
variables at all.

4/6/2024
 Object-Oriented: Programming by defining objects that
send messages to each other. Objects have their own
internal (encapsulated) state and public interfaces. Object
orientation can be:
◼ Class-based: Objects get state and behavior based on
membership in a class.
◼ Prototype-based: Objects get behavior from a prototype object.
 Event-Driven: Programming with emitters and listeners of
asynchronous actions.
 Flow-Driven: Programming processes communicating with
each other over predefined channels.
 Logic (Rule-based): Programming by specifying a set of
facts and rules. An engine infers the answers to questions.

4/6/2024
 Constraint: Programming by specifying a set of
constraints. An engine finds the values that meet the
constraints.
 Aspect-Oriented: Programming cross-cutting concerns
applied transparently.
 Reflective: Programming by manipulating the program
elements themselves.
 Array: Programming with powerful array operators
that usually make loops unnecessary.

4/6/2024
 Paradigms are not meant to be mutually
exclusive; a single program can feature multiple
paradigms!

4/6/2024
Structure vs OOP

29 4/6/2024
30 4/6/2024
Language vs Paradigms
 One of the characteristics of a language is its
support for particular programming paradigms.
 For example, Java has direct support for programming
in the object-oriented way, so it might be called an
object-oriented language.
 Lisp and JavaScript programs tend to make heavy use
of passing functions around so they are called
“functional languages” despite having variables and
many imperative constructs.

4/6/2024
 There are two very important observations here:
1. Very few languages implement a paradigm 100%.
When they do, they are pure. It is incredibly rare to
have a “pure OOP” language or a “pure functional”
language.
2. A lot of languages will facilitate programming in one
or more paradigms. If a language
is purposely designed to allow programming in many
paradigms is called a multi-paradigm language.

4/6/2024
33

Questions?
4/6/2024
34

Thank You
4/6/2024

You might also like