Advertisement
Guest User

Untitled

a guest
Oct 3rd, 2018
1,161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 72.10 KB | None | 0 0
  1. moRecommended Reading:" The Essence of Computing Projects: A Students Guide ", Dawson, Prentice-Hall (2000).
  2.  
  3. Note: No projects can be allocated until the first week of the academic year 2018/2019.
  4.  
  5. Final Year Project Handbook
  6.  
  7. Listing of Current Projects Available
  8.  
  9. Sort bySupervisor(s)
  10.  
  11. OrderAscDesc
  12.  
  13. ********************************************
  14.  
  15. Title:
  16.  
  17. Graph Retrieval based on Toplogy - using nearest neighbour
  18.  
  19. Supervisor(s):
  20.  
  21. Languages:
  22.  
  23. Python, NetworkX, SciKit,
  24.  
  25. References:
  26.  
  27. Description:
  28.  
  29. How can we best find & retrieve identically and similarly "structured" graphs - from a large database of such knowledge graphs? By similarly structured, i mean having the same size and connectivity, Where each graph is formed by nodes inteconnected by edges. 
  30.  
  31. Devise a set of attributes to support the identification and retrieval of similar knowledge graphs. This might use the Pythons NetworkX library, that has many possible attributes that may be useful.
  32.  
  33. Evaluation will use a wide range of existing graphs automatically derived from different sources: C#, Psychology test materials, papers in Computer graphics, Patent applications. 
  34.  
  35. Can a single set of attributes support all datasets? Do we need to tailor our attributes for different types of data? Evaluation will be partly based on the ability of your retrieved graphs to form a mapping with some collection of target graphs.
  36.  
  37. Language: Python, SciKit, NetworkX.
  38.  
  39. ********************************************
  40.  
  41. Title:
  42.  
  43. Any project on Machine Learning / Evolutionary Algorithms
  44.  
  45. Supervisor(s):
  46.  
  47. Languages:
  48.  
  49. Java, C++, Python
  50.  
  51. References:
  52.  
  53. Description:
  54.  
  55. A student is encouraged to contact me, shall he/she would like to propose a project in Machine Learning or Evolutionary Algorithms.
  56.  
  57. Supervisor: edgar.galvan@mu.ie
  58.  
  59. 5 ECTS Avialability:
  60.  
  61. A 5 ECTS project option is available.
  62.  
  63. ********************************************
  64.  
  65. Title:
  66.  
  67. Theory project: Rice theorem or Friedberg unique numbering or r.e. sets
  68.  
  69. Supervisor(s):
  70.  
  71. Languages:
  72.  
  73. pen paper
  74.  
  75. References:
  76.  
  77. Description:
  78.  
  79. WARNING: these are theory projects, 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 harder than writing programs.
  80.  
  81. Two projects available:
  82.  
  83.  
  84. 1. Rice theorem (studied in CS370) says that
  85. every set of Turing machines that accept some specified set of strings is undecidable.
  86. A former FYP proved extensions of the restricted theorem studied in class, namely
  87. two machines, machine and string combinations etc. The proof used the recursion theorem. The goal of this project is to revisit this former FYP and:
  88.  
  89. i. prove the results without using the recursion theorem.
  90.  
  91. ii. extend Rice to more general cases.
  92.  
  93. iii. present the material from the pov of index sets.
  94.  
  95. 2.
  96. 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.
  97.  
  98. 5 ECTS Avialability:
  99.  
  100. A 5 ECTS project option is available.
  101.  
  102. ********************************************
  103.  
  104. Title:
  105.  
  106. App-based control and analysis of balance beam system
  107.  
  108. Supervisor(s):
  109.  
  110. Aidan Mooney and Seamus McLoone
  111.  
  112. Languages:
  113.  
  114. References:
  115.  
  116. Description:
  117.  
  118.  
  119.  
  120. This is a 5ECT Project!
  121.  
  122. The balance beam ion Electronic Engineering contains a motorised fan to raise and lower the beam. It also has an encoder that gives information regarding the angle of the beam. Both the fan and encoder are connect to an Arduino microprocessor which, in turn, is currently connected to a PC, where appropriate software is used to automatically control the position of the beam depending on the encoder information.
  123.  
  124. For this project (5 ECTS), a student should create an Android app (connected via Bluetooth to the Arduino) that will allow control and analysis of the balance beam system. For examples, the app should include features that allow the user to control the speed of the fan and also to visualise the movement of the beam (via a moving graph, or similar).
  125.  
  126. (Further information & demo of current system can be provided on request)
  127.  
  128.  
  129.  
  130. 5 ECTS Avialability:
  131.  
  132. A 5 ECTS project option is available.
  133.  
  134. ********************************************
  135.  
  136. Title:
  137.  
  138. Software development for holographic microscopy with application to 3D cell imaging for pathology and cancer diagnostics.
  139.  
  140. Supervisor(s):
  141.  
  142. Bryan Hennelly
  143.  
  144. Languages:
  145.  
  146. References:
  147.  
  148. Description:
  149.  
  150. Degree Stream: CSSE
  151.  
  152. Supervisor: Bryan Hennelly
  153.  
  154. Project Description:
  155.  
  156. Holographic microscopy involves capturing an interference pattern between an object wave and a reference wave from a laser. This interference pattern is captured on a digital camera and this image is then ‘back propagated’ any desired distance using a computer algorithm that simulates light propagation. This allows a much larger depth of focus than traditional microscopy as well as allowing for recovering the 3D shape of the biological cell. In this project the student will help to build (and add functionality to) a graphical user interface that is already in construction and to perform various image processing tasks as well as display the 3D image of the cells.
  157.  
  158. This will be achieved using a Java based open source toolbox. The student will also investigate classifying between different types of cancer cell using image processing, with applications in clinical pathology. The student will work closely with opto-electronic experimentalists. The student will benefit from a close collaboration between the research team, as well as clinicians in the biology department and hospital collaborators as well.
  159.  
  160. Required Technical Competences (Indicative): Very strong programming skills are required as well as strong mathematics; student should be conformable with Java and C++ and have an aptitude for physics.
  161.  
  162. Expected Procedure:
  163.  
  164. The student will be expected to:
  165.  
  166. Familiarise themselves with laser optical implementation of digital holographic microscopy (DHM).Familiarise themselves with numerical algorithms to simulate light propagation and reconstruct a digital hologram from the recorded interference intensity pattern. This can be done in C++ or Java.Familiarise themselves with the open source micromanager software package.Add functionality to an existing GUI using Java/Netbeans.Implement new image processing algorithms to run below GUI with assistance from the supervisor).Apply system to image and display 3D bladder cancer cells.Investigate potential for using 3D image processing to classify healthy and cancerous cells.Export algorithms to Graphics Processing Units (GPUs) for faster (parallel) implementation.
  167.  
  168. Brief statement on relevance to CS programs offered at NUI Maynooth:
  169.  
  170. This project is multi-layered. The top layer is to design a simple GUI using an open source toolbox. The second layer is to implement a number of well-known and novel image processing algorithms that operate beneath the GUI. The final layer is application based.
  171.  
  172. Some Typical Progress Requirements:
  173.  
  174.      Pass: Adequate progress in Steps 1 to 4.
  175.  
  176.      Honours: Adequate progress in Steps 1 to 6.
  177.  
  178.      High Honours: Same as the honours requirements but with the addition of Steps 7 and 8.
  179.  
  180. Resources Required:
  181.  
  182. A computer with MSVS2010 and MatLab installed.Access to digital holographic microscope in optics lab.
  183.  
  184. References:
  185.  
  186. [1] Rappaz, B., Barbul, A., Emery, Y., Korenstein, R., Depeursinge, C., Magistretti, P. J. and Marquet, P. (2008), Comparative study of human erythrocytes by digital holographic microscopy, confocal microscopy, and impedance volume analyzer. Cytometry, 73A: 895–903.[2] Kim, Myung K. Digital Holographic Microscopy. Springer New York, 2011.[3] Marquet, Pierre, et al. "Digital holographic microscopy: a noninvasive contrast imaging technique allowing quantitative visualization of living cells with subwavelength axial accuracy." Optics letters 30.5 (2005): 468-470.
  187.  
  188.  
  189.  
  190. ********************************************
  191.  
  192. Title:
  193.  
  194. Software development for holographic microscopy with application to 3D cell imaging for pathology and cancer diagnostics.
  195.  
  196. Supervisor(s):
  197.  
  198. Bryan Hennelly
  199.  
  200. Languages:
  201.  
  202. References:
  203.  
  204. Description:
  205.  
  206. Degree Stream: CSSE
  207.  
  208. Supervisor: Bryan Hennelly
  209.  
  210. Project Description:
  211.  
  212. Holographic microscopy involves capturing an interference pattern between an object wave and a reference wave from a laser. This interference pattern is captured on a digital camera and this image is then ‘back propagated’ any desired distance using a computer algorithm that simulates light propagation. This allows a much larger depth of focus than traditional microscopy as well as allowing for recovering the 3D shape of the biological cell. In this project the student will help to build (and add functionality to) a graphical user interface that is already in construction and to perform various image processing tasks as well as display the 3D image of the cells.
  213.  
  214. This will be achieved using a Java based open source toolbox. The student will also investigate classifying between different types of cancer cell using image processing, with applications in clinical pathology. The student will work closely with opto-electronic experimentalists. The student will benefit from a close collaboration between the research team, as well as clinicians in the biology department and hospital collaborators as well.
  215.  
  216. Required Technical Competences (Indicative): Very strong programming skills are required as well as strong mathematics; student should be conformable with Java and C++ and have an aptitude for physics.
  217.  
  218. Expected Procedure:
  219.  
  220. The student will be expected to:
  221.  
  222. Familiarise themselves with laser optical implementation of digital holographic microscopy (DHM).Familiarise themselves with numerical algorithms to simulate light propagation and reconstruct a digital hologram from the recorded interference intensity pattern. This can be done in C++ or Java.Familiarise themselves with the open source micromanager software package.Add functionality to an existing GUI using Java/Netbeans.Implement new image processing algorithms to run below GUI with assistance from the supervisor).Apply system to image and display 3D bladder cancer cells.Investigate potential for using 3D image processing to classify healthy and cancerous cells.Export algorithms to Graphics Processing Units (GPUs) for faster (parallel) implementation.
  223.  
  224. Brief statement on relevance to CS programs offered at NUI Maynooth:
  225.  
  226. This project is multi-layered. The top layer is to design a simple GUI using an open source toolbox. The second layer is to implement a number of well-known and novel image processing algorithms that operate beneath the GUI. The final layer is application based.
  227.  
  228. Some Typical Progress Requirements:
  229.  
  230.      Pass: Adequate progress in Steps 1 to 4.
  231.  
  232.      Honours: Adequate progress in Steps 1 to 6.
  233.  
  234.      High Honours: Same as the honours requirements but with the addition of Steps 7 and 8.
  235.  
  236. Resources Required:
  237.  
  238. A computer with MSVS2010 and MatLab installed.Access to digital holographic microscope in optics lab.
  239.  
  240. References:
  241.  
  242. [1] Rappaz, B., Barbul, A., Emery, Y., Korenstein, R., Depeursinge, C., Magistretti, P. J. and Marquet, P. (2008), Comparative study of human erythrocytes by digital holographic microscopy, confocal microscopy, and impedance volume analyzer. Cytometry, 73A: 895–903.[2] Kim, Myung K. Digital Holographic Microscopy. Springer New York, 2011.[3] Marquet, Pierre, et al. "Digital holographic microscopy: a noninvasive contrast imaging technique allowing quantitative visualization of living cells with subwavelength axial accuracy." Optics letters 30.5 (2005): 468-470. 
  243.  
  244. ********************************************
  245.  
  246. Title:
  247.  
  248. Building and testing software for a Lensless On-Chip Microscopy system for pathology applications
  249.  
  250. Supervisor(s):
  251.  
  252. Bryan Hennelly
  253.  
  254. Languages:
  255.  
  256. References:
  257.  
  258. Description:
  259.  
  260. Background:
  261.  
  262. High-resolution optical microscopy has traditionally relied on high magnification and high–numerical aperture objective lenses. In contrast, lensless microscopy can provide high-resolution images without the use of any focusing lenses, offering the advantages of a large field of view, high resolution, cost-effectiveness, portability, and depth-resolved three dimensional (3D) imaging. At the heart of this method is holography, superresolution 3D imaging, and iterative phase recovery, all of which are computational techniques, which are typically necessary to reconstruct meaningful images from the raw data captured by digital image sensors. When these approaches are combined with physical innovations in sample preparation and fabrication, lensless imaging can be used to image and sense cells, viruses, nanoparticles, and biomolecules.
  263.  
  264. Project:
  265.  
  266. In this project the student will take-up/continue an existing project to build a lensless microscopy system using a 10Megapixel image sensor. Raw images will be recovered using a usb CMOS camera shield and will be processed using C++/Java/Matlab. Programming and digital signal processing make up a large component of this project; In this project the student will help to build (and add functionality to) a graphical user interface that is already in construction and to perform various image processing tasks as well as display the 3D image of the cells. Initial testing of image processing may take place using matlab before implementation using the Java based open source toolbox. Time permitting, the student will also investigate classifying between different types of cancer cell using image processing, with applications in clinical pathology. The student will work closely with opto-electronic experimentalists. The student will benefit from a close collaboration between the research team, as well as clinicians in the biology department and hospital collaborators as well.
  267.  
  268. Additional Prerequisites: The student should have a strong aptitude for problem solving and should have very strong Java programming skills and signal processing skills. Any experience in image processing will be useful. A lack of programming skills using an IDE such as eclipse for example will seriously impact on ability to progress in this project.
  269.  
  270. Expected Procedure:
  271.  
  272. The student will be expected to:
  273.  
  274. Perform a literature review.Familiarise themselves fully with existing device and existing code base for microscope GUI.Record and compare a number of images of a test object using two different laser sources (1>a fiber coupled laser diode and 2>an inexpensive VCSEL)Add functionality for autofocusing to software (with help of supervisor).Test on a range of different samples including pathological slides with bladder cancer cells.Add functionality to improve the resolution of the images by subpixel shifting of the sensor. This can be achieved using Arduino controlled motors that can be controlled by the GUI.Test the new super resolution system on pathology slides containing bladder cancer cells, and investigate the potential of the method to classify/diagnose different cell types.  Investigate application of Graphics Processing Units to implement algorithms at high speed.
  275.  
  276. Brief statement on relevance to the CSSE programme offered at NUI Maynooth
  277.  
  278. Hardware Control, Computer Vision, Signal processing; Mathematics, Programming, Imaging; biomedical engineering
  279.  
  280. Some Typical Progress Requirements:
  281.  
  282.      Pass: Adequate progress in Steps 1 to 5.
  283.  
  284.      Honours: Adequate progress in Steps 1 to 7.
  285.  
  286.      High Honours: Adequate progress in Steps 1 to 8.
  287.  
  288. Resources Required:·       
  289.  
  290. A computer with MatLab/Java/C++ installed, Arducam module, laser diode, VCSEL and power source. Access to 3D printer.
  291.  
  292. References:
  293.  
  294. ·http://www.arducam.com/category/tutorial/·Ozcan, Aydogan, and Euan McLeod. "Lensless imaging and sensing." Annual Review of Biomedical Engineering 18 (2016): 77-102. Gurkan, Umut Atakan, et al. "Miniaturized lensless imaging systems for cell and microorganism visualization in point‐of‐care testing." Biotechnology journal 6.2 (2011): 138-149. Kim, Sang Bok, et al. "Lens-free imaging for biological applications." Journal of laboratory automation 17.1 (2012): 43-49. Seo, Sungkyu, et al. "High-throughput lens-free blood analysis on a chip." Analytical chemistry 82.11 (2010): 4621
  295.  
  296. Figures
  297.  
  298. The figures bleow shoow (1) the basic principle of lensless DHM and (2) an exisitng module that we have built in a previous project and whcih will form the basis of this project.
  299.  
  300. ********************************************
  301.  
  302. Title:
  303.  
  304. Natural Language Generation
  305.  
  306. Supervisor(s):
  307.  
  308. D. O'Donoghue
  309.  
  310. Languages:
  311.  
  312. Python (v 3.5.4)
  313.  
  314. References:
  315.  
  316. Description:
  317.  
  318. This system will present information to a user in the form of Natural Language (English) sentences. Specifically, your project will present analogical inferences (arising from a comparison between two knowledge graphs) to a user in the form of a natural language sentences. The knowledge you are trying to convey will be generated internally in the compressed form of (noun verb noun) triples, such as (man drive car).  Your natural language generator will translate this into more natural sentences in the form “That man drove the big yellow car”.
  319.  
  320. Your project will also implement a simple system for generating the inference triples that will drive the NLG system. You will evaluate your system using analogies between academic publications and some texts used in psychology experiments.
  321.  
  322. Use NLGLib (https://pypi.org/project/nlglib/) and SimpleNLG(https://github.com/simplenlg/simplenlg).  
  323.  
  324. ********************************************
  325.  
  326. Title:
  327.  
  328. Python GUI for Lex2Map
  329.  
  330. Supervisor(s):
  331.  
  332. D. O'Donoghue
  333.  
  334. Languages:
  335.  
  336. Python (v 3.5.4), Stanford Parser, SimpleNLP (plus Python libraries including: NLGLIB, Networkx & many others)
  337.  
  338. References:
  339.  
  340. Description:
  341.  
  342. Investigate various libraries to create a GUI for the Lex2Map. Your GUI will present the text of two analogous documents that are being compared, as well as any inferences that arise from that comparison. Your system also allow the user to load multiple text files into Lex2Map and then use our existing code to search for analogies between these documents. The user should also be able to enter text directly into the interface (ie without accessing the file system).  The user should also be able to view the graphs that have been generated from these text based documents.
  343.  
  344. Your interface should also display the knowledge graph (stored using NetoworkX), should display various metrics associated with each analogy. You system will also record any user provided ratings for various parts of each comparison.
  345.  
  346. You system will track user activity and any indicators of the users implicit focus of attention, in order to obtain evidence for/against the quality of data being displayed.
  347.  
  348.  
  349. Your GUI will need to support all other parts of Lex2Map, so you will offer a fully functional tool to your users.
  350.  
  351. Python (v 3.5.4), Stanford Parser, SimpleNLP (plus Python libraries including: NLGLIB, Networkx & many others)
  352.  
  353. 5 ECTS Avialability:
  354.  
  355. A 5 ECTS project option is available.
  356.  
  357. ********************************************
  358.  
  359. Title:
  360.  
  361. Graph Retrieval – for sub-graph isimorphism
  362.  
  363. Supervisor(s):
  364.  
  365. D. O'Donoghue
  366.  
  367. Languages:
  368.  
  369. Python, SckKit library (maybe scikit-learn.org/stable/modules/neighbors.html), NetworkX (https://networkx.github.io/documentation/stable/reference/algorithms/isomorphism.html)
  370.  
  371. References:
  372.  
  373. Description:
  374.  
  375. How can we best find & retrieve identically and similarly structured graphs? That is, graphs of similar sigze that also have a similar connectivity amongst their nodes.
  376.  
  377. Devise a set of attributes to support the identification and retrieval of knowledge graphs. This might use Pythons NetworkX library to generate a range of numeric descriptors that describe different facets of graph structure.
  378.  
  379. The graphs you will use for testing will be automatically derived from different sources to represent varied information sources: including C#, Java and diverse English documents.
  380.  
  381. Can a single set of attributes support retrieval of all datasets? Do we need to tailor our attributes for different types of data? How do we measure the accuracy of our retrieval process?
  382.  
  383. ********************************************
  384.  
  385. Title:
  386.  
  387. Mapping between two Graphs (VF3)
  388.  
  389. Supervisor(s):
  390.  
  391. D. O'Donoghue
  392.  
  393. Languages:
  394.  
  395. Python, also look at NetworkX package.
  396.  
  397. References:
  398.  
  399. Description:
  400.  
  401. You will examine algorithms for finding the largest possible mapping between two knowledge graphs.
  402.  
  403. This will include the recent VF3 algorithm for graph mapping (finding the maximum common subgraph - https://en.wikipedia.org/wiki/Maximum_common_edge_subgraph).
  404.  
  405. You will evaluate your implementation on a selection of existing graphs that were generated from data in English and/or C#.
  406.  
  407. Your implementation will be written in Python using as many existing resources as you can find, including the source code for VF2. Compare your implementation to the implementation to the VF2 isomorphism.GraphMatcher(G1,G2) method that is part of the NetworkX Python package.
  408.  
  409. (largest Commopn Subgraph (or Maximum Common Subgraph MCS) is an NP-Complete problem, but VF3 has been shown to be very efficien. 
  410.  
  411. Pythons NetworkX package has a method "GraphMatcher(G1,G2)" to act as a benchmark, using the earlier VF2 algorithm.
  412.  
  413.  
  414. Image: The Maximum Common Subgraph showing the similarity between two knowledge graphs (in blue and black)
  415.  
  416. ********************************************
  417.  
  418. Title:
  419.  
  420. Molecular computing
  421.  
  422. Supervisor(s):
  423.  
  424. Damien Woods
  425.  
  426. Languages:
  427.  
  428. Mathematics. Python,
  429.  
  430. References:
  431.  
  432. Description:
  433.  
  434. We have a new research group at Maynooth University (Hamilton Inst & CS) and are looking for new people excited about research and interested in a challenging but rewarding project at the cutting-edge of science. for 4th year projects, the background is being covered in cs430, so you should be attending those lectures to get a feeling for the material.  
  435.  
  436.  
  437.  
  438. Summary of our group’s interests: We carry out fundamental research on molecular computers made out of DNA. A molecular computer is a collection of carefully engineered molecules in a test tube that interact and bump into each other to solve some mathematically-specified computational problem. We focus on both the underlying computational theory and practical implementation in the lab. Theoretical work involves mathematically analysing models of computation, characterising their computational power and inventing new models. We then build these molecular computers using DNA in the wet-lab (although this will probably not be part of your project since our lab is only now being set up!).
  439.  
  440.  
  441.  
  442. I can offer project(s) on:
  443.  
  444.  
  445.  
  446. 1. Theory (proving theorems about self-assembly/tiling-based models of computation), or molecular robotics-based models of computation. You should be exciting about the fundamentals of computer science theory (Turing machines, complexity theory, algorithms). Here is a review article (http://web.cs.ucdavis.edu/~doty/papers/tasa.pdf), and short video (https://cacm.acm.org/magazines/2012/12/157881-theory-of-algorithmic-self...), giving an overview of the Theory of Algorithmic Self-Assembly.  For my own interests take a look at my publications (https://dna.hamilton.ie/woods/#pubs). I will be discussing this topic in cs430. Also, here is a seminar about one topic -- part 1: https://www.dailymotion.com/video/x28nhzx , part 2:https://www.dailymotion.com/video/x28ni0m. 
  447.  
  448.  
  449.  
  450. 2. DNA sequence design for self-assembly. Here the goal is design set of DNA sequences (e.g. "TTTTTTGGGGGGCC", "GGCCCCCCAAAAAA" are two DNA sequences that bind to each other perfectly) that act as tile and come to together to self-assemble a structure. In particular we will be trying to find sequence with very special properties that lend themselves well to molecular computation. I will be discussing this in cs430. 
  451.  
  452.  
  453.  
  454. 3. Any project related to theory of computation, or molecular computing. Hit me with your ideas! 
  455.  
  456.  
  457.  
  458. See also: https://dna.hamilton.ie/
  459.  
  460. And in particular: https://dna.hamilton.ie/join/
  461.  
  462.  
  463.  
  464. ********************************************
  465.  
  466. Title:
  467.  
  468. A Logger for User Behaviour on the Web
  469.  
  470. Supervisor(s):
  471.  
  472. Dr. Ralf Bierig
  473.  
  474. Languages:
  475.  
  476. Javascript; NodeJS; MongoDB
  477.  
  478. References:
  479.  
  480. Description:
  481.  
  482. User experiments on the web often involve logging a comprehensive set of actions that participants of such experiments exhibit. The aim is to collect raw data about these behaviors in the background without disturbing the natural flow of activities. This data is then later used to analyse and learn about users' information experience.
  483.  
  484. Develop a small, efficient and flexible logger for such experiments as a browser plug-in for Chrome that may include client-sided (jQuery, JS) and server sided scripting (NodeJS).
  485.  
  486. The Logger should offer a wide range of types of data being logged, such as a) keystroke events, b) mouse clicks and mouse movements c) web page access events an others.
  487.  
  488. The researcher should be able to comfortably configure the types of information and the level of detail that needs logging, bundle this configuration with the plugin and distribute it to participants. For example, the key-logging feature could be restricted to a number of specific keys (whitelist) or include all but a few unimportant keys (blacklist). Likewise, it would be possible to focus the webpage-logging feature to a number of explicit website (whitelist) or include all but a few selected, unimportant pages (blacklist). Mouse-movement logging could for example be limited to a certain precision. Other adaptations are possible and the student is expected to propose own ideas.
  489.  
  490. ********************************************
  491.  
  492. Title:
  493.  
  494. Multiple IoT projects available.
  495.  
  496. Supervisor(s):
  497.  
  498. Dr. Stephen Brown
  499.  
  500. Languages:
  501.  
  502. To be selected. Probably arduino on the sensor board. Possibly php or python on the server.
  503.  
  504. References:
  505.  
  506. Description:
  507.  
  508. Design and develop an internet of things (IoT) data collection, analysis, and presentation system using wireless nodes.
  509. The wireless techonology will be Sigfox and/or Wi-Fi.
  510. You will select appropriate frameowrks, languages and databases for scripts to collect and process the data.
  511. You will selection appropriate technologies and languages to display the data to an end user in a browser (and optionally in a mobile app also).
  512.  
  513. Your project will include a review of research in the area and available products.
  514.  
  515. Each project will have a different purpose, and appropriate sensors to collect the data. Some suggestions:
  516. - location tracking (perhaps using dead reckoning when GPS loses signal)
  517. - security intrusion (multi-sensor fusion)
  518. - collision prediction (using distance and speed to trigger a warning)
  519. - supplies monitoring and replacement prediction (perhaps weight-based which requires appropriate signal processing to interpret)
  520. - vehicle-to-vehicle collision prediction (using GPS and possibly IEEE802.15.4 wireless)
  521. - you are welcome to suggest your own application
  522.  
  523. All projects are likely to include some statistical processing, accuracy determination, and a prediction model.
  524.  
  525. 5 ECTS Avialability:
  526.  
  527. A 5 ECTS project option is available.
  528.  
  529. ********************************************
  530.  
  531. Title:
  532.  
  533. Playing Games with Monte Carlo Tree Search
  534.  
  535. Supervisor(s):
  536.  
  537. edgar.galvan@mu.ie
  538.  
  539. Languages:
  540.  
  541. Either Python, Java, C++
  542.  
  543. References:
  544.  
  545. Description:
  546.  
  547. Please note that a 15 credit module should be outlined.Artificial Intelligence (AI) techniques and their applicability in the development of the multi- billion dollar video game industry have been with us for many years. The development of a new research field, Monte Carlo Tree Search (MCTS), promises to have a profound positive impact on AI for games. MCTS can be applied to any domain where simulation and statistical modelling can be used to predict outcomes.  
  548.  
  549.  
  550.  
  551. The positive impact of using MCTS in games can be understood by considering its impressive results achieved on the game of Go, where MCTS has been able to beat professional players, something unthinkable a few years ago, given the intractability of its decision space along with the need of problem-specific knowledge. MCTS has also been used in non-specialised scenarios where it is impossible to use problem-specific knowledge, such as in General Game Playing, where world champion MCTS players have been created. 
  552.  
  553.  
  554.  
  555. Undoubtedly, MCTS has achieved extraordinary results. However, there has been to date no unified effort to make it more optimal/robust (e.g., use less samplings while still maintaining a good performance).  In this project we will compare different variants of MCTS and see how we can improve the algorithm. To this end, we will compare the algorithms using different games
  556.  
  557. 5 ECTS Avialability:
  558.  
  559. A 5 ECTS project option is available.
  560.  
  561. ********************************************
  562.  
  563. Title:
  564.  
  565. Visualising Optimisation Using Javascript
  566.  
  567. Supervisor(s):
  568.  
  569. edgar.galvan@mu.ie
  570.  
  571. Languages:
  572.  
  573. Javascript, Java, C++ and/or Java.
  574.  
  575. References:
  576.  
  577. Description:
  578.  
  579. .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.
  580.  
  581. 5 ECTS Avialability:
  582.  
  583. A 5 ECTS project option is available.
  584.  
  585. ********************************************
  586.  
  587. Title:
  588.  
  589. Machine Learning Algorithms for Classification of Imbalanced Data Sets
  590.  
  591. Supervisor(s):
  592.  
  593. Edgar.galvan@mu.ie
  594.  
  595. Languages:
  596.  
  597. Java, Python and/or C++
  598.  
  599. References:
  600.  
  601. Description:
  602.  
  603.  
  604.  
  605. 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.
  606.  
  607. 5 ECTS Avialability:
  608.  
  609. A 5 ECTS project option is available.
  610.  
  611. ********************************************
  612.  
  613. Title:
  614.  
  615. Evolving Games
  616.  
  617. Supervisor(s):
  618.  
  619. Edgar.galvan@mu.ie
  620.  
  621. Languages:
  622.  
  623. Java, Python, C++ and/or Javascript
  624.  
  625. References:
  626.  
  627. Description:
  628.  
  629.  
  630.  
  631.  
  632.  
  633. Evolutionary Computation (EC) is a powerful technique inspired by evolution. It allows to solve many challenging problems such as automatically finding and fixing errors in Java, C++ source code. Other applications include the use of these techniques to automatically and without human intervention to design real board games. In this project, the student will use EC to play games, with ultimate goal of showing how we can use EC on these problems.
  634.  
  635. Supervisor: edgar.galvan@mu.ie
  636.  
  637. 5 ECTS Avialability:
  638.  
  639. A 5 ECTS project option is available.
  640.  
  641. ********************************************
  642.  
  643. Title:
  644.  
  645. [6 projects] Semantic-based Machine Learning Genetic Programming
  646.  
  647. Supervisor(s):
  648.  
  649. Edgar.galvan@mu.ie
  650.  
  651. Languages:
  652.  
  653. Java, C++ and/or python.
  654.  
  655. References:
  656.  
  657. Description:
  658.  
  659. Evolutionary Computation (EC) is a powerful technique inspired by evolution. It allows to solve many challenging problems such as automatically finding and fixing errors in Java, C++ source code. Other applications include the use of these techniques to automatically and without human intervention design real board games.
  660.  
  661.  
  662.  
  663. Genetic Programming (GP) is perhaps the most popular Evolutionary Computation paradigm thanks to its powerful representation. This project aims to push the boundaries of GP by focusing on six different aspects analysed from the semantics of GP programs.  These aspects are:
  664.  
  665. 1. Genetic Operators such as crossover, mutation,
  666.  
  667. 2. Initialisation such as ramped half-and-half, full, grow,
  668.  
  669. 3.  Steady vs. Generational,
  670.  
  671. 4. Number of GP programs vs. Generations,
  672.  
  673. 5. Automatically defined functions.
  674.  
  675. 6.  Multi-objective GP vs. Single-objective GP.
  676.  
  677.  
  678.  
  679. This is a project that encourages students working as a team, where each student will focus on one of the aforementioned aspects. 
  680.  
  681.  
  682.  
  683. Furthermore, each of these elements will be tested using well-known benchmark problems such as classification problems, games, Boolean problem, and so on.
  684.  
  685.  
  686.  
  687. Supervisor: edgar.galvan@mu.ie
  688.  
  689. ********************************************
  690.  
  691. Title:
  692.  
  693. MaxUSE+
  694.  
  695. Supervisor(s):
  696.  
  697. Hao Wu
  698.  
  699. Languages:
  700.  
  701. Any major web programming languages.
  702.  
  703. References:
  704.  
  705. Description:
  706.  
  707. MaxUSE+
  708. This project aims to build a web interface for an existing tool called: MaxUSE. MaxUSE is a tool I wrote last year for finding inconsistent constraints specified in OCL. MaxUSE is purely written in Java and fully automatic. Thus, the tasks of this project requires you to build a proper web interface that allows users to try out MaxUSE online. It is very much like the projects on rise4fun. The source code of MaxUSE can be found in the following link:
  709. https://github.com/classicwuhao/maxuse
  710. You are not required to understand how MaxUSE's algorithms work during the project.
  711. Suitable Candidates: Someone who loves web programming (not just HTML and CSS).
  712. Level: BSc/MSc.
  713. CCS:Software and its engineering,Unified Modeling Language (UML), Software Verification.
  714.  
  715. ********************************************
  716.  
  717. Title:
  718.  
  719. Disruptor: A new web platform for organising and scheduling final year projects
  720.  
  721. Supervisor(s):
  722.  
  723. Hao Wu
  724.  
  725. Languages:
  726.  
  727. Any major web programming.
  728.  
  729. References:
  730.  
  731. Description:
  732.  
  733.  
  734. Currently, the way CS department manages final year projects is not optimised. This project aims to create a unified platform that allows individual supervisors and students to establish efficient communication during the project timeline. The key features of the platform (ideally) should include:
  735.  
  736. 1. Keep track of the progress for each owned project (basic meta-information).
  737. 2. Allow personal messages and discussions (send/received) within the platform.
  738. 3. Schedule meetings.
  739. 4. Save all history comments and messages in the log within the platform.
  740. 5. Marking projects.
  741. 6. Sort the project by proper categories (such as ACM CCS).
  742.  
  743. This is a proper software engineering project that will begin with requirements down to actual implementation and testing.
  744.  
  745.  
  746. Suitable candidates: Someone who loves web programming (not just HTML and CSS), and already have some experience in developing website using a suitable web framework.
  747. Note that the final features (listed above) may be changed based on individual coding skills.
  748. Level: BSc.
  749. CCS:Software and its engineering: Development frameworks and environments
  750.  
  751. ********************************************
  752.  
  753. Title:
  754.  
  755. Thor: An Advanced Timetable Scheduling System (front-end)
  756.  
  757. Supervisor(s):
  758.  
  759. Hao Wu
  760.  
  761. Languages:
  762.  
  763. Any major programming languages.
  764.  
  765. References:
  766.  
  767. Description:
  768.  
  769. This project aims to create an automated scheduling system that can find the most optimised solution to timetable scheduling problems. The system would allow users to specify different types of constraints over a(mathematically) well-defined structure. The immediate application would be using the system to automatically schedule lab demostrators for different labs within the CS department. The front-end of this project mainly focuses on designing a domain specific language (DSL) that allows users to write different constraints with repect to individual timetable scheduling problems to be solved. The tasks mainly include design grammar and semantics of this DSL.
  770.  
  771.  
  772. Suitable candidates: someone who loves formal language theories and programming.
  773. Level: BSc.
  774. CCS:Software and its engineering: System description languages, Design languages
  775.  
  776. ********************************************
  777.  
  778. Title:
  779.  
  780. Thor: An Advanced Timetable Scheduling System (back-end)
  781.  
  782. Supervisor(s):
  783.  
  784. Hao Wu
  785.  
  786. Languages:
  787.  
  788. Any major programming languages.
  789.  
  790. References:
  791.  
  792. Description:
  793.  
  794.  
  795. This project aims to create an automated scheduling system that can find the most optimised solution to timetable scheduling problem. In fact, this is the back-end of Thor. The back-end of Thor is responsible for "compiling" a DSL into a set of formulas which later can be solved by an optimised constraint solver. The successful completion of this project may lead to a publication.
  796.  
  797. Note we can start on small case studies by modeling CS departmental demonstrator allocation problem.
  798. Suitable candidates: someone who absolutely loves programming and likes taking on challenging tasks.
  799. Level: BSc./MSc.
  800. CCS:Software and its engineering, Compiler, Computing methodologies, Artificial intelligence, Planning and scheduling.
  801.  
  802. ********************************************
  803.  
  804. Title:
  805.  
  806. Banshee: An SMT-based Model Checker
  807.  
  808. Supervisor(s):
  809.  
  810. Hao Wu
  811.  
  812. Languages:
  813.  
  814. C/C++, Java for infrastructure, Python/Bash for generating configuration and building files.
  815.  
  816. References:
  817.  
  818. Description:
  819.  
  820. This is a challenging project that aims to create an SMT-based model checker. Ideally, you are already familiar with LTL/CTL. Theaim here is to cover both LTL and CTL. Hence, main tasks include design a reduction procedure to SMT. Depends on timeline, it is possible to make it a toy model checker.
  821.  
  822. Note this project is particularly designed for someone who loves challenges. I will assume you already master algorithms but want more.
  823.  
  824. Suitable Candidates: Someone who absolutely loves programming and is willing pushing his/her coding skills to another level.
  825. Level: BSc/MSc
  826. CCS:Software and its engineering: Formal Methods, Model checking.
  827.  
  828. ********************************************
  829.  
  830. Title:
  831.  
  832. Automatic processing of Equine images
  833.  
  834. Supervisor(s):
  835.  
  836. Joe Timoney
  837.  
  838. Languages:
  839.  
  840. pythton or Java or C++
  841.  
  842. References:
  843.  
  844. Description:
  845.  
  846. This project is about using standard image processing techniques to analyse images of horses and then determine the quality of its features, examples including the bow in its legs or the line of its back, or the positioning of its shoulder. The idea will be to reduce the images of the horse to a line drawing/skeletonize them from which the measure of the features can be made. This code can be written using any programming language, e.g. python, that has access to a good image processing library. Another component is that the system must have an interface where the use will upload the image and then a selection button through which the software will know which feature to extract.
  847.  
  848. 5 ECTS Avialability:
  849.  
  850. A 5 ECTS project option is available.
  851.  
  852. ********************************************
  853.  
  854. Title:
  855.  
  856. Biodiversity mapping app
  857.  
  858. Supervisor(s):
  859.  
  860. Joe Timoney
  861.  
  862. Languages:
  863.  
  864. Ionic or Xamarin
  865.  
  866. References:
  867.  
  868. Description:
  869.  
  870. In the last academic work last year was carried out on developing a biodiversity map of the campus using OpenStreetMap. This was a useful part of the University’s successful Green campus proposal. This aims to extend this map to work as a mobile app that has extra interactive features for users. The users should be able to follow and outline biodiversity walks in the university grounds as well as add photos and observations of interest. Further input to the project will be given by the biology department.  Ideally, the app will be cross-platform compatible. It should have a professional user interface and interact with a database on a server.
  871.  
  872. 5 ECTS Avialability:
  873.  
  874. A 5 ECTS project option is available.
  875.  
  876. ********************************************
  877.  
  878. Title:
  879.  
  880. Dublin bike service level prediction
  881.  
  882. Supervisor(s):
  883.  
  884. Joe Timoney
  885.  
  886. Languages:
  887.  
  888. Python or R
  889.  
  890. References:
  891.  
  892. Description:
  893.  
  894. A few of studies have been done to date within the department on the Dublin Bike scheme. We are continuing to capture the information from the API run by JCDeaux.  This project aims to build on the analyses and create a quality of service prediction tool for various stations, i.e. will the number of available bikes match the predicted demand. Prediction models have been implemented already and should be refined. An interface that allows the user to illustrate the activity of a bike station by time-of-day will be needed. This should be helpful to users when planning their cycling trips.
  895.  
  896. 5 ECTS Avialability:
  897.  
  898. A 5 ECTS project option is available.
  899.  
  900. ********************************************
  901.  
  902. Title:
  903.  
  904. Melody alignment tool
  905.  
  906. Supervisor(s):
  907.  
  908. Joe Timoney
  909.  
  910. Languages:
  911.  
  912. Python, Java or C++
  913.  
  914. References:
  915.  
  916. Description:
  917.  
  918. For automated music singing practice it is desirable to build a tool that will allow users to determine their progress by themselves. To achieve this a tool is required that can recognise that the notes in the melody are the same and that they are correctly aligned in time. This can be achieved to compare the sung melody with the ideal using pitch detection and dynamic time warping. These algorithms are available in a number of libraries, e.g. in Java, python, or C. This project will implement this solution and test it on many examples to determine how well it can work.
  919.  
  920. ********************************************
  921.  
  922. Title:
  923.  
  924. Music Browsing tool for Discogs
  925.  
  926. Supervisor(s):
  927.  
  928. Joe Timoney
  929.  
  930. Languages:
  931.  
  932. javascript, php
  933.  
  934. References:
  935.  
  936. Description:
  937.  
  938. This project will look at creating a better browsing interface for discogs using its API. Currently searches can return long lists that are difficult to read through they are completely removed from the traditional browsing experience of a record shop. This project will require skills in the javascript libraries to reproduce this experience.
  939.  
  940. 5 ECTS Avialability:
  941.  
  942. A 5 ECTS project option is available.
  943.  
  944. ********************************************
  945.  
  946. Title:
  947.  
  948. Smarter Travel Campus award project for the National Transportation authority competition
  949.  
  950. Supervisor(s):
  951.  
  952. Joe Timoney
  953.  
  954. Languages:
  955.  
  956. open choice
  957.  
  958. References:
  959.  
  960. Description:
  961.  
  962. See https://www.smartertravelworkplaces.ie/smarter-travel-campus/smarter-tra...
  963.  
  964. Can you come up with a suitable project idea that could be entered for this competition?
  965.  
  966. 5 ECTS Avialability:
  967.  
  968. A 5 ECTS project option is available.
  969.  
  970. ********************************************
  971.  
  972. Title:
  973.  
  974. Bluetooth beacon for classroom attendance
  975.  
  976. Supervisor(s):
  977.  
  978. Joe Timoney
  979.  
  980. Languages:
  981.  
  982. Xamarin or Ionic
  983.  
  984. References:
  985.  
  986. Description:
  987.  
  988. The main goal of this project is to use beacon technology to track attendance for classes/lectures up to 500 people. We need to ensure that each attendee is at the event is tracked by having a mobile application detecting beacons at the event and then allowing them to register their attendance with the events associated with the beacons. The app needs to be cross platform and it written with Xamarin or Ionic.
  989.  
  990. ********************************************
  991.  
  992. Title:
  993.  
  994. Medical procedure description using UML and OCL languages
  995.  
  996. Supervisor(s):
  997.  
  998. Joe Timoney and Hao Wu
  999.  
  1000. Languages:
  1001.  
  1002. UML, OCL, Java
  1003.  
  1004. References:
  1005.  
  1006. Description:
  1007.  
  1008. This project is concerned with tackling one of Ireland’s major problems today in its Healthcare system that is, finding the best way to manage the limited resources in such a busy environment without compromising patient safety. These problems can now be tackled using reliable software systems that are supported by Software Engineering practices. Specifically, by describing A&E diagnosis processes using formal software models, the validity of any process can be examined using specific state-of-the-art tools. The task is to translate and analyse specific medical procedures into formal descriptions that can be validated using software engineering tools. A comparison should be made between translation approaches to determine which ones are best.
  1009.  
  1010. ********************************************
  1011.  
  1012. Title:
  1013.  
  1014. Robocup Robotics Projects
  1015.  
  1016. Supervisor(s):
  1017.  
  1018. John McDonald
  1019.  
  1020. Languages:
  1021.  
  1022. For each of these project the aim will be to work directly with the RoboEireann codebase and so requires knowledge of C++. The one possible exception to this is the ROS project (i.e. project 2) which may also involve using python, depending on the student's preference. Although not absolutely necessary, it would help if students doing any of the above projects are sitting CS410 Computer Vision. Other areas that would be relevant are machine learning, and related topics.
  1023.  
  1024. References:
  1025.  
  1026. Description:
  1027.  
  1028.  
  1029. 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.
  1030.  
  1031. The overall aim of the Robocup Initiative is stated as follows:
  1032.  
  1033.  
  1034. "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."
  1035.  
  1036. 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.
  1037.  
  1038. This year I will be running a number of projects focussing on the following themes:
  1039.  
  1040. Maplet based Localisation: A central (and possibly the most important) component of the robot's congnition system is it's localisation module. The function of the localisation module is to compute the position and orientation of the robot from it's visual and odometric inputs. Our current system uses features from each image in the the input video stream independently in this process. However due to the limited field-of-view of the robot's cameras such features can often be ambiguous and can fail to constrain the localisation problem adequately. In this project the student will develop on existing work where the robot will to compute and maintain a local map of it's environment as a way of fusing data over multiple image frames. This should result in more comprehensive, and hence stronger, features for localisation.Robotic Operating System (ROS) Integration:Within the field of robotics over the past 20 years many open source projects have been instrumental in its progress. However in the last 5 years of greatest signficance here has been the Robotic Operating System (ROS -- www.ros.org). To quote the ROS website: "The Robot Operating System (ROS) is a flexible framework for writing robot software. It is a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust robot behavior across a wide variety of robotic platforms." In this project the student will develop a ROS based localisation and visualisation system by combining existing components with a visual mapping system developed at Maynooth University (see: www.kintinuous.com).Geometric Calibration using Photometric Techniques: As mentioned in project 3 above, a critical task of the robot's software is to localise the robot's pose in real-time. In order for this to be possible we first need to calibrate the robot so that it has an accurate model of the geometric relationship between each of it's sensors and the physical configuration. Currently this calibration process involves a time-consuming procedure whereby a user has to manually identify a large number of pitch control points in the robot's vision system. The aim of this project is to, in as much as possible, automate this process.Robocup Robotics Projects 
  1041.  
  1042.  
  1043.  
  1044. ********************************************
  1045.  
  1046. Title:
  1047.  
  1048. Visual Servoing of the Sawyer Robot
  1049.  
  1050. Supervisor(s):
  1051.  
  1052. John McDonald
  1053.  
  1054. Languages:
  1055.  
  1056. C++ / Python / ROS
  1057.  
  1058. References:
  1059.  
  1060. Description:
  1061.  
  1062. The Sawyer robot is a collaborative robot developed by Rethink Robotics, designed to work safely alongside humans. The robot consists of a single 7 degree-of-freedom (dof) arm which can be programmatically controlled using the robotics operating system (ROS). Although the arm does include a wrist camera to allow it to dynamically sense the position of objects in its workspace, the field of view of the camera does not overlap the tool centre point (i.e. it cannot see the grasp point of the robot gripper, or end-effector), and therefore cannot be used for closed loop visual servoing. Here visual servoing refers to the use of a camera sensor in a feedback loop to control the motion of a robot. The first step in such a system is the estimation of pose (i.e. position and orientation) of the robot gripper relative to an external camera. The objective of this project will be to achieve such a setup using a Microsoft Kinect type RGB-D sensor to tracking the robots arm relative to a 3D model.
  1063.  
  1064.  
  1065.  
  1066. 5 ECTS Avialability:
  1067.  
  1068. A 5 ECTS project option is available.
  1069.  
  1070. ********************************************
  1071.  
  1072. Title:
  1073.  
  1074. AR pick and place with the Sawyer Robot
  1075.  
  1076. Supervisor(s):
  1077.  
  1078. John McDonald
  1079.  
  1080. Languages:
  1081.  
  1082. Hololens SDK / C#
  1083.  
  1084. References:
  1085.  
  1086. Description:
  1087.  
  1088. The Microsoft Hololens is an augmented reality (AR) headset that permits seamless overlay of computer generated imagery within the user's physical field of view. The objective of this project is to develop a Hololens based point-and-pick gesture interface for the Sawyer robot. The interface will create a rectilinear grid within the workspace of the robot. The user interface will allow the user to use gestures to select both a "pick cell" and a "place cell" within the grid. Once selected a separate gesure will instruct the robot to execute a pick and place movement to take the object contained within the pick cell and place it within the put cell. The principal challenges within the project will be (i) familiarisation with the Hololens SDK, (ii) development of the AR grid application, (iii) familiarisation with ROS / Move-it / Sawyer robot, (iv) integration of AR grid application with the Sawyer robot.
  1089.  
  1090.  
  1091.  
  1092. ********************************************
  1093.  
  1094. Title:
  1095.  
  1096. RGBD-based object detection and pose estimation on the Tiago robot
  1097.  
  1098. Supervisor(s):
  1099.  
  1100. John McDonald
  1101.  
  1102. Languages:
  1103.  
  1104. C++ / ROS / Point Cloud Library
  1105.  
  1106. References:
  1107.  
  1108. Description:
  1109.  
  1110. In this project the student will be required to develop an object detection and pose estimation system using The Tiago robot is a collaborative mobile robot developed by PAL Robotics. More details on the Tiago can be found here: http://tiago.pal-robotics.com/static/tiago-datasheet.pdf. The workspace setup will consist of a set of known geometric objects on a planar tabletop surface. The requirements for the project will be to develop a system that uses the Tiago's RGBD camera to (i) detect the plane of the table, (ii) segment the objects on the table into distinct point clouds, (iii) classify each object, and (iv) compute the pose (i.e. position and orientation) of each object. Depending on the rate of progress through the project we may also look at utilising the resultant pose to grasp a particular object.
  1111.  
  1112.  
  1113.  
  1114. ********************************************
  1115.  
  1116. Title:
  1117.  
  1118. DeepAR for Accessibility
  1119.  
  1120. Supervisor(s):
  1121.  
  1122. John McDonald
  1123.  
  1124. Languages:
  1125.  
  1126. ARCore. Android App Development. TensorFlow Mobile.
  1127.  
  1128. References:
  1129.  
  1130. Description:
  1131.  
  1132. The aim of this project is to combine deep learning based object detection in conjunction with AR core's (https://developers.google.com/ar/) environmental mapping to create mobile augmented reality (AR) application that allows automatic measurement of objects of interest within a user's environment. The target use-case for the application will be to assist users in automatically assessing the accessibility of accommodation i.e. door threshold widths, step heights, etc. The project will be carried out in collaboration with Access Earth, a Maynooth University campus company developing online and mobile applications providing venue accessibility information.
  1133.  
  1134.  
  1135.  
  1136. ********************************************
  1137.  
  1138. Title:
  1139.  
  1140. Web Application Development (5+ projects) - MULE (Maynooth University Learning Environment)
  1141.  
  1142. Supervisor(s):
  1143.  
  1144. Kevin Casey
  1145.  
  1146. Languages:
  1147.  
  1148. Javascript/Typescript
  1149.  
  1150. References:
  1151.  
  1152. Description:
  1153.  
  1154. Background:
  1155.  
  1156. MULE is a web-based platform recently developed at the CS Dept in Maynooth to assist programming students. The system seeks to replace the Moodle/VPL (Virtual Programming Lab) combination and is currently being rolled out to 1st year undergraduates this semester. MULE mimics a desktop environment in a web browser and students can edit, compile, and execute code, all without installing anything on their local machine (apart from a web browser). It is a highly modular system and additional applications can be installed on the MULE system, which then become available to students through their browser, allowing students to carry out other tasks such as messaging other users.
  1157.  
  1158.  
  1159.  
  1160. Software Stack:
  1161.  
  1162. The platform is composed of a number of services deployed in docker containers (File System, Analytics, DB, Main Server) behind a reverse proxy Nginx. The server is running Node.js and thus the language is Javascript (and Typescript) on both server and client.
  1163.  
  1164.  
  1165.  
  1166. Work :
  1167.  
  1168. The team responsible for MULE are looking to rapidly expand MULE’s capabilities and are seeking several students for work in the areas noted below. In all cases, it is envisaged that the candidates will work in a larger team where expertise on MULE is shared and, in terms of project management, we will adopt as much as we can (or is suitable) from SCRUM. As such these projects will give experience to students who want to work on a large multi-person project which is being actively used by end-users.
  1169.  
  1170.  
  1171.  
  1172. Prerequisites:
  1173.  
  1174. In order for the final year project to be successful for you and us, the student would need to be a good programmer. All of these projects are heavy on programming. For example, if you are not comfortable with JavaScript, have never heard of callbacks or JSON, and haven’t used Node.js before, then this project probably isn’t for you. We do plan on using Typescript extensively, but it is a superset of JavaScript and will make your life easier (https://stackoverflow.com/a/35048303)
  1175.  
  1176.  
  1177.  
  1178. Project ideas:
  1179.  
  1180. (1) Replacing the VPL component with a docker-based code-execution engine. VPL’s JailServer, which MULE uses as a component, is somewhat outdated and could do with a substantial overhaul. It is used to execute code (that students submit) in a sand-boxed environment, which is an ideal use-case for docker. This project has 2 potential groups of users. The first is existing Moodle/VPL JailServer users of which there are tens of thousands around the globe. The second is projects such as MULE which seek to build upon/extend VPL.
  1181.  
  1182.  
  1183.  
  1184. (2) Architectural analysis, refactoring, and building test suites. We feel we have accumulated substantial technical debt in some of the pragmatic decisions we have made during the development of MULE. This project would suit someone who can reason about code at a higher level (for example an interest in Design Patterns and Code Metrics would be good).
  1185.  
  1186.  
  1187.  
  1188. (3) MULE application - CPU simulator. One of the applications we envisage for deployment via MULE is an x86 CPU Simulator (similar to the desktop based one at http://www.softwareforeducation.com/sms32v50/). The interested student will have a head start. We already have a standalone Javascript/Typescript prototype that needs to be refactored and brought into MULE.
  1189.  
  1190.  
  1191.  
  1192. (4) MULE application – Communicator. We have also built a prototype for a Communicator application to be brought into MULE and tested. The idea is that students will have help (from each other, from demonstrators, and from the Programming Support Center), all at their fingertips. The prototype supports text, audio, and video conversation and also permits screen sharing. There is a substantial amount of work to bring the prototype into MULE so that students can avail of it. About a fourth year project amount of work...
  1193.  
  1194.  
  1195.  
  1196. (4) MULE application – Interactive Visual Artefacts. To encourage student interest in programming, we plan to build a suite of artefacts, such as a Rubik’s Cube, a Simple Simon game, Seven Segment displays etc... The idea is to create these visually interesting artefacts in the browser with which students can interact with via code that they write. For example, the students could write a program to solve the Rubik’s Cube in a language of their choice, and when they run their code, they can see the cube being modified in real-time. While some of the work here will be designing the artefacts, a substantial portion of the work will be determining the best method to provide APIs for most common programming languages. We have some ideas here and are happy to discuss them.
  1197.  
  1198.  
  1199.  
  1200. (5) Other projects: There is no shortage of work to be done on the MULE platform. For example, administration-specific tools such as user management are limited, and construction of the Workbook (an application that keeps track of student work) is somewhat low-level and involves modifying JSON files. Talk to us if none of the other projects interest you, but you are generally interested in working within the MULE team.
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206. 5 ECTS Avialability:
  1207.  
  1208. A 5 ECTS project option is available.
  1209.  
  1210. ********************************************
  1211.  
  1212. Title:
  1213.  
  1214. Medical Information Retrieval
  1215.  
  1216. Supervisor(s):
  1217.  
  1218. Liadh Kelly
  1219.  
  1220. Languages:
  1221.  
  1222. Java
  1223.  
  1224. References:
  1225.  
  1226. Description:
  1227.  
  1228. *Multiple projects are available on this topic
  1229.  
  1230. Information retrieval (IR) is a process which aims to locate, for a given information need (expressed as a keyword query), relevant content (documents) from a document archive. This project focuses on a specific domain for the information retrieval process: health and medical textual content. 
  1231.  
  1232. One way that researchers can evaluate how good the medical information retrieval techniques that they develop are is by participating in an evaluation campaign which provides them with a set of health related queries and documents to search for relevant content in. The evaluation campaign would also tell the researchers which documents were relevant to the queries at the end of the campaign, so that they can assess (using established evaluation metrics) how good their information retrieval system is at answering queries.  An example of such an evaluation campaign is CLEF eHealth.  
  1233.  
  1234. This project will complete the CLEF eHealth patient-centred information retrieval evaluation campaign by: (1) developing Java code that uses APIs that support development of processes necessary to conduct information retrieval evaluations; (2) using tools to systematically compare the performance of different information retrieval approaches to determine the best standard approach to use. 
  1235.  
  1236. This is a technical project. Strong programming skills and use of APIs required. An interest in search technologies and information retrieval is desirable.
  1237.  
  1238.  
  1239.  
  1240. ********************************************
  1241.  
  1242. Title:
  1243.  
  1244. Semantic Analysis of Kinect Sensor Data for old style Irish Dance based on foot movement
  1245.  
  1246. Supervisor(s):
  1247.  
  1248. Thomas Lysaght
  1249.  
  1250. Languages:
  1251.  
  1252. Java, C++ or other
  1253.  
  1254. References:
  1255.  
  1256. https://msdn.microsoft.com/en-us/library/dn782037.aspxhttps://msdn.microsoft.com/en-us/library/jj131025.aspxhttp://www.gaitposture.com/article/S0966-6362(15)00462-2/fulltext
  1257.  
  1258. Description:
  1259.  
  1260. Old style Irish dance (sean-nós) dance is characterized by free-form, improvised step movements close to the floor, as well as free arm movement to add emphasis to the style. The dance is traditionally performed to the accompaniment of a single instrument with the dancer improvising movement to a number of different tune types(jig, hornpipe, reel). This project will use the Microsoft kinect One sensor to record the movement of a dancers feet as well as recording the sound of foot taps. A music sound track for the dance will be used in the analysis stage.  Initial analysis will identify the foot positions of the dancer and semantic analysis will seek to attribute  a 'style' element to the movement.  The project could also explore the influence of the arm movement of the dancer.
  1261.  
  1262. 5 ECTS Avialability:
  1263.  
  1264. A 5 ECTS project option is available.
  1265.  
  1266. ********************************************
  1267.  
  1268. Title:
  1269.  
  1270. A Moog-like synth app
  1271.  
  1272. Supervisor(s):
  1273.  
  1274. Thomas Lysaght
  1275.  
  1276. Languages:
  1277.  
  1278. Java, processing, web technologies and javascript
  1279.  
  1280. References:
  1281.  
  1282. https://developer.android.com/ndk/index.htmlhttps://p5js.org/examples/https://www.moogmusic.com/products/apps/filtatron
  1283.  
  1284. Description:
  1285.  
  1286. Moog are famous for their analog synthesisers and the IOS platform offers real-like app versions of some of their popular models. The Filtatron is one example of a well designed synthesis/effects app on IOS. This project will build a synthesis engine similar to the filtatron for either android or cross-platform using web technologies and the processing library p5.js for sound. An important aspect of the project will be the design of the UI following current material design patterns. The synthesis/ effects engine will be based on existing Java libraries and code. A useful addition to the project would be to use the android NDK(native development kit) to implement some of these routines in the C language on Android.
  1287.  
  1288. 5 ECTS Avialability:
  1289.  
  1290. A 5 ECTS project option is available.
  1291.  
  1292. ********************************************
  1293.  
  1294. Title:
  1295.  
  1296. Simulation of old style Irish Dance using the Kinect Sensor
  1297.  
  1298. Supervisor(s):
  1299.  
  1300. Thomas Lysaght
  1301.  
  1302. Languages:
  1303.  
  1304. Java, Processing, C++ or other
  1305.  
  1306. References:
  1307.  
  1308. https://msdn.microsoft.com/en-us/library/dn782037.aspxhttps://msdn.microsoft.com/en-us/library/jj131025.aspxtp://shiffman.net/p5/kinect/
  1309.  
  1310. Description:
  1311.  
  1312. Old style Irish dance (sean-nós) dance is characterized by free-form, improvised step movements close to the floor, as well as free arm movement to add emphasis to the style. The dance is traditionally performed to the accompaniment of a single instrument with the dancer improvising movement to a number of different tune types(jig, hornpipe, reel). This project will use the Microsoft kinect One sensor to track the movement of the feet as well as recording the sound of foot taps. This project will build a skeletal representation of the dancer’s movement. The project could also explore the influence of the accompaniment track on the ‘style’ of the dancer.
  1313.  
  1314. 5 ECTS Avialability:
  1315.  
  1316. A 5 ECTS project option is available.
  1317.  
  1318. ********************************************
  1319.  
  1320. Title:
  1321.  
  1322. Critical analysis and security hardening of an online games environment
  1323.  
  1324. Supervisor(s):
  1325.  
  1326. Tom Naughton
  1327.  
  1328. Languages:
  1329.  
  1330. The existing software has been written using Python and the Flask microframework.
  1331.  
  1332. References:
  1333.  
  1334. The thesis of a former M.Sc. student is available.
  1335.  
  1336. Description:
  1337.  
  1338. Teaching computer science to schoolchildren is an active research area in the Department, involving the participation of five academics. As part of this work, a web application that teaches computer science to children through the use of computer games has been created. It is designed to be used by primary and secondary teachers in the classroom. Teachers initiate classroom activities through the teachers' portal, the students interact with the environment, and the students interactions and results are stored and made available to the teacher.
  1339.  
  1340. Although the basic functionality has been implemented, before going live, the environment will need to undergo a comprehensive system review. For this project, the student will undertake certain tasks to be mutually agreed, of which a representative superset is:
  1341.  
  1342. - critical analysis of the web technologies used in the existing software, including suggesting alternatives
  1343. - analysis of existing software development practice, including adopting alternative design patterns and refactoring
  1344. - security analysis of the web application
  1345. - security improvements, e.g. protection of static resources using JSON Web Tokens
  1346. - privacy concerns, e.g. compliance with the new GDPR regulations, special concerns when dealing with children
  1347. - regression testing, e.g. using Selenium, as the system will continue to be developed
  1348. - documenting the system for both end-users (schoolteachers) and future developers
  1349.  
  1350. The student will work closely with the active developers of the web application throughout their project. It is envisaged that the student may also be involved with the roll-out of the system to primary and secondary teachers nationwide, and the migration of the system from being hosted in the Department to being hosted by a commercial cloud service provider.
  1351.  
  1352. This kind of project might suit a student who seeks a position higher than entry-level at a company upon graduating, as it demands competencies in programming, software engineering, web technologies, technical writing, communication, and teamwork.
  1353.  
  1354. 5 ECTS Avialability:
  1355.  
  1356. A 5 ECTS project option is available.
  1357.  
  1358. ********************************************
  1359.  
  1360. Title:
  1361.  
  1362. Teaching fundamental programming skills through a computer game
  1363.  
  1364. Supervisor(s):
  1365.  
  1366. Tom Naughton
  1367.  
  1368. Languages:
  1369.  
  1370. Python, optionally using some functionality of one of the many JavaScript graphical frameworks out there. A clean separation between game logic and graphical user interface will be expected.
  1371.  
  1372. References:
  1373.  
  1374. More examples of static versions of the games can be found at http://www.bebras.uk .
  1375.  
  1376. Description:
  1377.  
  1378. From September 2018, computer science will be an official Leaving Certificate subject. If, later, computer science becomes an official primary school subject, we may find it necessary to teach the subject using programming languages that are computationally simpler than languages such as Java, C, C++, and so on. One possibility is to design computer games that each require a fundamental programming skill to win. This project involves creating one or more computer games, where each is fun and approachable, but also teaches a fundamental programming skill to primary school-age children.
  1379.  
  1380. Each game should be simple enough to test aspects of a single skill, such as sequential composition, abstraction, stepwise refinement, divide and conquer, unit testing, and so on. Each game will involve strategy and puzzle-solving in a restricted environment governed by clear rules and without randomness (other than the random generation of game instances). In particular, these games will not be based on quick reactions in a dynamically changing environment (e.g. Tetris, a platform game, car racing, first-person shooter, a turn-based game, and so on).
  1381.  
  1382. The student will use an implementation of Python that runs in web browsers (Brython - www.brython.info) so the games will run on a range of platforms. Hundreds of suitable games have already been designed through our international partners and the student could pick a game, or games, from that list, or design a suitable alternative. For example, the first image is a visualisation of one such simple game. Luggage falls onto a conveyor belt at a particular frequency (every third empty conveyor belt section). The player wins the game by correctly choosing what will be the final distribution of bags on the conveyor belt (A, B, C, or D), for one particular randomly generated sequence of bags. In another example game shown in the second image, the player must decide which flowers receive water and which do not, given this randomly generated sequence of switch positions.
  1383.  
  1384. Optionally, the student could additionally prove that playing each game is equivalent to programming by characterising each game's computational power -- previous final year projects in this area are available on request. The rules of each game would constitute a model of computation, and playing the game would involve the player creating a program for that model of computation. It is expected that most of the computer games will have computational power equivalent to a finite automaton, so that the gameplay is sufficiently restricted that children with no previous programming experience would be capable of playing it.
  1385.  
  1386. Multiple students can take this project, each implementing different game(s), but sharing their experiences.
  1387.  
  1388.  
  1389.  
  1390. 5 ECTS Avialability:
  1391.  
  1392. A 5 ECTS project option is available.
  1393.  
  1394. ********************************************
  1395.  
  1396. Title:
  1397.  
  1398. Compressing convolutional deep learning neural networks
  1399.  
  1400. Supervisor(s):
  1401.  
  1402. Tom Naughton and James Hamm
  1403.  
  1404. Languages:
  1405.  
  1406. This project will use Python and the PyTorch deep learning framework.
  1407.  
  1408. References:
  1409.  
  1410. See above for links.
  1411.  
  1412. Description:
  1413.  
  1414. The advancement in computer technologies over the past decades, as well as certain theoretical and algorithmic advancements, has allowed us to train and study larger and deeper neural networks than ever before, and apply them directly to large inputs such as real-world images. This emerging field of deep learning is already starting to have an impact in the pharmaceutical, manufacturing, and automotive industries, for example.
  1415.  
  1416. Deep neural networks still require significant resources to train and use. Often these requirements are beyond the capabilities of mobile devices, automobile embedded computers, or other embedded devices. This project will focus on optimising and compressing convolutional deep neural networks so that they require fewer resources to run.
  1417.  
  1418. Compressing a deep neural network can mean pruning, quantizing, and reducing the independence of weights. It can also mean replacing layers with other functions, with the goal of reducing the memory and computation time requirements of the network.
  1419.  
  1420. Some state of the art techniques are discussed here: https://medium.com/@nicolas_19145/state-of-the-art-in-compressing-deep-convolutional-neural-networks-cfd8c5404f22 .
  1421.  
  1422. An example of early work demonstrating a deep neural network that can run on a mobile phone at approx. 20 frames per second is shown in the image below. It can distinguish images with roads from images without roads with 95% accuracy. From: https://hackernoon.com/building-an-insanely-fast-image-classifier-on-and... .
  1423.  
  1424. ********************************************
  1425.  
  1426. Title:
  1427.  
  1428. Visual perception of three-dimensional objects encoded in digital holograms
  1429.  
  1430. Supervisor(s):
  1431.  
  1432. Tom Naughton and Taina Lehtimaki
  1433.  
  1434. Languages:
  1435.  
  1436. Python
  1437.  
  1438. References:
  1439.  
  1440. Description:
  1441.  
  1442. The family of holographic techniques is the only known method of recording and displaying a full three-dimensional (3D) reproduction of a real-world scene, simultaneously exhibiting all of the visual cues that humans use to perceive the world around us. A hologram stores multiple different perspectives of a real-world object or scene. With digital holography, we capture optically a 3D scene and reconstruct the desired perspectives digitally (using software) or optically.
  1443.  
  1444. The difference between a digital hologram and a conventional hologram is that we use a digital camera for recording instead of a holographic plate. Its digital nature means we can design algorithms to analyse, extract, and manipulate the 3D information. Holography provides unique advantages for medical applications (with living microbiological samples), industrial applications (such as 3D automated inspection), and consumer applications (such as augmented reality).
  1445.  
  1446. At Maynooth University Department of Computer Science, we have built a digital holographic camera for centimetre sized objects, and we have a commercial digital holographic microscope for microbiological research (such as cancer cell identification). PhD-level projects are ongoing in the areas of 3D object recognition, 3D object encryption, 3D video compression, visual perception of stereo and 3D scenes, and image analysis to detect cancer with holograms of living cells.
  1447.  
  1448. There is an opening for a student with good programming ability to contribute to the research on visual perception. An interest in image processing, stereo displays, and/or visual perception would be advantageous. This project would be especially suitable for a student interested in postgraduate studies such as a MSc or PhD. There would be a possibility of being a co-author on a research paper through this project.
  1449.  
  1450. 5 ECTS Avialability:
  1451. n
  1452. A 5 ECTS project option is available.
  1453.  
  1454. © 2015 National University of Ireland, Maynooth, Maynooth Co. Kildare, Ireland. Tel: +353-1-708 3847 | Fax: +353-1-708 3848
  1455. Admissions enquiries  | Technical enquiries
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement