layout | title | permalink |
---|---|---|
page |
Final Project |
/project/ |
The goals of the final project are to learn new concepts, gain hand-on experience, and to potentially make an impact. Please follow the following steps:
- Form a team of 2--3 persons.
- Think about a project idea and write a proposal.
- Give a 10-min Milestone Presentation.
- Submit your code, video, and report.
- Idea novelty/recency: 20%
- Implementation: 30%
- Reproducibility: 20%
- Milestone Presentation: 5%
- Final Video: 10%
- Final Report: 15%
- Proposal: Feb 14th.
- Milestone Presentation: Mar 20th
- Final Submission: April 20th
It is preferred to come up with your own idea. To evaluate whether your project is good or not, please ask yourself the following three questions:
- Is it important? (i.e., what impacts can your project make?)
- Is it challenging? (i.e., does a naive solution work very well?)
- What can I learn by doing the project? (i.e., new tools, new techniques, new domain knowledge, new methodologies).
A good project should be important, be challenging, and be able to push you to learn something that you don't know before.
A project idea may be one of these categories:
- Reproducing Attacks and Defenses. Examples:
- DNS Rebinding Attacks
- SDN-related Attacks
- Bypassing Virtualization/Sandboxing
- Side-channel Attacks
- Reproducing research papers (related to security)
- Examples mentioned in the class
- Implementing security-related tools
- New research ideas
- New attack/defense
- Security issues in serverless/container platforms
- Are vNICs secure?
- Detecting malicious IoT behavior (large-scale, distributed env.)
- Attacks based on traffic analysis, e.g., Website fingerprinting
- Detecting caching policies in web/video servers
- Security of self-driving vehicles
- Check [R2]
- Submit the document to CourSys
Please use this opportunity to share your idea with us, and practice your communication skills.
Your presentation should consist of these elements:
- Motivation (1—2 min)
- Why is it an important project? (1)
- Challenges (1 min)
- What are the main challenges?
- Problem (1 min)
- (Preliminary) Solution (2—3 mins)
- What have you done so far?
- Is it on schedule?
- (Preliminary) Results (1—2 mins)
- Learned Lessons (Optional)
Submit your presentation to CourSys (activity is ProjectMilestone) by March 20th at 8:00am.
You must push your project code to a Git repository. SFU CS Instructional Gitlab is a good option to host your code. You are encouraged to open-source your project on github or a similar service as well. In your repository, please include a README.md file detailing how we can reproduce and run your project. It is highly recommended that you provide VM image(s) that are configured with all required dependencies and software packages. We will follow the instructions in the README.md file, and we will not attempt to fix or modify any code, configuration, etc.
Notes:
- It is recommended that group members commit their own contributions to the repository.
- We may ask you to run your demo/code if we fail to do so.
- If you created some kind of web frontend, please include a URL in the README.md as well.
You need to submit a report in a PDF format to give details of your project. The report should have at least 2500 words with the following structure:
- Project Title: Come up with an attractive title.
- Abstract < 150 words. What is this project about?
- Introduction: Motivation, brief overview of your work, and summary of main results.
- Background and Related Work: Any needed background for the reader to understand your project, and cite and describe related technical papers published in journals or reputable conferences.
- Problem Statement: What questions do you want to answer? Why are they challenging?
- Methodology: What tools or analysis methods did you use? Why did you choose them? How did you apply them to tackling each problem?
- Attack/Defense/System/Algorithm/Idea. Always use a top-down approach in writing: describe the main idea first. Then provide details.
- Evaluation and Experimentation. Describe the implementation, experimental setup and data collection, and present AND analyze the results. Draw lessons and insights on the results.
- Lessons Learnt: What did you learn from this project?
- Conclusion: A high-level summary of your project. It should be self-contained and cover all the important aspects of your project.
Create a video that demonstrates your project. Here are some requirements:
- The video length should be no more than 4 mins.
- The video should be narrated.
- Describe your project in a high level.
- Explain why this is an important project.
- Show a working demo of your project.
- Need to show the conclusion of your project.
- Put your contact information (i.e., Name and SFU email) at the end of the video.
You need to upload the video to YouTube, and include the video URL in the final report.