Niall Madden

Teaching 2021/2022

Semester I:
  • MA284: Discrete Mathematics
  • MA313: Linear Algebra I
Semester II:
  • CS211:: Programming and Operating Systems
  • CS319: Scientific Computing

Final Year and Masters Project ideas, 2021/2022.

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 2020/2021

Semester I:
  • Parental Leave
Semester II:
  • CS211 : Programming and Operating Systems
  • CS319 : Scientific Computing

Final Year Projects (2021/2022)

Teaching 2019/2020

Semester I:
  • MA284: Discrete Mathematics
  • MA385: Numerical Analysis I
Semester II:
  • CS211: Programming and Operating Systems
  • CS319: Scientific Computing

Final Year Projects (2019/2020)

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)

Teaching 2017/2018

Semester I:
  • MA284: Discrete Mathematics
  • MA385: Numerical Analysis I
  • MA500-1: 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)

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 K-means 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 two-dimensional 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:
  • MA161-1: Calculus 1 (for science students)
  • MA385/MA530: Numerical Analysis I
  • MA500-1: Numerical Differential Equations
Semester II:
  • CS319: Scientific Computing

Masters Project (14/15)

  • Aeshah Almalki (M.Sc. in Mathematics): "M-matrices and positive definite matrices".
    Aeshah studied the many links between M-matrices and positive definite matrices. She constructed she own proofs of several classical theorems on M-matrices, and investigated how these relate to more recent results on positive definite matrices.

Teaching 2013/2014

Semester I:
  • MA161-1: 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 little-known 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 initial-value problems based on AD.

Teaching 2012/2013

Semester I:
  • MA160/MA161-1: 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 NXT-based robot that could play tic-tac-toe. The language used was the C-lick NXC. The main challenges included mastering real-time 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 Golub-Kahan 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 Euler-Maruyama 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 web-crawler 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 knock-out 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 knock-out). 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 Black-Scholes 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 Black-Scholes 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 Black-Scholes 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)