-
Courses
Courses
Choosing a course is one of the most important decisions you'll ever make! View our courses and see what our students and lecturers have to say about the courses you are interested in at the links below.
-
University Life
University Life
Each year more than 4,000 choose University of Galway as their University of choice. Find out what life at University of Galway is all about here.
-
About University of Galway
About University of Galway
Since 1845, University of Galway has been sharing the highest quality teaching and research with Ireland and the world. Find out what makes our University so special – from our distinguished history to the latest news and campus developments.
-
Colleges & Schools
Colleges & Schools
University of Galway has earned international recognition as a research-led university with a commitment to top quality teaching across a range of key areas of expertise.
-
Research & Innovation
Research & Innovation
University of Galway’s vibrant research community take on some of the most pressing challenges of our times.
-
Business & Industry
Guiding Breakthrough Research at University of Galway
We explore and facilitate commercial opportunities for the research community at University of Galway, as well as facilitating industry partnership.
-
Alumni & Friends
Alumni & Friends
There are 128,000 University of Galway alumni worldwide. Stay connected to your alumni community! Join our social networks and update your details online.
-
Community Engagement
Community Engagement
At University of Galway, we believe that the best learning takes place when you apply what you learn in a real world context. That's why many of our courses include work placements or community projects.
Software Engineering (Dip)
Course Overview
This fully online diploma provides a focused programme of study in the area of software design and development, providing an insight into technical skills and modern industry techniques. Computer programming and design are taught in the diploma, as well as a number of important software engineering methodologies.
Mode of Study: Online Learning - please visit our Online Learning webpage for further details on what is required to be an online learner.
This course has been approved by Next Level Skillnet for a fees subsidy of up to 40% for students whose company is a member of their network. For more information, contact:
Next Level Skillnet – Sue Davies at: sue@nextlevel.ie
This course is also available through Springboard, find out more here.
You may also be interested in one of our other School of Computer Science postgraduate programmes.
Applications and Selections
Application date: To be confirmed
Applications are made online via the University of Galway Applications System. This course is listed under Adult Learning & CPD Courses Application.
Please visit our How to Apply page for Application tips and Supporting Documents information. Software Engineering students are required to submit a current Curriculum Vitae along with other supporting documentation in their application.
Who Teaches this Course
Requirements and Assessment
This course is delivered entirely using online learning technology so students can study when and where they want according to a paced learning cycle. Course materials are easy to follow and are accompanied by continuous assessment exercises, research/review questions and recommended course textbooks. Modules are delivered one at a time, over an eight-week period via asynchronous online technologies using web-supported learning.
The programme facilitators provide a recommended outline of study for each of the eight-week modules to ensure students keep on track. Each module is individually assessed by online examinations and assignments. All assessments and examinations take place within the eight-week period.
There are no live teaching sessions, rather set tasks to be completed by specified days of the week, removing the requirement to be online at any particular time. Support will be provided to students to help them become familiar with the online learning environment. The assessments take the form of weekly online discussions and assignments, and a final online examination at the end of each eight-week module.
Key Facts
Entry Requirements
You are eligible to apply if you have a 3rd level qualification of Level 7 or higher on the National Framework of Qualifications - NFQ. A qualification from any discipline is acceptable since this is a conversion course and it begins with the basics. 2-3 years of experience (in any field) improves your chances of being accepted. Good computer skills and an interest in software knowledge are required prerequisites before starting an IT Online course. An IELTS score of 6.5 or equivalent international qualification will be required, if applicable. If you have an international qualification you can compare your qualifications to the Irish system, please refer to Academic Entry Requirements
The following website may also be consulted for further information: Recognition of foreign qualifications
Applicants who do not satisfy these academic entry requirements can apply for this course through Recognition of Prior Learning (RPL), follow this FAQ RPL for assistance.
Additional Requirements
Recognition of Prior Learning (RPL)
Duration
1 year, part-time online
Next start date
September 2025
A Level Grades ()
Average intake
45
QQI/FET FETAC Entry Routes
Closing Date
NFQ level
8
Mode of study
Online Learning
ECTS weighting
30
Award
Diploma in Software Engineering, University of Galway
CAO
Course code
DIP-DSE
Course Outline
This course is part-time and runs over one year. You will study one online module every eight weeks. Modules include:
- Computer Architecture and Operating Systems [CORE]
- Fundamentals of Programming [CORE]
- Software Engineering [CORE]
- Object Oriented Programming [CORE]
- Distributed Systems and the Cloud
- Artificial Intelligence
CORE modules are those which you must take. All other modules are electives and you must choose one.
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 (30 Credits)
OptionalCT619: Object Oriented Programming
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
- Describe in detail Object-Oriented Programming concepts (e.g. classes, inheritance, composition, modularity, polymorphism)
- Analyse and interpret complex Object-Oriented programs written in Java
- Develop Object-Oriented solutions to programming problems, implement them in Java, test and debug them
- Write code to demonstrate knowledge of array structures, files, applets, graphical programs, multi-threaded programming, and exceptions
- 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
- Department-based Assessment (100%)
Teachers
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.
OptionalCT621: Artificial Intelligence
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
- Define Artificial Intelligence
- Use Predicate Calculus and outline the reasons for using Predicate Calculus
- Describe various search techniques, explaining the advantages and disadvantages of each
- Demonstrate the value of heuristics in a search
- Construct Prolog programs
- 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)
- Explain the relevance of uncertainty to AI and outline approaches to handle uncertainty
- Provide Machine Learning techniques appropriate for a range of different applications
- Explain various applications of Artificial Intelligence, their strengths and limitations, and their position in relation to current research
- Outline the philosophical underpinnings of Artificial Intelligence
Assessments
- Department-based Assessment (100%)
Teachers
The above information outlines module CT621: "Artificial Intelligence" and is valid from 2019 onwards.Note: Module offerings and details may be subject to change.
OptionalCT609: Fundamentals of Programming
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
- Design and develop well-structured, modular, maintainable software programs using the C language
- Understand and modify C programs written by other people
- Design and develop C programs of substantial size, involving multiple source files and libraries imported from other programmers
- Design and develop C programs of substantial algorithmic complexity, involving multiple nested control structures and multiple dimensioned arrays
- Make competent use of pointers and dynamic memory allocation for flexible data storage
- Make use of data structures and understand their relevance to object-oriented programming
- Develop C programs that make use of disk files for persistent data storage
- Transfer the principles of programming using C to other high-level programming languages
Assessments
- Continuous Assessment (100%)
Teachers
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.
OptionalCT610: Software Engineering
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
- Evaluate the successes and failures of the Software industry
- Define and evaluate the importance of software engineering education and an agreed Code of Ethics for the future development of the discipline
- Appreciate the importance of Requirements & Quality management to Software Engineering
- Compare various software engineering process approaches and understand when to use them
- Model an unambiguous, prioritized set of requirements for a software system using an appropriate approach
- Initiate a software project (including scoping, estimation of effort and scheduling project tasks)
- Analyse approaches to managing people and teams in software projects
- Outline the evolution of analysis and design approaches from Structured through OO & UML
- Create a high level UML design for a case study from a requirements model
- Evaluate the usefulness of Design Patterns
- Evaluate approaches to Software Configuration Management (SCM) and Change Control
- Design a test strategy and risk management strategy for a software project
- Describe the changes in software development in the past two decades
- Explain SWEBOK and SEEK and how they categorize the knowledge requirements of software engineers
- Distinguish between software engineering licensing and certification
- Define and outline the main components of the IEEE/ACM Code of Ethics for Software Engineers and the importance of ethics
Assessments
- Department-based Assessment (100%)
Teachers
The above information outlines module CT610: "Software Engineering" and is valid from 2019 onwards.Note: Module offerings and details may be subject to change.
OptionalCT5114: Distributed Systems and The Cloud
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
- Create a Cloud deployment environment
- Evaluate the core design goals of any Distributed System
- Demonstrate the relevance of MapReduce & Hadoop to parallel processing of ‘Big Data’
- Analyse the role of the Database in Distributed Systems design and evaluate alternatives to Relational Database Management Systems (RDBMS)
- Apply the technologies and concepts of Distributed Systems to real problems
Assessments
- Department-based Assessment (100%)
Teachers
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.
OptionalCT611: Computer Architecture and Operating Systems
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)
Learning Outcomes
- Explain the structural elements of a computer.
- Write simple programs illustrating how instructions are processed by a Central Processing Unit (CPU).
- Explain how instructions are processed by a CPU.
- Convert between different number systems, including decimal, binary, and hexadecimal.
- Construct digital circuits (using 'logic-gates').
- Design a memory module.
- Describe the purpose of the memory-types in a computer system and how they are managed.
- Explain how to organise processes and threads efficiently.
- Describe how process scheduling algorithms work.
- Show how concurrency can be effectively managed.
- Discuss how an operating system manages its attached devices.
- Recommend methods to manage various system security requirements.
Assessments
- Department-based Assessment (100%)
Teachers
The above information outlines module CT611: "Computer Architecture and Operating Systems" and is valid from 2022 onwards.Note: Module offerings and details may be subject to change.
Why Choose This Course?
Career Opportunities
The software industry includes businesses involved in the development, maintenance and publication of computer software, as well as software services such as training, documentation, and consulting. At the heart of this industry is the activity of actually building and producing computer software, which is the emphasis of this diploma. Opportunities for software developers are excellent within Ireland and internationally.
Who’s Suited to This Course
This is an ideal course for students who wish to:
- Update their software development and ICT skills
- Study in a flexible, online environment
- Engage with an interesting and challenging curriculum
- Improve their employability by re-skilling in the area of software development
- Develop key professional skills of critical thinking, problem-solving and communications skills
Learning Outcomes
Transferable Skills Employers Value
Work Placement
Study Abroad
Related Student Organisations
Course Fees
Fees: EU
Fees: Tuition
Fees: Student levy
Fees: Non EU
*Next Level Skillnet funding (40% fee subsidy) is available for this course. You also may be eligible for the Adult Learning Tuition Scholarship, find out more