Final Year Project FAQ
Questions (Q) and Answers (A)
• My idea of a FYP is -----------. Would you supervise me?• Is Ricardo a good fit for me?
• What should I do first?
• Should I work with one or more software lifecycle phases or with Research?"
• What to use for citing previous work in my report?
• Should I use ----------- as software development process in FYP?
(put any 'modern' approach in the blanks)
• Where to find scientific papers to cite?
• Where to find good datasets?
• Do you have any tips for me?
• What to do if I have no idea what to do?
• What are common mistakes people make in the course of the FYP?
• About grades and marking - when and how to worry about it?
• Do you have any tips on writing?
• Do I need to do usability testing?
• Any final thoughts?
Question: "My idea of a FYP is -----------. Would you supervise me?"
Answer: That's very nice, coming up with your own idea. I only advise you to come with a substantial idea, something that is a FYP. Sometimes students come to me with the idea of creating a static website and call it a FYP. In my view and in accordance with the module requirements, this is *not* a FYP worth pursuing. You will have to code something or research using a methodology. There is no turn around this (at least with me as supervisor). I prefer not to supervise static web pages as FYP - perhaps you could contact someone else? Check your options.top
Question: "Is Ricardo a good fit for me??"
Answer: Answer these questions: (i) Do you enjoy coding? (ii) Are you a curious independent investigative person? (iii) Do you like working with computing related technologies? (iv) Are you self-motivated to pursue your own objectives?If you answer NO to any of those questions (especially (i)), then we are unfortunately NOT a good fit and you should find another supervisor.
What I enjoy supervising: software based projects, where you code a solution to a problem (stand-alone application or web-based application); dataset generation, processing (sanitising), analysing; working with external APIs to come up with an enriched application; Attack Modelling Techniques (AMT) - modelling, mapping, and evaluating.
What I WILL NOT supervise: static web pages; anything unrelated to software development.
top
Question: "What should I do first?"
Answer: First of all, think about having S.M.A.R.T. goals throughout. They will help you keeping you grounded to your deliverable.Start with small steps. Remember Sir Francis Drake's adage, that goes like "Sic parvis magna" ("From small beginnings come great things"). Work on your idea first of all. It should have the 'proper size', not too small that you can finish really quick, not too long or complex that looks like a M.Sc.
top
Question: "Should I work with one or more software lifecycle phases or with Research?"
If you think that pursuing research will not entail programming, well, think again, as perhaps it will involve MORE PROGRAMMING than pursuing the alternative approach, which is to make a tool.
For RESEARCH you need to investigate a core aspect of something that is very new and demanding thorough investigations. Additionally, you need basic scientific training for i) conducting relevant state-of-the-art research (not search) on a topic; ii) work on a specific methodology to answer your Research Question; iii) devise experiments that will validate/refute your approach consistently, and iv) work on a comprehensive discussion about all lessons learned in the process.
Having said this, you need to have strong skills in programming and in research, combining them to reach a valid, useful scientific outcome that is at least publishable in scientific venues.
Over the undergraduate course we do not offer ways of qualifying these skills altogether, that is something you develop over a MSc or a PhD degree. So, I would strongly recommend you to pursuit the "making a tool for the FYP" approach.
Regardless of your choice:
- Pick one EARLY;
- It is RESEARCH, not SEARCH: it's all about pushing the boundaries of scientific knowledge or making sound observations on particular phenomena of interest. It is not about looking Google, Yahoo!, or Wikipedia for answers (you could use, but not only that) in unverified or opinionated blogs, obscure sources, or other non-scientific venues.
Usually, research follows these steps (it depends on your chosen methodology):
- Hypothesis (finding a good Research Question to work with);
- Design of experiments;
- Execution;
- Results 'extraction';
- Analysis;
- Hypothesis acceptance/refutal documenting your methodology in a scientific report with all related information and data so others may reproduce, replicate, or repeat your research.
Be aware of this and see if it matches your previous training on research.
One thing you could do is writing a Systematic Literature Review (click here to find out more about it↗) or following the PRISMA methodology (download here a PRISMA 2020 'kit' with the workflow and the checklist). Discuss this with your supervisor.
Remind that you have significant training in SDLC and you have spent little time during your undergraduate studies seeking and pursuing research (thus little training). If it is research you want to pursue in your FYP, perhaps you will need to study about research's underpinnings first, and then frame your questions accordingly. Talk to your supervisor.
top
Question: "What to use for citing previous work in my report?"
Answer: You can have a few Internet links (preferably those whose content will remain for future referencing, ie, it will not 'disappear' over night). However, the best way is to use consistent references from scientific outlets (Google Scholar, Science Direct, Scopus, arXiv - read more about in Q5 below). Papers with previous results are welcomed, or references to published books. Tip: see how other researchers cite (in good venues), how they do, the frequency they cite, and where.top
Question: "Should I use ----------- as software development process in FYP?" (Put any 'modern' approach instead of 'X')
Answer: It is not a crime to employ good o' Waterfall for delivering a project. Scrum/Kanban or even ScrumBan might be ok to organise ideas and deliverables in bi-weekly fashion, but you could 'adapt' it and have mini Waterfall cycles as well, with design/coding/testing/delivery phases. Ask yourself: "does it make sense to use -----------?" If so, go along, otherwise, adapt!Reassess your contribution as time passes. If you are wasting too much time in one task and you need more tasks to finish by a deadline, re-evaluate what you are doing and try to move on or adjust. Talk to your supervisor.
top
Question: "Where to find scientific papers to cite?"
Answer: You can use the following scientific venues for this purpose (on many venues you may use your Aston credentials through OpenAthens):- Google Scholar: https://scholar.google.com/↗
- Digital Library - ACM: https://dl.acm.org/↗
- IEEE Xplore - IEEE: https://ieeexplore.ieee.org/Xplore/home.jsp↗
- Science Direct: https://www.sciencedirect.com/↗
- arXiv: https://arxiv.org/↗
- CiteSeer (Computing): http://citeseerx.ist.psu.edu/↗
- Semantic Scholar (AI-powered research tool): https://www.semanticscholar.org/↗
If you are having trouble citing and referencing other work, one suggestion is to check and see how authors have done in their work (pick a paper and see).
top
Question: "Where to find good datasets?"
Answer: Look at this link at my Research webpage.top
Question: "Do you have any tips for me?"
Answer: Yes. For example:- Do you need permission from ethics committee to move on? (mind that this process may take a considerable while to return favourably/unfavourably) - talk to your supervisor ASAP about this
- Decide on a platform early on: Desktop, Mobile (App), Web
- For Desktop applications, you will need to choose a GUI, eg, Qt or WX-Widgets (assuming you want a visual GUI, otherwise you could code a CLI - Command Line Interface application
- For Mobile, in MacOS you will have to know/learn Objective-C, for Android, Java
- For Web, a framework (the simplest one being W3.CSS↗, a quality alternative to Bootstrap - check also their tutorials on CSS), also another, perhaps JS based like Angular
- Work to have a deliverable and AT THE SAME TIME work on the report (they go together). Remember the weights for each part (check Q9). Start drafting the structure and writing high level things you want to say in specific parts.
- Check your progress every once in a while to see if you are in line with the objectives you have set. Ask yourself:
- Have you finished what you proposed? (can you afford to add this new feature?)
- Do you have time for coding new, unanticipated things?
- What you have finished (main deliverable), is in good measure of the expected outcomes of a FYP?
- Has your tool been tested? What about usability testing?
- When you think you have a stable version (of both the deliverable and the report), give it to someone else to run (the application) and the report. They might find problem that you probably haven't.
top
Question: "What to do if I have no idea what to do?"
Answer: One suggestion is to look at opportunities for improving systems you deem need fixing. Also, you can:- Write a plug-in for Chrome/Firefox
- Continue a different venue of previous FYP projects (read their "Future Work" section)
- Combine two ideas from other two FYPs
- Employ a different (but comparable) technology/approach from another FYP and analyse outputs
- Improve an open source software project or add a feature
- Work on something related to learning how to code, using visual approaches to teach programming
- You could work on a simple simulation of a reality, changing parameters to learn about interesting things. You could model a situation that you deem important/relevant. Create a virtual representation of something in reality worth studying
- You could parallelise an application using distributed computing primitives. Run it on a GPU, compare with the sequential/automatic parallel counterpart
- What about looking at some characteristic of Open Source Software (OSS)? Like the amount of repeated code in projects or how many times something was copied/pasted from StackOverflow?
top
Question: "What are common mistakes people make in the course of the FYP?"
Answer: Sadly, this happens more often than not. But you can learn from others and prevent them from happening to you. Examples are:- Steep learning curve for technology X: it takes a while to learn how to use a technology. Sometimes, the time it takes is overwhelmingly high. Start simple and work on fast prototypes before incorporating new technologies. Make things simple the first version, then add more complexities.
- Deciding unilateraly on big decisions concerning your FYP: supervisors should not micromanage your every action, however, they must be in pair with big decisions that could impact your estimated delivery. For these instances, you should check with your supervisor so you decide how to best approach these new ideas.
- Failing to understand the difference between 'search' and 'research': Research is about discovery and exploration in a formal and robust manner. It is perceptible for assessors that usually work with research in their daily lives that your deliverable is not research-based, and that may reflect on your final marking. Just be aware of this throughout your FYP journey.
- Taking too long for dealing with ethics issues: these processes take a while. Not having their agreement may cause you to postpone your scheduled report delivery and project demonstration.
- Disappearing: only consulting your supervisor by the very end of the project, weeks before submitting the report/demonstration.
top
Question: "About grades and marking - when and how to worry about it?"
Answer: First, think about having a good idea and how to proper code, test and analyse a system the proper and effective way. Then think about marking afterwards. Start by accessing, reading, and overviewing the assessment criteria for the FYP. Follow it if you aim for having a good mark prospect. That's how you will be evaluated by the committee. You'll see that the REPORT corresponds to 70% of your grade (yes, it does). And 30% goes to your deliverable. Look for previous work online, see how they cite previous work, learn from others.top
Question: "Do you have any tips on writing??"
Answer: Look my writing tips for a start.Writing is an art, one that you should not be afraid or think too much about. What you need to do to start writing well (or better) is to write often and assess the quality of your writing. Look at each individual sentence: does it look coherent? The concepts you are using, have they been introduced beforehand? How is your flow of ideas? Are they in logical order so the audience can grasp it?
Good writing is about working on a good narrative to explain your ideas in a logical matter. The way you organise your thoughts to convey the things you want the audience to learn about. It's a bit like telling a joke: you have a setting, a situation you expose, a punch line (and perhaps laughs afterwards, depends on your skill). It's the same with writing a document, a report, a dissertation, a thesis. You need to have a good plan for how you will flow everything throughout your sentences, your paragraphs, your sections, your chapters.
One technique is to start with the broad structure (major sections), then adding items that you need to write about (each item will perhaps become a paragraph, full of sentences). This will give you an idea of the things you want to address in the work. Look at each sentence trying to see whether it's too long (or too short) - they must be the right size, one that conveys a single idea clearly and precisely.
The power of editing: editing is re-reading all over again (perhaps after some time). By editing, you find problems in your previous thinking. You should read your work like an assessor going through your material, with an analytical eye. Use a red marker to highlight odd parts needing improvement.
top
Question: "Do I need to do usability testing?"
Answer: We are building software applications and tackling the SDLC. Our aim is to eventually have users working on these applications. So, yes, if you are building an application and you want end-user feedback, you will require a usability testing. Remind that for this you will need to engage with Ethics Committee for outlining and documenting the interaction with users (and filling forms and authorisations and so on). Plan for this as soon as you can because it takes a while to set everything up properly.In terms of participants number you must know for a fact that is not easy to recruit participants and that there is no good answer for this question. You can do a remarkable and insightful usability test with about five users and sometimes, even doing for 100 users, the feedback quality is not desirable. My recommendation is to gage the responses and their quality and make an assessment as to what you have learned to improve your tool and decide whether to keep recruiting or stop altogether.
top
Question: "Any final thoughts?"
Answer: Have fun.top