This exciting Level 8 Bachelors Degree teaches students about the latest technological developments, and enables them to gain practical work experience, and specialise in, one of four emerging areas.
Designed specifically with the needs of industry in mind, the BSc (Hons) in Computing Science at Griffith College is a 4-year programme, which aims to equip students with a thorough understanding of the key principles of computer science. Delivered on a full and part-time basis, as a graduate of this course, you will:
This course will next commence September 2020.
Having a tight-knit class gave me the ability to always ask my peers for help when needed. Thanks to the lecturers and the atmosphere at Griffith, we were able to work very well together and there was always someone at hand to help with a problem.
Having earned my degree from GCD, I feel the strongest skill gained from the course was the versatility to approach a multiplicity of computing disciplines with confidence and enthusiasm.
The aim of the module is to teach the learner how to design high-quality computer programs in a systematic way. All the relevant concepts and techniques are explained and exemplified in the clearest, simplest language. The objectives are to facilitate the learner to understand the theory underlying programming as a concept and to enhance the logical step by step approach to problem-solving required. The basic concepts of command sequences, iteration and selection are introduced, and the constructs used in a modern programming language to implement these.
The main objective of this course is to introduce learners to the concepts, notations and operations of mathematics that provide a basis for working in the field of computing. The material covered extends the knowledge of learners who have completed courses in mathematics at secondary level.
Learners are given practical experience of developing web sites using these technologies, as well the processes behind researching and planning user-centred web applications.
Learners are helped to develop their knowledge and understanding of how computer hardware is constructed and how the hardware can be made to implement logic and arithmetic and to run programs. Since computing is showing itself to be both pervasive and fast evolving, the module emphasizes the key principles that continue to apply while allowing the scope of the learning to benefit from the broad base envisaged in the module.
Learners are expected therefore to apply the principles of computer hardware to both current and developing technologies. Further, they are helped to cultivate an understanding of how the insights and practice from computer hardware technology contribute to the current state of the art in the wider Computer Science landscape.
The objective of the module is to assist the learner in the transition to third level education by providing them with the necessary academic support and development skills. Learners are expected to develop adaptable competences that support them throughout their learning journey. This module equips learners to optimise their learning experience in College, and provides them with personal and professional lifelong skills and competences.
The world is constantly changing with new and emerging digital technologies bringing many challenges to the commercial world. This module aims to support learners as they develop a broadly based and intellectually challenging framework in the area of systems analysis and development. Learners gain an awareness of current technologies, literature, and research in the area. Learners are expected to apply the principles to both current and developing technologies. Learners achieve this through developing knowledge and skills in the area. Further, they cultivate an understanding of how the insights and practice contribute to the current state of the art in the wider Computer Science landscape.
This module focuses on the concepts involved in the design of an operating system; an understanding of its complexity and its many requirements. It introduces the learner to some fundamental algorithms used in operating systems. It introduces the concept of concurrency in an OS and explores the concept of multiprocessing and resource management strategies.
In the Software Development 1 module the learners complete a large piece of work, encompassing both independent learning and development. They get the opportunity to work on a large-scale project in a team dynamic. They are required to produce complete a software application, host said software on a code repository and to document the process.
They not only learn new technical skills such as code management but also learn how to develop a software product while working as part of a team. This module focusses on code management using version control systems such as Git and GitHub.
Teaching in this module is conducted mainly through between the team of learners and the lecturer. However, in the early stages of the process the Faculty organise a number of relevant seminars. Topics for these will outline the correct usage of code repositories such as GitLab and BitBucket, as well as industry expectations when working with code management software in a team of developers.
The skills that the learners develop in this module benefit them as they progress through their degree and into their professional life.
This module builds on the work completed in the first year Computer Programming module and extends the learners knowledge of programming by giving a comprehensive analysis of object-oriented programming. This paradigm leads to software architectures based on the objects every system or subsystem manipulates. In this view software systems are operational models of real or virtual world activities based around the objects that populate these worlds: people, cars, houses, stacks, sets, queues. As in all programming modules, a key objective is the acquisition, on behalf of the learner, of good software engineering skills and the application of these skills to the design and implementation of software components.
This module is a continuation module and introduces you to the fundamental concepts of object-oriented program design and how to use modelling for constructing complex software systems. As a result, learners develop skills such as communication literacy, critical thinking, analysis, reasoning, and interpretation, which are crucial for gaining employment and developing academic competence. A big emphasis is placed on using UML to module systems and produce designs.
The aim of this module is to teach the theoretical and practical underpinnings of modern database management systems by teaching the design and implementation of Relational Databases. Learners study techniques such as entity-relationship modelling and normalisation in order to more effectively design a database. Learners are also exposed to practical application of structured query language (SQL) in order to implement, populate, query, and manipulate a database design into a relational database management system (RDBMS).
The objectives of the module are to give learners the skills to model databases using E-R diagrams and ensure database designs do not have redundancy through the process of normalisation. Through the practical application of SQL, learners are able to create, update, retrieve, and delete data from databases that implement their database designs. We also enable learners to integrate their databases with other components (self-developed programs) as part of the software development process.
This module aims to support learners as they develop a broadly based, and intellectually challenging framework in the area of Probability & Statistics. Learners have an awareness of current statistical techniques, literature, and research in the area. Learners are expected to apply the principles of probability and statistics to solve problems and inform decision making. Learners achieve this through developing knowledge and understanding of probability and statistical principles, while applying these principles in typical real-world scenarios.
This module builds on the work completed in the Object-Oriented Programming module and will apply the methods learned there to the design of classes that implement data structures. As in all programming modules, a key objective is the acquisition, on behalf of the learner, of good software engineering skills and the application of these skills to the design and implementation of software components. At the heart of all software design is the implementation of appropriate data structures that provide efficient data models for the problem at hand. Learners develop an in-depth knowledge of the standard generic data structures: stacks, queues, sets, bags and maps; and also learn to implement these using both linear (linked lists, arrays) and non-linear (binary search trees, avl trees, B-trees) data structures. Learners will also study Graph Theory and the fundamental graph searching algorithms. Unit testing will be used throughout to build test models for classes developed to implement data structures.
The Software Development 2 module builds on the work completed in Software Development 1. In that module the focus was on source code management using version control systems. In this module the focus is again on developing a large piece of work, using the learning from Software Development 1, but with a focus on software testing and testing suites. They get the opportunity to work on a large-scale project in a team dynamic. They are required to complete requirements analysis, produce complete a software application, host said software on a code repository, implement a testing suite, and to document the process.
They not only learn new technical skills such as software testing and requirements analysis but also work as part of a team to develop a software product.
Teaching in this module is conducted mainly between the team of learners and the lecturer. However, in the early stages of the process the faculty organise a number of relevant seminars. Topics for these will outline how to perform requirement analysis for the project, and how to systematically test the project to assure it is performing to specification.
This module introduces the learner to the fundamentals behind server-side web development. They are introduced to the core concepts behind dynamic, database-driven web development, through server-side scripting and database integration and learn how to design and build web applications that deliver database information through server-side HTML pre-processing.
Learners are given practical experience of developing dynamic web sites using these technologies.
A key objective of this module is to give learners an in-depth understanding of those areas of discrete mathematics that are relevant to the study of computing. It builds on the work covered as part of the first year foundations module.
This module provides the learner with a detailed understanding and appreciation of communication networks layouts and a wide range of networking standards and protocols. The module concentrates on the physical layer, signalling and signal encoding schemes and the datalink layer. This module also covers higher level network protocols which enhance knowledge about communication in networks. It also provides a basic understanding of wireless networks.
The aims of this module are to empower the learner with the theory and practice of modern GUI development utilizing HCI principles.
The objectives of this module are:
This module builds on the work completed in programming modules completed in stages 1 and 2 and will apply the methods learned there to the study of Concurrent Development. Concurrency complicates the field of programming because processes are non-deterministic and to write concurrent systems that are correct we must understand how to manage limited shared resources. Learners gain an understanding of the need for, and advantages of, concurrent and parallel systems; a mastery of a new programming paradigm that is different from that of the single threaded one; a description of how processes and threads are managed in multiprocessor, multi-core machines; an understanding and mastery of the many classical problems arising with concurrent and parallel tasks; an awareness of the need for such issues as fairness, process synchronisation, deadlock avoidance, etc; and an ability to write concurrent and parallel programs to solve real-world problems.
The main aim of the module is to introduce learners to the concepts, notations and operations of mathematics that provide the basis for the foundational knowledge required for working and developing competencies in various emerging fields. The material covered extends the knowledge of learners who have completed mathematical modules in stage 1 and stage 2. The module provides a conceptual understanding of optimisation problems and their real-world applications. First order and second orders methods to solve optimisation problems are covered in detail. Further, the module explores probabilistic techniques such as simulated annealing, and evolutionary algorithms to find solutions to optimisation problems. The learners will have hands-on experience of implementing solution methods and applying algorithms and techniques covered in this module. Finally, the challenge of dimensionality is discussed.
The purpose of the industry placement is to provide the learner with an opportunity to consolidate all the material taught in the previous modules by applying it to real problems within an IT environment. Given its central role in setting all the other modules in the context of a working IT environment, many of the specific aims and objectives of the programme are considerably advanced by the Work Placement Module.
The placement involves a minimum of six months on the job training within a sponsoring company. The learner is monitored both by their immediate company manager and by the Faculty Industry Liaison. The learner is obliged to keep a daily record of their work-experience during their placement. It is expected that through their placement they will gain experience in a number of challenging computing tasks and have to meet the normal deadline demands of the industry.
This module provides the learner with a detailed understanding and appreciation of the different networking standards and protocols with more emphasis above the physical level, but with some reference to the physical layer. The module covers the different protocols commonly found and focuses on available WAN technologies. This module also covers network management and security issues.
The aim of the module is to teach the theoretical and practical underpinnings of distributed system design and implementation. Learners are introduced to the myriad of issues involved when moving from a single computer system to one composed of multiple nodes. Issues covered include but are not limited to: processes, communication, consistency, replication, leader election, fault tolerance, and clock synchronisation. Learners are exposed to the compromises that must be made during design in each of these areas with respect to the entire system.
The objectives of the module are to give learners the ability to consider all of the issues presented above such that they can design and implement distributed systems. These systems that are produced focus on areas desired in the required system while also trying to minimise the trade-offs that are built into the design of said system.
The aim of this module is to teach the theoretical and practical foundation of development for mobile-based environments (e.g. smartphones). Learners are taught the differences between mobile and desktop based environments and the restrictions that come with development on a mobile-based environment (much reduced computation power, touch interaction, limited storage etc.). Learners are exposed to potential security risks, privacy, and data protection concerns surrounding these devices that contain multiple sensors and information about their users.
The objectives of the module are to give learners the skills to develop applications for a mobile-based environment that take into account the limited resource set that is available and also accounting for the application structure prescribed by such environments. UI design is also expanded upon to take account of touch interaction and the UI restrictions of mobile-based environments. Sensor use is covered to show what data can be collected along with examples of user information that can be derived from such sources of data.
In the project module the learners complete a large piece of work, encompassing both research and development. They get the opportunity to work closely with a member of the lecturing staff. They are required to produce complete a software application and to document the process.
They not only learn new technical skills but also learn how to conduct valid academic research and to develop a software product to industry standards.
Teaching in this module is conducted mainly through one-on-one meetings between the learner and the supervisor. However, in the early stages of the process the faculty organises a number of relevant seminars. Topics for these could include: Writing a project proposal, referencing, report writing, research skills, and online resources.
The skills that the learners develop in the project module benefit them in all areas of their chosen careers, either in the computing industry or if pursuing further studies.
This module seeks to give the learner an understanding and knowledge of networking fundamentals including the Open Systems Interconnect (OSI) seven-layer model concepts, terminology and technologies using industry standard hardware and software.
There are two aims to this module: to expose the learner to practical issues in database management systems such as database administration and query optimisation; and to give the learner a flavour of the procedures and considerations in handling Big Data. In order to gain an understanding of how to work with Big Data, the learner gains an understanding of the core concepts required such as Data Mining, Data Warehousing, and Data Analytics.
The module aims to introduce the learner to cloud computing infrastructure. Learners learn state-of-the-art solutions offered by major cloud providers. Its mains focus is on understanding the concepts and techniques which form the cloud infrastructure. A significant part of the assessment involves the learner developing a cloud application, deploying it to the Cloud and configuring for and evaluating performance post installation. Assessment emphasises a collaborative group approach to equip the learners with the skills required to work in a successful agile software development team.
This module focuses on the design and development of digital games using a standard games development environment. The module introduces the learner to the issues and methodologies behind the rules and play of games. It introduces the fundamental ideas behind the design of electronic. Learners are introduced to how games function to construct experiences using rule design, play mechanics, game balancing, and the integration of visual, audio and textual elements into the game. They are also introduced to the iterative nature of the design methodology, games documentation and play testing.
The module has a strong practical element focussed on developing skills in game development. The learner also covers the core elements of game design and engagement with the user.
The aim of this module is to teach the theoretical and practical underpinnings of modern 3D computer graphics APIs and applications. Learners are introduced to the two main families of rendering (Rasterization and Ray Tracing). However, this module focusses mainly on Rasterization as this is what the majority of graphics hardware is built for. Learners study the mathematics behind taking a collection of polygonal 3D triangular meshes and transforming them into an image that is viewable on a 2D screen.
The objectives of this module are to give learners the skills to create applications and render images using a modern Rasterization API (e.g. Vulkan, DirectX 12) through the practical application of transform and lighting techniques, texturing and animation. We also explain to learners how to take these applications and rework them to take advantage of advanced 3D rendering hardware such as stereoscopic screens and VR headsets.
The module aims to introduce the learner to the Internet of Things. The Internet of Things (IoT) is an area that has received significant attention from both industry and academia in recent years. This module is an introductory level which provides an overview of developing and deploying solutions for the Internet of Things. It focusses on key concepts of data retrieval from IoT devices and sending the data to a cloud platform where it can be used to develop smart applications. Learners learn all the steps that are required to develop a basic IoT oriented solution.
The aim of this module is to enable the learner to embody an artificial intelligent agent in the physical or virtual world. The virtual hardware or physical hardware, programmed behaviours, and algorithms will be toughly understood, implemented, and customized by the learners.
This aim will be met through the pursuit of the following objectives:
This module aims to empower learners to perform a wide range of machine learning tasks including but not limited to classification, prediction, regression, clustering, and association rule learning. Learners will develop a deep understanding of these techniques and be able to apply them to a range of data to produce meaningful results.
This aim will be met through the pursuit of the following objectives
This module aims to provide learners with the foundations necessary for understanding and extending the current state of the art in data analytics and visualisation. In recent years, the world has been flooded with ever-increasing amounts of data. We are required to possess ourselves with data analytics techniques to better understand this data and represent it meaningfully. Visualisation provides one means of tackling data overload, as a well-designed visual representation of the data can help in improving comprehension, memory, and decision making. In this module, learners study techniques and algorithms for carrying basic data analytics (using the statistics) and creating effective visualisations based on well-established principles from graphic design, visual art, and perceptual psychology. The module is targeted both towards learners interested in data analytics and information visualisation.
The module details the cost of breaches and hacks to organisations and hence the importance of ethical hacking and penetration testing. Encryption is covered, from simple classical techniques to modern PK techniques. Learners are shown the process of auditing application source code to verify that the proper security controls are present. The module focusses on web applications. XSS, SQLi, insecure code, code errors.
Other concepts such as steganography, network security (basic analysis of packet captures), and system misconfiguration will be covered.
This module introduces the learner to the concepts of computer forensics and investigative techniques. They encounter various techniques used in digital forensic investigations and the tools required for these investigations. Learners also gain exposure to the practical digital evidence gathering process. Current trends in computer forensics, such as network and cloud forensics are introduced using academic papers. Several investigative techniques will be covered, providing learners with a solid understanding of how to reason about evidence and hypotheses. Given a set of information, evidence, and hypotheses, how does an investigator make sense of it. How is sense made from an information set and how are better predictions made and investigative leads generated? There are many methods, from hard logical inferences to less formal structured analytic techniques.
The module introduces the learner to the fundamentals behind virtualisation, Docker technology. They are introduced to the core concept behind how containers work and the concept of continuous development and delivery with Jenkins. Learners are given practical experience of deploying containers and building clusters to serve a complete solution of a service or services.
Provisional timetable for BSc (Hons) in Computing Science Full-time - Year 1
Provisional timetable for BSc (Hons) in Computing Science Part-time - Year 1
2 H5 and 4 O6/H7 grades, to include a language (English, Irish or other language) and maths or equivalent.
If you are 23 years or over from the 1st January 2018 you will be asked for a copy of your passport. A member of the College’s admissions team will be in touch to discuss your course entry requirements.
Applicants that are under 23 years on Jan 1st, 2018 will be asked for a copy of their passport, Leaving Certificate results / FETAC qualifications or equivalent and must meet the minimum entry requirements for the programme.
Applicants under 23 years of age on 1st of January, 2018 must apply through the CAO system www.cao.ie. Please consult the CAO website for information on important dates for 2018 applications.
Applicants over 23 years
Applicants over 23 years of age on 1st January 2018 must apply to Griffith College directly online using the Apply Online facility on the website homepage. Mature applicants will be asked for a copy of their passport.
If English is not your native language, you must show that your English level is of a suitable standard. For further information please contact a member of the Admissions Team.
An Academic Administration Fee of EUR250.00 and a 2% Learner Protection Charge is applicable each academic year in addition to the fees quoted below. The fees below relate to Year 1 fees only.
An Academic Administration Fee of EUR250.00 and a 2% Learner Protection Charge is applicable each academic year in addition to the fees quoted below.
Non-EU students: a Medical Insurance, Student Services and Administration fee of EUR300 is payable each academic year in addition to the fees quoted below.
Non-EU Living in Ireland or abroad: Please refer to our Non-EU Tuition Fees section.
Non-EU Living in Ireland: EUR 7,000.00
Non-EU living Abroad: Please refer to our Non-EU Tuition Fees section.
Non-EU Living in Ireland: EUR 5,600.00
Students wishing to pay for their fees monthly may avail of our direct debit scheme. Please download our Fee Payment Information document to review the payment plan schedule and how to apply.
Is your company paying for your course?
They will need to complete a Griffith College Sponsorship Form and send this to the Student Fees Office:
All QQI accredited programmes of education and training of 3 months or longer duration are covered by arrangements under section 65 (4) of the Qualifications and Quality Assurance (Education and Training) Act 2012 whereby, in the event of the provider ceasing to provide the programme for any reason, enrolled learners may transfer to a similar programme at another provider, or, in the event that this is not practicable, the fees most recently paid will be refunded.
Please note that a QQI Award Fee applies in the final year of all QQI courses. To find the relevant fee for your course level, please see the Fees page.
Graduates of the BSc (Hons) in Computing Science can pursue further study options here at Griffith College, in the form of an MSc in Computing Science (offered on a full/part-time basis), or at other institutions worldwide. On the Master's programme at Griffith College, some of the modules cover professional course material (granted by CISCO, Microsoft, Sun Microsystems Inc. etc.) which provides students with sufficient knowledge to undertake professional qualifications, should they wish to do so.
Other study options at Griffith College include a range of Postgraduate Diplomas in Networking, Software Development and Information Management, Master of Science in Network Security, Master of Science in Cloud Computing and Master of Science in Big Data Management & Analytics.
Past graduates of the BSc (Hons) in Computing Science are currently working in a variety of exciting roles such as assistant software project leaders, computer technology consultants, MIS (Management Information Systems) personnel, software engineers, systems analysts, applications programmers etc., across a wide range of industry sectors. The career opportunities are many and varied and having solid industry work experience from the six-month work placement has given students an advantage in their careers.