Teaching

Performance of Computer Systems - COMP3014J

Undergraduate course, UCD, BDIC, 2021

This module is designed for 4th year undergraduate students to gain insight about system evaluation. It also can help the students to identify the advantages and disadvantages of their software.
It introduces basic concepts in performing theory and classic evaluation methods/models. The following topics are included:
■ Performance Measurement
■ Workload selection and Characterization
■ Fundamentals of Probability theory and Statistics
■ Queuing Theory
■ Analysis of Sample data including Regression analysis
■ Performance modelling
■ Experimental design and Analysis
■ Simulation including Random number generation
Though this course, they will learn the procedures of performing an evaluation on a specific system through various approaches

Object-oriented programming - COMP2005J

Undergraduate Course, UCD, BDIC, 2021

The Object Oriented Programming (OOP) paradigm is a key aspect of modern computer programming, having become the dominant programming paradigm in large-scale industrial software development. This module introduces students to object-oriented concepts such as classes, objects, message passing, encapsulation, abstraction, inheritance, polymorphism, genericity and software reuse. We will look at how these constructs are used to construct high-quality programs.There is a strong emphasis on practical program development.

Data Structures & Algs I (S/E)- COMP2010J

Undergraduate Course, UCD, BDIC, 2021

On completion of this module students should be able to: - Understand how to determine the amount of resources (such as time and storage) necessary to execute a particular algorithm (algorithm analysis)- Understand the object-oriented programming constructs needed to encode an algorithm- Understand the structure, nature and use of fundamental data structures including, Arrays, Linked Lists, Stacks, Queues, Lists, Trees, Priority Queues- Understand the object-oriented programming constructs needed to encode a data structure and its access algorithms - Design programs using these constructs to solve large problems.- Successfully write, compile, debug and run programs using these constructs.