DCU Home | Our Courses | Loop | Registry | Library | Search DCU


Module Specifications

Archived Version 2013 - 2014

Module Title OOP with Embedded Systems
Module Code EE402
School School of Electronic Engineering

Online Module Resources

Module Co-ordinatorDr Derek MolloyOffice NumberS356
NFQ level 8 Credit Rating 7.5
Pre-requisite None
Co-requisite None
Compatibles None
Incompatibles None

Object-oriented Programming is a software methodology that is vital in the engineering workplace. This module will allow students to gain further experience in advanced aspects of object-oriented programming through implementation of design concepts in both the C++ and Java programming languages. It will examine the languages from the bottom-up and top-down, and will introduce data structures and algorithms that are necessary in the design of engineering systems.

Learning Outcomes

1. analyse unseen real-world software systems challenges and develop structured solutions, involving the design of object-oriented classes and class hierarchies using formal object-oriented analysis and design models
2. implement such solutions in the C++ and Java programming languages with attention to future design needs and robust operation
3. design solutions that abstract data type through the use of approaches such as STL and generics
4. apply low-level and high-level software algorithms in the design of engineering systems
5. explain the differences between and uses of different object-oriented languages; choose a correct implementation language for the engineering problem
6. discuss methodologies for applying object-oriented concepts to develop solutions for real-world software implementation challenges; choose the correct methodology for a given problem
7. design a software application for test and reliability
8. develop threaded network applications from first principles that use object-oriented concepts to communicate packaged data over TCP/IP; Solve the synchronization issues associated with network computing and design network computing frameworks and solutions

Workload Full-time hours per semester
Type Hours Description
Lecture36Classroom Lectures
Independent Study152Self Directed Study
Total Workload: 188

All module information is indicative and subject to change. For further information,students are advised to refer to the University's Marks and Standards and Programme Specific Regulations at: http://www.dcu.ie/registry/examinations/index.shtml

Indicative Content and Learning Activities

Brief re-introduction to object-oriented programming
Discuss the concept of objects and classes in object-oriented programming languages. Discuss other concepts such as encapsulation, inheritance, polymorphism. It will quickly refresh the differences and similarities between C++ and Java related to the object-oriented paradigm.

Advanced programming
Correct usage of advanced control structures and programming concepts such as exceptions, interfaces, dynamic binding, multiple inheritance, garbage collection (Java and C++). Time will be spent on low-level data structures and algorithms in C++ to ensure that students can make the connection between embedded systems skills and high-level programming skills.

Generic Programming
Discussion on C++ STL and Generics in Java. Examine STL containers, iterators, algorithms and functors, and apply them to some software data structure problems (e.g. recursive tree traversal). Operator overloading. Combining Generics and Templates. Algorithms and the design of algorithms when working with C++ data structures will be covered in detail.

Software Design Methodologies
Discuss methodologies for applying object-oriented concepts to develop solutions for real-world software implementation challenges. Examine object-oriented design methodologies in detail – in particular a detailed discussion on Agile Processes (including Extreme Programming (XP)).

Design for Test
Discuss software testing models, testing methods and associated tools. Examine practical software testing tools such as log4j, unit testing etc.

Java Network Programming
Develop network client applications that communicate to any server. Extend this work by designing servers that use network sockets to serve data to clients. Develop network computing frameworks. Ensure that these frameworks are capable of handling large volumes of requests simultaneously. Deal with the synchronization issues that arise. Students must develop a large-scale client-server application that is designed using discussed software development methodologies, generic programming concepts and correct testing.

Assessment Breakdown
Continuous Assessment25% Examination Weight75%
Course Work Breakdown
TypeDescription% of totalAssessment Date
Reassessment Requirement
Resit arrangements are explained by the following categories;
1 = A resit is available for all components of the module
2 = No resit is available for 100% continuous assessment module
3 = No resit is available for the continuous assessment component
Indicative Reading List

  • Derek Molloy: 2000, EE553 Object-oriented Programming Notes, 11, DCU,
  • P. J. Deitel, H. M. Deitel: 2007, Java, Prentice Hall, Harlow, 0132222205
  • Harvey & Paul) Deitel & Associates,: 0, C++ How to Program, 0136152503
  • David J. Barnes and Michael Kolling: 2009, Objects first with Java, Pearson Education International, Harlow, 0137005628
  • James Gosling: 1996, The Java language specification, Addison Wesley,
Other Resources

Programme or List of Programmes
DMEB.Eng. in Digital Media Engineering
ECSAStudy Abroad (Engineering & Computing)
ECSAOStudy Abroad (Engineering & Computing)
EEVM.Eng. in Electronic Engineering
ICEBEng Info and Communications Engineering
IFPTEPG Int. Foundation Prog.: Telecomm.Eng
MENMEng in Electronic Systems
MEQMasters Engineering Qualifier Course
MEVMEng in Mechatronic Engineering
MTCMEng in Telecommunications Engineering
SMPECSingle Module Programme (Eng & Comp)