-
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 NUI Galway as their University of choice. Find out what life at NUI Galway is all about here.
-
About NUI Galway
About NUI Galway
Since 1845, NUI 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
NUI 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
Research
NUI Galway’s vibrant research community take on some of the most pressing challenges of our times.
-
Business & Industry
Guiding Breakthrough Research at NUI Galway
We explore and facilitate commercial opportunities for the research community at NUI Galway, as well as facilitating industry partnership.
-
Alumni, Friends & Supporters
Alumni, Friends & Supporters
There are over 90,000 NUI Galway graduates Worldwide, connect with us and tap into the online community.
-
Community Engagement
Community Engagement
At NUI 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.
Second Year Modules Descriptions
CT2106 Object-Oriented Programming
An introductory module to the principles and practice of object-oriented programming. Topics to be covered include: the syntax of the Java programming language, Fundamentals of the object-oriented paradigm: abstraction, inheritance, encapsulation and polymorphism, Object-oriented programming principles and practices, Unit testing, Problem-solving using object-oriented design principles and design patterns.
CT2108 Networks and Data Comms I
This module provides students with theoretical and practical knowledge in the area of computer networks and data communications. It provides the student with a good introduction to communication networks including design principles, existing technologies and future technologies.
CT2109 OOP: Data Structures and Algorithms
This module builds on students' past object oriented programming experience to explore in detail the design of algorithms and data structures of practical relevance. Topics include the following. Design and analysis of list-based, tree-based and graph-based data structures. Theoretical and empirical analysis of algorithms, including advanced search algorithms and algorithms for traversing trees. Dynamic programming. Data compression and Huffman encoding. Implementation of data structures and algorithms in an object-oriented programming language. Practical considerations of analysing, choosing, implementing and applying these algorithms and data structures in useful programs.
CT213 Computer Systems and Organisation
Computer Systems History and Architecture Development; Von Neumann machine; memory systems; storage media; virtual and cache memory; interrupts; concurrency and pipelining; processes; scheduling; critical regions and synchronisation; file systems and management; distributed operating systems and parallel processing; case studies; UNIX, MSDOS and Windows NT.
CT216 Software Engineering 1
Introduction to Software Engineering. Structured Programming and Structured Design. Modularity: The Structure Chart and Module Specification Methods. Quality Module Design: Coupling, Cohesion and Factoring. Structured Analysis: Data Flow Diagrams, Event Partitioning, Functional Decomposition. Transaction and Transform Analysis. Real time design issues in software development. State Transition diagrams and Petri Nets. Introduction to Formal Methods and Formal Design Specifications using the Z notation.
CT230 Database Systems I
Indexing Techniques: Primary, Secondary, Clustering, B Trees, Hashing (Extendible, Dynamic, Linear). Database Architectures and Data Models: Network, Hierarchical, Relational, Object-Oriented. Relational Model: Relations, Relational operators, Integrity constraints. Relational Algebra and SQL: Relational operators, Query Optimisation, DDL, DML, DCL. Extended Relational Model.
Lecture Hours: 24 Lab Hours: 20
CT248 Introduction to Modelling
Introduction to Matlab: Data input & output, Manipulating Matrices, Data Visualisation, Programming constructs, Matlab functions and scripts, Introduction to Matlab OO classes. Introduction to Simulink, Basic Model Design & Implementation, Modelling Dynamic Control Systems, Strong emphasis on Energy Systems Case Studies both in lectures and associated labwork.
CT255 Next Generation Technologies II
This module consists of 2 parts, Informations Systems in Healthcare and Games Design and Programming.
Information Systems in Healthcare provides students with an introduction into IT systems that are used in primary, seconday and tertiary care.
Games Design and Programming provides an introduction to the production of 3D models for games, as well as an introduction to the programming of simple games/animation applications.
MA203 Linear Algebra
An introduction to the theory and application of linear algebra.
Taught in Semester(s) 2?. Examined in Semester(s) 2?.
Workload: 126 hours (24 Lecture hours, 12 Tutorial hours, 90 Self study hours).
Module Learning Outcomes. On successful completion of this module the learner should be able to:
- Draw diagrams that illustrate the basic operations of vector algebra in two and three dimensions;
- Recognise the equations of lines and planes in two and three dimensions;
- Perform the matrix computations outlined in the syllabus description below;
- Solve a linear system using Gaussian elimination;
- Compute the inverse of an invertible matrix;
- Find the orthogonal projection of a vector onto a hyperplane;
- Compute the determinant of a square matrix;
- Compute the characteristic equation of a matrix;
- Find the eigenvectors corresponding to a given eigenvalue;
- Diagonalise a diagonalisable matrix;
- Apply the theory to some real world problem.
Indicative Content
- Algebra and geometry of $\mathbb{R}^n$. Vector addition, scalar multiplication. Lines and planes in 2 and 3 dimensions. Parametric equations of lines and planes. (3 lectures)
- Matrix algebra. Addition, scalar multiplication, matrix product, transpose. Matrix inverses. (3 lectures)
- Systems of Linear Equations and Gaussian Elimination. Elementary operations, echelon form, over and underdetermined systems, homogeneous systems. Computing matrix inverses. (4 lectures)
- Dot product on $\mathbb{R}^n$. Perpendicular and parallel components, distance, angle, orthogonal matrices. (4 lectures)
- Determinants. Minors and cofactors, area and volume. Properties of determinants. Matrix inverses. (3 lectures)
- Eigenvalues and Eigenvectors. Characteristic equation, eigenvalues, eigenvectors, diagonalisation. Orthogonal diagonalisation of symmetric matrices. (4 lectures)
- Applications. (3 lectures)
Module Resources
- "Linear Algebra" (4th ed.) by Lipschuz and Lipson (McGraw-Hill)
MA204 Discrete Mathematics
This course deals with elementary enumeration, permutations, combinations, and graphs including eulerian and hamiltonian graphs.
Module Learning Outcomes. On successful completion of this module the learner should be able to:
- Distinguish between orderings (permutations) and subsets (combinations).
- Count the size of unions and intersections of sets and solve elementary recurrences.
- Define and apply Binomial and multinomial coefficients to enumeration problems.
- Use tree graphs for enumeration.
- Use trees to write algebraic expressions in Polish and Reverse Polish notation.
- Define the notion of graph, eulerian, hamiltonian, bipartite and tree graphs.
- Define the notion of graph colourings and applications to scheduling problems.
Indicative Content
The course introduces the fundamentals of Discrete Mathematics. How to count, the addition rule, the multiplication rule. the Inclusion-Exclusion formula. Permutations and Combinations. the Binomial coefficients and some identities. Recurrences, the Fibonacci numbers, Derangements, "Tower of Hanoi". Distributions, Multinomial coefficients. Introduction to Graph Theory, Euler and the Koenigsberg Bridges Problem. Eulerian and Hamiltonian graphs. Tree graphs and bipartite graphs. Ordered Rooted trees, Polish and Reverse Polish Notation. Planarity of Graphs. Eulers formula for a connected planar graph. Colouring of Graphs the Welsh-Powell algorithm. Applications to simple scheduling problems.
Module Resources
- Discrete Mathematics in the Schaum Outline series
- Discrete Mathematics; N. L Biggs (OUP)
MA2286 Differential Forms
Introduction to functions of several variables and vector valued functions. Topics include partial derivatives, local extrema, curvature, parametric curves, double integrals, Green's Theorem.
MA2287 Complex Analysis
This module introduces the theory of functions of a complex variable, starting with an introduction to complex numbers and ending with applications of the Residue Theorem and conformal transformations.
MA283 Algebra
This course covers the theory and practice of Linear Algebra.
Taught in Semester(s) 2?. Examined in Semester(s) 2?.
Workload: 100 hours (24 Lecture hours, 12 Tutorial hours, 64 Self study hours).
Module Learning Outcomes. On successful completion of this module the learner should be able to:
- Perform matrix computations, solve linear systems of equations and determine bases of the related subspaces;
- Find the nullspace, row space and column space of a matrix; apply the rank-nullity theorem;
- Find bases for the canonical subspaces associated with a linear transformation;
- Use eigenvector bases to diagonalize a square matrix and use the diagonalization to analyze the properties of the matrix;
- Compute orthogonal projections and least squares solutions of overdetermined linear systems;
- Write proofs of facts about vector spaces and linear transformations;
- Identify practical situations where the techniques of Linear Algebra can be applied and carry out the application.
Indicative Content
- Linear Systems and Matrices: Gaussian Elimination. Elementary row operations. Invertible and singular matrices. Finding the inverse of a matrix by Gauss-Jordan Elimination. Elementary matrices. Determinants. Applications to traffic flow, networks and graphs.
- Vector Spaces and Linear Transformations: Vector spaces and subspaces. Linear combinations, spanning sets, linear independence. Bases. Finding bases for subspaces of $\mathbb{R}^n$. The kernel and image of a linear transformation and their dimensions. Finding the kernel (nullspace), image (column space) and the rank of a matrix. Fundamental Theorem of Linear Algebra. Applications to coding.
- Eigenvalues and Eigenvectors: Matrix representations. Eigenvalues and eigenvectors of a linear transformation. The characteristic polynomial. Diagonalization of square matrices and applications to coupled systems of linear differential equations and to page rank algorithms.
- Inner products: Inner product spaces. Orthogonality. The Cauchy-Schwarz Inequality. Orthogonal projections. Orthogonal diagonalization of symmetric matrices. The Spectral Theorem. Applications to least squares solution of overdetermined systems and regression.
Module Resources
- "Linear Algebra", S. Lipschutz & M. Lipson, Schaum Outline Series (Primary Textbook).
- "Linear Algebra and Its Applications", G. Strang, Brooks/Cole (Supplementary reading)
MA284 Discrete Mathematics
This course covers topics in combinatorics, graph theory, and their applications. Section titles are as follows. Addition and multiplication principles; Permutations and combinations; Ordered and unordered selections with repetition; Inclusion and Exclusion; Graph isomorphism, subgraphs, connectedness; Traveling around a graph; Vertex coloring; Planarity; Trees.
Taught in Semester(s) 1. Examined in Semester(s) 1.
Workload: 111 hours (24 Lecture hours, 12 Tutorial hours, 75 Self study hours).
Module Learning Outcomes. On successful completion of this module the learner should be able to:
- Use the addition and multiplication principles correctly and appropriately.
- Construct a combinatorial proof from first principles.
- Distinguish between different combinatorial situations and use suitable techniques to solve the problems involved.
- Identify inherent properties of graphs (planarity, Eulerian and Hamiltonian properties) from pictorial representations.
- Apply graph-theoretic ideas to solve scheduling and optimisation problems.
- Model relevant real-life problems using trees and solve them.
Indicative Content
This course covers topics in combinatorics, graph theory, and their applications. Section titles are as follows. Addition and multiplication principles; Permutations and combinations; Ordered and unordered selections with repetition; Inclusion and Exclusion; Graph isomorphism, subgraphs, connectedness; Traveling around a graph; Vertex coloring; Planarity; Trees.
Module Resources
- Alan Tucker, Applied Combinatorics, 4th edition, Wiley.
- Norman Biggs, Discrete Mathematics, 2nd edition, Oxford University Press.
- Susanna S. Epps, Discrete Mathematics with Applications, 4th edition, Brooks Cole.
ST237 Introduction to Statistical Data and Probability
This course discusses the nature of statistical data and the use of probability to describe random phenomena. Topics covered include: data sources, data presentation, numerical and graphical summaries, basic ideas of probability, conditional probability and indpendence, random variables, standard discrete distributions, mean and variance, joint distributions, and an introduction to the normal distribution.
Taught in Semester(s) I. Examined in Semester(s) I.
Workload: 24 hours (24 Lecture hours).
Module Learning Outcomes. On successful completion of this module the learner should be able to:
- Construct appropriate graphical summaries for a sample of data, including stem-and leaf plots, dot-plots, box-plots. Calculate numerical summaries for a sample of data, including the mean and variance, median and quartiles. Use simple counting and combinatorial arguments to calculate probabilities. Calculate probabilities for combinations of events, including unions, intersections and complements, using the laws of probability. Calculate conditional probabilities and use Bayes theorem to reverse conditioning. Construct probability distributions for random variables in simple settings. Calculate means and variances of random variables. Calculate marginal and conditional distributions of bivariate discrete distributions, calculate the correlation, assess independence.
- Calculate probabilities from standard distributions (Binomial, Poisson, Normal) using tables.
- Use Minitab to explore data both numerically and graphically and to calculate probabilities from standard probability models.
Indicative Content
This module provides a basic introduction to the ideas of probability and how simple probability models can be applied in a number of contexts. The topics covered in the module are:
- Sources of data, sampling, experiments, random variation
- Exploring data - graphical and numerical summaries
- Basic notions of probability - sample spaces, events, combination of events, counting
- Conditional probability and independence, Bayes' Theorem
- Random variables and probability distributions
- Binomial and related probability distributions
- Poisson distribution for counts, events over time
- Expectation - mean and variance
- Bivariate distributions - marginal and conditional probabilities, correlation and independence
- Normal distribution - properties, use of tables, central limit theorem and approximations
- Use of Minitab for data exploration and probability model calculations
Module Resources
- Bluman, A. 2003. Elementary Statistics - a step by step approach. McGraw Hill.
- Hinde, J, & Newell, J. (compilers) 2004. Introduction to Probability and Statistics by DeVeaux & Velleman, Pearson Custom Publishing
