Prerequisite Modules
Description
This module introduces the student
to programming using an Object Oriented language such as C++ or Java.
The focus is firmly on implementation, with design issues covered in
detail in the Software Engineering module. Concepts such as
inheritance, polymorphism, encapsulation and dynamic binding are
learned through implementation of solutions for specific problems.
Specific language features are treated in detail, dependent upon the
language chosen for implementation, and both command line and
Integrated Development Environment (IDE) tools are used for
development of program code.
Aims
-
To teach the student an Object
Oriented language.
-
To demonstrate to the student the
important reasons for implementing solutions to well defined
problems using an Object Oriented language.
-
To provide the student with a
flavour of a number of Object Oriented languages, while focussing
primarily on one such language.
-
To give the student experience of
using both command line and IDE tools for Object Oriented software
development.
Learning Outcomes
On successful completion of this
module, the student will be able to:
-
Write computer programs using an
Object Oriented language.
-
Demonstrate a strong understanding
of the fundamental Object Oriented concepts.
-
Compare and contrast the Object
Oriented approach to software implementation with its procedural
alternative.
-
Justify the use of the Object
Oriented approach to software development according to the key
benefits of maintainability and software reuse.
-
Use both command line and IDE
tools to implement, debug and test Object Oriented programs.
-
Implement programs with use the
advanced features of a specific Object Oriented language.
-
Distinguish between a number of
Object Oriented languages by demonstrating an understanding of the
strengths and weaknesses of each.
Learning and Teaching Methods
Lectures, self-study, labs,
tutorials, and any combination of discussion, case study,
problem-solving exercises, readings, seminars, and computer-based
learning.
Content
Comparison of Object Oriented and
Procedural Programming: Problems with
procedural programming and need for Object Oriented programming.
Object Oriented Languages. Testing techniques for Object Oriented
programs.
Object-Oriented Concepts:
Design philosophy. Abstract Data Types. Class, Object, Messages,
member variables, methods. Relationships, Inheritance, Multiple
Inheritance, Abstract Classes. Generic Types, Static and Dynamic
Binding, Polymorphism, Overloading. Principle OOP languages.
Object Oriented Programming
Language Constructs: Classes and Objects,
Constructors, Destructors. Operator and function overloading.
Composition. Inheritance: Types of Inheritance, Construction,
Destruction, Multiple Inheritance. Polymorphism. Abstract Classes.
Streams and files.
Language Specific Constructs:
Virtual functions and friend functions. Templates: functions and
classes. Genericity. Exception handling. Data structures, iterators
and containers. Standard Template Library. Program Libraries.
Assessment
The methods of assessment to be used
to measure the learning objectives stated above are written
examination and continuous assessment including one or more of
assignment, essay, problem-solving exercise, oral presentation, and
class or lab tests.
-
Continuous Assessment: 30%
-
Examination: 70%
Recommended
Reading
-
Paul Kelly (2001), A Guide
to C++ Programming, Kelly, Gill and Macmillan
-
Harvey M. Deitel, Paul J.
Deitel (2005), C++ How to Program (5th Edition), Prentice Hall
-
Paul J. Deitel, Harvey M.
Deitel (2004), Java How to Program (), Prentice Hall
-
Bruce Eckel (2000),
Thinking in C++ (2nd Edition), Prentice Hall
|
|
For more information contact
Ciarán O'Leary
|