Please note that some of the above links use https to create a secure connection to a web site.
The first time that you use one of these sites you will be informed that the site's certificate is not trusted or that the site's identity cannot be verified. You will need to accept and trust this certificate. The steps needed to do this will depend on your browser.
The integrity of the certificate used can be checked using the following SHA-1 thumbprint:
5d 9a 48 b5 96 2e 61 f3 a3 f0 97 40 84 9e 9c 01 84 9f 92 dd
|
|
| Subscribe to Problem Solving & Software Development |
| Visit this group |
Deadlines are set so that there is sufficient time for assignments to be completed and submitted. Therefore, deadlines will be rigorously enforced.
You are strongly advised to start work on assignments as soon as possible and not leave submission to the last moment.
After a deadline has expired, I will discuss solutions for the assignment and therefore, under no circumstances will I accept or mark assignments that are late. If you do not submit a solution by the deadline, then you will be awarded a mark of zero.
Under exceptional circumstances, if the entire class is unduly overloaded during the period of the assignment, I will extend the deadline for the entire class. Note that having two or more deadlines at approximately the same time is not sufficient grounds for a change.
All assignments must be submitted electronically. If there are system problems with the CA network during the 24 hours prior to submission, then the deadline may be extended.
Problems with other networks or personal equipment will not be accepted as an excuse for late submission. Therefore, if you plan to submit assignments remotely, you are strongly advised to do so early enough (e.g., at least 24 hours before the deadline) so that you can use the CA network if you have a problem.
If you have a specific reason (e.g., illness) for not submitting an assignment you may write to the Programme Board explaining the situation and enclosing appropriate documentation (e.g., a doctor's certificate). This can be done by submitting a letter to the Faculty Office and sending me a copy. Under such circumstances you will still be awarded a mark of zero, but your case will be discussed by the Programme Board.
My main research interests are in cryptography & security protocols. In particular, I'm interested in novel protocols for secure communication over the Internet. Therefore, if you are considering a project that requires the use of a security protocol, I would be happy to discuss it with you.
The paper E-Voting: a new approach using Double-Blind Identity-Based Encryption [Gray & Sheedy, 2010], defines a new secure e-voting system based on a cryptographic concept called double-blind identity-based encryption (DB-IBE).
One project would be to implement DB-IBE. This would require the use of existing libraries for IBE.
A second project would be to implement a prototype for the e-voting system. This would require a working implementation of DB-IBE.
MapReduce is a programming model that allows programmers without any experience with parallel and distributed systems to easily utilize the resources of a large distributed cluster of computers. The MapReduce model is used by companies such as Google, Twitter and Facebook to perform massively parallel computations on huge data sets. Hadoop is an open source implementation of MapReduce.
The aim of this project is to configure lab computers within the School of Computing into a cluster and port hadoop to this cluster.
DCU has adopted Google's Chromebook as a platform for students. These devices work exclusively with web applications. For students in many disciplines this would be more that adequate, but for students in other disciplines, such as computing, the need to run desktop applications would be problematic.
Native Client is an open-source technology that allows programmers to build web applications that seamlessly execute native compiled code inside Google Chrome.
Students on CA167 (Computing for Mathematics) are required to program in Ruby and C++. The aim of this project is to develop a programming environment for CA167 that can be used from a Chromebook or any platform running Google Chrome. It is expected that this will require the use of Native Client and remote virtual machines. One possibility would be to use Amazon Elastic Compute Cloud to create virtual machines on-demand.
Fuse. Have a look at the WEB page and see if you can get any ideas.
HTML5. Lots of new functionality for a browser.
If you have to build a web site, you might try Ruby on Rails.
I would be interested in supervising projects that develop software for OS X, the iPhone and/or the iPad . In particular, I would be interested in projects that would use iCloud to synchronize data between different devices.
Go is a new programming language developed by Rob Pike at Google. Go is a simple language that supports concurrency and garbage collection. I would be interested in supervising projects using Go and in particular, using its concurrency features to make use of multiple cores. Some ideas are:
It may also be possible to use Go with some of the Google APIs.
Google has various apps (see Google Apps) that can be customized. I would be interested in supervising projects that are based on using and customizing some apps.
Google Native Client allows C/C++ programs to run within the Chrome Browser. This allows very efficient/feature rich apps to run in Chrome. This might be a useful approach if you want to implement an app to run in a browser.
Android is an open platform for developing software for mobile devices including mobile phones and tablets. I would be interested in projects which use Android as their target platform. Note that applications for Android are written in Java and can be developed on a Linux or Windows PC, i.e., you would not need any special hardware for an Android project.