Course Overview

The aim of this course is to develop your career with an innovative MSc in Software Engineering and Database Technologies. This tailor-made course will advance your knowledge of software development and database systems.

This wholly online course is particularly suited to people who are working or who have other daytime commitments.

Who is the course for?

This is an ideal course for students who:

  • already work in software or databases and would like to gain a recognised Masters qualification.
  • wish to convert to a career in Information and Communication Technology.
  • need to update their Information and Communication Technology development skills.
  • want to learn about information technology with a specific emphasis on software development and/or database technologies while gaining advanced research skills.

IT Online Launchpad

Scholarships Available

Find out about our Postgraduate Scholarships here.

Applications and Selections

Apply Online

We recommend taking the Diploma in Software Engineering 1DSE1 route to the Masters. All Diploma students (who are passing exams) are offered an opportunity to progress to the Masters towards the end of the Diploma.  Those students transfer directly to Year 2 of the M.Sc.SED.  (Taking this route to the Masters does not incur extra costs or extra time.) The Diploma modules are the same as the MScSED Year 1 modules.

Important note: A student cannot leave the Masters at the end of first year with the Diploma award.

Please visit our How to Apply page for Application tips and Supporting Documents information.   

Who Teaches this Course

Requirements and Assessment

This course uses continuous assessment and a final online examination at the end of each eight-week module. There is also a significant research thesis to complete during the second year.

Key Facts

Entry Requirements

This course is open to honours degree graduates (Level 8) or Level 7 graduates with three or more years experience and to those otherwise satisfying the postgraduate entry requirements. An IELTS score of 6.5 or equivalent international qualification will be required, if applicable. See the IT Online Launchpad for further details.


Additional Requirements

Duration

2 years, part-time

Next start date

September 2021

A Level Grades ()

Average intake

Unlimited

Closing Date

To be advised.

NFQ level

Mode of study

Online learning

ECTS weighting

90

Award

CAO

Course code

1SED1

Course Outline

The course is part-time and runs over two years. You will study one online module every eight weeks and, in addition, you will research and write a thesis during your second year. The course content is extensive and varied, and includes both mandatory and optional modules. These include:

Software Modules:

  • Computer Architecture and Operating Systems [CORE]
  • Fundamentals of Programming [CORE]
  • Software Engineering [CORE]
  • Object Oriented Programming [CORE]
  • Object Oriented Design
  • Distributed Systems and the Cloud
  • Artificial Intelligence

Database Modules:

  • Introduction to Information Retrieval
  • Introduction to Relational Databases
  • Fundamentals of Databases
  • Data Mining

Further details on these modules can be found on our IT Online Launchpad.

Thesis:

In second year, you will complete a thesis under an approved thesis advisor in the NUI Galway IT Department.

To support work on the thesis, you must complete 2 modules CT6110 Thesis Fundamentals [5 ECTS] and CT626 Thesis [30 ECTS].

Curriculum Information

Curriculum information relates to the current academic year (in most cases).
Course and module offerings and details may be subject to change.

Glossary of Terms

Credits
You must earn a defined number of credits (aka ECTS) to complete each year of your course. You do this by taking all of its required modules as well as the correct number of optional modules to obtain that year's total number of credits.
Module
An examinable portion of a subject or course, for which you attend lectures and/or tutorials and carry out assignments. E.g. Algebra and Calculus could be modules within the subject Mathematics. Each module has a unique module code eg. MA140.
Optional
A module you may choose to study.
Required
A module that you must study if you choose this course (or subject).
Semester
Most courses have 2 semesters (aka terms) per year.

Year 1 (90 Credits)

Optional CT6110: Thesis Fundamentals


15 months long | Credits: 5

Assists students in developing a thesis topic and formulating a project plan. The project plan is approved by an academic who will supervise the student’s thesis topic.
(Language of instruction: English)

Learning Outcomes
  1. Synthesize the MScSED Thesis Process
  2. Critique research articles and discuss the scholarly research merits of each
  3. Critically evaluate a body of literature that leads to an IT research problem
  4. Construct a research problem (thesis statement) based on research literature review
  5. Defend a logical and sound argument related to thesis topic
  6. Evaluate the research method used to conduct a research study
  7. Explain thesis research study assertions, methodology, success criteria
  8. Synthesize the thesis research findings to evaluate how each article relates to thesis research problem or research question
  9. Describe the use ethical human subject research techniques for primary research (required for Regis University advised students only)
  10. Develop an effective project plan for the Thesis Process
  11. Explain how the literature addresses a research problem or research questions for thesis topic area
  12. Apply graduate thesis writing style and guidelines
Assessments

This module's usual assessment procedures, outlined below, may be affected by COVID-19 countermeasures. Current students should check Blackboard for up-to-date assessment information.

  • Department-based Assessment (100%)
Module Director
Lecturers / Tutors
The above information outlines module CT6110: "Thesis Fundamentals" and is valid from 2018 onwards.
Note: Module offerings and details may be subject to change.

Optional CT621: Artificial Intelligence


15 months long | Credits: 5

Artificial Intelligence (AI) is an introduction to some of the fundamental concepts and techniques in the area . The module begins by examining the concept of AI and as well highlighting some important real-world applications of AI. It then presents search strategies currently employed in AI research. This is developed further by the examination of the functional programming language Prolog. The second part of the module looks at Knowledge Representation and Machine Learning. It also deals with the topic of uncertainty in AI. The module finishes by examining future directions of AI research and associated philosophical dilemmas.
(Language of instruction: English)

Learning Outcomes
  1. Define Artificial Intelligence
  2. Use Predicate Calculus and outline the reasons for using Predicate Calculus
  3. Describe various search techniques, explaining the advantages and disadvantages of each
  4. Demonstrate the value of heuristics in a search
  5. Construct Prolog programs
  6. Create representations (e.g. demonstrate how to represent objects, actions, events and situations; discuss how to reason about knowledge; and justify the selection of appropriate representations for a given application)
  7. Explain the relevance of uncertainty to AI and outline approaches to handle uncertainty
  8. Provide Machine Learning techniques appropriate for a range of different applications
  9. Explain various applications of Artificial Intelligence, their strengths and limitations, and their position in relation to current research
  10. Outline the philosophical underpinnings of Artificial Intelligence
Assessments

This module's usual assessment procedures, outlined below, may be affected by COVID-19 countermeasures. Current students should check Blackboard for up-to-date assessment information.

  • Department-based Assessment (100%)
Module Director
Lecturers / Tutors
The above information outlines module CT621: "Artificial Intelligence" and is valid from 2019 onwards.
Note: Module offerings and details may be subject to change.

Optional CT626: Thesis


15 months long | Credits: 30

During this module, the student works on the write-up of their thesis and the research associated with that task.

Learning Outcomes
  1. Use academic writing and referencing
  2. Research and write a literature review
  3. Conduct secondary research
  4. Produce and deliver a Masters thesis meeting the standards of NUIG
Assessments

This module's usual assessment procedures, outlined below, may be affected by COVID-19 countermeasures. Current students should check Blackboard for up-to-date assessment information.

  • Research (100%)
Module Director
Lecturers / Tutors
The above information outlines module CT626: "Thesis" and is valid from 2014 onwards.
Note: Module offerings and details may be subject to change.

Optional CT618: Object Oriented Design


15 months long | Credits: 5

This module will build on the knowledge acquired by students in their software engineering module, and provide a comprehensive introduction to the field of Object Oriented Design and the Unified Modelling Language (UML). Students will be introduced to the various object oriented analysis and design techniques which have developed over time, and will learn the industry-standard notation, UML (Unified Modelling Language). This industry standard notation is covered from its original inception, through its various constituent models, and on to its practical use in systems development (Note: this module is based on UML2, the latest version of the UML notation, approved in 2004). The application of UML is explored from analysis through design and on to final system implementation, highlighting the strengths of object orientation as an approach to systems development where the one notation is used throughout. Students will develop object oriented analysis and design models using Computer Aided Software Engineering (CASE) tools, similar to those developed in the software engineering module. The challenges of progressing seamlessly from system inception, through analysis, solution design and technical implementation will be addressed, while maintaining a focus on the delivery of a quality system within timescale and budget.
(Language of instruction: English)

Learning Outcomes
  1. Discuss and explain general concepts related to Object Orientation and particularly Object Oriented Analysis and Design
  2. Gather a clear set of requirements from clients for a software system
  3. Analyse a business’ requirements, and develop an object oriented domain model from those requirements, clearly identifying the domain classes
  4. Progress from the domain model to an object oriented application model for those requirements, clearly identifying the application artefacts required
  5. Evaluate the potential for reuse in the design of a system solution: from patterns to commercially available components
  6. Produce an object oriented design model for the proposed system solution
  7. Prepare relevant UML implementation models for this system solution
  8. Evaluate issues related to the implementation of the proposed system wrt resource usage, security, maintenance and performance
  9. Compare the Unified Process with agile process approaches
Assessments

This module's usual assessment procedures, outlined below, may be affected by COVID-19 countermeasures. Current students should check Blackboard for up-to-date assessment information.

  • Department-based Assessment (100%)
Module Director
Lecturers / Tutors
The above information outlines module CT618: "Object Oriented Design" and is valid from 2019 onwards.
Note: Module offerings and details may be subject to change.

Optional CT619: Object Oriented Programming


15 months long | Credits: 5

Object-Oriented Programming, provides detailed coverage of Object-Oriented (OO) programming principles. It focuses on programming in Java, an OO language that is modern, vendor-independent, and widely used in industry. Recognising that programming requires skill as well as knowledge, this module places emphasis on the practical aspects of developing significant Java programs using a professional development environment. Students also gain practical experience of program design, testing, and debugging. Specifically in this module, students learn how to model objects in software, define classes describing categories of objects, and make appropriate use of concepts such as inheritance, composition, encapsulation, polymorphism, abstract classes, and interfaces. As well as learning basic Java syntax and how to express OO concepts in Java, practical topics such as applets, graphics, data storage, multi-threaded programming, and exception handling are addressed.
(Language of instruction: English)

Learning Outcomes
  1. Describe in detail Object-Oriented Programming concepts (e.g. classes, inheritance, composition, modularity, polymorphism)
  2. Analyse and interpret complex Object-Oriented programs written in Java
  3. Develop Object-Oriented solutions to programming problems, implement them in Java, test and debug them
  4. Write code to demonstrate knowledge of array structures, files, applets, graphical programs, multi-threaded programming, and exceptions
  5. Evaluate and justify decisions made in programs (e.g. selection of data types, choice of decision and repetition structures, use of inheritance or composition)
Assessments

This module's usual assessment procedures, outlined below, may be affected by COVID-19 countermeasures. Current students should check Blackboard for up-to-date assessment information.

  • Department-based Assessment (100%)
Module Director
Lecturers / Tutors
The above information outlines module CT619: "Object Oriented Programming" and is valid from 2019 onwards.
Note: Module offerings and details may be subject to change.

Optional CT611: Computer Architecture and Operating Systems


15 months long | Credits: 5

This module introduces the structure and operation of the various system components including the CPU, system buses and internal/external memory, with an emphasis on programming techniques and/or access mechanisms for those components. An overview of numbering systems and digital logic will complete the architecture section. In the second part of this module, students will apply their acquired knowledge to the design of an operating system (OS). Students will also learn how various OS features are applied in the Windows 2000/XP and UNIX operating systems.
(Language of instruction: English)

Assessments

This module's usual assessment procedures, outlined below, may be affected by COVID-19 countermeasures. Current students should check Blackboard for up-to-date assessment information.

  • Department-based Assessment (100%)
Module Director
Lecturers / Tutors
The above information outlines module CT611: "Computer Architecture and Operating Systems" and is valid from 2019 onwards.
Note: Module offerings and details may be subject to change.

Optional CT610: Software Engineering


15 months long | Credits: 10

Software Engineering, will provide students with the fundamental software engineering knowledge necessary to develop and deliver quality software products. It emphasizes a holistic and process based approach to the development of software systems, encompassing technology, business, organizational and human concerns. The module discusses various software components (technology) and the diverse issues impacting their development (process, project and people) and quality. Fundamental software process, project management, and product development skills are developed in this module. The challenges of successfully completing software development projects will be addressed practically, empirically, and theoretically. Upon successful completion, students will have a much greater understanding of software systems development from many perspectives. This understanding, combined with the practical product, process, and project management techniques learned, will equip the student to further develop their knowledge and skills in the field of software systems development both educationally and professionally.
(Language of instruction: English)

Learning Outcomes
  1. Evaluate the successes and failures of the Software industry
  2. Define and evaluate the importance of software engineering education and an agreed Code of Ethics for the future development of the discipline
  3. Appreciate the importance of Requirements & Quality management to Software Engineering
  4. Compare various software engineering process approaches and understand when to use them
  5. Model an unambiguous, prioritized set of requirements for a software system using an appropriate approach
  6. Initiate a software project (including scoping, estimation of effort and scheduling project tasks)
  7. Analyse approaches to managing people and teams in software projects
  8. Outline the evolution of analysis and design approaches from Structured through OO & UML
  9. Create a high level UML design for a case study from a requirements model
  10. Evaluate the usefulness of Design Patterns
  11. Evaluate approaches to Software Configuration Management (SCM) and Change Control
  12. Design a test strategy and risk management strategy for a software project
  13. Describe the changes in software development in the past two decades
  14. Explain SWEBOK and SEEK and how they categorize the knowledge requirements of software engineers
  15. Distinguish between software engineering licensing and certification
  16. Define and outline the main components of the IEEE/ACM Code of Ethics for Software Engineers and the importance of ethics
Assessments

This module's usual assessment procedures, outlined below, may be affected by COVID-19 countermeasures. Current students should check Blackboard for up-to-date assessment information.

  • Department-based Assessment (100%)
Module Director
Lecturers / Tutors
The above information outlines module CT610: "Software Engineering" and is valid from 2019 onwards.
Note: Module offerings and details may be subject to change.

Optional CT609: Fundamentals of Programming


15 months long | Credits: 5

In MCT609, Fundamentals of Programming, students will receive a solid introduction to the art and science of computer programming. The emphasis is on the fundamentals of problem solving and program construction, with the high-level “C” language used as the vehicle for doing this. Upon successful completion, students will be capable of developing and maintaining useful software of reasonable size and complexity. The module is suitable for students with no previous experience of computer programming as well as those with moderate previous knowledge or knowledge of languages other than C. It will provide students with a solid foundation in the key concepts of functional programming, as well as an appreciation of object-oriented programming. The emphasis is on applied problem-solving skills as well as on the theoretical concepts underlying the programming activity. Although the module focuses specifically on the C language, students who have successfully completed it will typically find learning other high-level languages relatively easy, having learned the important skills and concepts of programming in this module.
(Language of instruction: English)

Learning Outcomes
  1. Design and develop well-structured, modular, maintainable software programs using the C language
  2. Understand and modify C programs written by other people
  3. Design and develop C programs of substantial size, involving multiple source files and libraries imported from other programmers
  4. Design and develop C programs of substantial algorithmic complexity, involving multiple nested control structures and multiple dimensioned arrays
  5. Make competent use of pointers and dynamic memory allocation for flexible data storage
  6. Make use of data structures and understand their relevance to object-oriented programming
  7. Develop C programs that make use of disk files for persistent data storage
  8. Transfer the principles of programming using C to other high-level programming languages
Assessments

This module's usual assessment procedures, outlined below, may be affected by COVID-19 countermeasures. Current students should check Blackboard for up-to-date assessment information.

  • Continuous Assessment (100%)
Module Director
Lecturers / Tutors
The above information outlines module CT609: "Fundamentals of Programming" and is valid from 2018 onwards.
Note: Module offerings and details may be subject to change.

Optional CT5114: Distributed Systems and The Cloud


15 months long | Credits: 5

Distributed Systems and the Cloud brings together many strands of study: database applications, software engineering, middleware, architecture, and Java programming. Students will deploy a simple Web application to a cloud platform. They will follow this with a critical analysis of that cloud platform thus building practical, critical and analytical skill for designing and building these systems. Students will become very familiar with the challenges of building Distributed Systems by building an evaluative framework that can be applied to almost any Distributed Systems scenario. Students will spend time on a number of important evolutions in Distributed Systems including relational and non-relational database systems, Web Services and Java EE - gaining an appreciation of legacy systems like CORBA, RMI and RPC, and Sockets.
(Language of instruction: English)

Learning Outcomes
  1. Create a Cloud deployment environment
  2. Evaluate the core design goals of any Distributed System
  3. Demonstrate the relevance of MapReduce & Hadoop to parallel processing of ‘Big Data’
  4. Analyse the role of the Database in Distributed Systems design and evaluate alternatives to Relational Database Management Systems (RDBMS)
  5. Apply the technologies and concepts of Distributed Systems to real problems
Assessments

This module's usual assessment procedures, outlined below, may be affected by COVID-19 countermeasures. Current students should check Blackboard for up-to-date assessment information.

  • Department-based Assessment (100%)
Module Director
Lecturers / Tutors
The above information outlines module CT5114: "Distributed Systems and The Cloud" and is valid from 2017 onwards.
Note: Module offerings and details may be subject to change.

Optional CT5154: Introduction to Information Retrieval


15 months long | Credits: 5

On this module, the student will study the following content: 1. Introduction: Data versus Information; Data Retrieval versus Information Retrieval; Common applications; Problems; Overview of Information Retrieval Systems Architecture 2. Introductory Techniques and Models: Boolean Model of Information Retrieval; Vector Space model and weighting schemes 3. Document processing: stemming; indexing approaches 4. Evaluation Approaches: Test collections; precision and recall; Issues; User-centered measures 5. Weighting schemes and Relevance Feedback 6. Collaborative Filtering/Recommender Systems: applications; nearest neighbour approaches 7. Web Search: link analysis approaches; Network properties; Page Rank 8. Document Clustering: application domains in Information Retrieval; K-means algorithm;
(Language of instruction: English)

Learning Outcomes
  1. Provide an overview of Information Retrieval Systems Architecture
  2. Identify the differences between Data and Information.
  3. Identify the differences between Data Retrieval and Information Retrieval
  4. Explain the Boolean Model of Information Retrieval
  5. Describe document processing in terms of stemming and indexing approaches
  6. Describe Evaluation Approaches for Information Retrieval
  7. Explain Document Clustering
Assessments

This module's usual assessment procedures, outlined below, may be affected by COVID-19 countermeasures. Current students should check Blackboard for up-to-date assessment information.

  • Continuous Assessment (100%)
Module Director
Lecturers / Tutors
The above information outlines module CT5154: "Introduction to Information Retrieval" and is valid from 2019 onwards.
Note: Module offerings and details may be subject to change.

Optional CT5155: Introduction to Relational Databases


15 months long | Credits: 5

On this module, the student will study: 1. Introduction to Datbases; Databases versus file systems; Abstraction 2. Relational model; Concepts; Integrity constraints; Introductory design principles 3. Relational algebra and querying 4. Introduction to SQL 5. Conceptual modelling and mapping to relational schema 6. Normalisation 7. Further SQL concepts
(Language of instruction: English)

Learning Outcomes
  1. Identify and explain the fundamental principles of Datbases
  2. Distinguish between databases versus file systems
  3. Identify the situations where abstraction should be used
  4. Explain the Relational Model in terms of concepts, integrity constraints and introductory design principles
  5. Use relational algebra and querying
  6. Understand conceptual modelling and how it is mapped to relational schema
Assessments

This module's usual assessment procedures, outlined below, may be affected by COVID-19 countermeasures. Current students should check Blackboard for up-to-date assessment information.

  • Continuous Assessment (100%)
Module Director
Lecturers / Tutors
The above information outlines module CT5155: "Introduction to Relational Databases" and is valid from 2019 onwards.
Note: Module offerings and details may be subject to change.

Optional CT5156: Fundamentals of Database


15 months long | Credits: 10


(Language of instruction: English)

Learning Outcomes
  1. Review of Relational Database Principles
  2. Gain efficiencies using Indexing (e.g. Primary, Secondary, Multi-level), B Trees, B+ Trees and Hashing
  3. Gain efficiencies with heuristic optimisation of queries and Efficient implementation of query operators
  4. Apply Armstrongs Axioms, Closure, Minimal Cover sets and Synthesis
  5. Use normalisation and denormalisation
  6. Manage Transactions properties
  7. Use transaction concurrency-control and transaction recovery
  8. Differentiate between Object Oriented models, Object Relational models, and NOSQL models
Assessments

This module's usual assessment procedures, outlined below, may be affected by COVID-19 countermeasures. Current students should check Blackboard for up-to-date assessment information.

  • Continuous Assessment (100%)
Module Director
Lecturers / Tutors
The above information outlines module CT5156: "Fundamentals of Database" and is valid from 2019 onwards.
Note: Module offerings and details may be subject to change.

Optional CT5157: Data Mining


15 months long | Credits: 5

Students on this module will learn concepts including: 1. Introduction to Data Mining 2. Data preprocessing 3. Association rules; item sets; efficient item set generation; Correlation analysis 4. Classification; Decision trees; algorithms; issues; usage 5. Evaluation (crossfold evaluation) 6. Clustering; hard and soft clustering; k means; hierarchical methods
(Language of instruction: English)

Learning Outcomes
  1. Provide an outline of Data Mining
  2. Describe data preprocessing
  3. Demonstrate the use of the Crossfold evaluation method
  4. Distinguish between hard and soft clustering methods
  5. Demonstrate how to apply the Data Mining process to practical problems
Assessments

This module's usual assessment procedures, outlined below, may be affected by COVID-19 countermeasures. Current students should check Blackboard for up-to-date assessment information.

  • Continuous Assessment (100%)
Module Director
Lecturers / Tutors
The above information outlines module CT5157: "Data Mining" and is valid from 2019 onwards.
Note: Module offerings and details may be subject to change.

Why Choose This Course?

Career Opportunities

Information Technology, in general, and software/database design and development, in particular, are one of the success stories in the Irish economy. This course will equip you to participate in this vibrant, international industry. Since IT is crucial in every sector, many of our graduates also have used the course for career advancement and progression within their current employment field.

Who’s Suited to This Course

Learning Outcomes

 

Work Placement

Study Abroad

Related Student Organisations

Course Fees

Fees: EU

€4,800 p.a. 2020/21*

Fees: Tuition

€4,632 p.a. 2020/21

Fees: Student levy

€168 p.a. 2020/21

Fees: Non EU

€5,300 p.a. 2020/21

 

*Next Level Skillnet funding (40% fee subsidy) is available for this course, find out more...

Find out More

Aisling Monahan
T: +353 91 495 698
E: aisling.monahan@nuigalway.ie

Majella O’Dea
T: +353 91 495 041 
E: majella.odea@nuigalway.ie

IT Online Launchpad

Downloads

  • Postgraduate Taught Prospectus 2021

    Postgraduate Taught Prospectus 2021 PDF (11.3MB)