comp
holder  


 
Programme  Information

 
.


DT249
BSc in Information Systems
and Information Technology

 

Now accepting applications for January 2009

SDEV2001 (Stage 2)
Object Oriented Programming (10 ECTS)

 

 

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

  1. To teach the student an Object Oriented language.

  2. To demonstrate to the student the important reasons for implementing solutions to well defined problems using an Object Oriented language.

  3. To provide the student with a flavour of a number of Object Oriented languages, while focussing primarily on one such language.

  4. 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:

  1. Write computer programs using an Object Oriented language.

  2. Demonstrate a strong understanding of the fundamental Object Oriented concepts.

  3. Compare and contrast the Object Oriented approach to software implementation with its procedural alternative.

  4. Justify the use of the Object Oriented approach to software development according to the key benefits of maintainability and software reuse.

  5. Use both command line and IDE tools to implement, debug and test Object Oriented programs.

  6. Implement programs with use the advanced features of a specific Object Oriented language.

  7. 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

 

Hit Counter