Page 1 of 1

Module Code - Title:

CS4013 - OBJECT ORIENTED DEVELOPMENT

Year Last Offered:

2025/6

Hours Per Week:

Lecture

2

Lab

2

Tutorial

1

Other

0

Private

5

Credits

6

Grading Type:

N

Prerequisite Modules:

CS4222

Rationale and Purpose of the Module:

On successful completion of this module students will be able to identify, design, code and construct systems using inheritance hierarchies, encapsulation and polymorphism to solve specified programming problems.

Syllabus:

Key terminology: objects, attributes, behaviours, states, classes, instances, associations; abstraction, inheritance, generalisation/specialisation, parent (base/superclass/ancestor) and child/children (subclass/descendant) classes, encapsulation/information hiding, polymorphism, message passing, dynamic binding; Problem solving using a procedural approach versus an object oriented approach; Representing classes, objects, attributes: build generalisation relationships; define is-a relationships; divide into superclasses/subclasses; build associations between classes; draw an analysis-level diagram; Methods: method definitions; static keyword; location of methods; arguments/parameters; method invocation; return types; method modifiers; Classes and objects: defining classes, member variables and member methods; access modifiers; creating and destroying objects/instances; class and instance variables, static variables; object values including predefined object values (null, this, super); Constructors: constructor method; overriding defaults; sending arguments; overloading methods including constructor methods; overriding a method; blocks and scope; Exceptions: how to handle exceptions/errors; the throw clause; try, catch and finally blocks; rethrowing an exception; Extending classes: abstract classes; nested classes and interfaces; interfaces and polymorphism; constructors in extended classes, constructor phases; single inheritance versus multiple inheritance; single inheritance of implementation; accessing and initialising superclasses; named and anonymous inner classes; member and local inner classes; iteration, exception-safety and delegation idioms based on inner classes;

Learning Outcomes:

Cognitive (Knowledge, Understanding, Application, Analysis, Evaluation, Synthesis)

On successful completion of this module students should be able to: 1. Define and recognise the key principles of OO design and relate them to one-another by providing appropriate examples using an OO language. 2. Predict the output of an OO program that implements a number of OO constructs such as inheritance, polymorphism, overloading and overriding. 3. Design and implement an OO program for a given set of requirements using the above constructs appropriately. 4. Discuss the various features of a high-level OO programming language with reference to the appropriate terminology such as objects, attributes, behaviors, state, classes, instances. 5. Discuss in detail using the appropriate OO terminology the functionality of an already existing OO program implementation. 6. Amend an existing OO program implementation given an updated set of requirements.

Affective (Attitudes and Values)

N/A

Psychomotor (Physical Skills)

N/A

How the Module will be Taught and what will be the Learning Experiences of the Students:

Research Findings Incorporated in to the Syllabus (If Relevant):

Prime Texts:

D. Bellin and Simone S. Suchman (1997) The CRC Card Book , Addison-Wesley Object Technology Series
Y.D. Liang (2015) Introduction to Java Programming - Comprehensive Version (10th ed.) , Pearson Higher Education

Other Relevant Texts:

Programme(s) in which this Module is Offered:

BSMSCIUFA - MATHEMATICAL SCIENCES

Semester(s) Module is Offered:

Autumn

Module Leader:

Michael.English@ul.ie