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


Module Specifications

Archived Version 2019 - 2020

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. Advanced embedded Linux based embedded systems are introduced in this module. Each student completes an assignment using a system-on-a-chip (SoC) device, such as the BeagleBone that involves TCP socket communications.

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 types through the use of approaches such as STL and generics
4. explain the differences between and uses of different object-oriented languages; choose a correct implementation language for the engineering problem
5. discuss methodologies for applying object-oriented concepts to develop solutions for real-world software implementation challenges; choose the correct methodology for a given problem
6. design a software application for test and reliability
7. 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
8. discuss the use of embedded Linux under embedded systems devices and build high-level program code on an embedded Linux device; interface physical sensors/devices to the embedded Linux device, wrapping low-level electronics with high-level program code

Workload Full-time hours per semester
Type Hours Description
Lecture36Classroom Lectures
Independent Study152Study of the on-line video tutorials (~10 hrs), self-directed study of the materials, completion of the assignments (~47 hrs) and study for the examinations.
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)).

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.

Embedded Systems
Discussion on the use of embedded systems. In-depth introduction to embedded Linux an an ARM SoC and practical application through the use of a client/server assignment that typically places the server on the embedded Linux SoC and a GUI client on the desktop machine. This architecture is described in the context of Internet of Things applications.

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: 2014, EE402 Object-oriented Programming Notes, 13, ee402.eeng.dcu.ie,
  • Derek Molloy: 2015, Exploring Beaglebone: Tools and Techniques for Building with Embedded Linux, 1, John Wiley & Sons, New York, 1118935128
  • Deitel & Deitel: 2011, Java How to Program, 9th, Pearson Education, 0273759760
  • Harvey Deitel, Paul J.Deitel: 2011, C++ How to Program, 8, Pearson Education, 0136152503
  • James Gosling: 1996, The Java language specification, Addison Wesley,
Other Resources

Programme or List of Programmes
DMEB.Eng. in Digital Media Engineering
ECEBEng Electronic & Computer Engineering
ECSAOStudy Abroad (Engineering & Computing)
GCIOTGrad Cert in the Internet of Things
ICEBEng Info and Communications Engineering
MCTYMSc Electronic and Computer Technology
MECEMEng Electronic & Computer Engineering
MEQMasters Engineering Qualifier Course
MQTYQualifier Prog MSc Electronic & Computer
MTCMEng in Telecommunications Engineering
SMPECSingle Module Programme (Eng & Comp)