Fourth Year Projects

Recommended Reading:" The Essence of Computing Projects: A Students Guide ", Dawson, Prentice-Hall (2000).

Note: No projects can be allocated until the first week of the academic year 2017/2018.

Final Year Project Handbook

Listing of Current Projects Available

  • ********************************************

    Title:

    Initializing Programs in Genetic Programming

    Supervisor(s):
    Languages:
    References:
    Description:

    Genetic Programming (GP) is a powerful Evolutionary Algorithm that has successfully been used in multiple challenging problems including the generation of automated game-agent controllers and the correction of bugs in java source to mention a few examples. The success of GP is partly due to the way the initial  population is generated. In this work, we will study multiple initialisation GP approaches and we will test them against well-known benchmark problems including  Boolean, Symbolic Regression, and maze-like games.

  • ********************************************

    Title:

    Using Bio-Inspired Algorithms in Dynamic Optimisation Problems

    Supervisor(s):
    Languages:
    Java
    References:
    Description:

     

    Bio-inspired algorithms, such as Genetic Programming, are powerful and robust techniques that have successfully been used in static scenarios. These have been user to, for instance, design games without human intervention. These machine learning algorithms are inspired e.g., on evolution. However, the majority of problems, in particular real-world problems, exhibit a dynamic element, and so, it is important to account for algorithms that can perform well on changing conditions. The goal of this project is to use GP  to efficiently tackle Dynamic Optimisation Problems.
  • ********************************************

    Title:

    Irish Language Soundex encoding

    Supervisor(s):
    Adam Winstanley
    Languages:
    HTML, Javascript, PHP, postgresql
    References:
    Description:

    Soundex is a way of encoding the pronounciation of names such that those with similar sounds but different spelling can be compared. However, Soundex was originally designed for English names and so is less effective for other languages/cultures. For this reason other similar schemes have been devised, for example for Jewish, slavic or chinese names. This project is to devise a Soundex-like scheme for encoding names in the Irish language and to provide a web tool/service for it to be used, evaluated etc.

  • ********************************************

    Title:

    Heraldic Generator

    Supervisor(s):
    Adam Winstanley
    Languages:
    Choice of possible languages depending on applicant.
    References:
    • Ferguson, John & Friar, Stephen, “Basic Heraldry”, Herbert
    • Fox-Davies, A.C., “Wordsworth Complete Guide to Heraldry”, Wordsworth
    • Janieson, Andrew Stewart, “Coats of Arms”, Pitkin
    Description:

    Heraldry uses an archaic language to specify and describe coats of arms, for example "Argent on a chevron engrailed azure, between three horse'sheads erased gules as many crescents argent." Not disimilar to a programming language, there is a specialised but limited vocabulary describing the graphical elements used and a fixed grammer to describe a complete coat of arms in this language. This project is to write a parser to analyse sentances in this language and generate a coat of arms in the correct colours and configuration.

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Tool for statistically matching names on historic documents.

    Supervisor(s):
    Adam Winstanley
    Languages:
    HTML, Javascript, PHP, SQL
    References:
    • Winstanley, Adam. (2014) Identifying People on the Morpeth Roll: Can the configuration and association between names on the Morpeth Roll be used to add to our genealogical knowledge of mid-19th century Ireland?
    • Winstanley, Adam. (2016) Irish Census Substitutes 1823-1865
    Description:

    The Morpeth roll contains a large set of signatures from people in Ireland, collected in 1841 close to the peak in Irish population. The lack of surviving census data from Victorian Ireland means the roll could potentially act as a valuable census substitute. However, the majority of signatures on the roll do not have an associated address so, on face value, it is of limited use for genealogical purposes.

    The method of collection of signatures by region or parish promises to allow us to positively (or probably) identify many of the individuals signing. Names close together on the Morpeth Roll are more likely to be from people located close geographically to each other. This project is to create an online web-based system to test and use this fact to add value to the Morpeth data through the automatic matching of names with near-contemporary records from other sources that do contain location data.

    The system will be based on an existing system implemented in Microsoft Excel. It will use web services to match names from two sources and compile statistics showing the number of matched names in different parts of each document. It will display the results in numerical and graphical form.

  • ********************************************

    Title:

    Web mapping tool for historical placenames

    Supervisor(s):
    Adam Winstanley
    Languages:
    HTML, Javascript, Google Maps SDK or similar.
    References:
    • Gibson, Rich and Erle, Schuyler. (2006) Google maps hacks. Beijing ; Cambridge: O'Reilly.
    • Purvis, Michael; Sambells, Jeffrey and Turner, Cameron. (2006) Beginning Google Maps Applications with PHP and Ajax from novice to professional. USA: Apress.
    Description:

    This project is to create a tool that uses a web mapping tool to create a system that links locations from historical records (stored as a text file) with a modern online map and plots those locations and attributes and statistics associated with them.

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Compressed Sensing the Elements of a Generalized Sparse Matrix

    Supervisor(s):
    Barak A. Pearlmutter
    Languages:
    References:
    Description:

    This is a numeric linear algebra project. The idea is to start with a reasonably large generalized sparse matrix (meaning a matrix M which is not represented explicitly in memory but instead can be accessed only by procedures that calculate its product with a vector on one side or the other, Mv or vM.) Under the assumption that the matrix M is sparse, meaning that it has only k<<nm non-zero entries where M:nxm, one should be able to recover all the non-zero elements of M by calculating Mv and/or vM for a sufficiently large set of vectors v. In particular, we would expect to be able to do this when the result of these calculations produces O(k log nm) numbers. The goal of this project is to (a) code up the procedures to multiply v by M using an existing automatic differentiation package, after choosing a numeric process to simulate which will result in a sparse Jacobian matrix; (b) use this and a canned compressed sensing procedure to recover M from many matrix-vector products; (c) compare the actual performance with the theoretical predictions, and write up the results.

  • ********************************************

    Title:

    Hypercard Android App

    Supervisor(s):
    Barak A. Pearlmutter
    Languages:
    References:
    Description:

    In this retro-computing project, a hypercard clone Android app will be constructed. The idea is to hew as closely as possible to the original, which ran on the Apple Mac early in that product's life. This means scrounging up whatever materials can be found about how the original worked, and then replicating it as faithfully as possible, using modern platforms and implementation technologies.

  • ********************************************

    Title:

    Improving Named Entity Classification by combining Knowledge Based/Learning approaches

    Supervisor(s):
    Brian Davis
    Languages:
    Java, XML, Regex
    References:
    • [1] Piskorski, Jakub & Yangarber, Roman. (2012). Information Extraction: Past, Present and Future. . 10.1007/978-3-642-28569-1_2.
    • [2] https://gate.ac.uk/
    • [3]https://gate.ac.uk/ie/annie.html
    • [4]https://stanfordnlp.github.io/CoreNLP/
    • [5]https://opennlp.apache.org/
    • [6]https://uima.apache.org/
    Description:

    Information Extraction(IE)[1] is the application of Natural Languages Processing techniques for extracting relevent facts or the most pertinent snippets of text from unstructured textual content i.e. documents, webpages or social media content.   Named Entity Recognitation and Classification (NERC) is a core task in IE which involves identifying descrete entities such as Persons, Locations and Organisations within text for later downstream processing in search applications and decision analysis.  While the current state of the art performance for NERC challenges is quite high,retargeting/andadapting an IE system to a new domain or updating extraction requirements can be costly either involving either modifying an existing knowledge based system manually which equires exper knowledge  or relabelling data which costly and time-consuming.   Supervised/Machine Learning approaches tend to have high recall but can be weaker on pecision while knowledge based approaches can be more accurate but have poorer coverage.  The goal of this project is to levarage the advantages of a linguistic annotation archtitectures for manipulating the ouput of state of the art off-the shelf NERC tools such as Stanford NER[4] and GATE's ANNIE[2,3] system for optiminal performance using regular expressions to maninuplate linguistic and semantic annotations.  

    The project will involve learning about the GATE NLP framework, how to load analysis pipelines in GATE for linguistic annotation and NERC tasks.  Exposure to Third Party Tools such as Stanford NER and OpenNLP[5] will also be involved.   GATE(General Architecture for Text Engineering) is one of the most widely used open source NLP frameworks in the world.  Its architecture is quite similar to IBM's Unstructured Information Managment Archtiteture(UIMA)[6] which serves as the backbone for the Watson Cognitive Computing System.   Graduates with exposure to GATE are often employed in the text analytics with companies such as IBM, Reuters, Accenture among others where the GATE toolkit or similar tools are used for either in-house and commerical text analytics activities.

    The student will be expected to

    • Have the willingness to take the initiative, learn new tools and dive in!
    • A analytical mind, be willing to reflect critically with respect to domain analysis and engage in independent and self directed learning.
    • An interest in linguistic analysis and knowledge of machine learning tools and methodologies or willingness to learn!
    • Have good JAVA skills, knowledge of XML and regular expressions.

     

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Building a general purpose rule based Relation Extraction system

    Supervisor(s):
    Brian Davis
    Languages:
    Java, Regex, XML
    References:
    • [1] Piskorski, Jakub & Yangarber, Roman. (2012). Information Extraction: Past, Present and Future. . 10.1007/978-3-642-28569-1_2.
    • [2] https://gate.ac.uk/
    • [3]https://uima.apache.org/
    Description:

    Information Extraction(IE)[1] is the application of Natural Languages Processing techniques for extracting relevent facts or the most pertinent snippets of text from unstructured textual content i.e. documents, webpages or social media content.  Facts extracted from IE are used to populate knowledge bases to support more complex business analytics or decsion analystic systems and/or provide downstream support for intelligent information retrievel tool.  Relation Extraction(RE) is a critical task within IE, which involves extracting binary relations between discrete named entities such as Persons, Locations and Organisaitons within text[1].  Examples include birth_date (ohn Smith, 28-03-1976) or founder_of(Microsoft, Bill Gates). One the problems faced by RE is that there is no commonly shared relation schema and there are few open source general purpose relation extraction systems that can be easily adapted.  The goal of this project is to  

    1) design an a simple general purpose relation extraction schema.

    2) extend and existing open source NLP toolkit with a general purpose rule based RE component to support reproducable experiments for this task within the IE community.

    The project will involve learning about the GATE NLP framework, how to load analysis pipelines in GATE for linguistic annotation and RE tasks.  GATE(General Architecture for Text Engineering) is one of the most widely used open source NLP frameworks in the world[2].  Its architecture is quite similar to IBM's Unstructured Information Managment Archtiteture(UIMA)[3] which serves as the backbone for the Watson Cognitive Computing System.   Graduates with exposure to GATE are often employed in the text analytics with companies such as IBM, Reuters, Accenture among others where the GATE toolkit or similar tools are used for either in-house and commerical text analytics activities.

    The student will be expected to

    • Have the willingness to take the initiative, learn new tools and dive in!
    • A analytical mind, be willing to reflect critically with respect to domain analysis and engage in independent and self directed learning.
    • An interest in linguistic analysis and knowledge of machine learning tools and methodologies or willingness to learn!
    • Have good JAVA skills, knowledge of XML and regular expressions.
    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Improving entity detection in Microblogs(Twitter)

    Supervisor(s):
    Brian Davis
    Languages:
    Java, XML, Regex, JSON
    References:
    • [1] Piskorski, Jakub & Yangarber, Roman. (2012). Information Extraction: Past, Present and Future. . 10.1007/978-3-642-28569-1_2.
    • [2] Leon Derczynski, Diana Maynard, Giuseppe Rizzo, Marieke van Erp, Genevieve Gorrell, Raphaël Troncy, Johann Petrak, Kalina Bontcheva, Analysis of named entity recognition and linking for tweets, In Information Processing & Management, Volume 51, Issue
    • [3]https://gate.ac.uk
    • [4]https://gate.ac.uk/wiki/twitie.html
    • [5]https://uima.apache.org/
    Description:

    Information Extraction(IE)[1] is the application of Natural Languages Processing techniques for extracting relevent facts or the most pertinent snippets of text from unstructured textual content i.e. documents, webpages or social media content.   Named Entity Recognitation and Classification (NERC) is a core task in IE which involves identifying descrete entities such as Persons, Locations and Organisations within text for later downstream processing in  applications such as intelligent search and decision analysis.  In recent years, social media and in particular microblogs - Twitter - have established themselves as a source of high value content (often user generated) with a high volume and high velocity,   As mentioned earlier NERC is a key enabler for information extraction tasks and in particular oppinion mining/aspect orientated sentiment analysis which seeks to assign a sentiment to a paricular target such as politician or product or aspects/properties of a target i.e the battery life of an IPhone.  This has implications for applcation contexts such as customer relation managment, brand analysis, political analysis, eGovernment, eHealth etc.  While NERC for coventional edited documents has achieved very good performace, NERC for social media remains a challenge due to inherent problems with in the content such as: language variation, shortness of texts, ambiguity, unconventional or poor grammar and spelling and emoticons, all of which complicate conventional tools for shallow linguistic analysis[2]. The goal of this project is to focus on paricular linguistic analysis problem(tokenisation, normalisation, local context for semantic disambigution of named entity types) when applying NERC to Twitter content.  

    The project will involve building on the Social Media Plugin for the open NLP framework, GATE(General Architecture for Text Engineering)[3][4].  He/She will learn how to load and modify analysis pipelines in GATE for linguistic annotation and NERC tasks.   GATE is one of the most widely used open source NLP frameworks in the world.  Its architecture is quite similar to IBM's Unstructured Information Managment Archtiteture(UIMA)[5] which serves as the backbone for the Watson Cognitive Computing System.   Graduates with exposure to GATE are often employed in the text analytics with companies such as IBM, Reuters, Accenture among others where the GATE toolkit or similar tools are used for either in-house and commerical text analytics activities.

    The student will be expected to

    • Have the willingness to take the initiative, learn new tools and dive in!
    • A analytical mind, be willing to reflect critically with respect to domain analysis and engage in independent and self directed learning.
    • An interest in linguistic analysis, most importantly Twitter and a willingness to learn!
    • Have good JAVA skills, knowledge of XML and regular expressions.

     

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Mobile/Cloud Computing Project

    Supervisor(s):
    Dermot Kelly
    Languages:
    References:
    Description:

    Using a free AWS account at https://aws.amazon.com/free/  and using the free tier services for creating static virtual machines, file systems and databases or serverless applications with AWS Lambda. A credit card may be required to sign up (for dealing with excess usage), but there should be no cost if usage is limited to the free tier service conditions.

    Interested in web driven systems that interact and perform analysis with either social media, online databases like census and/or gps systems or apps that provide syncing cloud services to mobile and desktop devices, data transformation, real time file or stream processing services. These can be joint projects for example if someone wants to work on the mobile app side while another works on the cloud side.

     

    Introduction to AWS services

    https://aws.amazon.com/getting-started/

    https://www.tutorialspoint.com/amazon_web_services/

     

    How to build Android Apps

    https://developer.android.com/training/index.html

  • ********************************************

    Title:

    Queuing Simulation App for teaching the operation of queuing dynamics

    Supervisor(s):
    Dermot Kelly
    Languages:
    References:
    Description:

     In modelling and managing the performance of any system, we must describe the arrival pattern of tasks, how tasks are queued, the service required and the speed of the service. Every real world system might have its own unique arrival characteristics, physical queue configurations and capacities, job lengths and processing capacity. Queuing theory, modelling and simulation has the purpose of assisting managers of those services in how best to organise the system in order to reduce the delays and improve user satisfaction with faster service at the least cost.

    The application may allow the configuration of different arrival patterns and intervals, different queuing strategies and dynamics, configurable task lengths and processing organisations, and then simulate the behaviour of the configured system and show throughput statistics to help in the learning and visualisation of queuing theory and concepts.

    www.win.tue.nl/~iadan/queueing.pdf

    http://people.brunel.ac.uk/~mastjjb/jeb/or/queue.html

  • ********************************************

    Title:

    Evolutionary Computing for Function Optimization

    Supervisor(s):
    Diarmuid O'Donoghue
    Languages:
    Java
    References:
    • http://www.cs.nuim.ie/~dod
    Description:

    ECJ – Extend the “Differential Evolution” framework of the ECJ (https://cs.gmu.edu/~eclab/projects/ecj/) that was written in Java. ECJ is an evolutionary computing system written in Java and will be used as the basis for this project . After ensuring ECJ works correctly on your machine, you will modify its implementation of the Differential Evolution (DE) algorithm (which will be covered in CS404). You will then conduct a number of tests to compare the solutions generated by the initial DE algorithm against your modified version. See also “The ECJ Owner's Manual” at https://cs.gmu.edu/~eclab/projects/ecj/docs/manual/manual.pdf. (Package ec.de)

    You will compare the results produced by DE against your variant that uses the ancestral cache/archive. You will also compare some parametric variants of Ancestral DE with the original DE algorithm.

  • ********************************************

    Title:

    Data format translation and Graph Matching Evaluation

    Supervisor(s):
    Diarmuid O'Donoghue and Rosemary Monahan
    Languages:
    Open to discussion, maybe Java?
    References:
    Description:

    A corpus of over two million graphs has been created, derived from a large number of open source projects written in the c# language.  You will write a program that will automatically translate these graphs into a representation enabling them to be stored in a Neo4j (https://neo4j.com/) graph database.  You will test and evaluate your translation system.  Subsequently, you will use the existing " Dr. Inventor" graph matching system to identify those methods that are most similar (in graph structure) to a select number of randomly chosen target methods.

    Code Graphs were genereated as part of the ARIS project (www.cs.nuim.ie/~dod/aris.html),   and the graph matching process already available from   drInventor.eu.

  • ********************************************

    Title:

    Project 29A

    Supervisor(s):
    Dr T Dowling
    Languages:
    References:
    Description:

    Please note that a 15 credit module should be outlined.

    54 48 49 53 50 52 4f 4a 45 43 54 43 4f 4e 43 45
    52 4e 53 41 4e 49 4e 56 45 53 54 49 47 41 54 49
    4f 4e 4f 46 50 59 54 48 4f 4e 41 53 41 48 41 43
    4b 49 4e 47 54 4f 4f 4c 2e 0d 0a 53 50 45 43 49
    46 49 43 41 4c 4c 59 57 45 57 49 4c 4c 43 4f 4e
    43 45 4e 54 52 41 54 45 4f 4e 55 53 49 4e 47 50
    59 54 48 4f 4e 41 53 41 57 45 42 52 45 43 4f 4e
    4f 52 41 4e 54 49 56 49 52 55 53 45 56 41 53 49
    4f 4e 54 4f 4f 4c 0d 0a 41 48 49 47 48 4c 45 56
    45 4c 4f 46 4d 41 54 48 45 4d 41 54 49 43 41 4c
    41 4e 44 50 52 4f 47 52 41 4d 4d 49 4e 47 41 42
    49 4c 49 54 59 41 53 57 45 4c 4c 41 53 41 4e 41
    42 49 4c 49 54 59 54 4f 57 4f 52 4b 49 4e 44 45
    50 45 4e 44 45 4e 54 4c 59 49 53 41 53 53 55 4d
    45 44 0d 0a 49 4e 54 45 52 45 53 54 45 44 53 54
    55 44 45 4e 54 53 4d 55 53 54 54 41 4b 45 54 48
    45 43 52 59 50 54 4f 47 52 41 50 48 59 4d 4f 44
    55 4c 45 54 48 49 53 59 45 41 52 0d 0a 49 46 59
    4f 55 41 52 45 49 4e 54 45 52 45 53 54 45 44 53
    45 4e 44 4d 45 41 4e 45 4d 41 49 4c 57 49 54 48
    56 4f 49 4c 45 4e 54 50 59 54 48 4f 4e 49 4e 54
    48 45 53 55 42 4a 45 43 54 46 49 45 4c 44 0d 0a
    50 4c 45 41 53 45 53 45 4e 44 4f 4e 59 4f 55 52
    54 48 49 52 44 59 45 41 52 4d 41 52 4b 41 4e 44
    41 43 4f 55 50 4c 45 4f 46 53 45 4e 54 45 4e 43
    45 53 41 42 4f 55 54 57 48 59 59 4f 55 57 41 4e
    54 54 4f 54 41 4b 45 4f 4e 41 43 52 59 50 54 4f
    47 52 41 50 48 59 50 52 4f 4a 45 43 54 41 53 57
    45 4c 4c 0d
     

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Project X

    Supervisor(s):
    Dr T Dowling
    Languages:
    References:
    Description:

    Please note that a 15 credit module should be outlined.

       5    10    15    20    25    30    35    40
     }?U&[ :E~O| }|E>| O:>&} ?O>OH ?E[O[ E&}^A I>}A{
        45    50    55    60    65    70    75    80
     |:S[} E]:I[ ?U|&S &}O{I ?U]?< OCO<E *{I}? O{I}U
        85    90    95   100   105   110   115   120
     |I<I> £[:E] :I{{U >]I%U <U}SI &HO<< I&I>I %U<U}
       125   130   135   140   145   150   155   160
     S}EHE :(U>£ O[O>£ O>}<S U&I&& A{O£U >}O:O &}O£&
       165   170   175   180   185   190   195   200
     }A£O> }&{A& }}I(O }?O|: S[}E] :I[?S {E£A< O}?U&
       205   210   215   220   225   230   235   240
     SOI:U *SEAI :OU>} O:O&} O£&O> £{OI> O{IU< HU}?>
       245   250   255   260   265   270   275   280
     OH?E[ OU>}? O&A%~ O|}*U O<£[< OI&O& O>£E> SEA:}
       285   290   295   300   305   310   315   320
     ?U:£S OI:{I :(I>£ I|EA[ <OE*& O>}O> |O&I% EA}H?
       325   330   335   340   345   350   355   360
     SSEAH I>}}E }I(OE >I|:S [}E]: I[?S[ :E~O| }I&HO
       365   370   375   380   385   390   395   400
     <<*U> I<<S< O}{O( >EH?E HSEA£ O|:S[ }O£}? U&|U[
       405   410   415   420   425   430   435   440
     ?O:}O N}}?O >ON}[ I:}U& }E?O< [HU}? }?O*: O^AO>
       445   450   455   460   465   470   475   480
     |SI>I <S&U& SEA>O O£}E£ O|:S[ }}?O| U[?O: }ON}I
       485   490   495   500   505   510   515   520
     [:E[E &O£|< I&&I| }UE>< IH&AU }HI&* U<O£I ]IU>&
       525   530   535   540   545   550   555   560
     }O^AU *INU> |<I}O }?A:& £ISOC O>U>] &?E:} <SI*}
       565   570   575   580   585   590   595   600
     O:}?O |E{[I >S:O[ E:}O£ }?I}I >A>[: O|O£O >}O£?
       605   610   615   620   625   630   635   640
     I|(?I £|E{[ :E{U& O£}?O [:UCI }OU>* E:{I} UE>E*
       645   650   655   660   665   670   675   680
     I%EA} {U<<U E>[OE [<OU> }?O|E {[<IU >}*U< O£U>[
       685   690   695   700   705   710   715   720
     E:}<I >£E:O *O£O: I<|EA :}A&O :&I<< O]O£O ^AU*I
       725   730   735   740   745   750   755   760
     NHI&> O]<U] O>}U> *IU<U >]}E[ :E}O| }|E>& A{O:£
       765   770   775   780   785   790   795   800
     I}I|? EE&U> ]}E&I CO{E> OSU>& }OI£E *&[O> £U>]E
       805   810   815   820   825   830   835   840
     >}O|? >U|I< &I*O] AI:£& }?I}| EA<£? ICO&} E[[O£
     

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Project XY

    Supervisor(s):
    Dr T Dowling
    Languages:
    References:
    Description:

    Please note that a 15 credit module should be outlined.

     

         5    10    15    20    25    30    35    40
     }?U&[ :E~O| }|E>| O:>&I >U>CO &}U]I }UE>U >}E&U
        45    50    55    60    65    70    75    80
     £O|?I >>O<[ :EE*U >]E*} ?O>A{ %O:}? OE:O} U|}:I
        85    90    95   100   105   110   115   120
     >&*E: {&S&} O{I?U ]?<OC O<E*{ I}?O{ I}U|I <I>£[
       125   130   135   140   145   150   155   160
     :E]:I {{U>] I%U<U }SI&H O<<I& I>I%U <U}S} EHE:(
       165   170   175   180   185   190   195   200
     U>£O[ O>£O> }<SU& I&&A{ O£U>} O:O&} O£&}A £O>}&
       205   210   215   220   225   230   235   240
     {A&}} I(O}? O|:S[ }E]:I [?S{E £A<O} ?U&SO I:U*S
       245   250   255   260   265   270   275   280
     EAI:O U>}O: O&}O£ &O>£{ OI>O{ IU<HU }?>}} U>}?O
       285   290   295   300   305   310   315   320
     &A%~O |}*UO <£[<O I&O&O >£E>S EA:}? U:£SO I:{I:
       325   330   335   340   345   350   355   360
     (I>£I |EA[< OE*&O >}O>| O&I%E A}H?S SEAHI >}}E}
       365   370   375   380   385   390   395   400
     I(OE> I|:S[ }E]:I [?S[: E~O|} I&HO< <*U>I <<S<O
       405   410   415   420   425   430   435   440
     }{O(> EH?EH SEA£O |:S[} O£}?U &|U[? O:}ON }}?O>
       445   450   455   460   465   470   475   480
     ON}[I :}U&} E?O<[ HU}?} ?O*:O ^AO>| SI>I< S&U&S
       485   490   495   500   505   510   515   520
     EA>OO £}E£O |:S[} }?O|U [?O:} ON}I[ :E[E& O£|<I
       525   530   535   540   545   550   555   560
     &&I|} UE><I H&AU} HI&*U <O£I] IU>&} O^AU* INU>|
       565   570   575   580   585   590   595   600
     <I}O} ?A:&£ ISOCO >U>]& ?E:}< SI*}O :}?O| E{[I>
       605   610   615   620   625   630   635   640
     S:O[E :}O£} ?I}I> A>[:O |O£O> }O£?I |(?I£ |E{[:
       645   650   655   660   665   670   675   680
     E{U&O £}?O[ :UCI} OU>*E :{I}U E>E*I %EA}{ U<<UE
       685   690   695   700   705   710   715   720
     >[OE[ <OU>} ?O|E{ [<IU> }*U<O £U>[E :}<I> £E:O*
       725   730   735   740   745   750   755   760
     O£O:I <|EA: }A&O: &I<<O ]O£O^ AU*IN HI&>O ]<U]O
       765   770   775   780   785   790   795   800
     >}U>* IU<U> ]}E[: E}O|} |E>&A {O:£I }I|?E E&U>]
       805   810   815   820   825   830   835   840
     }E&IC O{E>O SU>&} OI£E* &[O>£ U>]E> }O|?> U|I<&
     

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    RESPONSIBLE Server scanning and benchmarking

    Supervisor(s):
    Dr Tom Dowling
    Languages:
    References:
    Description:

    Please note that a 15 credit module should be outlined.

    The aim of the project is to use standard tools to scan and evaluate the security configuration of selected servers at NUIM and elsewhere.

    Objectives

    • Install the tools and get them working
    • Investigate and understand the type of tests the tools will perform
    • Scan the selected sites
    • Interpret the results
    • Code up and demo some of the attacks
    • Recommend improvements and fixes to the sites
    • Do this for NUIM sites and maybe compare with a govt server and a commercial server

     

    Student

    The student should have a good networks background with an interest in security.

    Taking the CS416 module would be very helpful.

    Capable of working independently and producing results

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Intelligent Charging of Electric Vehicles

    Supervisor(s):
    Dr. Edgar Galvan
    Languages:
    Python, Java
    References:
    Description:

     

    Evolutionary Algorithm are powerful optimisation techniques.  The charging of Electric Vehicles (EVs) poses some serious challenges to the grid. The goal of this project is to investigate how to optimise the intelligent charging of these EVs by means of Evolutionary Computation. In particular, we will use Differential Evolution which has proved to perform on this type of problems.  

     

  • ********************************************

    Title:

    Smart Data Collection Repository

    Supervisor(s):
    Dr. Ralf Bierig
    Languages:
    jQuery & Javascript for frontend; Java, PHP, or otherwise for backend. Lucene is a possible option for search engine.
    References:
    Description:

    Data repositories are useful for researchers to share data collections across domains to foster research collaboration. One example is UCI’s MLR  (http://archive.ics.uci.edu/ml/index.php). It however suffers from an aged user interface, does not assist researchers well in creating a data collection description page and relies on Google for search.

    Develop a smart(er) data collection repository that allows uploading CSV and ARFF data collections. The dataset can be uploaded first, and then the smart repository assists the researcher in setting up the description page by first analysing the dataset and then interactively suggesting and refining the dataset description (i.e. similar to http://archive.ics.uci.edu/ml/datasets/Las+Vegas+Strip) together with the researcher. This is done by analysing the upload and suggesting attributes, datatypes, possible useful machine learning methods that could be applied based on data types etc. All options should only be suggestive and the researcher should always have the option to change settings. The interface should be intuitive and support the user in tagging and describing the data set fast and with little effort. A search engine should be used to index the dataset descriptions and provide easy free-text search.

    This project would be most suitable for students with solid web application developemt skills. You should also be familiar with basic concepts of data mining and have a an understanding of Apache Lucene.

    Please email Ralf Bierig (ralf.bierig@mu.ie) if you are interested in this project

     

  • ********************************************

    Title:

    Automatic Moodle Quiz Tester

    Supervisor(s):
    Dr. Ralf Bierig, Dr. Hao Wu
    Languages:
    web front-end technologies (e.g. jQuery, HTML, Javascript); web back-end technologies (e.g. PHP, and MySQL)
    References:
    Description:

    Moodle is a learning management system that is widely used by schools and higher education institutes across Ireland and the world. Teachers and lecturers can provide and share content and evaluate students with assessments. Moodle quizzes are often used to evaluate student performance and inform the lecturer about progress being made.

    One of the shortcomings of Moodle quizzes are a limited support for testing. Like software, quizzes sometimes contain errors that are only discovered after the quiz was deployed to a classroom and results have been collected. Correcting for invalid point allocations and right/wrong answers after the test leads to potentially 100s of manual corrections by the lecturer.

    This project will look into developing a prototype for an Automatic Moodle Quiz Tester plugin that allows teachers and lecturers to create and configure tests that are associated to a quiz question in a question bank and stored within Moodle. These tests can then be automatically executed at once and a test report is created that points to potential problems.     

    The prospective student should be familiar with Moodle and web development --- both front-end technologies (e.g. jQuery, HTML, and Javascript) and back-end technologies (e.g. PHP, and MySQL).

    If you are interested in this project, please send an email to Dr. Ralf Bierig (ralf.bierig@mu.ie).

  • ********************************************

    Title:

    Machine Learning Algorithms for Classification of Imbalanced Data Sets

    Supervisor(s):
    Edgar Galvan
    Languages:
    Java
    References:
    Description:

    Classification is one of the most studied fields in Data Mining. Multiple Machine Learning (ML) algorithms have been proposed to classify data sets. However, they normally perform poorly when these sets are imbalanced. The goal of this project is to use a bio-inspired algorithm to tackle this problem. To this end, we will use well-known problems from the ML community.

  • ********************************************

    Title:

    Visualising Optimisation Using Javascript

    Supervisor(s):
    Edgar Galvan
    Languages:
    Javascript
    References:
    Description:

     

    Bio-inspired algorithms, such as Evolutionary Computation (Genetic Programming), Particle Swarm Optimisation, to mention a few examples are powerful algorithms that help us to optimise, for instance, resources. To get an idea if these algorithms are either working or failing in an specific task, we can visualise how they behave during search. The goal of this project is to read data from an algorithm and visualise the tendency of them, for instance, we can visualise the size of programs, number of branches, similarity between programs and more.

  • ********************************************

    Title:

    Controlling the size of programs in Genetic Programming

    Supervisor(s):
    Edgar Galvan
    Languages:
    Java
    References:
    Description:

    Genetic Programming (GP) is a powerful Evolutionary Algorithm. Its traditional tree-like structure representation makes it extremely powerful capable to, for instance, automatically create game-agente controllers. However, its representation is difficult to control. One of these problems is bloat: dramatic increase in the size of GP programs without necessarily  seeing a corresponding increase in performance. In this project, we will investigate several forms to control bloat and test our findings in well-known benchmark problems

  • ********************************************

    Title:

    Designing operators in genetic programming

    Supervisor(s):
    edgar.galvan@mu.ie
    Languages:
    Java.
    References:
    Description:

    Genetic Programming is a bio-inspired algorithm that has achieved extraordinary result in e.g., improving the perfomance of java code, automatic design of games and more. Key elements for the scucess or failure of genetic programming are the operators used in the system. The goal of this project is to investigate how we can improve the perfomance of the algorithm by exploring variants genetic operators.

     

  • ********************************************

    Title:

    Open project in bio-inspired algorithms

    Supervisor(s):
    edgar.galvan@mu.ie
    Languages:
    Java.
    References:
    Description:

    Bio-inspired algorithms are robust optimisation algorithms that have been successfully used in e.g., the design of game. Students are encouraged to contact me if they decide to study on this area and propose their own project based on Evolutionary Algorihtms (e.g., Genetic Algorithms, Genetic Programming, etc).

     

  • ********************************************

    Title:

    Hellbat: A New Tool for Resolving Dependency Hell

    Supervisor(s):
    Hao Wu
    Languages:
    Any major programming languages.
    References:
    Description:

    Category:  Automated Software Engineering and Artificial Intelligence.

    Difficulty: **

    This project aims to explore a new idea of resolving dependency issues among multiple shared packages or libraries when installing/uninstall/patching operations are performed. In particular, the system is able to help users to resolve dependency issues by providing a set of descriptive suggestions. The suggestions typically include a series of steps (operations) to be performed by users in order to resolve dependency hell and in the meanwhile preserving the integrity of the system. Ideally, the sugesstions generated are deterministic and guarantee to be provable at symbolic level.

    Note that: due to the nature of this project, the main aim here is to work on a relatively small case study so that the main theories can be generalised in a later stage.

  • ********************************************

    Title:

    μUran: An Engine for SAT/SMT based Reasoning Tools

    Supervisor(s):
    Hao Wu
    Languages:
    Java, C++ and Python.
    References:
    Description:

    Category: Programming Languages & Formal Methods.

    Difficulty: *

    The aim of this project is to develop an engine that allows users from Formal Methods community to switch among multiple SAT/SMT solvers for the best performance.  Therefore, you are responsible for writing a set of libraries to interact with different solvers.  This project is based on an existing engine Uran which already allows users to construct formulas in SMT2 standard (or CNF).  Currently, Uran uses Z3 SMT Solver as its default solver to perform incremental SMT solving.

    Note that this project will focus on programming, and you will use Java to build the engine and link with native libraries (therefore, knowledge of C++ is essential).  Further, you may need to use Python to write customised build scripts. You will also an opportunity to use a variety of design patterns.

    Uran is an open source project: https://github.com/classicwuhao/uran and successfully used in the tool MaxUSE: https://github.com/classicwuhao/maxuse.

  • ********************************************

    Title:

    Cyclone: An Automatic Test String Generating System for DFA

    Supervisor(s):
    Hao Wu
    Languages:
    Any major programming languages.
    References:
    Description:

    Category: Computer Science Education & Software Testing

    Difficulty: **

    Manually marking a large number of student’s assignments not only is very time consuming but also prone to mistakes.  As the increasing number of students enrolled each year within the department (Computer Science), this places a heavy burden on both lecturers and lab demonstrators.  In particular, those modules dealing with fundamental computational models and logic deduction proofs. This project aims to provide an automatic system that leverages the state-of-the –art techniques to generate a set of test strings for DFAs so that they can used for automatic grading and feedback. Note that this is a sister project to the project: automatic feedback to help stduents construct context free grammars. Therefore, you will have an opportunity to work with different people.

  • ********************************************

    Title:

    Computing with Euclid's elements (and a SAT solver)

    Supervisor(s):
    James Power
    Languages:
    References:
    Description:

    Euclid's 'Elements' have been a standard reference point for axiomatic theories for over two millennia.  Two of the foremost logicians of the last century, David Hilbert and Alfred Tarski, produced formal systems designed to model the logic of the 'Elements', and work is still ongoing in trying to come to terms with their exact logical content. More recent systems have concentrated on the computational aspects of the Elements, and have attempted to provide automated proofs and even a programming language based on it.

    This project will aim to provide a system for computing with Euclid's elements (book 1, at least).  The core idea is that  the proofs have both a constructive/computational part and a theory/proof part - thus it should be a little bit like design-by-contract in Spec#.  Following this line of thought, it should be possible to adapt an existing proof system to be a programming language sitting on top of a SAT solver, just like the other systems on the rise4fun.com website.

    Related work:

    - "Euclid and His Twentieth Century Rivals", Nathaniel Miller,
      CSLI Publications,  2007.
      See: http://mathsci.unco.edu/facstaff/Miller/personal/diagrams/

    - "A Formal System for Euclid's Elements",
      Jeremy Avigad, Edward Dean & John Mumma, Review of Symbolic Logic, 2009.
      See: http://www.johnmumma.org/

    - "The Euclid Abstract Machine",
      Jerzy Mycka, Jose Felix Costa and Francisco Coelho,
      International Journal of Unconventional Computing, 2008.


    Modules that are related to this project:
      CS357: Software Verification

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Feature location in source code

    Supervisor(s):
    James Power
    Languages:
    References:
    Description:

    Recent research has shown that text retrieval techniques such as LDA
    can be used for feature location in source code.  This project would
    seek to repeat these experiments to see if similar methods can be used
    for analysing Python code.

    Related work:


    "Exploring the Use of Deep Learning for Feature Location"
    Christopher S. Corley,  Kostadin Damevski and Nicholas A. Kraft
    2015 IEEE International Conference on Software Maintenance and Evolution,
    DOI: 10.1109/ICSM.2015.7332513

    Modules that are related to this project:
      CS310: Programming Languages & Compilers

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Discovering mereological relationships in Java programs

    Supervisor(s):
    James Power
    Languages:
    References:
    Description:

    UML has a number of ways of describing relationships between classes,
    such as association, composition, aggregation. These can be
    implemented in different ways, depending on what programming language
    you're using, and what tool you use to generate the code. However, it
    is reasonable to assume that the connections between classes in a Java
    program are much more complex that just these three patterns. there's
    actually a whole subject, called mereology, that's dedicated to
    studying and categorising whole-part relationships. This project would
    seek to use the existing mereological categorisations to describe what
    actually happens in Java programs.


    References:
        http://plato.stanford.edu/entries/mereology/
        http://asm.ow2.org/
        http://dx.doi.org/10.1007/s10992-008-9092-4
        http://dx.doi.org/10.1109/TSE.2003.1245307

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    A stand-alone Python parser

    Supervisor(s):
    James Power
    Languages:
    References:
    Description:

    The standard Python compilers has a hand-written scanner and a
    generated LL(1) (-ish) parser.  The goal of this project would be to
    replace these with a flex/bison generated scanner and parser and
    ideally developing a stand-alone Python front-end as a by-product.
    Verifying that you get the same abstract syntax tree (AST) as the
    CPython implementation would be the main focus of the project.

    Note that the Python parser is written in C, so this project would
    require good, low-level C hackery skills.

    References:
    https://docs.python.org/2/library/ast.html
    https://greentreesnakes.readthedocs.io/en/latest/

    Modules that are related to this project:
      CS310: Programming Languages & Compilers
     

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Syntactic Rule Usage

    Supervisor(s):
    James Power
    Languages:
    References:
    Description:

    A recent study of syntactic rule usage in Java has established a
    number of baseline measures for that language.  This project would
    repeat the experiments of that paper for C++, using the LLVM
    infrastructure.

    "Understanding the syntactic rule usage in Java"
    Dong Qiu, Bixin Lia, Earl T.Barr and ZhendongSu
    Journal of Systems and Software, 2017
    DOI: 10.1016/j.jss.2016.10.017

    Modules that are related to this project:
      CS310: Programming Languages & Compilers

     

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Plugin Development for the Unreal Game engine

    Supervisor(s):
    Joe Timoney
    Languages:
    C++
    References:
    • https://docs.unrealengine.com/latest/INT/Engine/Audio/
    • https://valvesoftware.github.io/steam-audio/
    Description:

    Good Sound design is an important feature of games. This project is about creating simple audio sound synthesis plugins for the Unreal game engine to demonstrate the principles of how it can be achieved. It required the steamOS SDK can be incorporated. Assistance will be given to pick the appropriate sound algorithms and get their implementation right.

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Text analysis Framework for lyric-based language learning practice system

    Supervisor(s):
    Joe Timoney and Brian Davis
    Languages:
    Java, python
    References:
    Description:

    Learning a second language is known to be a difficult task. The memorization of vocabulary requires lots of repetition, and fluency requires practice with exposure to many instances of common sentence constructs. Rote learning can be tedious and it has been accepted for some time that for a cohort of learners it can be beneficial to use songs as a way of reinforcing practice as the stimulation provided by the  music helps to keep the interest going. However, it is difficult to both choose song lyrics with a suitable educational content and then to rank them in terms of increasing difficulty. In particular, the ranking may not be clear cut as many factors contribute to making a song and its words easy to learn, and imparting to it an educational value. It would be a multi-optimization problem. One possibility of tackling this is to take a partially-ordered set approach (http://huckg.is/gisruk2017/GISRUK_2017_paper_31.pdf). The aim of this project is to build a framework for developing a lyrics-driven Natural language processing tool. The tool will extract lyrics from online databases such as musicmatch that provide an API (https://developer.musixmatch.com). It will then use NLP text analysis  tools for analyze the quality of the lyrics for certain words and constructs that are useful to language learning. Additionally, certain genres may be more useful for the educational task than others and the analysis could determine if this is actually the case. Then, user ratings of a subset will be used to help generate the final ranked partially ordered set

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Graph Visualisation and Manipulation of Distributed Digital Object Clusters using Peer-to-Peer networking

    Supervisor(s):
    John Keating
    Languages:
    References:
    • https://www.npmjs.com/package/p2p-node
    • http://peerjs.com
    • https://code.google.com/p/google-caja/source/browse/trunk/experimental/src/com/google/caja/demos/contact-spring-graph/spring-graph.js?r=2093
    • http://getspringy.com
    Description:

     

    Graph Visualisation and Manipulation of Distributed Digital Object Clusters using Peer-to-Peer networking

     

    This project will deliver a system, implemented using a full-stack JS framework, that realises a method for organising, managing and visualising clusters of related digital object nodes. Nodes will be a set of related documents, including, but not limited to: XML documents, simple relational database files, images and notes files. 

     

    Individual Node elements (the actual files belonging to the digital object) may be stored anywhere in the ad-hoc collaborative network, but each user will manage their own virtual file system implemented as a spring graph. Basic functionality should include drag-and-drop manipulation of the virtual filesystem, and the management of typed linkages between the node clusters.

     

    This is a challenging project, suitable for a student with considerable existing web development experience (PHP, etc.) and an interest in peer-to-peer networking and visualisation. The project could be made more challenging by conducting some kind of authoring or interaction support for users, eg. allowing saved queries to be run on the XML or RDB files, or image annotation or processing, saving image sets, writing guides, etc. A further challenge would include the ability to store data in some existing cloud based file storage, eg. DropBox.

     

    Please email John Keating (john.keating@nuim.ie) if you are interested in this project.

     

     

  • ********************************************

    Title:

    Nao Tag SLAM

    Supervisor(s):
    John McDonald
    Languages:
    Proficiency in C++ is essential to this project. This project will involve using a bit of linear algebra, which will be covered in classes such as CS410 Computer Vision or CS422 Robotics. So sitting one or both of these would be a help.
    References:
    • https://april.eecs.umich.edu/software/apriltag.html
    • https://www.youtube.com/watch?v=d9h_rd6bAwE
    • https://github.com/RainerKuemmerle/g2o
    Description:
    Simultaneous Localisation and Mapping (aka SLAM) is a central problem in the development of autonomous mobile robotics capable of operating in unknown and unstructured environments. SLAM poses the problem using data captured from a robot's sensors (e.g. camera) to map the structure of an unknown envrionment whilst simultaneously determining a robot's position and orientation relative to that map. The objective of this project is to design, implement and evaluate a constrained visual SLAM system for use on the Softbank Nao robot platform. Specifically we will try to develop an approach to mapping a set of 2D markers (e.g. barcodes) positioning arbitrarily within the robot's envrionment. Hence, the basic idea is that we will scatter a bunch of 2D visual tag (e.g. April Tags) on the ground, get the robot to walk around spotting the tags in its visual field, and then using a combination of tag detections and known odometry (i.e. how the robot has walked) create a unified map of the tags. The project will utilise an off-the-shelf open-source SLAM optimisation library (e.g. g2o) and a 2D tag detection and pose estimation library (e.g. April Tags), to allow the student to focus on the application level integration of the two technologies.
     

     

  • ********************************************

    Title:

    Robocup Nao Robot Calibration using the Pitch Centre Circle

    Supervisor(s):
    John McDonald
    Languages:
    Proficiency in C++ is essential to this project. This project will involve using a bit of linear algebra, which will be covered in classes such as CS410 Computer Vision or CS422 Robotics. So sitting one or both of these would be a help.
    References:
    Description:

    Robocup Overview

    RoboCup is an international research and education initiative aimed at fostering artificial intelligence and robotics research (www.robocup.org). It encompasses several different divisions, one of which uses Robot Soccer as a technical challenge motivating new research and applications of artificial intelligence.

    The overall aim of the Robocup Initiative is stated as follows:

    Robot playing soccer

    "By mid-21st century, a team of fully autonomous humanoid robot soccer players shall win the soccer game, comply with the official rule of the FIFA, against the winner of the most recent World Cup."

    RoboEireann, Maynooth University's Robocup team compete in the Standard Platform League, which is a RoboCup robot soccer league, in which all teams use identical robots. The robots operate fully autonomously, i.e. there is no external control, neither by humans nor by computers. The current standard platform used is the humanoid NAO by Aldebaran Robotics.

    Project Objective

    A major limitation in the RoboCup robotics soccer is the need to manually calibrate the for the position and orientation of the robot's camera sensors relative to its body frame. Currently this requires that a human operator place the robot at a known position and orientation on the pitch, take a number of image (e.g. 5 - 10), and then manually mark and identify field lines within the image. This process is very time consuming and prone to error. In this project we will develop a system that exploits the robot's ability to automatically detect the centre circle on pitch and then to use the known real-world geometry of the centre circle to calibrate the camera sensor.

     

  • ********************************************

    Title:

    Voice Control Plugin for Kodi

    Supervisor(s):
    Kevin Casey
    Languages:
    Python, C++
    References:
    Description:

    Build a voice control plugin for Kodi. The student can use an existing online speech recognition API, or better yet, a locally installed one such as Kaldi. The emphasis is on production quality code that the Kodi community will actually use, so testing is a must.

     

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    OCR with LSTM Neural Networks (evaluation)

    Supervisor(s):
    Kevin Casey
    Languages:
    C++, Python
    References:
    Description:

    Tesseract 4 is a new iteration of the popular OCR package, this time including a OCR engine based on LSTM neural networks. The goal of this project is to train Tesseract on a corpus of documents supplied by an industrial partner and to evaluate the subsequent performance against other versions of Tesseract. The test set can be extended by using tools such as ImageMagick to degrade original PDFs to scanned quality and evaluate the OCR performance on this generated test set.

     

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    VPLambda

    Supervisor(s):
    Kevin Casey
    Languages:
    Javascript, C, some PHP
    References:
    Description:

    Virtual Programming Lab (VPL) is a Moodle plugin to allow students to submit programs via Moodle to a server (a Jail Server) where the programs are executed, isolated from each other. The goal of this project is to replace the need for the Jail Server by writing a serverless Cloud Service based on AWS Lambda or Google Cloud Functions. This has the benefit of enhanced security (better isolation), better scalability, and removes the need to institutions to maintain their own Jail Server.

    We have already done some work in reverse engineering the existing VPL Jail Server which is not terribly well documented. The proposed project will continue this work, building a full set of tests written in Node.js (or similar). Once tests have been completed, work will begin on replacing the Jail Server with our own custom AWS Lambda-based one, which should pass those same tests.

     

     

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Theory: Friedberg unique numbering of r.e. sets

    Supervisor(s):
    Moser
    Languages:
    pen paper
    References:
    Description:
    WARNING: this is a theory project, i.e. pen and paper only, there is no programming involved. DO NOT choose a theory project to avoid programming. Choose a theory project because you like mathematical thinking (theorem-proofs). Writing proofs is not easier than writing programs.
     
    Friedberg constructed a one-one numbering of all r.e. sets, that is an effective list of all r.e. sets, such that every r.e. set appears exactly once in the list. The goal of this project is to generalise Friedberg's construction to give a one-one list of all partial recursive functions.
    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    automatic feedback to help students construct context free grammars

    Supervisor(s):
    Moser
    Languages:
    References:
    Description:

      In computer-aided education, the goal of automatic feedback is to provide a meaningful explanation of students' mistakes. The goal of this project is to create a tool providing feedback for constructing a deterministic pushdown automaton (or context free grammars) that accepts strings that match a described pattern. Natural choices for feedback are binary feedback (correct/wrong) and a counterexample of a string that is processed incorrectly.

    It could be coded on top of JFLAP for example, to avoid coding the graphical interface.

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Go channels in C++

    Supervisor(s):
    P Moser
    Languages:
    References:
    Description:

    The Go language has built-in facilities, as well as library support, for writing concurrent programs. The primary concurrency construct is the goroutine, a type of light-weight process. While a standard library package featuring most of the classical concurrency control structures (mutex locks, etc.) is available, idiomatic concurrent programs instead prefer channels, which provide send messages between goroutines. The goal of this project is to implement all the functionalities of Go channels in C++.

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    poker hud

    Supervisor(s):
    P Moser
    Languages:
    Compiled. Not java.
    References:
    Description:

    FreePokerDataBase is an open source poker hud, used to display statistics about opponents while playing poker online. The project has apparently been stopped.

    The goal of this project is to write a self-contained poker hud with most of FPDB's functionality.
    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Building a Verification Benchmark Suite (Comparing solutions in different tools)

    Supervisor(s):
    Rosemary Monahan
    Languages:
    Jave/C++/Dafny/Ada/C depending on the tools selected
    References:
    • Verification Competitions: http://www.pm.inf.ethz.ch/verifythis/Challenges.html
    • Sample problems already verified: http://toccata.lri.fr/gallery/
    • OpenJML: www.openjml.org/
    • SparkAda: http://www.spark-2014.org/
    • Dafny: https://github.com/Microsoft/dafny
    Description:

    We are interested in implementing and verifying algorithms to assist in the generation of a benchmark suite which allows the comparison of tools and the verification effort required in each. Examples of the type of algorithms that we are interested in can be seen in the VerifyThis competition series where challenges are presented in natural language and pseudo code. Here participants have to formalize the requirements, implement a solution, and formally verify the implementation. Sample solutions are available in a range of languages  e.g. http://etaps2016.verifythis.org/solutions.

    In this project we will add to the existing verification benchmarks by implementing and verifying algorithms in languages where a solution has not yet been provided. For example all VerifyThis competition challenges are already  implemented in Java and verified using Why3. This project requires verifying the same challenges in another veriffication tool. Suitable tools include SPARK with Ada, Frame-C with C, OpenJML with JML, or Code Contracts/Spec#/Dafny with C#/.Net. The project includes the comparison of the solutions in the chosen tool and existing solutions.

    We are interested in implementing and verifying algorithms to assist in the generation of a benchmark suite which allows the comparison of tools and the verification effort required in each. Examples of the type of algorithms that we are interested in can be seen in the VerifyThis competition series where challenges are presented in natural language and pseudo code. Here participants have to formalize the requirements, implement a solution, and formally verify the implementation. Sample solutions are available in a range of languages  e.g. http://etaps2016.verifythis.org/solutions.

    In this project we will add to the existing verification benchmarks by implementing and verifying algorithms in languages where a solution has not yet been provided. For example all VerifyThis competition challenges are already  implemented in Java and verified using Why3. This project requires verifying the same challenges in another veriffication tool. Suitable tools include SPARK with Ada, Frame-C with C, OpenJML with JML, or Code Contracts/Spec#/Dafny with C#/.Net. The project includes the comparison of the solutions in the chosen tool and existing solutions.

    We are interested in implementing and verifying algorithms to assist in the generation of a benchmark suite which allows the comparison of tools and the verification effort required in each. Examples of the type of algorithms that we are interested in can be seen in the VerifyThis competition series where challenges are presented in natural language and pseudo code. Here participants have to formalize the requirements, implement a solution, and formally verify the implementation. Sample solutions are available in a range of languages  e.g. http://etaps2016.verifythis.org/solutions.

    In this project we will add to the existing verification benchmarks by implementing and verifying algorithms in languages where a solution has not yet been provided. For example all VerifyThis competition challenges are already  implemented in Java and verified using Why3. This project requires verifying the same challenges in another veriffication tool. Suitable tools include SPARK with Ada, Frame-C with C, OpenJML with JML, or Code Contracts/Spec#/Dafny with C#/.Net. The project includes the comparison of the solutions in the chosen tool and existing solutions.

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Implementing a Hemodialysis machine

    Supervisor(s):
    Rosemary Monahan
    Languages:
    Java/C#/C++/C (Dependant on Tools chosen)
    References:
    • EB2ALL - The Event-B to C, C++, Java and C# Code Generator: http://eb2all.loria.fr/
    • OpenJML: www.openjml.org
    • Why3:http://why3.lri.fr/
    Description:

    A case study emphasizing the control of a hemodialysis machine is detailed in ://www.cdcc.faw.jku.at/ ABZ2016/HD-CaseStudy.pdf. This system has been modelled in formal languages and documented in publications at the ABZ 2016 conference. This project requires the implementation and verification of this system, verifying properities of the system as presented in the models. Suitable tools for verifying Java implementations include Why3/OpenJML

    For more details of the specification see:
    Medical device case study requirements document: http://www.cdcc.faw.jku.at/ABZ2016/HD-CaseStudy.pdf
    Papers with details specifications written in a formal language as listed on http://www.cdcc.faw.jku.at/ABZ2016/accepted/

     

     

     

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Building a Verification Benchmark Suite (Games)

    Supervisor(s):
    Rosemary Monahan
    Languages:
    References:
    Description:

    We are interested in implementing and verifying algorithms to assist in the generation of a benchmark suite which allows the comparison of tools and the verification effort required in each. Examples of the type of algorithms that we are interested in can be seen in the VerifyThis competition series where challenges are presented in natural language and pseudo code. Here participants have to formalize the requirements, implement a solution, and formally verify the implementation. Sample solutions are available in a range of languages  e.g. http://etaps2016.verifythis.org/solutions.

    In this project we will add to the existing verification benchmarks by implementing and verifying algorithms which are not already in the benchmark suite. Suitable algorithms include simple games (such as 4-in-a-row games, or tic-tac-toe, or counting games like Nim). In such projects students should avoid getting overly involved with the UI as that is not something easily verified. The focus will be on providing the implementation,  pre-/post-condition clauses on relevant methods and invariants for loops and classes. One goal would be to verify the implementation of a known winning strategy.

    Suitable tools include Why3 with Java/C++/ML, for SPARK with Ada, Frame-C with C, OpenJML with JML, or Code Contracts/Spec#/Dafny with C#/.Net.

    5 ECTS Avialability:
    A 5 ECTS project option is available.
  • ********************************************

    Title:

    Drones: In-Frame Object Positioning & Measurement Tool

    Supervisor(s):
    Tim McCarthy
    Languages:
    References:
    Description:

    Design, code and test a Web-based application or tool that enables common 'off the shelf' airborne drone video and navigation streams, captured from drones, to be processed, synchronised and presented on a dynamic moving map. The end-user should be able to choose an aerial video clip from a collection, load the video clip and associated navigation into a Web page comprising W3C compliant dynamic map and multimedia containers. The user should be able to click on objects in the video frame and retrieve single point geographic position (Latitiude, Longitude) as well as compute linear and areal measurements. The candidate will need to consider camera models, 3D Positioning/Orientation, 2D/3D perspective transformations, the role of Digital Elevation Models as well as Data Quality aspects. Positional computation can vary from simple 3D single orientation scenarios to more complex imaging geometries. The candidate will be encouraged to explore how this tool can be configured to operate in near real-time with 'live' video/navigation, downlinked from airborne drones and made available to a cloud based video streaming service through the Ground Station (GS). The candidate will have access to a fully licensed drone with live streaming video/navigation downlinks close to the campus. Open Source  will be used throughout this project (PhP/Jquery, PostgreSQL/PostGIS, Openlayers etc). Contact tim.mccarthy@mu.ie