Niall Madden
Teaching 2019/2020
Semester I:
 MA284:
Discrete Mathematics
 MA385:
Numerical Analysis I

Semester II:

CS211
: Programming and Operating Systems

CS319
: Scientific Computing

Teaching Archive
This is a list of all courses that I have taught since September
2000. There are links to some online content for the most recent
instance of the course. Some links might be broken  please let me
know.
Important: These notes may not be relevant for courses that
are now taught by someone else. Lecturers tend to redevelop courses;
topics are continually updated.
Teaching 2018/2019
Semester I:
 MA284: Discrete Mathematics
 MA385: Numerical Analysis I

Semester II:

CS211: Programming and Operating Systems
 CS319: Scientific Computing

Final Year and MSc Projects (2018/2019)
 Cian Mc Gonnell (B.Sc. Financial Mathematics and
Economics):
"
A mathematical and computational
study of tiebreakers in sport
"
Cian extended an analysis of the "fairness" of penalty
shootouts, and devised a proposal for improving them.
 Neringa Jurenaite (B.Sc. in Applied Mathematics):
"
Schwarz Domain Decomposition Methods:
theory and applications
"
Neringa developed in implementation of the classical
Schwarz algorithm in FEniCS, as well as an analysis for an 1D
problem. One highlight was an implementation of the method to
the problem from the original paper of Schwarz: a PDE posed on
a domain made from the union of a circle and a square.
 David Barry (M.Sc. Mathematics):
"
Algebraic Graph Theory
and its
Application to Grid Graphs
"
David studied a spectral analysis of certain graphs, with
an emphasis on those formed by the Cartesian product of simpler
graphs. He devised some algorithms for producing subgraphs
with certain extremal properties, including a novel approach
for determining communities within networks.
Teaching 2017/2018
Semester I:

MA284: Discrete Mathematics

MA385: Numerical Analysis I
 MA5001:
Abstract and Numerical Linear Algebra

Semester II:
I was on sabbatical leave from 1 January to 30 June 2018.

Final Year Project (17/18)
Teaching 2016/2017
Semester I:
 MA204/MA28:
Discrete Mathematics
 MA385/MA530: Numerical Analysis I

Semester II:

CS319
: Scientific Computing

MA378
: Numerical Analysis II

Final Year Projects (16/17)
 Noeleen Rawle (BSc Mathematics): "
Sparse Grid Method for Efficient Quadrature in N dimensions".
Sparse grid methods can be applied to various types of
highdimensional approximation problems, including numerical
integration, and solution of partial differential
equations. In the latter case, the most simple and elegant
approach is to use the twoscale method of Zhou and
coauthors. Noeleen investigated the application of this
approach to solving quadrature problems. In particular, she
derived formulae for the twoscale method applied to problems
in two, three and four dimensions. Remarkably, she showed that
the technique may be even more efficient that the "classical"
sparse grid methods based on hyperbolic cross points.
 Róisín Hill (B.Sc. Mathematical
Science): "Discontinuous Galerkin Methods and FEniCS".
Róisín objective was to learn about
discontinuous Galerkin finite element methods, and apply
them to solve some ordinary
and partial differential equations in
FEniCS.
Starting with Beatrice Riviere's book, she masters the
theory and practice of dGFEM for a onedimensional
problems, reproducing the results of the MATLAB code
provided in that text, but using FEniCS. She also
implemented the nonsymmetric
interior penalty Galerkin (NIPG) method
of [Roos and Zarin, 2003] and investigated the convergence
of the solution. She then extended her code to
to solve various classes of PDEs, including twodimensional
linear and nonlinear equations, steady state and timedependent
equations, and vector valued problems.
Teaching 2015/2016
Semester I:
 MA204/MA284: Discrete Mathematics
 MA385/MA530: Numerical Analysis I

Semester II:
 CS319: Scientific Computing
 MA378/MA531: Numerical Analysis II

Final Year Projects (15/16)
 Kezia Burke (BSc in Financial Mathematics and
Economics): "Cluster Analysis and Irish
Demographics".
The purpose of Kezia's project was to
examine how clustering algorithms could be applied to census data
relating to the counties of Ireland. The main focus was
on Kmeans and Hierarchial cluster, which she
implemented in MATLAB. By applying these to real demographic trends
prevalent in Ireland, Kezia determined
which of these methods is best suited to analysing Irish census data.
 Bram Siebert (B.Sc. in Applied Mathematics): "Modelling
Diffusion on Networks".
Bram studied how the twodimensional
heat partial differential equation can be solved numerically using
a finite difference method, using the standard discrete
Laplacian. Thinking of the finite difference grid as a graph,
he then investigated how the idea of diffusion on graphs can be
studied on arbitrary graphs, using the graph Lapacian. He
then used this to construct a concept of "diffusivity of graphs".
Teaching 2014/2015
Semester I:
 MA1611: Calculus 1 (for science students)
 MA385/MA530: Numerical Analysis I

MA5001: Numerical Differential Equations

Semester II:
 CS319: Scientific Computing

Masters Project (14/15)
 Aeshah Almalki (M.Sc. in Mathematics): "Mmatrices and
positive definite matrices".
Aeshah studied the many links between Mmatrices and positive definite
matrices. She constructed she own proofs of several classical theorems on
Mmatrices, and investigated how these relate to more recent
results on positive definite matrices.
Teaching 2013/2014
Semester I:
 MA1611: Calculus 1 (for science students)
 CS304/CS310:
Mathematical and Logical Aspects of Computing
 MA385/MA530: Numerical Analysis I

Semester II:
 CS319: Scientific Computing

MA519: Numerical Linear Algebra.

Final Year Projects (13/14)
 Lukas Spies (B.Sc. in Mathematical Science): "Automatic Differentiation
with applications to Initial Value Problems"
Lukas studied numerical differentiation, first by classical finite difference methods,
and the littleknown classical technique of Complex Step differentiation.
However, the main body of his project was on the technique
of Automatic/Algorithmic Differentiation (AD)". He wrote his
own C++ implementation of AD, and the applied it to several
problems. The most interesting application was the creation of a new
solver of initialvalue problems based on AD.
Teaching 2012/2013
Semester I:
 MA160/MA1611: Calculus 1 (for science students)
 CS304/CS310: Mathematical and Logical Aspects of Computing
 MA385/MA530: Numerical Analysis I

Semester II:

MA180/186/190: Mathematics (Honours)  Calculus
 CS319/CT343: Scientific Computing

Final Year Project (12/13)
 Conor McGinty (B.A. in Mathematics and Education) "Simulating
Large Random Graphs and Social Networks". Conor investigated
the application and implementation of several forms of
graph centrailities: schemes which seek to establish the
most important node in a graph, according to reasonable criteria.
The highlight of the project  not least because it involved the use
of real data  was the computation of the stress
centrality of nodes on Conor's own Facebook graph.
2011/2012
Semester I:
 MA101: Calculus 1 (for science students)
 CS304/CS310/MA325:
Mathematical and Logical Aspects of Computing
 MA385/MA530: Numerical Analysis I

Semester II:
 CS427: Elements of Software Engineering
 CS304/CS310/MA326:
Mathematical and Logical Aspects of Computing (Sem 2)
 MATBC: Graduate
course  Mathematics of the Finite Element Method

Final Year Project (11/12)
 Brian Burns (Financial Mathematics and Economics) "Random
Graphs". Brian studied links between linear algebra and graph
theory, with an emphasis on the mathematics that can be used to
study properties of very large graphs  such as how the average
path length of the graph depends on the number of vertices and
edges. He also wrote some Octave/Matlab programmes the simulate and
visualise large graphs.
2010/2011
Sabbatical!!
2009/2010
Semester I:
 CS204/CS209: Algorithms
 CS211: Operating
Systems and Programming
 MA385/MA530: Numerical Analysis I

Semester II:
 MA378/MA531: Numerical Analysis II
 CS427: Elements of Software Engineering
 MA519: Numerical Linear Algebra

Final Year Projects (09/10)
 Jason Orr (Computer Science) "Crawling Through College". Jason designed and implemented an
impressive web crawler in C, learning a lot about sockets and
network programming in the process. He tested it on the NUI Galway
site.
 Philip Mulryan (Computer Science) "Signal processing and Robotics
Programming". The main output from Phil's project was a Lego
NXTbased robot that could play tictactoe. The language used was
the Click NXC. The main challenges included mastering
realtime programming, processing input from the robot's sensors,
and designing an algorithm for the game.
 Jason Gill (Financial Mathematics) "Image compression and the
Singular Value Decomposition". Jason studied the computation of the
SVD, primarily using Householder reflectors, and the GolubKahan
algorithm. He then used the SDV to implement some image processing
algorithms, and analyse them in various norms.
2008/2009
Semester I:
 CS204/CS209: Algorithms
 MA211: Calculus
 MA385/MA530: Numerical Analysis I

Semester II:
 CS209 Algorithms (and programming)
 MA378/MA531: Numerical Analysis II
 CS427: Elements of Software Engineering

Final Year Project (08/09)
 Daniel Finn (Financial Mathematics) "Numerical Solutions to
Stochastic Differential Equations". Through careful study of Ito
calculus, and stochastic Taylor series, Danny was able to analyse
the popular EulerMaruyama and Milstein methods, and apply them to
some interesting SDEs.
2007/2008
Semester I:
 CS204/CS209: Algorithms
 MA211: Calculus
 MA385/MA530: Numerical Analysis I

Semester II:
 CS209 Algorithms (and programming)
 MA378/MA531: Numerical Analysis II
 CS427: Elements of Software Engineering

Final Year Project (07/08)
 Sean Corcoran (Computer Science) "Webcrawling and Pagerank". A
careful study of the fundamentals underpinning the famous Google
PageRank Algorithm. Using data generated by a webcrawler that we
wrote himself, Sean was able to "rank" pages on local server.
 Grainne Kenny (Financial Mathematics) "Ranking sports teams". In
what was (as far as we knew at the time) a novel application of a
PageRank algorithm, Grainne devise a variant to rank sports teams in
knockout competitions. The two main data sets were the results of
the 2007 Rugby World Cup, and the 2007 National Hurling
League (in spite of the name, the finals are played as a
knockout).
During the project we found similar work by Langville and
Meyer. Still, we had a lot of fun. We concluded that Ireland were
ranked 12th of the 20 years in the 2007 RWC, and that Clare were
ranked 2nd in the Hurling league.
2006/2007
Semester I:
 MA385/MA530: Numerical Analysis I
 CS457 Image processing

Semester II:
 MA154:
Algebra (for IT students)
 MA378/MA531: Numerical Analysis II
 CS427: Elements of Software Engineering
 CS454 Signal processing

Project (06/07)
 Aoife Hennessy (MSc in Communications and Information Systems) "A
study of large scale eigenvalue problems in information search and
retrieval". Aoife studied the analysis and application of Krylov
subspace methods eigenvalue problems.
2005/2006
Semester I:
 MA385/MA530: Numerical Analysis I
 CS457 Image processing

Semester II:
 MA154: Algebra (for IT students)
 MA378/MA531: Numerical Analysis II
 CS427: Elements of Software Engineering
 CS454 Signal processing

Project (05/06)
 Michael Meehan (BSc in Financial Mathematics and Economics)
"Digital Image Processing and the mathematics involved".
 Oisin Kelly (BSc in Financial Mathematics and Economics)
"Financial Option Valuation".
2004/2005
Semester I:
 CS208: Operating systems and C++
 MA385/MA530: Numerical Analysis I
 CS457 Image processing

Semester II:
 MA154: Algebra (for IT students)
 MA378/MA531: Numerical Analysis II
 CS427: Elements of Software Engineering
 CS454 Signal processing

Projects (04/05)
 Aaron Hurley (MSc in Communications and Information Systems)
"Audio Filtering with respect to Spectral Analysis, Synthetic Methods and Well Known Functions"
 Bebhinn O'Brien (BSc Computer Science)
"The Numerical Simulation of Stochastic Differential Equations".
 Thomas O'Flaherty (BSc Computer Science) "Numerical Methods in Distributed Environments".
2003/2004
Semester I:
 CS208: Operating systems and C++
 MA385/MA530: Numerical Analysis I
 CS457 Image processing

Semester II:
 MA378/MA531: Numerical Analysis II
 CS427: Elements of Software Engineering
 CS454 Signal processing

Projects (04/05)
 Anthony Coyne (BSc in Financial Mathematics and Economics)
"Numerical option pricing and the BlackScholes model
using Matlab"
 Joseph Garvin (Higher Diploma in Mathematics) "Simulating
Small World Networks".
 Lisa McGarrigle (BSc in Financial Mathematics and Economics).
"Metrics for Matrices".
2002/2003
Semester I:
 CS208: Operating systems and C++
 CS304: Mathematical and Logical Aspects of Computing (I)
 MA321: Computer packages for mathematics (Maple)

Semester II:
 CS304: Mathematical and Logical Aspects of Computing (I)
 MA378: Numerical Analysis II
 CS427: Elements of Software Engineering

Projects (02/03)
 Marcella Doherty (Higher Diploma in Mathematics) "Numerical
methods for stochastic differential equations".
 Brian Caffrey (BSc in Computing Studies and Mathematical
Science). "Distributed Systems".
2001/2002
Semester I:
 CS208: Operating systems and C++
 CS304: Mathematical and Logical Aspects of Computing (I)
 MA321: Computer packages for mathematics (Maple)

Semester II:
 MM246: Numerical Analysis
 CS304: Mathematical and Logical Aspects of Computing (I)
 MA378: Numerical Analysis II

Projects (01/02)
 Karen Durkin (BSc in Financial Mathematics and Economics)
"Numerical Analysis of the BlackScholes Model".
 Neil Burke (BSc in Computer Studies and Mathematical Science)
"Cubic Spline Interpolation: rational splines and convexity".
 Lorcan Connaughton (BSc in Financial Mathematics and Economics)
"The BlackScholes Model: a numerical approach".
2000/2001
Semester I:
 CS208: Operating systems and C++
 CS304: Mathematical and Logical Aspects of Computing (I)
 MA321: Computer packages for mathematics (Maple)

Semester II:
 MM246: Numerical Analysis
 CS304: Mathematical and Logical Aspects of Computing (I)
