Trinity College Dublin

Skip to main content.

Core links

FYP Projects 2016/17 and Proposals for 2017/18

1. Introduction

The information on this page applies to students taking final year projects and Year 5 dissertations in the School of Computer Science and Statistics under the following programmes:

  • BA (Mod) in Computer Science
  • BA (Mod) in Computer Science, Linguistics and a Language
  • BA (Mod) in Computer Science and Business or Business and Computing
  • BAI in Computer Engineering (D Stream)
  • BA Management Science and Information System Studies (MSISS)
  • BAI in Computer Engineering and Microelectronics (CD stream)
  • Management Science and Information Systems Studies
  • BA (Mod) Mathematics
  • Master in Computer Science (MCS)
  • MAI in Computer Engineering

2. Guidelines for students

Important dates and deadlines for academic year 2016/17

Course Activity Date
Integrated Computer Science (Yr 4) Project Selection Fri Oct 14, 2016
Final Year Project Project Demonstration Period April 3-7, 2017
  Project Presentation Material and Poster Submission Date Mon Apr 10, 2017
  Project Report Due Fri May 5, 2017
  Project Presentation and Poster Session Thu Apr 13, 2017
     
Integrated Computer Science (Yr 4) Internship Details Form Submission Date Fri Dec 9, 2016
Internship Goals Document Submission Date Fri Feb 10, 2017
  Poster Submission Date Mon Apr 10, 2017
  Poster Presentation Date Thu Apr 20, 2017
  Mid Point Submission of Reflective Diary Fri Apr 28, 2017
  Technical Report Submission Date Mon Aug 7, 2017
  Final Submission of Reflective Diary Mon Aug 7, 2017
     
Master in Computer Science Project Demonstration Period Tues May 2, 2017 & Thu May 4, 2017
  Poster Submission Date Mon May 8, 2017
  Project Presentation and Poster Session Thu May 11, 2017
  Dissertation Submission Date Thurs May 18, 2017
     
Computer Engineering (Yr 4) Project Demonstration Period April 3-7, 2017
Final Year Project Project Report Due Fri May 5, 2017
     
Computer Engineering (Yr 4) Internship Details Form Submission Date Fri Dec 9, 2016
Internship Goals Document Submission Date Fri Feb 10, 2017
  Poster Submission Date Mon Apr 10, 2017
  Poster Presentation Date Thu Apr 20, 2017
  Mid Point Submission of Reflective Diary Fri Apr 28, 2017
  Technical Report Submission Date Mon Aug 7, 2017
  Final Submission of Reflective Diary Mon Aug 7, 2017
     
Master in Computer Engineering Project Demonstration Period Wed March 22 - Fri March 24, 2017
  Project Report Due Thurs May 18, 2017
     
Management Science and Information System Studies Interim Presentations Mon Dec 5, 2016 - Fri Dec 9, 2016
  Project Report Due

Fri March 24, 2017

     
Computer Science & Business / Business and Computing Project Demonstration Period April 3-7, 2017
  Project Report Due Fri April 21, 2017
     
Computer Science Linguistics and Language Project Demonstration Period March 13-17, 2017
  Project Report Due Tues Apr 4, 2017

 

* Due to scheduling constraints it may be necessary to hold some demonstrations later in the week.

When to choose a project

An initial list of project proposals (from lecturing staff) will be released on the Thursday of the last week of Semester 2 in your Junior Sophister year. Supervisors will not accept supervision requests before this time. Further project proposals may be added to this list by lecturing staff over the summer vacation.

Students should select a final year project before the end of the third week of Semester 1. Where students have not selected a project by the deadline, a project supervisor will be allocated to them in consulation with the relevant course director out of the supervisors who have not yet reached their supervision limits. The chosen supervisor will assign the student a project or help them to specify a project in an area selected by the supervisor.


How to choose a project

Students may either

  • select a project from the list of project proposals put forward by the lecturing staff, or
  • alternatively propose their own projects. If you have a project proposal of your own and if you are having trouble finding an appropriate supervisor, then contact your course director:


In either case students must get the agreement of a supervisor before they will be considered as having selected a project. Supervisors may require a meeting with the student to discuss the project before accepting a supervision request. Once a supervisor agrees to supervise a project, details of the project assignment will be recorded centrally by the supervisor.

Students may only select a single project, but they may change their minds and select an alternative project before the end of the third week of Semester 1. However, if a student selects a new project, they must notify both the old and new supervisors that their previously chosen project is to be cancelled.


Choosing a project supervisor

Students should note that each supervisor will only take a limited number of students. If you find the information is incorrect please send details to Final.Year.Project.Coordinator@scss.tcd.ie

Students should also note that there are only a limited number of supervisors in any area. Hence students are not guaranteed a project in their area of choice.


Project demonstrations and reports

See the following documents:


 

3. Supervisors' project areas

The following table indicates the broad areas within which projects are generally supervised, together with the potential supervisors in these areas. Each name is linked to a list of projects proposed by that lecturer.

Subject AreaSupervisors willing to supervise projects in this area
Artificial Intelligence Michael Brady, Vincent Wade, Martin Emms, Tim Fernando, Rozenn Dahyot, Carl Vogel, Khurshid Ahmad, Joeran Beel
Computational Linguistics Martin Emms, Tim Fernando, Carl Vogel, Khurshid Ahmad
Computer Architecture Jeremy Jones, David Gregg, Michael Manzke, John Waldron, Jonathan Dukes
Computer Vision Kenneth Dawson-Howe
Distributed Systems Vinny Cahill, Stefan Weber, Mads Haahr, Dave Lewis, Jonathan Dukes, Melanie Bouroche, Siobhan Clarke
Foundations and Methods Hugh Gibbons, Andrew Butterfield, Glenn Strong, Tim Fernando, Vasileios Koutavas
Graphics, Vision and Visualisation Kenneth Dawson-Howe, Fergal Shevlin, Michael Manzke, John Dingliana, Carol O'Sullivan, Rozenn Dahyot, Khurshid Ahmad, Rachel McDonnell, Aljosa Smolic
Health Informatics Lucy Hederman, Gaye Stephens, Mary Sharp, Joeran Beel
Information Systems Mary Sharp, Joeran Beel
Instructional Technology Brendan Tangney, Mary Sharp, Glenn Strong, Richard Millwood
Interaction, Simulation and Graphics John Dingliana
Knowledge and Data Engineering Vincent Wade, Lucy Hederman, Mary Sharp, Declan O'Sullivan, Dave Lewis, Owen Conlan, Khurshid Ahmad, Seamus Lawless, Kris McGlinn, Kevin Koidl, Alex O'Connor, Joeran Beel
Networks and Telecommunications Donal O'Mahony, Hitesh Tewari, Stefan Weber, Meriel Huggard, Ciaran McGoldrick, Jonathan Dukes, Stephen Farrell, Melanie Bouroche, Marco Ruffini, Douglas Leith, Lory Kehoe, Georgios Iosifidis
Other David Abrahamson, Michael Brady, Stephen Barrett, Eamonn O'Nuallain, Khurshid Ahmad, Melanie Bouroche, Marco Ruffini, Vasileios Koutavas, Douglas Leith, Joeran Beel
Statistics Mary Sharp, Rozenn Dahyot, John Haslett, Simon Wilson, Brett Houlding, Jason Wyse, Arthur White, Douglas Leith, Bernardo Nipoti


4. Project proposals for the academic year 2017/18

The following is a list of suggested projects for final year BA (CS), BA (CSLL), BA (CS&B /B&C), BAI, MAI, MCS and MSISS students for the current year. Note that this list is subject to continuous update. If you are interested in a particular project you should contact the member of staff under whose name it appears.

This is not an exhaustive list and many of the projects proposed can be adapted to suit individual students.


Dr. Arthur White

Using Social Media Analytics to Facilitate Hepatitis C Immunology Study - TAKEN

Background

In 1977-79, hundreds of Irish women fell victim to hepatitis C virus (HCV) infection when they were given virus-contaminated anti-D. Usually anti-D is a blood product of great benefit given to women with blood groups incompatible with their new-born baby. However, in 1977-79 this normally beneficial product was unknowingly contaminated with HCV, which can invade and gradually destroy the liver. Until recently, researchers believed that receiving HCV-contaminated blood products, where high viral loads directly enter the blood stream, would inevitably lead to infection.

In the aftermath of the outbreak, it was discovered that, when screened for HCV, almost half of the women who clearly had contact with the virus showed no signs of infection. Researchers in the School of Biochemistry and Immunology are interested in comparing the genetic profiles of naturally resistant people with those who were unable to resist infection, with a view to uncovering the mechanism behind the mystery of natural HCV-resistance. Exploiting this knowledge could lead to new ways to make vaccines and anti-viral drugs.

To facilitate this study, the research team seek volunteers who were exposed to HCV via contaminated anti-D in 1977-79 to help with the study. A publicity campaign is currently being launched (see video here) , which will incorporate both traditional and more modern social media elements. For example a Facebook page has been launched. We are interested in understanding how effective these elements will be in identifying the cohort of exposed women from the general public.

Anticipated Outcomes

This project will be principally concerned with the social media elements of the media campaign. In particular, a Facebook page and Twitter profile will be created to in order to share information related to the project. The student will be required to:

  • Conduct a literature review of similar previous social media campaigns.
  • Construct datasets of interest based on the campaign's social media interactions.
  • Profile the audience demographics using data analytics and social network analysis tools.

For further information, I can be reached by email (arwhite@tcd.ie) or phone (+1062). I am based in room 144, Lloyd Institute.

Dr. Joeran Beel

Position: Ussher Assistant Professor
Affiliation: ADAPT & Intelligent Systems Discipline / Knowledge and Data Engineering Group (KDEG)
Email: beelj@tcd.ie

The following projects are only suggestions, and I am open for your own ideas in the areas of:

  • Recommender Systems
  • Machine Learning
  • User Modelling
  • Information Retrieval
  • Artificial Intelligence
  • Information Extraction
  • Natural Language Processing
  • Text Mining
  • Citation Analysis
  • Bibliometrics
  • Altmetrics
  • Scientometrics
  • Plagiarism Detection
  • Blockchain
  • Digital Libraries
  • Digital Humanities
  • Finance (FinTech)
  • Legal
  • Tourism
  • Healthcare
  • Business start-ups

Each project will require you to conduct a literature survey, i.e. identify and summarize related work. Many of the projects are suitable for business start-ups. If you are interested in doing a business start-up based on one of the project ideas (as part of your FYP or later), contact me to discuss the details.

"Pimp That Voice" (Eliminate Annoying Accents from Audio/Video)

Problem / Background: You watch a movie on YouTube or on Coursera, and the person that talks in the video has a horrible voice. For instance, the person might have a terrible accent (e.g. German), a super-high pitch voice that hurts your ears, or the person starts every sentence with ‘so’ and uses the word ‘like’ in every sentence twice.

Solution / Goal of the project: You develop either a software library or an entire application that gets a video (or audio file) as input and returns the video file with the “pimped” audio. The “pimping” could focus on:

  1. Removing the speaker’s accent or simply replacing the voice with a completely different one. This means, from a user’s perspective, a user could either select to “make the original voice more pleasant” or “replace the original voice with a completely new one”.
  2. Improving the speaker’s grammar, i.e. remove unnecessary words such as ‘so’ or unnecessary uses of ‘like’.

Ideally, the tool works in real-time, i.e. it could process videos streams e.g. from YouTube while watching a video. However, for this project it is also ok to work with normal videos files, and if the processing takes a while.

"ASEO Me" (Optimize Research Articles for Academic Search Engines)

Problem / Background: Researchers have an interest that their research articles are indexed by academic search engines such as Google Scholar and SemanticScholar as this increases the articles' visibility in the academic community. In addition, researchers should be interested in how well their articles rank for certain keyword searches. Some years ago, I published an article about "academic search engine optimization" that gave advice on how to optimize research articles to make them easily indexable by academic search engines. Nowadays, ASEO is being used by many publishers, however, many researchers are not yet aware of the importance of ASEO and/or they do not have the skills to perform ASEO.

Solution / Goal of the project: Your goal is to develop a website, on which researchers can upload a research article, and your website is analyzing the article and 1. Predicts how well the article will rank for certain keywords 2. makes suggestions on how to improve the article's ranking and 3. (optionally) modifies the article automatically to make it better readable/indexable.

ASEO Reloaded (Academic Search Engine Optimization 2)

Problem / Background: As described in the previous project, I published an article about "academic search engine optimization" that gives advice on how to optimize research articles to make them better indexable by academic search engines. The article was published some years ago, hence not all advices might be sensible, or, due to advances in search engine ranking, some additional aspects might need to be considered.

Solution / Goal of the project: Your goal is to find out how to optimize research articles for academic search engines. In contrast to the other project, the focus here is on the research, i.e. you will do some experiments to find new ways of optimizing research articles, while the focus of the previous project is more on the application (i.e. enabling a user to upload a paper, and getting advice).

"Nobel Prize or Not?" (Academic Career/Performance Prediction)

Problem / Background: Researchers' performance needs to be assessed in many situations - when they apply for a new position (e.g. a professorship), when they apply for research grants, or when they are considered for an award (e.g. the Nobel prize). To assess a researcher's performance, the number of publications, the reputation of the journals and conferences of the publications where published in, and the citations a researcher has received are often used. However, up to now, these numbers are rather focused on the past. For instance, knowing that a researcher has published 50 papers by now and accumulated 2,000 citations says little about how the researcher will perform in the future.

Solution / Goal of the project: Your goal is to develop a tool (website or desktop application) that predicts how well a researcher will perform in the future, i.e. in which venues the researcher will publish, how many citations s/he will receive, etc. Ideally, a user could specify a name in that tool, and then a chart or table would be shown with the predicted citation counts etc. In addition, the tool might predict what the next university could be the researcher will work at.

Methodology (how to achieve the goal): One way to achieve the goal is to 1. create a data set that contains historic data of many researchers. The data should include the researchers' publication lists, citation counts, and ideally a work history (at which universities did the researcher work, and when) and the reputation of the venues the researcher has published in. Such data could be obtained from Google Scholar, SemanticScholar, LinkedIn, ResearchGate, and Scimago. 2. Based on the data, you train a machine learning algorithm that learns how well researchers perform based on the collected data 3. You apply the machine learning algorithm to predict a researcher's performance.

Various Projects Relating to Research-Paper Recommender Systems (Machine Translation, Machine Learning, Natural Language Processing, UI, ...)

One of my main projects is Mr. DLib, which is a recommender-system as-a-service that delivers every month some million research-paper recommendations via an API to partners such as JabRef, Sowiport, MediaTUM and soon also TCD's TARA. In the context of Mr. DLib there are many projects you could do. For instance, you could

  • improve our content-based recommendations with machine-translations or other natural language processing methods
  • use machine learning to enhance our recommendations
  • develop novel recommendation approaches
  • re-design our API specifications to make them more user friendly
  • develop a customizable JavaScript client for our partners, i.e. a tool that allows partners to specify e.g. "Show the title and authors in black and default size, the publication year in grey and smaller, ..."
  • use almetrics or bibliometrics to re-rank recommendations
  • experiment with different user interfaces (find out, what the most effective way is to display recommendations)
  • analyze how to evaluate recommender systems (we have several ideas for novel evaluation metrics that you could try)
  • ...

The advantage of participating in Mr. DLib is that you will work with a real-world system that is used by real-users, i.e. you can evaluate your work with thousands of users instead of evaluating it with a small user study that has maybe ten participants as you would do in many other projects. In addition, you will work closely with the team of Mr. DLib, i.e. you are involved in an active ongoing project instead of sitting alone on your desk and pursuing your FYP. To work with Mr. DLib you need good JAVA programming skills and basic Linux knowledge. Knowledge in APIs and (REST) Web Services, Python, and web standards (XML, JSON, HTTP, ...) are helpful, though not a requirement.

 

 

Dr David Lewis

TAKEN: Title: Common repository API to PHP-based web content management systems:

Content management systems are essential for enterprises to manage the large numbers of documents used to publish manuals, provide user support and market their products on the web. Increasingly this content is supplemented by user-generated content, such as forum posts or wiki pages. Enterprise often have to handle content and data across many different content management systems, a situation which is exacerbated when applying content strategies across web content that is intended for different markets in different languages. This is a major problem and to address this the content management industry, via an OASIS group, has developed a Content Management Information Service (CMIS). While many enterprise content management systems are now implementing this standard, it has received relatively attention in the important class of open source web content management systems (WCMS), such as drupal and joomla. This project will investigate the feasibility and performance issues related to developing a common php library to implement CMIS that can be integrated into such WCMS, plus some additional asynchronous notification features designed to support content processing value chains.

Title:Javascript HTML editor for internationalisation and localisation

Internationalisation is the important task of developing web content so that it can be easily translated and localised for different market. This involves identifying terms or phrases that should not be translated, or not translated into specific target market language, identifying terms that need to be translated in a particular way, annotating content to identify its application domain so that specialised translators can be selected when translating it. The internationalisation Tag Set is a standard set of HTML and XML tag that allows content to be annotated with such internationalisation information. However, the java script HTML5 editors often used in online content management systems do not allow content authors to easily and efficiently annotate HTML document with such mark-up. This project will develop a java script library for annotating HTML5 documents with ITS markup and investigate how this can be integrated into existing Java script web content editors is a user friendly manner. Such an editor could also be used to support the checking and editing of content that had been automatically machine translated.

Visualization and tracking of differences in literature translations

The focus of this work is to allow literature translators to understand the flow of translations over time by visualizing differences in translations of the same source. This may be done in conjunction with the TCD MPhil class in literature translation. This project will involve research in comparative visualisation of alternative translations, annotations of styles, idioms and metaphors. Furthermore, state of the art translation technologies will be used with the view to extend current approaches for larger scale use.

In first instance contact Dr. Kevin Koidl

Understanding the flow of rumors in social media.

The focus of this work is to identify and understand the impact (negative and positive) of rumours in social media. This project will involve research in social community analytics and visualization as well as Natural Language Processing and sentiment analysis. Furthermore deeper research in the understanding of how rumours impact society and how rumours turn into facts is expected.

In first instance contact Dr. Kevin Koidl

Prof. David Gregg

Room

Extension

027 Lloyd Institute

3693

Note: I will not be supervising projects in the 2017/18 academic year. Sorry about that.

However, if you are

  • a strong C, C++, OpenCL or assembly programmer
  • interested in program optimization, parallel programming, algorithm design
  • interested in contributing to my research group's work on accelerating deep neural networks (DNNs) on embedded systems
then we may be able to find you a suitable final-year project in my group and in collaboration with my colleague Dr Andrew Anderson.

Possible projects include methods for implementing DNNs using low-precision arithmetic; efficient algorithms for DNNs with sparse weight data; fast DNNs on embedded targets such ARM Mali GPUs; program generation for creating fast DNN libraries; GPU, vector and/or multicore implementations of key deep learning algorithms.

Note: This work is mostly about program optimization, code generation, parallel programming, algorithm design, and understanding computer architecture to improve software performance. Although the target application area is machine learning, the work is about software performance rather than machine learning techniques.

Dr. John Dingliana

https://www.cs.tcd.ie/John.Dingliana/

Room

Extension

0.41 Lloyd Institute

3680


Some general info

I am a member of the graphics, vision and visualisation research group interested in the areas of:

  • 3D Visualisation
  • Computer Graphics and Virtual Reality
  • Graphical aspects of Mixed and Augmented Reality
  • Stylised Rendering / Non photo-realistic rendering
  • Physically-based Animation

Suggested Projects:

  1. Remote telemetry using head mounted Virtual Reality/Augmented Reality displays [TAKEN]: video and 3D information acquired from a remote sensor (possibly on a drone) will be transmitted live to a user wearing an HMD (an occulus rift DK2 or metavision AR head mounted display will be available for use). Instead of the user merely seeing through "the eyes of the camera", the spatial information gathered will be displayed asynchronously in order to minimize motion sickness effects and allow the user to explore the data independently. Potential challenges include the following (each of which could be the focus of a project):
    • reducing latency between acquisition, processing and display of 3d environments on AR/VR displays
    • adaptive level of detail in interactive AR/VR
    • blending different modalties (e.g. fusion of different sensors or seamless integration of real and virtual).
  2. Engaging with characters in VR/AR [TAKEN]: This project is concerned with how immersive, high detail, stereo displays change how we react to virtual characters in Virtual Reality. For instance, are characters that are displayed within our personal space, more engaging or discomforting. The project will require competence at using and exploiting off-the-shelf graphics engines (Unity, Unreal, etc) and datasets however the main focus is in quickly engineering a number of test cases for user studies. A pilot study will be conducted as part of the project, but it is intended that the system developed should be usable in more detailed follow-up user experiments.
  3. Computing visibility of features in 3D Volume Data [TAKEN]: The purpose of this project is to implement a function to determine how visible particular features are in a 3D graphical dataset, when viewed from any given viewpoint.
    Figuring out whether a viewer can see an object in a 3D scene is a ubiquitous problem, with already many solutions, in interactive graphics and games. Visibility is relevant for instance to determine whether an AI agent can see certain objects or whether an object is occluded from the viewer and therefore need not be rendered. This project deals with a specialized area of graphics called Volume Graphics where the scene is represented as a 3D uniform grid. An advantage of such graphics is that it deals effectively with semi-transparent objects with interior details such as smoke. In such a case visibility is not an issue of whether or not a point can be seen but to what degree it is visible. As a starting point, baseline code for a volume renderer will provided. The objective is to modify this to return a dataset that represents the visibility of all points in the dataset when viewed from a given viewpoint.
  4. Superhuman vision using augmented reality. [TAKEN]: The objective of this project is to address some of the challenges of merging virtual graphical objects with dynamic real-world objects to provide information about the object to the user in augmented reality (AR). Many AR applications already exist that overlay textual and 2D-graphic information for similar purpose. In addition, various graphical applications in entertainment add augmented objects to real-world environments. This project will deal mainly with graphical (and, where possible, 3D) augmentations of the real-world and the augmentation should be done in real-time. Some example application areas include night vision, “audio vision”, X-Ray vision, enhancing visibility of threats in an environment etc. Microsoft ran a competition for serious applications proposals for the Hololens AR display – and some of the winners are listed [HERE]. As an input the shape of the model captured using imaging and depth sensors will be used. Then the data might be post-processed or filter before blending into the real environment. Data from advanced sensors such as X-ray, audio etc. will likely not be available but might be simulated for the purposes of this project.

Stephen Barrett

Social Software Engineering

My research is focussed on the identification of the unique contribution and impact of the software engineering practice of individuals and the teams they work in. My approach is to treat software engineering as a sociological phenomenon, with source code as the primary artefact of a constructive social network process. My aim is to develop toolsets that capture expert domain knowledge regarding software engineering practice and management in a form that enables us, in the language of Daniel and Richard Susskind, to externalise its qualitative assessment.

The technical basis of the approach is the application of defeasible/non-monotonic argumentation schemes, borrowed from proponents of the strong AI model such as John L. Pollock, but applied to the assessment of human behaviour rather than the replication of human decision making. We apply this method to infer judgements regarding software engineering practice, this analysis being grounded in data derived from code quality measurement, software development process monitoring, and a social analysis of software construction.

This research work is being conducted in the context of a Haskell based software platform that gathers and processes 'ultra-large' scale data sets regarding active opensource and closed source software development. Projects sudents will thus need to be willing at least to take on Haskell as a programming language. Prior experience is not necessary but you should consider yourself to be a strong programmer to work with me.

Some example topics from which suitable projects can be developed include:

  • Automation of Software Development Methodology Adherence Testing: the use of fine grained behavioural measurement regarding software engineering to quantify adherence to development methodology. In this topic, we are interested in delivering practical tools and methods by which software teams can encourage and monitor process development goals.
  • Privacy Preserving Gamification of Software Engineering Processes: the use of gamification in the assessment and management of software engineering processes. In this topic, we are interested in exploring how gamification can positively impact on the performance of teams and individuals.
  • Situated Learning Framework for Software Engineering Community of Practice: the development of a model for the automated identification and recording of engineering activity for practice learning. In this topic, we are interested in developing ways in which the best practice and skill of senior and experienced team members can be automatically packaged as learning resources for the organisation.
  • Sociometrics in Software Engineering: the use of sociometric and biometric data to predict individual and team performance in software engineering. In this topic, we are interested in studying the environment and social network structure of software engineering teams in order to provide actionable measures of team performance and health.
  • A Platform for Social Software Engineering Research: the development of a scalable platform for social software engineering analysis. In this topic, we are interested in developing high level domain specific languages to enable sophisticated bespoke analysis by non-technologists of social network and software quality data pertaining to the software engineering effort.
  • High Scale Code Quality Measurement: a data evolution based cloud platform for the efficient computation and continuous re-computation of code quality metrics. In this topic, we are interested in exploring how predictive relationships might exist between various possible ways of measuring software engineering, such that more efficient and rapid result computation can be achieved.

Please note that I am unfortunately unable to take on projects outside this broad research space.

If these topics interest you, do send me an email, briefly summarising your interest, and software development experience.

thanks,

Stephen.

Dr Hugh Gibbons

Room

Extension

LG20

1781

Support for Literate Programming in Java

Literate Programming is defined as the combination of documentation and source put together in a fashion suited for reading by human beings. It is an approach to programming which emphasises that programs should be written to be read by people as well as compilers.
There are many tools available to support Literatre programming but they are mostly available on Unix systems and for programming languages such as Pascal and C. While Javadoc is available to document Java programs, the aim of the project is investigate the benefit of using Literate Programming in Java.

Using CASL to Model a software system

CASL (Common Aalgebraic Specification Language) offers the possibility of formal specification and development while allowing a more informal working style. The project would investigate using CASL to develop a formal model of some software problem which may or may not have already been previously presented in formalisms such as VDM or  Z. This model could then be informally translated into a programming language such as Java.

Developing Programs using Perfect Developer or How to develop a Java program without writing Java.

Perfect Developer is a program development system which allows one to develop provably correct programs. First one develops the program in the notation of Perfect Developer and then the system can verify the program written. Once one has a correct program, Perfect Developer can automatically translate the notation to Java, C++ or Ada.
(See Perfect Developer: How it works)

Imperative Programming within a Functional Programming Setting

While Functional Programming (FP) supports Lists better than Arrays, it is possible to write FP programs that are based on arrays. Since FP programs are side-effect free, it is usually easier to prove FP programs correct than Imperative programs. The aim of the project is to develop Java type programs within an FP setting.

Simulating Puzzles or Games in Functional Programming

Over the last many years there have been successful projects in using Functional Programming to provide animations or simulations of puzzle type programs. Since Functional Programming languages such as Haskell are very high level language, expressing solutions to puzzle type problems may prove easier than in imperative languages or declarative languages such a Prolog or Lisp/Scheme. Possible puzzle problems would be cryptarithms where one has to fill in the missing digits in a arithmetic calculation, logic puzzles or puzzles involving Graph Theory. Puzzles and games from the works of Martin Gardner would be an interesting starting point.

Support Systems for Teaching Logic and Logic Proofs

Systems such as Tarski's World and Hyperproof have proved very valuable in teaching an understanding of both propositional and predicate logic. These systems are part of a more general Logic project Openproof at Stanford's Center for the Study of Language and Information (CSLI). An alternative logic proof system is provided by Jape, a system developed by Richard Bornat and Bernard Sufrin which supports Bornat's book Proof and Disproof in Formal Logic . A more modern Logic Proof System, KE, has been developed by Marco Mondadori and Marcello D'Agostino with associated computer program systems WinKE by Ulle Endriss and LogicPalet by Jan Denef. It would be useful to provide support tools for these system so that these systems could be more widely used. An example of a logic support system is given by the Logicola system by Harry Gensler to support his logic book Introduction to Logic.

Ruler and Compass Construction within Vivio

Vivio is an animation tool that allows one to animate algorithms and simulations. The project would involve investigating the use of this tool for creating classical Euclidean constructions, for example, the construction of a pentagon using a compass and ruler.

Program Transformation of Z into JML

The development of the Java Modelling Language (JML) was influenced by specification languages such as Z. Many software projects make use of tranforming specifications into imperative programs. An example of this approach can be seen, in particular, in the book "Introduction to Z", by Wordsworth. The examples in Wordsworth's book could be used as a starting point in transforming Z specifications to programs into JML.

Annotated Java with JML

The Java Modeling Language (JML) is a behavioral interface specification language that can be used to specify the behavior of Java modules. It is based on the approach of Design By Contract  (DBC) The draft paper Design by Contract with JML (by Gary T. Leavens and Yoonsik Cheon) explains the basic use of JML as a design by contract (DBC) language for Java. See also Joe Kiniry (University of Copenhagen)  presentation, Introduction to JML. A given project would investigate the use of JML providing examples of its use.  For example, how would a program for Binary Searching an array be implemented in JML.

 

Developing High Integrity Code in Spark

Spark is a high level programming language designed for developing software for high integrity applications. Spark encourages the development of programs in an orderly manners with the aim that the program should be correct by virtue of the techniques used in construction. This 'correctness by construction' approach is in marked contrast to other approaches which aim to generate as much code as quickly as possible in order to have something to demonstrate. Quoting from the book on Spark  "High Integrity Software, the Spark approach to Safety and Security " by John Barnes
" There is strong evidence from a number of years of use of Spark in application areas such as avionics and raliway signalling that indeed, not only is the program more likely to be correct, but the overall cost of development is actually less in total after all the testing and integration phases are taken into account"
SPARK will be familiar to programmers with knowledge of imperative languages such as C, Java and Ada. There is some effort involved with learning how to use the annotations correctly. 
A project using Spark would involve the development of reliable programs that can be proved correct by the Spark system.

Glenn Strong

Room

Extension

ORI G.15

3629

Many of these projects involve some knowledge of functional programming. No prior knowledge is needed before starting the projects, we provide support for learning this new programming paradigm for students who have not been previously exposed to it. Of course, if you already know a language like Haskell you'll be able to start the project a little quicker.

Functional programming and Live Music Composition

This project would involve working with the Haskell embedded DSL "Tidal" to produce one or more variants on the existing system. Some interesting options could include:
  • A Tidal server which would allow performers to publish (stream) their live performances so that users in other locations could experience them.
  • A more ambitious project would allow for users to remotely collaborate on live performances, perhaps using one of the existing collaboration frameworks (ShareDB, TogetherJS, etc)

    Drag and drop Python

    This project would involve building a structured programming editor for the Python programming language, probably using an existing framework such as Google's Blockly. While there are some tools that can generate Python from Blockly programs the source that the users work with don't tend to look much like Python programs. The goal with this project would be to provide a Python-oriented system (perhaps in the style of the old Carnegie Mellon structure editors, or the Raise Toolkit)

    An initial version of this wouldn't need to parse existing Python programs, only provide the editing environment, and perhaps capture the output of a running program. There are a lot of potential extensions possible for this project, depending on whether the student's interests.

    Other projects

    I am happy to discuss project ideas in the Functional Programming, Literate Programming, Theoretical Computer Science, or other similar areas. If you have a specific project in mind then send me an email. I am also willing to discuss software implementation projects with a bias towards rigour (using formal techniques, or design-by-contract ideas). I am also interested in creative ways to support novice programmers and in the study of Free Software related projects,

  • Dr Lucy Hederman

    Room

    Extension

    ORI G.13

    2245


    Apps for Health or Social Care

    I will supervise projects where students come with an idea for an app or other system designed to improve health or social care. I will be advocating a user-oriented approach, with a strong focus on understanding what is actually likely to work, as opposed to technology for technology sake. As an example, people who live alone and are in good health may nonetheless fear that a few days might pass before anyone notices that they have not surfaced due to a fall or a heart attack. Design an app/service that intelligently and unobtrusively alerts loved ones to appropriate patterns of smartphone (non-)usage.


    Develop a database for a health research project using RDF and GeoSPARQL.

    This project will use semantic web technologies and goespatial tools to support a health research project. The project needs to work with location specific data about weather and air pollution and incidences of infection as well as clinical data, a person's activity data, and a wealth of other data that may correlate with the health condition of interest. You will be expected to provide tools to \"uplift\" data to RDF, to \"downlift\" data from RDF to formats requred by statisticians.


    Knowledge Management.

    I am open to suggestions within the broad realm of knowledge management, including the design and implementation of tools to leverage existing data and information in support of knowledge work. 


    Updated 1 April 2016

    Dr. Hitesh Tewari

    Room

    Extension

    Lloyd 131

    2896

    Last Updated 30th May 2016


    Fully Anonymous Transferable E-Cash (Assigned)

    In this project we will further develop and implement an anonymous E-Cash scheme which allows for the unlimited transfer of coins within the network. The work builds upon the foundations of David Chaum's "Blind Signature Protocol"and combines it with the "Discrete Logarithm Problem" to allow for delegated signatures and anonymous transfer of coins. The system also makes use of "Blockchain" technology for the network participants to collectively verify the authenticity of coins in the system to prevent double-spending of coins.

    The student who undertakes this project will be required to familiarize themselves with the number theory aspects of the cryptographic primitives used within the FATE system. They will be required to study and enhance the existing FATE protocols. More details about the FATE system can be found in this paper. Finally, they will be required to implement a working prototype of the system.

    SSLChain - Secure Login App (Assigned)

    The basic premise of the SSLChain technology is to make use of "Blockchain" technology to store and disseminate X.509 certificates. This project is a continuation of work that was carried out in a FYP in 2015/16 whereby the student built a basic prototype of the backend using the Bitcoin distribution, and developed a cryptographic add-on for Gmail.

    In this project we would like to refactor the backend and make it more robust. We would then like to build a secure login application that allows for a one-time-password (OTP) to be sent to a user who is trying to login to a web service. This secure OTP mechanism will eliminate the need for passwords to be remembered by users for various websites that they use of a daily basis.

    The student undertaking this project will be required to have a good understanding of cryptography, and in particular the specific protocols used within the SSLChain system (X.509, Blockchain, XMPP etc.). They will quickly need to familiarize themselves with the Bitcoin distribution and the current codebase. Finally, they will be required to develop a robust prototype that we hope to trail on the College network.

    Secure Voting Protocols in the Irish Context of a Single Transferable Vote (Assigned)

    You may remember the fiasco of the electronic voting machines that the state bought in 2002 at a cost of millions of Euros, and which were finally scrapped in 2012 because they were deemed to be unsafe, as no one could guarantee the correctness of the results produced by the machines.

    Keeping that in mind in this project we would like to explore the state-of-art in secure voting protocols today, with a view of developing a system for the Irish context of a single transferable vote (STV) i.e. the proportional representation system that we have in Ireland. We would like to explore the possibility of using "blind signature" protocols, Blockchain technology, threshold cryptography etc. to try and solve the problem of electronic voting in Ireland.

    The student that takes up this project will be required to develop a solid understanding of the Irish electoral system. They will be required to study in detail the state-of-art in the area of secure voting protocols which in itself is a challenge as this will require additional study of cryptographic primitives and number theory. As a result of our understanding of the above two we will then develop a secure STV protocol, and develop mathematical proofs to backup our claims.

    Banning Cookies - What's Next? (Assigned)

    As users have become both more aware and wary of cookies - the technology that tracks browsing activity for advertising purposes many people, therefore, avoid cookies, either by turning them off or using services that block them. Companies in turn have started experimenting with new tracking methods that don't use cookies.

    One of those concepts includes "user-agent fingerprinting" a technique that allows a web site to look at the characteristics of a computer such as what plugins and software you have installed, the size of the screen, the time zone, fonts and other features of any particular machine. Another mechanism is to track users using some other persistent local/client side storage. Your browser transmits all sorts of information that has nothing to do with cookies. All of those things put together form a unique identity that can be assigned an identifying number and then used just like a cookie.

    In this project we would like to explore the various new techniques that are currently being developed or used to track users. Armed with this knowledge we would like to develop a browser add-on (similar to ad-blockers) that will prevent transmission of machine/user specific information which allows organizations to track users.

    Dr Jonathan Dukes

    Email

    jdukes@scss.tcd.ie

    Room

    Room F.27, O'Reilly Institute

    Firmware Updates for Bluetooth Low Energy Devices in the Internet of Things

    Several projects related to this topic are proposed. Traditional firmware updates for the constrained devices we find in the Internet of Things (IoT) employ a very simple approach. An update controller transmits the new firmware image in its entirety to the target device. This is wasteful of constrained target communication and memory resources.

    Alternative approaches that aim to reduce this cost are based on modular updates (updating a small part of the firmware only) and incremental updates (transmitting only the differences between the old and new versions.)

    Projects in this area will investigate both of these approaches for constrained devices that communicate using Bluetooth Low Energy (BLE).

    • [TAKEN] Incremental Updates: This project will investigate the use of incremental over-the-air firmware updates for BLE Devices. The key contributions of the project will be (i) identification of one or more appropriate representations of the binary difference between two firmware viersions, (ii) extension of an existing BLE over-the-air firmware update protocol to support incremental updates, (iii) impementation of a prototype firmware update controller and target, including (iv) impementation of an algorithm to apply the firmware update in flash memory on the target device and (v) a performance evaluation of the prototype system.
    • [TAKEN] Modular Updates: This project will investigate the potential to perform modular updates of parts of the firmware on a target device. A number of approaches will be considered, but all approaches are likely to involve linking firmware modules on the target device, representing a significant departure from the "monolithic" firmware approach widely used in industry. The contributions of the project will be (i) identification of a suitable model for developing modular firmware (granularity), (ii) extension of an existing BLE over-the-air firmware update protocol to support modular updates, (iii) impementation of a prototype firmware update controller and target, including (iv) impementation of an algorithm to apply the firmware update in flash memory on the target device and (v) a performance evaluation of the prototype system.

    Opportunities for a collaborative comparison of the prototypes developed by the above two projects will be explored, including opportunities to implement hybrid (incremental/modular) approaches.

    Remote Patient Monitoring in the Internet of Things

    Two projects are proposed in this area. Both will explore the application of emerging, standards-based Internet of Things transport protocols to remote monitoring of patients (biometric data). It will be assumed that monitoring (e.g. temperature, motion, blood pressure, heart rate, ECG, EMG) is performed by resource constrained, wearable devices.

    In both cases, communication will be based on RFC7668 (IPv6 over BLUETOOTH(R) Low Energy) and other suitable higher-level protocols, making the constrained sensor nodes addressible IPv6 devices.

    • [TAKEN] On-Demand and Event Driven Remote Patient Monitoring: This project will explore two models for communicating biometric data from the constrained sensor device to a central or cloud-based service. In the on-demand model, sensors will store a small amount of recorded data in flash memory. By implementing a simple (standard-based?) query language, central services will be able to query the stored data, with query results transmitted back to the central service. In the event-driven model, in addition to storing data, sensors will communciate events of interest (e.g. when the measured heart rate exceeds some configurable threshold.) Again, the application of a standards-based protocol (e.g. MQTT) will be explored.
    • [TAKEN] Real-Time (live) Remote Patient Monitoring: This project will explore the feasibility of transmitting real-time biometric data (e.g. ECG, EMG, motion) data from strained sensor devices to a remote central server. Communication will be over Bluetooth Low Energy initially to a router, which will forward the data to a central or cloud-based monitoring service.
    • [TAKEN] Remote Patient Monitoring using LPWAN Communication

    Last update: Friday 02 June 2017

    Dr Jeremy Jones (updated 20-Sep-16)

    F.11 O'Reilly Institute top floor

    1.      Have you ever had difficulty remembering someone’s name? Imagine what it’s like being a lecturer standing in front of a large class trying to remember student names. The object of this project is to use a Google Glass equivalent and face recognition software to recognise student faces and project their names onto a heads up display in real time.

    2.      In 2013, Intel introduced the Haswell CPU which supports retricted transactional memory (RTM) through the TSX extension to its instruction set. TSX can greatly simplify the implementation of many parallel algorithms. The objective of this project is to develop a self-tuning parallel implementation of a skip list (or any other interesting data structure or algorithm) that can determine dynamically the optimum settings needed to maximise throughput. This project would particularly suit students taking CS4021.

    3.      Most of you will have used the Vivio animations as part of the CS3021/3421 Computer Architecture II module. The Vivio animations have now being re-implemented using JavaScript and HTML5 so that they are truly portable and can run in any web browser. The objective of this project is to implement a touch interface (in JavaScript and HTML5) so that the animations can be controlled on a phone or tablet where there is no mouse or mouse wheel.

    4.      As stated above, the Vivio animation system is being re-implemented in JavaScript and HTML5. The system comprises a JavaScript runtime (vivio.js) and a compiler which converts Vivio source code into JavaScript (IDE written in VC++ and Qt). The compiler converts the parallelism visible to the Vivio programmer into JavaScript, which is ONLY single threaded. The object of this project is to improve the generated JavaScript code patterns and to add functionality such as classes within classes, functions within functions, more GObjs, more transitions, automatic testing etc. This project would particularly suit a student interested in compiler front and back ends.

    These projects could form the basis of a final year project or year 5 dissertation.

     

    Prof. Khurshid Ahmad

      My principal area of interest is in artificial intelligence, including expert systems, natural language processing, machine learning and neural networks. My other area of interest is in the ethical issues of privacy and dignity in the realm of social computing. I have recently finished a largish EU project on the impact of social media (monitoring) in exceptional circumstance (slandail.eu) ¨C this brings together social media analytics (natural language processing/image analysis), geolocation, and ethics. My research has been applied to price prediction in financial markets and in forecasting election results. The projects on offer in this academic year are:

    • 1. Social Media Analytics and monitoring:

      Microbloggs and social networks are large and noisy source of data that is valuable for marketing and sales specialists, law enforcement agencies, disaster NGOs, and policy makers. This project will help you in acquiring social media data, in using natural language processing techniques for processing this data, and techniques for visualise the results of the analysis. You will be expected to include a brief discussion of questions of privacy and ownership of social media users. A proficiency in Java and/or Python is required for this project.

    • 2. Sentiment Analysis:

      This is an exciting branch of computer science that attempts to discover sentiment in written text, in speech fragments and visual image excerpts. The sentiment is extracted from streams of texts (messages on social media systems, digital news sources) and quantified for inclusion into econometric analysis or political opinion analysis systems that deal with quantitative data like prices or preferences: the aim is to predict price changes or ups and downs of a political entity. You will write a brief note on questions of divulging identities of people and places. You have an option of developing your own sentiment analysis system or use a system developed in my research group.

    • 3. Machine Learning and Big Data:

      Large data sets, for example genomic data, high-frequency trading data, meteorological data, and image data sets, pose significant challenges for curating these data sets for subsequent analysis and visualisation. Automatic categorisation systems, systems that have learnt to categorise arbitrary data sets, are in ascendance. One fast way of building such systems is to integrate components in large machine learning depositories like GoogleˇŻs TensorFlow, MATLAB, Intel Data Analytics, to build prototype systems for text, videos, or speech streams for instance. Issues of data ownership will be briefly outlined in your final year project report.

    Dr. Kenneth Dawson-Howe

    I supervise projects which have a computer vision component (and most particularly in the area of object tracking at the moment!!). To give you a feel for this type of project have a look at some previous projects. For further information (about project organisation, platform, weighting for evaluation, etc.) see this page. If you want to talk about a project or suggest one in the area of computer vision my contact details are here.

    The following are my proposals for 2017-18. If any of them catch your imagination (or if you have a project idea of your own in computer vision) come and talk to me or send me an email.

    Illustration. Project Details.
    Image linked from another site

    (AVAILABLE) CPR Assistant & Assessment.Cardiopulmonary resuscitation (CPR) is a technique used to keep oxygenated blood flowing in the human body when the heart and breathing of a person have stopped. It is a repeated combination of chest compressions (30 in a 15 second period) and artifical breaths (2 within a 5 second period), and has to be continued until other measures are taken to restore spontaneous operation of the heart and breathing. This project aims to create a mobile phone based assistant which (through analysing a video of CPR being performed) will guide the person giving CPR in the rates of compression and the rates & timings of breathing.

    Image linked from another site

    (AVAILABLE) Lobster Pot Monitoring.Believe it or not sometimes people interfere with other people's lobster pots! This project aims to build a system which monitors the bouys of a number of lobster pots and identifies when they are removed. We will need to get ethical approval to record the video.

    Image linked from another site

    (AVAILABLE) Automatic Traffic Light Recognition. Develop a system to implement automatic traffic light recognition using the LARA dataset (http://www.lara.prd.fr/benchmarks/trafficlightsrecognition).

    Image linked from another site

    (AVAILABLE) A tool for organising personal photographs. Many people have years of digital photographs and videos organised into folders (or not) for each event or period of time. Most of the pictures will have peculiar names which are generated by the camera. The pictures

    • may come from multiple cameras,
    • probably have almost useless names (generated by the camera),
    • could have incorrect date information (as many digital cameras easily lose the current date and time),
    • may or may not have location metadata,
    • may be out of focus
    • may have poor contrast
    • may exhibit red eye
    This project aims to create a tool to manage personal digital photos allowing photos to be grouped, renamed, identified with different levels of importance (so that short or long photo slide shows can be created), enhanced, annotated (describing what/who is pictured), etc. The scope of this project is up to the student…
    Image linked from another site

    (TAKEN) Detecting product placement OR smoking. Increasing advertising is being embedded into images and videos, and the detection of product logos has become of significant importance. Datasets of logo images are available (See http://www-sop.inria.fr/members/Alexis.Joly/BelgaLogos/BelgaLogos.html and http://www.multimedia-computing.de/flickrlogos/) and this project aims to develop software to automatically detect product placement in videos (e.g. in movies), and perhaps develop a metric quantifying the amount of embedded advertising... Or we could look at how much smoking happens in a video...

    Prof Doug Leith

    The following projects are related to recent research in online privacy and recommender systems being carried out here in TCD, see www.scss.tcd.ie/doug.leith/. They could form the basis of a Year 5 dissertation or of a final year project.

    Recommending WiFi/4G Access Points/Cells

    A recommender system collects information on items that a user likes/dislikes e.g. items which the user has bought, rated, viewed or clicked (such as a movie, hotel review, news item). By comparing this information with the information for other users, the system tries to predict which new items the user might like, to predict the rating which the user might give for a new item, what adverts/services are most likely to be of interest to the user etc. Such recommendations are often a core part of personalised web services. One popular approach to making recommendations (and which won the netflix prize) is based on matrix factorization, where a matrix R containing user-item ratings is approximated by product UV where the inner dimension of U and V is much smaller than the number of users or items (see reference below for more details). In this project the aim is apply this approach to recommending WiFi hot spots to users based on ratings supplied by other users plus information on their location etc. We will also investigate use of recent clustering approaches to enhance privacy, e.g. with regard to location. This project will require familiarity with matrices/linear algebra, probability and ideally python programming.
    Reference: Y.Koren, R.Bell, C.Volinsky, 2009, "Matrix Factorization Techniques for Recommender Systems", http://www2.research.att.com/~volinsky/papers/ieeecomputer.pdf

    Privacy-Enhanced HTTPS

    Recently a number of successful attacks have been demonstrated against encrypted HTTPS web traffic. Even though the contents of packets are encrypted, the packet size and timing information is often sufficient to allow details of the web pages being browsed to be inferred with high probability. Similar approaches can also be used to successfully attack VPNs and Tor. In this project we will look at possible defences against such attacks, focussing particularly on defending against timing attacks since these are amongst the hardest to defeat. The aim will be to implement recent server-side defences exploiting the push feature in HTTP/2 on either apache or node.js. The project will require good programming skills.
    Reference: Feghhi,S., Leith,D.J., 2015, "A Web Traffic Analysis Attack Using Only Timing Information", Technical Report, http://arxiv.org/abs/1410.2087

    OpenNymTAKEN

    The project will involve implementing a peer-to-peer system for web cookie sharing/management. Our online "identity" is largely managed via cookies set by web sites that we visit, and these are also used to track browsing history etc. With this in mind, recently a number of approaches have been proposed for disrupting unwanted tracking by sharing and otherwise managing the cookies presented publicly to the web sites that we visit, the aim being to allow personalisation to still occur (so simply deleting cookies is not a solution) but avoiding fine-grained tracking of individual user activity. The project will involve implementing a browser plugin for cookie management and selection plus a service for cookie sharing. The project will require good programming skills.

    Wireless Augmented Reality

    There is currently much interest in adding augmented reality to mobile handsets. Augmented reality systems typically involve heavy computational burdens e.g. using deep learning to tag objects in the scene currently being viewed. This computation is offloaded to a server or the cloud. Currently most augmented reality systems are tethered i.e. connected to this server via wires, in order to ensure that there exists a high bandwidth low delay connection between mobile handset and server. In this project we will investigate the impact of replacing this wired link with a wireless WiFi/LTE link and using local processing within the mobile handset to mask network impairments (latency, loss). The project will involve android app development, image processing and simple socket/WebRTC programming.

    Dr. Kris McGlinn

    3D Building Information Modeling with Googles Tango

    Googles project tango is a tool for smart phones and tablets for creating 3D models of buildings (or apartments) by simply carrying the device around! In this project you will explore the use of tango to develop 3D models, and examine methods for annotating and linking these models to existing building information models standard like IFC (Industry Foundation Classes). You will examine how objects are identified and labeled using the tango sdk, you will see if you can tag those objects and export them as IFC entities. You will see whether walls and other objects can be given additional properties, like materials and thickness. This integrated data can then be used for different applications, ranging from navigation too energy simulations.

    Dr Richard Millwood

    Room Lloyd Institute 0.29
    Extension 1548

    Keywords: education - programming - HCI - emulation - learning design

    My background is in education and technology, I am course director for the MSc Technology and Learning. You can read more about me at richardmillwood.net and you can also have a look at my recently completed PhD by Practice.

    Here are some areas of interest which may inspire a project, some based on my research plan:

    1. Learning computer programming

    Two ideas here:

    1. Developing in Blockly to meet some of the challenges made in my blog on Jigsaw Programming
    2. Constructing an online research instrument for tapping in to teachers' tacit knowledge about teaching computational thinking. This may be an extension using Python to an existing content management system such as Plone to add functionality for innovative interactive forms of survey.

    2. Collaborative support in learning computer programming

    This is directed at 'educational github' to suit young learners. The development will create an interface that better clarifies and support the roles and workflow in collaborative work online so that this can be more readily learnt in use. It is not clear exactly what software development would be appropriate and would suit someone with imagination and drive to be very creative.

    3. UK National Archive of Educational Computing apps

    The design and development of device-responsive educational apps (for mobile, tablet and web) based on historical educational programs, such as Snooker:

    1. Original Snooker - from 1978 in BASIC
    2. Prototype Snooker Angles - from 2013 as iPhone Web app

    Key features are that the app includes a faithful emulation of the original educational program as a historical account, and that the modern app maintains similar educational objectives but may be updated to take advantage of new technology and new pedagogy. The app must be able to scale appropriately and work on phone, tablet and web page. This is an HTML5 development project using Scaleable Vector Graphics for interactive visuals.

    I have a list of apps that I have prioritised to support the the UK National Archive of Educational Computing.

    Dr Martin Emms

    Room

    Extension

    O'Reilly LG.18

    1542

    I would be interested in supervised FYPs which centre around applying computational techniques to language.

    Machine Learning and Word Meanings

    An interesting question is the extent to which a machine can learn things about word meanings just from lots of textual examples, and there has been a lot of research into this (see Wikipedia intro), all based on the idea that different meanings show up in rather different contexts eg.

    move the mouse till the cursor ...

    dissect the mouse and extract its DNA ...

    Several kinds of project could be attempted in this area, starting either from scratch or building on code that I could supply.

    1. One kind of system would do what people call unsupervised word sense disambiguation, learning to partition occurrences of an ambiguous word into subsets all of which exhibit the same meaning.

      Someone last year added the diachronic twist of attempting to recognise, from time-stamped text, that semantic matters concerning that word have undergone a change over a period of time: mouse (1980s) and smashed it (last 10 years?) have acquired novel meanings.

    2. Another possibility is to investigate to what extent it is possible to recognise that a particular word combination has a non-compositional meaning, that is a meaning not entirely expectable given its parts, for example that shoot the breeze means chat

    There are a number of corpora that can be used to drive such systems, such as the Google n-grams corpus, spanning several hundred years (viewable online here, also available off-line)

    Others

    I have interests in (and sometime knowledge in!) a number of areas in which a project would be possible

    Projects Exploiting Treebanks
    We have copies of several so-called treebanks, which are large collections of syntactically analysed English. Each treebank contains a large number of items of the following kind

    \includegraphics[width=3in]{grace.eps}

    One issue that such corpora allow the empirical exploration of is whether or not Multiple Centre Embedding occurs in English (left, right and centre embedding is illustrated below):

    [S I think [S he said [S I'm deaf]]] right embedded
    [NP$_{gen}$ [NP$_{gen}$ john's] father's] dog left embedded
    [NP the candidate that [NP the elector that I bribed] chose] centre embedded

    Tree distance
    Ways to calculate the difference between two trees, and things you might do with that (a paper)

    Lambek Calculus Categorial grammar
    for anyone keen on Logic, a logic inspired way to do grammar

    Continuations of projects from 15-16

    Virtual Erasmus
    Erasmus students spend a year of their study in a distant land. The idea is to simulate as much as possible of that process into a program that outgoing students could interact with, probably telescoping a year out into a few weeks. One part would be to emulate the bureaucratic obstacle course that such a year entails: you want to open a bank account, is it open Tuesday afternoons, have you got your residence permit, you want your residence permit, have you got your insurance, have you got another 3 passport photos ....

    There is the possibility of continuing a development of this from last year

    Scrabble
    Someone wrote an interactive scrabble game, with computer opponent. This could be reworked and developed further.

    DOM Projects

    Dr. Donal O'Mahony

    Room

    Extension

    Dunlop-Oriel House

    8445

    My projects (for 2017-2018 ) will center on themes related to networking, computer security and sustainability.

    Protecting Against Blockchain (Bitcoin Technology) Failure

    The core idea in the Bitcoin currency was the concept of a distributed ledger called a Blockchain.  The technology world is currently captivated by this and banks, stock exchanges and governments are ploughing huge investments into applying the technology in the form of 'smart contracts' for share purchase, simple bank accounts, complex derivatives, lotteries etc.  There is even a report of a couple who used  a Blockchain to record their pre-nuptial agreement!
    While the Blockchain does do a good job of eliminating the need for intermediaries in establishing trust, it replaces this with an algorithm encoded in a structure where no one person or body is in control.   Students of computer science will know that algorithms can have bugs and unintended consequences.  Unlike when trusted individuals make mistakes, the Blockchain cannot easily be swayed by a court order.  This project will survey Blockchain and Smart Contract technology using Ethereum as the experimental envrionment.  The project will look at some recent failures reported in the news and come up with some categories of failure.  It will then try to design mechanisms whereby the failure can be contained or recovered from.
    The project will involve developing an understanding of the Cryptography underlying Blockchain; use of Ethereum tools written in C++,Go and Java;; writing smart contracts in languages like Solidity - good programming skills, a knowledge of networking, crypto and perhaps UNIX skills would be good to have at the start and will defintely be present at the successful conclusion of the project.


    Using the Blockchain as a general purpose identity mechanism

    For many years now, users have used Public Key encryption to assert their identity on the net. A vital support tool for this has been Public Key Infrastructure (PKI) which allows people to link their 'identities' to their public key. One of the main thinkgs holding back digital identity is the difficulty in managing this public key infrastructure: establishing the link in the first place, dealing with lost or stolen keys etc.
    Blockchain technology has potential to vastly improve on this - opening up a new digital identity system that can not only be used for electronic payment and participation in smart contracts, but can open up a whole new world of trusted network interaction. This project will investigate how this might be done on the Ethereum blockchain. It will draw lessons from the experience in PKI and also the work of startup companies in this space (e.g. uport.me)

    Electricity Trading Between Smart Nano-Grids


    Today, we draw all of our electrical power from the electicity grid.  This is largely powered by fossil fuels and distributes power to consumers 24/7 based on a fixed price per kWh.  In an energy constrained future, it is more likely that energy will be generated in a distributed fashion from renewable sources such as wind and solar with limited amounts of storage (batteries) to help even out the peaks and valleys of supply and demand.  Managing the energy flows in such an environment will be challenging.  This project will invove developing computer processes that will control small inter-connected sub-sets of the grid known as Nano-Grids.  These will be implemented as Python programs running on the popular Raspberry Pi  computing device.    You will develop processes that communicate with each other in real-time over sockets/wi-fi.  Novel algorithms to allow auctions and game-theoretic approaches to matching supply and demand will be tried.  It will be helpful, but not essential, if you already have some knowledge of UNIX, Socket Programming, Python Programming, and perhaps some experience in programming hardware devices (to read voltage/current etc).
    A number of projects will be run in this area that can operate on our prototype nanogrid hardware - These may include: A trading framework for Nanogrids. This will involve the development of aprotocl to conduct on-line auctions and other forms of dynamic price negotiation between nanogrids. It will draw inspiration from Stock Market trading systems, real-time electricity markets and Electronic Commerce Applications. User Preference Systems: This will try to solve the problem of eliciting from users the right parameters to drive the inter-nanogrid trading processes. This will allow users to express (in an easy intuitive way) how and when they want (say) their electric car charged, their clothes washing done etc. The specified desires will then be used to drive the trading process.
    Declan O'Sullivan

    Prof. Declan O'Sullivan

    I am generally interested in projects in the area of data/information integration.

    I also have an interest in the ethics of the use of technology in digital content technology. (see http://adaptcentre.ie/ethics-privacy/).

    Typically the projects I supervise use techniques such as linked data, semantic web, semantic mapping, and XML-based technologies such as RDF, SPARQL, OWL and SPIN.

    There are also opportunities to work on aspects of research ongoing within the Science Foundation Ireland ADAPT centre focusing on Digital Content Technology, and ongoing digital projects with the TCD Library and Ordnance Survey Ireland .



    Professor Carol O'Sullivan

    Updated: 04/10/2016

    I am interested in supervising projects related to physical interaction and response in virtual and augmented reality. If you have an idea for another related project, we can also discuss that.

    Virtual Reality (VR) involves immersing yourself in a virtual world, perhaps wearing a head-mounted device such as the Oculus Rift or the Microsoft HTC Vive. It can also involve a large projected environment or even a normal desktop monitor.

    Augmented Reality (AR) usually involves remaining fully or partially in the real environment, but augmenting that real environment with virtual objects, characters and other graphical elements. These virtual augmentations can be delivered through a device such as the new Microsoft Hololens or similar headset. It need not, however, involve wearing any glasses or device, and the virtual objects can be projected onto the real world surfaces.

    I am interested in interactions between the user, objects and the environment in such systems, and in particular in ensuring that the physics of objects is plausible and/or accurate. Therefore, I am proposing several project areas to explore these issues further. You will need to have a reasonable understanding of computer graphics and/or computer vision in order to undertake one of these projects. If you are interested, and have the necessary experience, please email me and we can meet to discuss.

    Capturing the physics of real objects


    Check out this paper for an idea of what might be involved. (Image from the paper)

    Interactions with real objects


    How do you drop or throw a virtual object in AR or VR so that the physics are believable or accurate? (Image from Ironman movie)

    Interactions with real environments


    How do you create the illusion of physical objects interacting with a real environment and the user? (Photo of Goofy's playhouse in Disneyland Tokyo. Checkout the video here)

    Interactions with characters


    How do you create the illusion of virtual characters physically interacting with a real environment? (Image from MotionBuilder, though we may not necessarily use this system...)

    Prof Owen Conlan

    Location: O'Reilly Institute, Room F.29 Phone: +353-1-8962158

    Supporting the construction of Visual Narratives

    Available Research in narrative visualisations or visual narratives has been growing in popularity in the Information Visualisation domain and in online journalism. However there is limited support offered to authors in constructing visual narratives, specifically non-technical authors.

    This project will aim to advance the state of the art in visual narrative construction by supporting authors to build visual narratives, namely the visualisation in the narrative including automatic sequencing between the visualisations.

    In the first instance, contact Dr Bilal Yousuf

    Visualised Search

    Available Modern internet based search prizes precision over recall, striving to present users with a select few relevant resources. Users can quickly examine these resources to determine if they meet their needs. There are other situations, such as patent search or performing research on Medieval corpora, where recall, i.e. retrieving all relevant documents, is essential. This project will examine visual techniques to support users in determining and refining recall in a search environment. The project builds on over 10 years of Personalisation, Entity-based Search and Visualisation work surrounding the 1641 Depositions and more recent work on the 1916 Pension Statements.

    In the first instance, contact Prof Owen Conlan

    Ethics-by-Design

    Available The ethical implications of modern digital applications is growing as they encroach on more and more aspects of our daily lives. However the techniques available for analysing such ethical implications struggle to keep up with the pace of innovation in digital businesses, and tend to require the mediation of a trained ethicist. The Ethics Canvas is a simple tool to enable application development teams to brainstorm the ethical implications of their designs, without oversight of a trained analysts. It is inspired by Alex Osterwalder’s Business Model Canvas which is now very widely used in digital business formation. The Ethics Canvas exists both as a paper-based layout and as a responsive web application (see https://www.ethicscanvas.org/). Currently the online version can only be used by individuals, but cannot be used in the collaborative mode that is a key benefit of paper version. This project will extend the ethic canvas implementation to support remote collaborative editing of the canvas. User should be able to form teams and then review, make changes, comment on discuss, accept/reject changes and track/resolve issues. Further, the digital application development community could benefit from sharing previous ethical analyses using the online ethics canvas. The benefit of such sharing would be magnified if it led to a convergence in the concepts used in different canvas analyses. Therefore the project will allow teams to publish their canvas into a public repository and to annotate its content with tags from a shared structured folksonomy, i.e. a community-formed ontology capturing concepts such as different types of users, user groups, personal data, data analyses, sensor data, and risks. Within an individual canvas, tags can be used to link entries in different boxes to provide more structure to the canvas. The aggregation of tags from different completed canvases forms a folksonomy that can be made available as an open live linked-data data set and searchable by ethics canvas users."

    In the first instance, contact Prof Owen Conlan

    Dr. Marco Ruffini

    Final year projects:

    End-to-end capacity reservation in Software Defined Networks

    Software Defined Networks have revolutioned computer networks, by introducing a means to enhance network programmability through the use of standardised and open access interfaces. The aim of this project is to implement an end-to-end capacity reservation mechanism across aggregation and core networks based on the use of stacked Multi-Protocol Label Switching (MPLS) labels. User requests are forwarded to a centralised controller that takes into account available capacity to allocate the requested capacity over an end-to-end link. A background in network programming and python programming language is strongly advised

    Prof. Siobhan Clarke

    Room

    Extension

    Lloyd 1.17

    2224

    I am interested in software systems that make cities smarter! Below are some examples that I am co-supervising. If you have any ideas of your own for smart cities - e.g., smart transport, smart energy management, smart water management, do please contact me, as I am happy to supervise projects in this area.

    Co-Supervised with Dr. Mauro Dragone

    HeatMap App (Participatory version)

    The goal of this project is to build an Android application that can be used to assess the number of users present at the entrance of museums, shopping malls, in buses and around bus stops, art exhibitions, car parks, or any other public, shared places where people occasionally congregate and/or queue. To this end, the student will build a solution using one of the available frameworks for peer-to-peer communication between multiple handsets [1].

    HeatMap App (Vision version):

    The goal of this project is to build a system that is able to estimate the length  of the queue of visitors waiting to enter a museum, art exhibition or other place of public interest,  such as the Old Library and the Book of Kells Exhibition in Trinity College. The student will use a Galileo single-board computer and a pan & tilt camera, and will develop a computer vision algorithm using the OpenCV library [2] to segment, track and count people in the queue. There is also scope to develop adaptive solutions to account for different visibility conditions, and to build an Android application.

    Bus Tracker:

    The goal of this project is to build an Android application to infer and gather useful knowledge about the travel habits of users carrying smart mobile phones. Specifically, the target application should be able to recognize which public transport route (e.g. train, bus, LUAS), and between which stops  the user is currently traveling. The student will use current publish/subscribe and middleware for location-aware applications, such as [3][4][5], and ]investigate the adoption of machine learning techniques, such as neural networks, to classify routes based on the analysis of  streams of noisy sensor data.

    Extension of Funf:

    The Funf Open Sensing Framework [6] is an extensible sensing and data processing framework for Android mobile devices. The core concept is to provide an open source, reusable set of functionalities, enabling the collection, uploading, and configuration of a wide range of data signals accessible via mobile phones. The goal of this project is to extend Funf with support for peer-to-peer communication between multiple handsets, in order to enable the coordination of the efforts of multiple users involved in participatory sensing campaigns.

    Urban GeoLocation:

    The goal of this project is to assess and improve the ability to locate users carrying smart mobile phones while driving, cycling, or simply walking along urban pathways. In particular, the student will tackle the problems suffered by GPS-based location in urban environments, where the signals from the positioning satellites are often blocked or bounced off buildings and other structures. Contrary to existing approaches which try to explicitly account for these  phenomena, the student will assess the benefits of using multiple sensor data and the feedback gathered from multiple users over time, to build solutions that are able to exploit the power of the crowd to acquire complex models and improve their accuracy over time. The work will require the student to familiarise themselves with Particle Filter [7] as the overall framework that is likely to be used to integrate the various components of this project.

    SensorDrone:

    The goal of this project is to develop an Android application using the sensordrone kit [8]. Sensordrone is a modular device the size of a key-chain, equipped with temperature, luminosity, 3-axis accelerometer and air-quality sensors. The device can be paired with the users' mobile phone over low energy bluetooth. A number of useful applications may be built by exploiting the combination of sensors available on the Sensordrone and the sensors and the geolocation functions available on the user's smart phone. Of particular interest are applications targeting:

    • Road quality information - is the road deteriorating in specific locations? E.g. early pothole formation identification
    • Bike scheme monitoring - real time info. on where and when the cycle fleet is being used and what the cycles are encountering.
    • Map urban pollution data information - noxious gases, noise, temperature.
    • Cyclist routing - using information on pollution, journey times for bikes, stats on areas where cyclists swerve or brake suddenly.
    • Localised weather alerts for cyclists (and potentially data collection on the device)

    Smart Home Projects:

    Project ideas are also welcome for projects addressing the development of smart home services and their integration within city-wide participatory sensing frameworks [9]. The student will be required to develop software prototypes for the OpenHAB open source software platform for home automation [10]. A range of hardware is available for these projects, including a  single board computer and home automation sensors and actuators, such as occupancy sensors, energy monitors and wireless switches.

    Links to relevant technologies and further readings:

    [1] Peer-to-peer frameworks for Android:http://code.google.com/p/p2p-communication-framework-for-android/,https://code.google.com/p/peerdroid/,http://developer.android.com/guide/topics/connectivity/wifip2p.html, https://github.com/monk-dot/SPAN
    [2] OpenCV: http://www,opencv.org/
    [3] MQTT: http://mqtt.org/
    [4] OwnTracks: http://owntracks.org/
    [5] Google Pay services for Android developers: https://developer.android.com/google/play-services/location.html
    [6] Funf: http://www.funf.org/about.html
    [7] Particle Filter: www.igi.tugraz.at/pfeiffer/documents/particlefilters.pdf ,
    [8] SensorDrone:
    http://www.sensordrone.com/
    [9] CityWatch: http://www.citywatch.ie
    [10] OpenHAB: http://www.openhab.org

    Co-Supervised with Dr. Ivana Dusparic

    Smart energy grid: Intelligent Residential Demand Response

    The European Union's 2050 roadmap is resulting in the increasing penetration of renewable energy sources and electric vehicles (EVs) in Europe. In Ireland, it is expected that 80% of electricity will come from renewable sources by 2050, and 60% of new cars sold in 2050 will be electric. As a consequence, the electrical energy grid is facing significant changes in the supply of resources as well as changes in the type, scale, and patterns of residential user demand.

    In order to optimize residential energy usage, demand response (DR) techniques are being investigated to shift device usage to the periods of low demand and to the periods of high renewable energy availability. DR refers to modification of end-user energy consumption with respect to their originally predicted consumption patterns.

    This project will investigate use of intelligent learning-based techniques in implementation of large-scale DR aggregation techniques suitable for residential customers. Some of the aspects to be addressed within the scope of the project include: household energy use learning and prediction (as enabled by e.g., smart meters or smart heating devices like Nest and Climote), evaluation of centralized vs decentralized DR approaches, responsiveness of techniques to different usage patterns and different renewable energy generation patterns, types of devices most suitable for DR programmes (e.g., heating, EVs) etc.

    Smart energy grid: Home energy usage prediction and optimization based on sensor data

    This project will investigate how can home energy usage be learnt, predicted and optimized. Patterns of energy use can be learnt and predicted based on historical occupants' behaviours (e.g., learning that the user generally leaves for work at 8:15am, plays football after work on Wednesdays, goes out straight after work on Fridays etc), combined with various sensors and data sources to provide more accurate amended predictions (e.g., mobile phone calendar, GPS location of the user, level of battery charge in electric vehicle, outside temperature etc). Use of learning and intelligent agent techniques will be investigated and applied to learning the observed patterns and establishing demands and constraints on user device usage (e.g., the duration of charging an electric vehicle will require based on the duration of daily trip, the time heating needs to be turned on to achieve optimal temperature by user arrival time, estimated time why which hot water is required for the shower etc). Multi-objective optimization techniques will then be applied to schedule required device usage so as to satisfying their use requirements and constraints as well as desired policies set by users (e.g., minimize energy price, maximize use of renewable energy etc).

    Untitled Document

    Prof. Seamus Lawless

    I supervise projects in the areas of Information Retrieval, Personalisation and Digital Humanities. The common focus of these projects is the application of technology to support enhanced, personalised access to knowledge. If you would like to talk about a project or suggest one in these areas, email me at seamus.lawless@scss.tcd.ie

    Project Details

    Information Retrieval and Web Search

    Personalised Talent Search on LinkedIn
    This research will aim to design and implement complex personalized search approaches for the purpose of helping employers to locate individuals with desirable talents on LinkedIn. This research will be based on a preliminary study that has explored and validated the effectiveness of the use of machine learning techniques in personalized talent search. The focus of the research will be to further explore and implement more complex and effective machine learning methods for delivering an expertise search experience.

    Triple Linking from Unstructured Text
    Identifying the people, places, events and dates mentioned in news articles, blog posts and other unstructured text on the web is a difficult task. Linking these entities using Linked Open Data presents a further challenge. This project will investigate the generation of “Triples” from online text content. The input to this process will be a webpage or document, and the output should be a list of DBpedia triples which describe the entities that are mentioned in the text, in addition to a confidence score. There are some existing tools to help like openIE which extracts triples from unstructured text, and entity linking tools (like Tagme, Spotlight or Nordlys) can be used for mapping entities to DBpedia.

    The Search for the Searcher: User Identification using Web Search Log Mining
    When making decisions about how best to support users in web search, it is extremely helpful if we can determine who they are, why they are searching and how they interact with the search site. This type of information can be difficult to obtain, particularly when users are anonymous. Server log files contain a huge amount of information about user actions: what pages they viewed; what queries they issued; how much time elapsed between interactions with the site. But there is a deeper meaning behind this data. Buried within the contents of a log file is a rough outline of who each user is. Are we watching a novice investigator gradually learn about a topic? Do we see them refine the precision of their question based on new knowledge? Are we witnessing an expert scholar, rapidly issuing specific, targeted queries as they gather sources for their research? Did they find an answer to their question? If so, how much effort did it take for them to complete their search? How does their behaviour change depending on what the site presents? How does the relevance change as the user expertise and interactions change? This project will investigate the mining of a large search log with the aim of deriving information about the users' interests and levels of expertise. A number of search logs will be made available to the student as part of this project.

    Word Embeddings for Improved Search in Digital Humanities
    If I gave you a document that was written entirely in Japanese Kanji and asked you to tell me which symbols had a similar meanings, how would you do it (assuming you cannot read Kanji)? Even for a human, finding a realistic answer to this question is extremely difficult. Yet this question reflects a fundamental problem with how computers perceive texts. Unless a human annotator provides some form of descriptive mark-up, a computer simply does not understand the meaning behind the text it curates. Word embeddings are a recent development in the text analysis community. By applying a family of algorithms collectively known as Word2Vec a computer is able to examine a large collection of documents and derive relationships between words based solely on their contextual usage (e.g. the word "King" has some strong association with the word "Queen”. Also, the vectors produced are additive and subtractive - by subtracting "Man" from "King" and adding "Woman" to the result, we will obtain a vector which is extremely close to the the vector for "Queen”). This Masters project aims to investigate the use of word embeddings in supporting better search and exploration of a collection of 17th century historical documents. This may involve generating suggestions for alternative query formulations in a search interface. In more advanced terms, we may seek to build a retrieval model based on the word vectors generated by Word2Vec.

    Data Analysis and Data Science

    #ITK #DoneDeal #FakeNews
    The summer Transfer Window is a busy time for Football clubs, supporters and the media. This is reflected in the volume of activity on Social Media platforms such as Twitter. Clubs are continually linked with signing and releasing players, rumours circulate that clubs are interested in particular players and making moves to recruit them. A very small fraction of these rumours actually come to pass. There are lots of Twitter accounts which claim to be #ITK - "In The Know", is this actually the case? I am interested in collecting a large Twitter dataset related to the Summer Transfer Window, particularly focused on the English Premier League. I would like to apply Machine Learning techniques to that dataset to look for patterns in the tweets and to preform an analysis of the preformance of certain accounts in predicting transfers.

    Credibility and Trust

    Perception of Trust in Search Result Presentation
    When searching for content online, trust in the impartiality of the search algorithm and the ranking and presentation of results is of paramount importance. Different users display varying levels of trust, and this trust can be impacted by the design of a search interface and the visual aspects of results presentation. This project will investigate user characteristics and the design and common features of search interfaces which impact users' perceived level of trust. An evaluation will be conducted on a collection of well-known search sites. Each site will be 'distorted' by removing or adding visual features of the website design. Users will then be asked to rate their trust of each website. An in-depth statistical analysis of the results will be performed.

    Kicking them while they're down
    Previous research has been conducted into bias in the images used in news. It was shown that certain newspapers were prone to using unflattering images of politicians whose position they opposed, and more flattering images of politicians they supported or had endorsed [1]. We propose updating and extending this study. We aim to examine news media's likelihood of using good or bad images based on individual politicians' popularity ratings. The intuition is that it is more probable that news media will use unflattering images of politicians whenever they have a 'bad week'. It would also be interesting to look at the use of images of politicians in relation to specific political issues, for example, images of An Taoiseach Leo Varadker used in articles related to the "Repeal the 8th" when compared to pictures of Mr. Varadker on news articles related to jobs announcements.

    [1] Barrett, A. W., and Barrington, L. W. (2005). Bias in newspaper photograph selection. Political Research Quarterly, 58(4), 609–618.

    Imagery in Political Propaganda
    Previous research has been conducted into bias in the images used in news. It was shown that certain newspapers were prone to using unflattering images of politicians whose position they opposed, and more flattering images of politicians they supported or had endorsed [1]. However, limited research has been conducted into the imagery that political parties themselves use in the content they generate. We propose a study into the images used in election material to investigate which political parties used the least flattering images of their opoosition party members, for political purposes. This study does not need to be limited to Ireland, however, an archive of election material from GE16 does exist, including leaflets related to contentious issues such as Irish Water [2].

    [1] Barrett, A. W., and Barrington, L. W. (2005). Bias in newspaper photograph selection. Political Research Quarterly, 58(4), 609–618.

    [2] https://irishelectionliterature.com/index-of-electionsparty-literature/index-of-2016-election-leaflets-ge16/.

    Credibility in Graphical Presentation of News Content
    This project will investigate the credibility of graphics used in news media content to assess if there is a pattern of Accuracy / Bias / Trust / Credibility / Fairness etc. Previous research has demonstrated that it is possible to design and communicate misleading graphics and other visual representations of statistical information. It has also been shown that bias exists in the content of news articles, what about the information news media provide us in other formats? This project will examine a number of news items which have been covered in the media to a significant extent. e.g. Ireland's Bailout etc. We will identify articles which have used graphics to summarise and explain the issue. The researcher will then create, as much as is possible, an independent and accurate depiction of the same information using current information presentation guidelines. A comparison study can then be conducted to measure peoples' opinion of each representation with relation to any/all of Accuracy / Bias / Trust / Credibility / Fairness etc. The intuition is that certain news media sources are more likely to use biased graphics than others.

    2017/2018 FYP/MSc project topics for Stephen Farrell

    If interested send mail

    Detailed project scope and goals can be adjusted to fit student skills and the level of effort available.

    1. Implement and test a proof-of-concept for MPLS opportunistic security

      Multi-Protocol Label Switching (MPLS) is a sort-of layer 2.5 that carries a lot of Internet traffic in backbone networks. There is current no standard for how to encrypt traffic at the MPLS "layer." I am a co-author on an Internet-draft that specfies a way to opportunistically encrypt in MPLS. The task here is to implement and test that which will likely result in changes to the specification (and adding the student's name to the eventual RFC). There are existing simulation/emulation tools that support MPLS and IPsec that should make implementation fairly straightforward, for example Open vSwitch. A proof-of-concept demonstration with performance figures vs. cleartext and IPsec is the goal. Comparison against MACsec would also be good but may be too hard to test in this environment.

    2. Compare and contrast existing domain/web-site security/privacy measurement web sites

      A number of web sites (see below for examples) offer one the opportunity to "score" or test some other domain or web site for security and privacy issues with their deployment of HTTPS, SSH, DNS, BGP or other visible behaviours. Typically, these are intended for site administrators to help them know if their current site configuration is good or bad, and if bad, in what respect, and how to mitigate that. The sets of tests applied differ, and it is unclear if individual tests applied are the same over different test sites and over time. (The sets of tests certainly change over time as new vulnerabiities are discovered.) The goal of this project is to identify and describe such test sites, to compare their various sets of tests, and to establish whether or not tests that appear to be the same, are in fact the same (likely via setting up a web site with known flaws as a test article). A "test-the-testers" web site may be a good outcome here, that can be updated as the test-sites evolve. The scope here may be limited to https or could be extended to SSH, DNSSEC, BGP or other Internet technologies depending on effort and student interest.

    3. Deploy and run a local privacyscore.org instance and test against Irish web sites

      PrivacyScore.org is an open source tool (currently in public beta) and web site testing platform that aims allow users to score web sites on how well or badly they are implementing visible security and privacy features. The goal here is to deploy a local instance of the tool, and run that to test the security and privacy properties of some local (Irish) web sites, (possibly within tcd.ie, so you'll likely get to tell college it fails:-). As well as deploying and testing the tool, potential improvements to the tool will likely be identified and possibly implemented and fed back to the developers. It'd be a fine thing to identify local sites that are interesting to test, to interpret the tool output, communicate that to site owners and help make the web a bit better.

    4. Deploy a local DPRIVE recursive resolver and test performance

      DPRIVE is a specification for how to run the DNS protocol over TLS in order to attempt to mitigate the privacy problems with the use of the Domain Name System. There are implementations of DPRIVE available now that are ready for experimental deployments. The goal of this project is to deploy a local DNS/TLS recursive resolver and to test it's effectiveness and efficiency via artificial test queries and responses but also, where possible, handling real DNS queries from clients that have opted in to being part of the experiment.

    5. Solar-powered LoRa gateway power management

      In January 2017 we deployed a solar-powered LoRa gateway in TCD. Power managment for that is relatively simple - the device aims to be "up" from 11am to 4pm each day, but handles low-power situations by sleeping until batteries have been sufficiently charged. The goal here is to analyse the power consumption and traffic patterns recorded since January 2017 in order to improve system up-time via enhanced power managment. (For example, the device could decide to not sleep from 4pm if the battery level is above a new threshold.) The current power managment daemon is a simple C program that monitors battery voltage and sets the device to sleep or wake according the simple policy described above. Modifications to that can be designed, validated based on existing data, and then implemented, deployed and tested with the existing hardware.

    6. Foo/QUIC prototype

      QUIC is a new transport protocol being developed in the IETF aiming to provide the same properties that TLS/TCP provides for HTTP but for other applications. The goal here is to select and prototype some application ("Foo") that could benefit from running over QUIC but where that Foo/QUIC combination has yet to be investigated. For example, at the time of writing, I'm not aware of any work on NTP/QUIC (though that might make less sense than it seems, not sure). The goal is to identify and prototype an interesting application/protocol that hasn't been widely tested running over QUIC in order to provide more input into the development of the new transport protocol.

    7. Prototype TLS1.3 SNI Encryption proposals/fronting

      The Subject Name Indicator (SNI) extension to TLS is extremely widely used to support multiple web sites on the same host (e.g. VirtualHosts in Apache2) but represents a major privacy leak as SNI has to be sent in clear, given that no scalable way of hiding SNI has been found. The TLS working group have just adopted a draft that describes various opt-in ways in which SNI can be protected should a web site wish to "front" for another. (Think of a CDN like akamai being "cover" for some human-rights organisation that would be censored in the relevant jurisdiction.) The goal here is to prototype and test the various SNI encryption schemes currently under study in order to assist in selecting the eventual mechanism to standardise.

    8. Critically analyse proposals for weakening the TLS specification

      (This one is a tad political but may be attractive for just that reason:-) There have been ongoing attempts to weaken the security guarantees provided by the TLS protocol by standardising ways of making plaintext visible to third parties. Those are typically claimed to be needed for network management or content scanning, and often involve a man-in-the-middle attack on TLS or leaking keys to a third party. All such proposals could also be used for pervasive monitoring/wiretapping, censorship or other "unintended" use-cases. In reaction to the most recent attempt to break TLS in this way, I documented a range of arguments against breaking TLS. The goal here is to provide a more rigorous analysis. The study should analyse both the technical and social/political pitfalls and claimed benefits of such schemes. The scope could be extended to include the deployed TLS-MITM products that are used in various networks and on some hosts. (Or that could be a separate project itself.)

    9. Play with leaked password hashes

      How fast can you check for the prescence of a password (hash) in a list of 320 million leaked hashes? The naive shell scipt I wrote in a few minutes takes 30 seconds on my laptop. The goal here is speed, without requiring any networking (so no sending password hashes over any network), on a reasonably "normal" machine. The list takes 12GB to store in a file, one hash per line. The list may also be updated occasionally, though in bulk, not as a trickle. Some side-channel resistance (e.g. considering timing, OS observation) is also a goal here.

    Dr. Stefan Weber

    Room

    Extension

    Lloyd 0.32

    8423

    This year I will be offering projects that are in the general area of distributed systems, information-centric networking, wireless sensor networks and mobile games. My interests include wireless communication among mobile devices such as laptops, mobile phones and embedded devices. Below are a number of projects that cover some of my interests. if you have an idea for an interesting project that involves any of the areas above, please get in touch.

    Message Adaptation in the Internet of Things

    Transport protocols such as the Transmission Control Protocol (TCP) were developed to support the transfer of files from a source to a destination. The development of the architecture of the Internet has The Internet of Things will present a significant challenge for the current Internet architecture if large numbers of sensors transmit individual small messages. This project will investigate the effect of small messages on routers in the current Internet architecture and develop a solution that attempts to prevent the flooding of networks with small messages.

    Game Design using Information-Centric Networking

    Information-centric networking enables the caching of content within infrastructure components in a network in order to reduce network traffic and latency. This project will investigate the design of a communication protocol for games based on an information-centric approach such as NDN/CCN.

    Design Characteristics of Honeypots - with an Aim to Study Botnets

    This project will investigate the design of honeypots and the available information of botnets and develop a design for a honeypot that will allow the gathering and evaluation of information about the distribution and design botnets such as their size, use, etc. As a means to study these botnets, a honeypot or set of honeypots should attract the attention of botnets, collect samples of the communication of these networks and provide an analysis of the collected traffic.

    Adaptive Communication in Mobile Networks

    Communication between sets of mobile devices in networks such as 3G/4G networks generally rely on well-known hosts that coordinate the communication between the devices. Similar to approaches to multicast communication, this project will investigate the development of a protocol that allows the adaptation of communication from an initial centralized model via a rendezvous node to a distributed model where the devices will communicate directly with one another.

    Warning: include(/users/staff/tfernand/StudentProjects/main.2016-2017.shtml): failed to open stream: Permission denied in /srv/scss/StudentProjects/index.php on line 593 Warning: include(): Failed opening '/users/staff/tfernand/StudentProjects/plink.shtml' for inclusion (include_path='.:/usr/share/php:/srv/scss:/srv/scss/Local') in /srv/scss/StudentProjects/index.php on line 593

    Dr. Vasileios Koutavas

    Areas of interest: programming language implementation and theory, concurrent and distributed systems, formal methods, software verification.

    A number of projects are available in these areas which involve the development of part of a compiler, or the use of tools such as Why3 and Coq for verifying software systems. Theoretical projects are also available. These projects are particularly suitable for students who have taken at least one module on compilers, software verification or programming languages.

    Dr Carl Vogel

    Room

    Extension

    ORI.LG16

    1538

    All projects include review of the relevant literature, and where appropriate, argumentation in support of analyses given.

    Note that implementation is not an essential component of every project in computational linguistics -- there's definitely more to the field than computer applications -- however, formal rigor is quite essential.

    Don't worry if you don't recognize the name of the systems/languages mentioned. If the theme itself interests you we can sort out the technical details in person. Of course, these are all just suggestions, we're assuming that the final project description will be individually tailored in most cases.

    Students who do projects with me will agree to regular weekly meetings at which we discuss the preceding week's work, and plans for the following week's. The initial weeks typically involve a considerable amount of diverse readings. Students intending to work with me on their project are encouraged to contact students who have done projects with me in the past. (See here for some details on that.)

    Some project possibilities actually contains several constituent project possibilities, some of which may be feasible for students not taking part in the CSLL degree, the rest of that project and also the other projects on the list are quite well suited to CSLL 4th year students.

    1. Develop an HPSG (Head-driven Phrase Structure Grammar) grammar for a fragment of Irish and Implement it in the LKB focusing on the syntax of one of the following construction types:
      • Noun Phrases
      • Embedding Verbs
        1. proposition embedding verbs
        2. question embedding verbs

      Some examples of comparable projects are available for Irish, French, and German.
    2. Design and implement a chart parser for a CFG grammar with a dominance interpretation for phrase structure rules. This is essentially a framework for underspecified semantics. A disambiguation method must also be provided.
    3. Extend the semantic coverage in one of one of the frameworks included in the CLEARS (Computational Linguistics Education and Research Tool for Semantics) system.
      Particular areas of interest might be: negation, spatial modifiers, belief reports. An example of a project that did this in the past is available here.
    4. Extend the functionality of a generic interface for web-based experimentation in cognitive science (this will involve empirical research in an area of cognitive science to be agreed upon).
      This offers several possible topics and with varying degrees of implementational requirements. For all, some implementational extensions to the underlying system are necessary. Some will involve more or less actual experimentation using the system. Previous stages of the system are described, among other places, here, here, and here.
    5. Improve on the design and implementation of a web based multiplayer scrabble game, with the feature that point assignments to letters are calculated dynamically, on the basis of frequencies derived from corpora. A description of the base system is provided here. An extension of that work is described here here. There are many delightful ways in which this work can be extended. One example is including a facility for team play. Another is in implementing an automated player that humans can choose to play against.
    6. Extend and experitment with a platform for experimenting with models of dynamic systems, with particular attention to modeling evolution of linguistic behaviors. A starting point is described here, subsequent work is described here.
    7. Extend work on utilities for statistical analysis of linguistic corpora and apply them to specific tasks such as detection of grammatical errors, and automated correction suggestion.
    8. Develop and validate lexical resources for sentiment analysis.
    9. Develop methods within computational stylistics for investigating text-internal linguistic variables with external variables using large online textual resources. A comparable project is described. here.
    10. Develop methods for tracking events under varying descriptions in journalistic prose.
    11. Develop a Prolog implementation simulating the operation of theories in dynamic semantics.
    12. Develop a Prolog implementation of real-time belief revision systems.
    13. Extend an automatic crossword generator implemented in Java and Prolog. Documentation of its state in 2003 state is available here A more recent version is documented here. One avenue in which to extend this is to establish it as a system fully anchored on the Suns, with application in language learning and other topical areas.
    14. Develop online tools for other forms of fun with words -- an innovative anagram server, a crossword clue generator, etc.
    15. Formal syntactic and semantic analysis of dialog. Example past attempts at this are available here and here.
    16. Extend a computational model of Latin morphology, with lexical lookup to achieve Latin to English Machine Translation.
    17. Extend a prototype grammar checker for Irish implemented in Prolog, integrating it with a spelling checker for Irish.
    18. Implement an efficient spelling checker for Irish in java, in the context of a webserver that collects words and their frequencies of use in checked documents, along with some other utilities for corpus linguistics.
    19. Incorporate an Irish language spelling checker and general proofing tools facilities into StarOffice/OpenOffice.
    20. Parse a large Irish-English Dictionary (the O Donaill). A description of the comparable project is provided here, and here.
    21. Projects in psycholinguistics. Past Examples appear here, here, here and here.
      Some specific topics I would like to explore further:
      1. Linguistic priming and unconscious coordination in written communication.
      2. Degrees of grammaticality and acceptability.
      3. Human reasoning with mildly inconsistent information.
      4. Computational stylistics (corpus driven syntactic and semantic analysis).
    22. Some general purpose utilities that can replicate standard offerings such as "DoodlePolls" and shared calendars, but with local data stores that accommodate varying levels of privacy and data protection.
    23. Develop tools to harvest from online sources a multi-lingual database of named entities.
    24. Build computational tools in support of structuralist analysis of myth and mythic-metaphorical representation (in the style of Levi Strauss).
    25. Test empirical dimensions of theories of holism in formulaic language associated with (im)politeness expressions.
    26. Test empirical predictions of recent theories of (im)politeness with respect to third-party and projected self-perception.
    27. Topics in collaboration with Dr. Maria Koutsombogera: Analysis and modelling of multimodal and multiparty interactions. The projects will exploit a newly created corpus of multimodal interactions between three participants. The objective of the projects is to address some of the challenges in developing intelligent collaborative systems and agents that are able to hold a natural conversation with human users. A starting point in dealing with these challenges is the analysis and modelling of human-human interactions. The projects consist in the analysis of the low-level signals of speakers (e.g. gaze, head pose, gestures, speech), as well as the perception and inference of high-level features, such as the speakers' attention, the level of engagement in the discussion, and their conversational strategies. Some examples of similar work are documented here and here. Indicative literature is available here. Samples of other existing corpora will also be made available to interested parties.
      1. Prediction of the next speaker in multiparty interactions based on multimodal information provided by the participants' (a) gaze, (b) head turn/pose, (c) mouth opening and (d) verbal content.
      2. Measuring participants' conversational dominance in multiparty interactions by exploring (a) turn length, (b) speech duration, (c) interruptions (d) feedback responses and (d) non-verbal signals (mouth opening, gaze, etc.)
      3. Create a successful attentive listener: investigate and decide upon the features that constitute an active listener, based on the analysis of feedback responses, as well as their frequency, duration, and intensity.
      4. Prediction of success in collaborative task-based interactions: investigate the factors on which the perception of the success on a task depends. This will involve a series of perception tests examining the team role of the speakers and their conversational behavior.
    28. Topics in collaboration with Dr. Erwan Moreau: supervised and unsupervised methods for author verification and related application.
      The author verification problem consists in identifying whether two texts A and B (or two groups of texts) have been written by the same person. This task is the keystone of authorship-related questions, and has a range of applications (e.g. forensics). This problem can be addressed in a number of different ways, in particular in a supervised or unsupervised setting: in the former case, an annotated set of cases is provided (each case is a pair of texts A and B, provided with "yes" or "no" depending on whether A=B); in the latter case, no answer is provided.
      Given the availability of several datasets as well as a state of the art authorship software system, the project consists in exploring a certain aspect or application of the topic, for example:
      1. What makes a case more difficult to answer than another? The task would be to study this question through experiments, and then implement a method to predict the level of difficulty of a given case.
      2. Design and implementation of a web interface around the authorship system, possibly presented as some kind of game with text.
      3. While ML systems can be good at giving the right answer, they are not always able to give a human-understandable explanation of the result. The task would consist in studying how to explain the results of some of the methods.
      4. It is harder to answer the question of authorship verification across genres (e.g. by comparing an email and a research paper). One way to improve the system in this case is to distinguish the features which are related to the author from those which are related to the genre.
    29. Other topics to appear.
    30. Still other topics to be agreed upon individually.

    Last Modified: Wed Jul 19 13:44:27 2017 (vogel)


    Last updated 8 May 2017 by .