Graduation Project Toward Learning and Startup

Don’t limit yourself. If you want to do something, try it!
-Sophie Liao-

N.B. This process does not substitute the software development life cycles, it just presents some ideas that were added to consider both research & business perspectives.

Phase 1:  Getting the idea 
1. Find the social problem from your society ( SUSTAINABLE DEVELOPMENT GOALS): https://www.arabstates.undp.org/content/rbas/ar/home/sustainable-development-goals.html  
target: get the ideas/problems people interested at.
Important start webinar: Dell Graduation Projects competition
2. Review the technical part (How you could solve it from a CS point of view? Is it feasible?), review the most recent well-known conference in your research area. You can find it at https://www.guide2research.com/topconf/
Example: https://nips.cc/, https://chi2021.acm.org/, https://aaai.org/Conferences/AAAI-21/, https://conf.researchr.org/home/icse-2021
3. Check who are the most powerful people in this field, read their recent papers.  you can find them at https://www.guide2research.com/scientists/
4. Before you finalize your idea: discuss it with your supervisor/business collaborator / build a survey analysis (anyone needs it?).
4. Write your proposal: (answering these questions: Ref: Dell GP Competition: https://www.delltechnologies.com/en-ae/campaigns)
Question 1: What is the main problem that you are solving?
Question 2: What is the importance of this problem?
Question 3: What are the current solutions?
Question 4: How will your solution solve the problem? What is new?
Question 5: What is the expected impact of your solution from various perspectives (social, commercial, environmental, etc)?
Question 6: Give a high-level functional description of your solution. How will it be used?
Question 7: Give a high-level technical description of your solution: architecture, technology, integration, innovative components, etc.
Question 8: Give a high-level description of your solution development environment, platform, tools, etc.
Question 9: How will you manage your product development cycle, your quality assurance process, your solution deployment logistics, etc?
Question 10: Give the most relevant plans that you have developed for your project (for example, time schedule, resource plan, training plan, risk management, contingency plan, etc.)

The output of this phase: Write a proposal.  

Phase 2:  Design phase

1. System Requirements, Functional requirements, Non-functional requirements. 
2. System Design: High-level system architecture, data flows, etc, User interfaces, if any, Algorithmic components, (Psoudocode writing style), Innovative aspects of the design.
3. Your project Application design: website, mobile application, desktop application.
4. System Implementation plan: Hardware and software platforms, Hardware and software development tools, languages, etc, Modules/components acquired from external sources (e.g., open-source, licensed commercial/trial products, university/departmental resource libraries, etc), Innovative aspects of the implementation.
5. Bussiness Model & pitching video
N.B. Try to get a sponsor/ GP competitions/ enhance your presentation skills/ write your brand story.

The output of this phase:  Analysis and design document + Prototype + your first survey paper.

Phase 3: Implementation / Testing phase:
1. According to discussion/ conference/competition feedback, adjust your design.
2. Full Implementation.
3. Implementation document.
4. Testing use cases.
5. Collect your results and compare them with other results.

The Output of this phase: 1. Full documentation 2. Ready product. 3. your contribution final paper.

General Notes:

1. All team members must have the same target from the GP.
2. All team members must agree on the idea and be motivated to do it.
3. The team leader must satisfy:
– Know the project management techniques and tools (example: Jira).
– Know well all member’s skills.
– Plan for time and budget constraints.
4. When choosing your supervisor, be sure he/she:
– agree with your target.
– motivated by your idea.
– the technical field is in his/her research interest.
5. Try to start early with a technical Coach (Teaching assistant) for technical problems and advice.

Where to find competitors (Example):
– https://opensource.google.com/projects/explore/featured
– http://www.research.ibm.com/
– https://www.microsoft.com/en-us/research/
– https://www.cs.princeton.edu/research/projects
– http://www.wm.edu/as/computerscience/research/projects/index.php
– https://www2.eecs.berkeley.edu/Research/Projects/
– https://www.cs.umd.edu/research/projects
– http://www.cs.ox.ac.uk/research/

How  to find research related work:
1. Start with Google Scholar, search for your interest topic.
2. Select just 3 years back papers, to get the most recent work.
3. Depend only on well-known publishers: IEEE, ACM, Springer,  Elsevier, Wiley. 
4. Don’t read all the papers from the first round, start with Abstract + introduction + conclusion and future work. If it is interesting and related much to your idea, read it carefully.
5. Collect your related papers in a bib file, so you can reference them easily when writing.

Useful Tips for writing:
1. You should know How to write (proposal, analysis SRS, design SDD, paper, market plan)?
2. It is recommended to use Latex, https://www.overleaf.com/
overleaf is helpful you can share all documents among your team members, and track changes.
3. Check your grammar carefully, grammarly.com will help.
4. Avoid plagiarism problem please,  referencing the resource does not mean you can copy/paste it. You have to write what you get your way and reference the source of information.
5. Know clearly for whom you write a document/presentation. If you write it for business or research/ technical, it’s totally different.
6. Respect the provided template if exists.

How to write a paper:

You may refer to this presentation: