teaching
Spring 2025 - Software Engineering
Institution: University College Dublin
Course Description: This module prepares learners for professional software engineering with a focus on teamwork and developing complex systems. Learners will understand essential procedures, design software addressing functional and non-functional requirements, and implement systems considering architecture, component interaction, task allocation, and tools like version control. Core topics include software requirements, IDEs, Git, Agile methodologies (Scrum/Kanban), and database management. Practical skills in API requests, test-driven development (TDD), and Flask web architectures are emphasized. The module also explores software architecture, design patterns, and testing, providing a comprehensive foundation in modern practices for designing, developing, and testing software systems collaboratively.
Spring 2025 - Information Visualisation (Blended Delivery)
Institution: University College Dublin
Course Description: This module is suitable for students interested in the fundamental and practical underpinnings of Information Visualisation. Information Visualisation is a research area that focuses on the use of graphical techniques to present data in an explicit form. Such static or dynamic presentations (pictures) help people formulate an understanding of data and an internal model of it for reasoning about. Such pictures of data are an external artefact supporting decision making. While sharing many of the same goals of Scientific Visualisation, Human Computer Interaction, User Interface Design and Computer Graphics, Information Visualisation focuses on the visual presentation of data without a physical or geometric form. As such it relies on research in mathematics, data mining, data structures, algorithms, graph drawing, human-computer interaction, cognitive psychology, semiotics, cartography, interactive graphics, imaging and visual design. Tools: Vega Lite and Tableau
Spring 2025 - Information Visualisation - DS
Institution: University College Dublin
Course Description: This module is suitable for students interested in the fundamental and practical underpinnings of Information Visualisation. Information Visualisation is a research area that focuses on the use of graphical techniques to present data in an explicit form. Such static or dynamic presentations (pictures) help people formulate an understanding of data and an internal model of it for reasoning about. Such pictures of data are an external artifact supporting decision making. While sharing many of the same goals of Scientific Visualisation, Human Computer Interaction, User Interface Design and Computer Graphics, Information Visualisation focuses on the visual presentation of data without a physical or geometric form. As such it relies on research in mathematics, data mining, data structures, algorithms, graph drawing, human-computer interaction, cognitive psychology, semiotics, cartography, interactive graphics, imaging and visual design. Tools: Vega Lite and Tableau
Autumn 2024 - Introduction to Artificial Intelligence
Institution: University College Dublin
Course Description: By the end of this module, students will be able to explain key AI principles and evaluate their strengths and limitations. They will implement search algorithms, apply adversarial game-playing techniques, and compare optimization methods like Simulated Annealing and Genetic Algorithms. Students will also explore AI Planning, represent problems effectively, and apply planning algorithms. They will differentiate between supervised and unsupervised learning techniques such as Decision Trees, Naïve Bayes, kNN, and K-Means, and understand Neural Networks, especially in Computer Vision. Additionally, students are expected to demonstrate independent research beyond the lecture material.
Autumn 2024 - Python Object Oriented Programming
Institution: University College Dublin
Course Description: Upon successful completion of this module, learners will have a solid understanding of core Object-Oriented Programming (OOP) concepts in Python, including classes, instances, inheritance, multiple inheritance, encapsulation, polymorphism, and methods. They will be capable of implementing software systems that incorporate these principles and will have developed proficiency in coding within a Python Notebook environment. Additionally, learners will be skilled in debugging Object-Oriented programs to identify and resolve errors effectively.
Autumn 2024 - Data Science in Python
Institution: University College Dublin
This module aims to provide students with an intensive introduction to Python programming and familiarize them with key topics in Data Science. Students will learn methods for collecting, storing, filtering, and analyzing datasets, and will be introduced to numerical computing, statistics, and machine learning. Practical applications of these concepts will be demonstrated using popular open-source tools. The module also covers data visualization and working with textual data. With a strong emphasis on practical programming, students will complete two coursework assignments involving Python-based data analytics tasks.
Spring 2024 - Data Structures and Algorithms
Institution: University College Dublin
Course Description: This course offers a comprehensive introduction to data structures and algorithms. Topics include data structures such as arrays, stacks, queues, and graphs, sorting and graph traversal algorithms etc.
Fall 2022 - Programming and Problem Solving for Data Analytics
Institution: Carnegie Mellon University Africa
Course Description: This course offers a comprehensive introduction to programming and data analytics in Python. Topics include functions and modules, object oriented programming, file input and output, data exploration and analysis, model selection and evaluation etc.